import ESM_COMPAT_Module from "node:module";
import { fileURLToPath as ESM_COMPAT_fileURLToPath } from 'node:url';
import { dirname as ESM_COMPAT_dirname } from 'node:path';
const __filename = ESM_COMPAT_fileURLToPath(import.meta.url);
const __dirname = ESM_COMPAT_dirname(__filename);
const require = ESM_COMPAT_Module.createRequire(import.meta.url);
var Hge = Object.create;
var dC = Object.defineProperty;
var Jge = Object.getOwnPropertyDescriptor;
var Yge = Object.getOwnPropertyNames;
var Xge = Object.getPrototypeOf, zge = Object.prototype.hasOwnProperty;
var n = (t, e) => dC(t, "name", { value: e, configurable: !0 }), Je = /* @__PURE__ */ ((t) => typeof require < "u" ? require : typeof Proxy <
"u" ? new Proxy(t, {
  get: (e, s) => (typeof require < "u" ? require : e)[s]
}) : t)(function(t) {
  if (typeof require < "u") return require.apply(this, arguments);
  throw Error('Dynamic require of "' + t + '" is not supported');
});
var g = (t, e) => () => (e || t((e = { exports: {} }).exports, e), e.exports);
var Gge = (t, e, s, r) => {
  if (e && typeof e == "object" || typeof e == "function")
    for (let i of Yge(e))
      !zge.call(t, i) && i !== s && dC(t, i, { get: () => e[i], enumerable: !(r = Jge(e, i)) || r.enumerable });
  return t;
};
var Pc = (t, e, s) => (s = t != null ? Hge(Xge(t)) : {}, Gge(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  e || !t || !t.__esModule ? dC(s, "default", { value: t, enumerable: !0 }) : s,
  t
));

// ../node_modules/@babel/types/lib/utils/shallowEqual.js
var mb = g((mC) => {
  "use strict";
  Object.defineProperty(mC, "__esModule", {
    value: !0
  });
  mC.default = Qge;
  function Qge(t, e) {
    let s = Object.keys(e);
    for (let r of s)
      if (t[r] !== e[r])
        return !1;
    return !0;
  }
  n(Qge, "shallowEqual");
});

// ../node_modules/@babel/types/lib/utils/deprecationWarning.js
var By = g((yC) => {
  "use strict";
  Object.defineProperty(yC, "__esModule", {
    value: !0
  });
  yC.default = Zge;
  var b7 = /* @__PURE__ */ new Set();
  function Zge(t, e, s = "") {
    if (b7.has(t)) return;
    b7.add(t);
    let {
      internal: r,
      trace: i
    } = e0e(1, 2);
    r || console.warn(`${s}\`${t}\` has been deprecated, please migrate to \`${e}\`
${i}`);
  }
  n(Zge, "deprecationWarning");
  function e0e(t, e) {
    let {
      stackTraceLimit: s,
      prepareStackTrace: r
    } = Error, i;
    if (Error.stackTraceLimit = 1 + t + e, Error.prepareStackTrace = function(o, l) {
      i = l;
    }, new Error().stack, Error.stackTraceLimit = s, Error.prepareStackTrace = r, !i) return {
      internal: !1,
      trace: ""
    };
    let a = i.slice(1 + t, 1 + t + e);
    return {
      internal: /[\\/]@babel[\\/]/.test(a[1].getFileName()),
      trace: a.map((o) => `    at ${o}`).join(`
`)
    };
  }
  n(e0e, "captureShortStackTrace");
});

// ../node_modules/@babel/types/lib/validators/generated/index.js
var ti = g((w) => {
  "use strict";
  Object.defineProperty(w, "__esModule", {
    value: !0
  });
  w.isAccessor = yPe;
  w.isAnyTypeAnnotation = BTe;
  w.isArgumentPlaceholder = cxe;
  w.isArrayExpression = t0e;
  w.isArrayPattern = Z0e;
  w.isArrayTypeAnnotation = MTe;
  w.isArrowFunctionExpression = eTe;
  w.isAssignmentExpression = s0e;
  w.isAssignmentPattern = Q0e;
  w.isAwaitExpression = ETe;
  w.isBigIntLiteral = vTe;
  w.isBinary = RSe;
  w.isBinaryExpression = r0e;
  w.isBindExpression = pxe;
  w.isBlock = KSe;
  w.isBlockParent = USe;
  w.isBlockStatement = o0e;
  w.isBooleanLiteral = I0e;
  w.isBooleanLiteralTypeAnnotation = jTe;
  w.isBooleanTypeAnnotation = FTe;
  w.isBreakStatement = l0e;
  w.isCallExpression = u0e;
  w.isCatchClause = c0e;
  w.isClass = fPe;
  w.isClassAccessorProperty = kTe;
  w.isClassBody = tTe;
  w.isClassDeclaration = rTe;
  w.isClassExpression = sTe;
  w.isClassImplements = qTe;
  w.isClassMethod = mTe;
  w.isClassPrivateMethod = OTe;
  w.isClassPrivateProperty = DTe;
  w.isClassProperty = NTe;
  w.isCompletionStatement = $Se;
  w.isConditional = HSe;
  w.isConditionalExpression = p0e;
  w.isContinueStatement = h0e;
  w.isDebuggerStatement = f0e;
  w.isDecimalLiteral = Txe;
  w.isDeclaration = tPe;
  w.isDeclareClass = UTe;
  w.isDeclareExportAllDeclaration = zTe;
  w.isDeclareExportDeclaration = XTe;
  w.isDeclareFunction = KTe;
  w.isDeclareInterface = VTe;
  w.isDeclareModule = WTe;
  w.isDeclareModuleExports = $Te;
  w.isDeclareOpaqueType = JTe;
  w.isDeclareTypeAlias = HTe;
  w.isDeclareVariable = YTe;
  w.isDeclaredPredicate = GTe;
  w.isDecorator = fxe;
  w.isDirective = n0e;
  w.isDirectiveLiteral = a0e;
  w.isDoExpression = dxe;
  w.isDoWhileStatement = d0e;
  w.isEmptyStatement = m0e;
  w.isEmptyTypeAnnotation = lbe;
  w.isEnumBody = EPe;
  w.isEnumBooleanBody = Mbe;
  w.isEnumBooleanMember = qbe;
  w.isEnumDeclaration = Bbe;
  w.isEnumDefaultedMember = Vbe;
  w.isEnumMember = APe;
  w.isEnumNumberBody = Fbe;
  w.isEnumNumberMember = Ube;
  w.isEnumStringBody = jbe;
  w.isEnumStringMember = Kbe;
  w.isEnumSymbolBody = Rbe;
  w.isExistsTypeAnnotation = QTe;
  w.isExportAllDeclaration = iTe;
  w.isExportDeclaration = dPe;
  w.isExportDefaultDeclaration = nTe;
  w.isExportDefaultSpecifier = mxe;
  w.isExportNamedDeclaration = aTe;
  w.isExportNamespaceSpecifier = CTe;
  w.isExportSpecifier = oTe;
  w.isExpression = jSe;
  w.isExpressionStatement = y0e;
  w.isExpressionWrapper = XSe;
  w.isFile = g0e;
  w.isFlow = TPe;
  w.isFlowBaseAnnotation = xPe;
  w.isFlowDeclaration = SPe;
  w.isFlowPredicate = PPe;
  w.isFlowType = bPe;
  w.isFor = zSe;
  w.isForInStatement = T0e;
  w.isForOfStatement = lTe;
  w.isForStatement = b0e;
  w.isForXStatement = GSe;
  w.isFunction = QSe;
  w.isFunctionDeclaration = x0e;
  w.isFunctionExpression = S0e;
  w.isFunctionParent = ZSe;
  w.isFunctionTypeAnnotation = ZTe;
  w.isFunctionTypeParam = ebe;
  w.isGenericTypeAnnotation = tbe;
  w.isIdentifier = P0e;
  w.isIfStatement = E0e;
  w.isImmutable = aPe;
  w.isImport = ATe;
  w.isImportAttribute = hxe;
  w.isImportDeclaration = uTe;
  w.isImportDefaultSpecifier = cTe;
  w.isImportExpression = fTe;
  w.isImportNamespaceSpecifier = pTe;
  w.isImportOrExportDeclaration = x7;
  w.isImportSpecifier = hTe;
  w.isIndexedAccessType = Wbe;
  w.isInferredPredicate = sbe;
  w.isInterfaceDeclaration = ibe;
  w.isInterfaceExtends = rbe;
  w.isInterfaceTypeAnnotation = nbe;
  w.isInterpreterDirective = i0e;
  w.isIntersectionTypeAnnotation = abe;
  w.isJSX = vPe;
  w.isJSXAttribute = Hbe;
  w.isJSXClosingElement = Jbe;
  w.isJSXClosingFragment = axe;
  w.isJSXElement = Ybe;
  w.isJSXEmptyExpression = Xbe;
  w.isJSXExpressionContainer = zbe;
  w.isJSXFragment = ixe;
  w.isJSXIdentifier = Qbe;
  w.isJSXMemberExpression = Zbe;
  w.isJSXNamespacedName = exe;
  w.isJSXOpeningElement = txe;
  w.isJSXOpeningFragment = nxe;
  w.isJSXSpreadAttribute = sxe;
  w.isJSXSpreadChild = Gbe;
  w.isJSXText = rxe;
  w.isLVal = rPe;
  w.isLabeledStatement = A0e;
  w.isLiteral = nPe;
  w.isLogicalExpression = k0e;
  w.isLoop = JSe;
  w.isMemberExpression = D0e;
  w.isMetaProperty = dTe;
  w.isMethod = lPe;
  w.isMiscellaneous = CPe;
  w.isMixedTypeAnnotation = obe;
  w.isModuleDeclaration = BPe;
  w.isModuleExpression = bxe;
  w.isModuleSpecifier = mPe;
  w.isNewExpression = O0e;
  w.isNoop = oxe;
  w.isNullLiteral = w0e;
  w.isNullLiteralTypeAnnotation = RTe;
  w.isNullableTypeAnnotation = ube;
  w.isNumberLiteral = DPe;
  w.isNumberLiteralTypeAnnotation = cbe;
  w.isNumberTypeAnnotation = pbe;
  w.isNumericLiteral = C0e;
  w.isObjectExpression = L0e;
  w.isObjectMember = uPe;
  w.isObjectMethod = B0e;
  w.isObjectPattern = yTe;
  w.isObjectProperty = M0e;
  w.isObjectTypeAnnotation = hbe;
  w.isObjectTypeCallProperty = dbe;
  w.isObjectTypeIndexer = mbe;
  w.isObjectTypeInternalSlot = fbe;
  w.isObjectTypeProperty = ybe;
  w.isObjectTypeSpreadProperty = gbe;
  w.isOpaqueType = Tbe;
  w.isOptionalCallExpression = ITe;
  w.isOptionalIndexedAccessType = $be;
  w.isOptionalMemberExpression = wTe;
  w.isParenthesizedExpression = q0e;
  w.isPattern = hPe;
  w.isPatternLike = sPe;
  w.isPipelineBareFunction = Pxe;
  w.isPipelinePrimaryTopicReference = Exe;
  w.isPipelineTopicExpression = Sxe;
  w.isPlaceholder = lxe;
  w.isPrivate = gPe;
  w.isPrivateName = _Te;
  w.isProgram = _0e;
  w.isProperty = cPe;
  w.isPureish = ePe;
  w.isQualifiedTypeIdentifier = bbe;
  w.isRecordExpression = yxe;
  w.isRegExpLiteral = N0e;
  w.isRegexLiteral = OPe;
  w.isRestElement = F0e;
  w.isRestProperty = _Pe;
  w.isReturnStatement = j0e;
  w.isScopable = qSe;
  w.isSequenceExpression = R0e;
  w.isSpreadElement = gTe;
  w.isSpreadProperty = LPe;
  w.isStandardized = FSe;
  w.isStatement = VSe;
  w.isStaticBlock = LTe;
  w.isStringLiteral = v0e;
  w.isStringLiteralTypeAnnotation = xbe;
  w.isStringTypeAnnotation = Sbe;
  w.isSuper = TTe;
  w.isSwitchCase = U0e;
  w.isSwitchStatement = K0e;
  w.isSymbolTypeAnnotation = Pbe;
  w.isTSAnyKeyword = _xe;
  w.isTSArrayType = Zxe;
  w.isTSAsExpression = bSe;
  w.isTSBaseType = kPe;
  w.isTSBigIntKeyword = Bxe;
  w.isTSBooleanKeyword = Lxe;
  w.isTSCallSignatureDeclaration = Ixe;
  w.isTSConditionalType = aSe;
  w.isTSConstructSignatureDeclaration = Nxe;
  w.isTSConstructorType = Yxe;
  w.isTSDeclareFunction = vxe;
  w.isTSDeclareMethod = Cxe;
  w.isTSEntityName = iPe;
  w.isTSEnumBody = PSe;
  w.isTSEnumDeclaration = ESe;
  w.isTSEnumMember = ASe;
  w.isTSExportAssignment = DSe;
  w.isTSExpressionWithTypeArguments = dSe;
  w.isTSExternalModuleReference = NSe;
  w.isTSFunctionType = Jxe;
  w.isTSImportEqualsDeclaration = ISe;
  w.isTSImportType = wSe;
  w.isTSIndexSignature = Oxe;
  w.isTSIndexedAccessType = cSe;
  w.isTSInferType = oSe;
  w.isTSInstantiationExpression = TSe;
  w.isTSInterfaceBody = ySe;
  w.isTSInterfaceDeclaration = mSe;
  w.isTSIntersectionType = nSe;
  w.isTSIntrinsicKeyword = Mxe;
  w.isTSLiteralType = fSe;
  w.isTSMappedType = pSe;
  w.isTSMethodSignature = Dxe;
  w.isTSModuleBlock = CSe;
  w.isTSModuleDeclaration = vSe;
  w.isTSNamedTupleMember = rSe;
  w.isTSNamespaceExportDeclaration = OSe;
  w.isTSNeverKeyword = Fxe;
  w.isTSNonNullExpression = kSe;
  w.isTSNullKeyword = jxe;
  w.isTSNumberKeyword = Rxe;
  w.isTSObjectKeyword = qxe;
  w.isTSOptionalType = tSe;
  w.isTSParameterProperty = Axe;
  w.isTSParenthesizedType = lSe;
  w.isTSPropertySignature = kxe;
  w.isTSQualifiedName = wxe;
  w.isTSRestType = sSe;
  w.isTSSatisfiesExpression = xSe;
  w.isTSStringKeyword = Uxe;
  w.isTSSymbolKeyword = Kxe;
  w.isTSTemplateLiteralType = hSe;
  w.isTSThisType = Hxe;
  w.isTSTupleType = eSe;
  w.isTSType = NPe;
  w.isTSTypeAliasDeclaration = gSe;
  w.isTSTypeAnnotation = _Se;
  w.isTSTypeAssertion = SSe;
  w.isTSTypeElement = IPe;
  w.isTSTypeLiteral = Qxe;
  w.isTSTypeOperator = uSe;
  w.isTSTypeParameter = MSe;
  w.isTSTypeParameterDeclaration = BSe;
  w.isTSTypeParameterInstantiation = LSe;
  w.isTSTypePredicate = zxe;
  w.isTSTypeQuery = Gxe;
  w.isTSTypeReference = Xxe;
  w.isTSUndefinedKeyword = Vxe;
  w.isTSUnionType = iSe;
  w.isTSUnknownKeyword = Wxe;
  w.isTSVoidKeyword = $xe;
  w.isTaggedTemplateExpression = bTe;
  w.isTemplateElement = xTe;
  w.isTemplateLiteral = STe;
  w.isTerminatorless = WSe;
  w.isThisExpression = V0e;
  w.isThisTypeAnnotation = Ebe;
  w.isThrowStatement = W0e;
  w.isTopicReference = xxe;
  w.isTryStatement = $0e;
  w.isTupleExpression = gxe;
  w.isTupleTypeAnnotation = Abe;
  w.isTypeAlias = Cbe;
  w.isTypeAnnotation = wbe;
  w.isTypeCastExpression = Ibe;
  w.isTypeParameter = Nbe;
  w.isTypeParameterDeclaration = kbe;
  w.isTypeParameterInstantiation = Dbe;
  w.isTypeScript = wPe;
  w.isTypeofTypeAnnotation = vbe;
  w.isUnaryExpression = H0e;
  w.isUnaryLike = pPe;
  w.isUnionTypeAnnotation = Obe;
  w.isUpdateExpression = J0e;
  w.isUserWhitespacable = oPe;
  w.isV8IntrinsicIdentifier = uxe;
  w.isVariableDeclaration = Y0e;
  w.isVariableDeclarator = X0e;
  w.isVariance = _be;
  w.isVoidTypeAnnotation = Lbe;
  w.isWhile = YSe;
  w.isWhileStatement = z0e;
  w.isWithStatement = G0e;
  w.isYieldExpression = PTe;
  var L = mb(), My = By();
  function t0e(t, e) {
    return !t || t.type !== "ArrayExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(t0e, "isArrayExpression");
  function s0e(t, e) {
    return !t || t.type !== "AssignmentExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(s0e, "isAssignmentExpression");
  function r0e(t, e) {
    return !t || t.type !== "BinaryExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(r0e, "isBinaryExpression");
  function i0e(t, e) {
    return !t || t.type !== "InterpreterDirective" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(i0e, "isInterpreterDirective");
  function n0e(t, e) {
    return !t || t.type !== "Directive" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(n0e, "isDirective");
  function a0e(t, e) {
    return !t || t.type !== "DirectiveLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(a0e, "isDirectiveLiteral");
  function o0e(t, e) {
    return !t || t.type !== "BlockStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(o0e, "isBlockStatement");
  function l0e(t, e) {
    return !t || t.type !== "BreakStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(l0e, "isBreakStatement");
  function u0e(t, e) {
    return !t || t.type !== "CallExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(u0e, "isCallExpression");
  function c0e(t, e) {
    return !t || t.type !== "CatchClause" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(c0e, "isCatchClause");
  function p0e(t, e) {
    return !t || t.type !== "ConditionalExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(p0e, "isConditionalExpression");
  function h0e(t, e) {
    return !t || t.type !== "ContinueStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(h0e, "isContinueStatement");
  function f0e(t, e) {
    return !t || t.type !== "DebuggerStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(f0e, "isDebuggerStatement");
  function d0e(t, e) {
    return !t || t.type !== "DoWhileStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(d0e, "isDoWhileStatement");
  function m0e(t, e) {
    return !t || t.type !== "EmptyStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(m0e, "isEmptyStatement");
  function y0e(t, e) {
    return !t || t.type !== "ExpressionStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(y0e, "isExpressionStatement");
  function g0e(t, e) {
    return !t || t.type !== "File" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(g0e, "isFile");
  function T0e(t, e) {
    return !t || t.type !== "ForInStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(T0e, "isForInStatement");
  function b0e(t, e) {
    return !t || t.type !== "ForStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(b0e, "isForStatement");
  function x0e(t, e) {
    return !t || t.type !== "FunctionDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(x0e, "isFunctionDeclaration");
  function S0e(t, e) {
    return !t || t.type !== "FunctionExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(S0e, "isFunctionExpression");
  function P0e(t, e) {
    return !t || t.type !== "Identifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(P0e, "isIdentifier");
  function E0e(t, e) {
    return !t || t.type !== "IfStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(E0e, "isIfStatement");
  function A0e(t, e) {
    return !t || t.type !== "LabeledStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(A0e, "isLabeledStatement");
  function v0e(t, e) {
    return !t || t.type !== "StringLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(v0e, "isStringLiteral");
  function C0e(t, e) {
    return !t || t.type !== "NumericLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(C0e, "isNumericLiteral");
  function w0e(t, e) {
    return !t || t.type !== "NullLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(w0e, "isNullLiteral");
  function I0e(t, e) {
    return !t || t.type !== "BooleanLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(I0e, "isBooleanLiteral");
  function N0e(t, e) {
    return !t || t.type !== "RegExpLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(N0e, "isRegExpLiteral");
  function k0e(t, e) {
    return !t || t.type !== "LogicalExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(k0e, "isLogicalExpression");
  function D0e(t, e) {
    return !t || t.type !== "MemberExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(D0e, "isMemberExpression");
  function O0e(t, e) {
    return !t || t.type !== "NewExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(O0e, "isNewExpression");
  function _0e(t, e) {
    return !t || t.type !== "Program" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(_0e, "isProgram");
  function L0e(t, e) {
    return !t || t.type !== "ObjectExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(L0e, "isObjectExpression");
  function B0e(t, e) {
    return !t || t.type !== "ObjectMethod" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(B0e, "isObjectMethod");
  function M0e(t, e) {
    return !t || t.type !== "ObjectProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(M0e, "isObjectProperty");
  function F0e(t, e) {
    return !t || t.type !== "RestElement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(F0e, "isRestElement");
  function j0e(t, e) {
    return !t || t.type !== "ReturnStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(j0e, "isReturnStatement");
  function R0e(t, e) {
    return !t || t.type !== "SequenceExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(R0e, "isSequenceExpression");
  function q0e(t, e) {
    return !t || t.type !== "ParenthesizedExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(q0e, "isParenthesizedExpression");
  function U0e(t, e) {
    return !t || t.type !== "SwitchCase" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(U0e, "isSwitchCase");
  function K0e(t, e) {
    return !t || t.type !== "SwitchStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(K0e, "isSwitchStatement");
  function V0e(t, e) {
    return !t || t.type !== "ThisExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(V0e, "isThisExpression");
  function W0e(t, e) {
    return !t || t.type !== "ThrowStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(W0e, "isThrowStatement");
  function $0e(t, e) {
    return !t || t.type !== "TryStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n($0e, "isTryStatement");
  function H0e(t, e) {
    return !t || t.type !== "UnaryExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(H0e, "isUnaryExpression");
  function J0e(t, e) {
    return !t || t.type !== "UpdateExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(J0e, "isUpdateExpression");
  function Y0e(t, e) {
    return !t || t.type !== "VariableDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Y0e, "isVariableDeclaration");
  function X0e(t, e) {
    return !t || t.type !== "VariableDeclarator" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(X0e, "isVariableDeclarator");
  function z0e(t, e) {
    return !t || t.type !== "WhileStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(z0e, "isWhileStatement");
  function G0e(t, e) {
    return !t || t.type !== "WithStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(G0e, "isWithStatement");
  function Q0e(t, e) {
    return !t || t.type !== "AssignmentPattern" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Q0e, "isAssignmentPattern");
  function Z0e(t, e) {
    return !t || t.type !== "ArrayPattern" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Z0e, "isArrayPattern");
  function eTe(t, e) {
    return !t || t.type !== "ArrowFunctionExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(eTe, "isArrowFunctionExpression");
  function tTe(t, e) {
    return !t || t.type !== "ClassBody" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(tTe, "isClassBody");
  function sTe(t, e) {
    return !t || t.type !== "ClassExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(sTe, "isClassExpression");
  function rTe(t, e) {
    return !t || t.type !== "ClassDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(rTe, "isClassDeclaration");
  function iTe(t, e) {
    return !t || t.type !== "ExportAllDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(iTe, "isExportAllDeclaration");
  function nTe(t, e) {
    return !t || t.type !== "ExportDefaultDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(nTe, "isExportDefaultDeclaration");
  function aTe(t, e) {
    return !t || t.type !== "ExportNamedDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(aTe, "isExportNamedDeclaration");
  function oTe(t, e) {
    return !t || t.type !== "ExportSpecifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(oTe, "isExportSpecifier");
  function lTe(t, e) {
    return !t || t.type !== "ForOfStatement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(lTe, "isForOfStatement");
  function uTe(t, e) {
    return !t || t.type !== "ImportDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(uTe, "isImportDeclaration");
  function cTe(t, e) {
    return !t || t.type !== "ImportDefaultSpecifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(cTe, "isImportDefaultSpecifier");
  function pTe(t, e) {
    return !t || t.type !== "ImportNamespaceSpecifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(pTe, "isImportNamespaceSpecifier");
  function hTe(t, e) {
    return !t || t.type !== "ImportSpecifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(hTe, "isImportSpecifier");
  function fTe(t, e) {
    return !t || t.type !== "ImportExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(fTe, "isImportExpression");
  function dTe(t, e) {
    return !t || t.type !== "MetaProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(dTe, "isMetaProperty");
  function mTe(t, e) {
    return !t || t.type !== "ClassMethod" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(mTe, "isClassMethod");
  function yTe(t, e) {
    return !t || t.type !== "ObjectPattern" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(yTe, "isObjectPattern");
  function gTe(t, e) {
    return !t || t.type !== "SpreadElement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(gTe, "isSpreadElement");
  function TTe(t, e) {
    return !t || t.type !== "Super" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(TTe, "isSuper");
  function bTe(t, e) {
    return !t || t.type !== "TaggedTemplateExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(bTe, "isTaggedTemplateExpression");
  function xTe(t, e) {
    return !t || t.type !== "TemplateElement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(xTe, "isTemplateElement");
  function STe(t, e) {
    return !t || t.type !== "TemplateLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(STe, "isTemplateLiteral");
  function PTe(t, e) {
    return !t || t.type !== "YieldExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(PTe, "isYieldExpression");
  function ETe(t, e) {
    return !t || t.type !== "AwaitExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ETe, "isAwaitExpression");
  function ATe(t, e) {
    return !t || t.type !== "Import" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ATe, "isImport");
  function vTe(t, e) {
    return !t || t.type !== "BigIntLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(vTe, "isBigIntLiteral");
  function CTe(t, e) {
    return !t || t.type !== "ExportNamespaceSpecifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(CTe, "isExportNamespaceSpecifier");
  function wTe(t, e) {
    return !t || t.type !== "OptionalMemberExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(wTe, "isOptionalMemberExpression");
  function ITe(t, e) {
    return !t || t.type !== "OptionalCallExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ITe, "isOptionalCallExpression");
  function NTe(t, e) {
    return !t || t.type !== "ClassProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(NTe, "isClassProperty");
  function kTe(t, e) {
    return !t || t.type !== "ClassAccessorProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(kTe, "isClassAccessorProperty");
  function DTe(t, e) {
    return !t || t.type !== "ClassPrivateProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(DTe, "isClassPrivateProperty");
  function OTe(t, e) {
    return !t || t.type !== "ClassPrivateMethod" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(OTe, "isClassPrivateMethod");
  function _Te(t, e) {
    return !t || t.type !== "PrivateName" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(_Te, "isPrivateName");
  function LTe(t, e) {
    return !t || t.type !== "StaticBlock" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(LTe, "isStaticBlock");
  function BTe(t, e) {
    return !t || t.type !== "AnyTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(BTe, "isAnyTypeAnnotation");
  function MTe(t, e) {
    return !t || t.type !== "ArrayTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(MTe, "isArrayTypeAnnotation");
  function FTe(t, e) {
    return !t || t.type !== "BooleanTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(FTe, "isBooleanTypeAnnotation");
  function jTe(t, e) {
    return !t || t.type !== "BooleanLiteralTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(jTe, "isBooleanLiteralTypeAnnotation");
  function RTe(t, e) {
    return !t || t.type !== "NullLiteralTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(RTe, "isNullLiteralTypeAnnotation");
  function qTe(t, e) {
    return !t || t.type !== "ClassImplements" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(qTe, "isClassImplements");
  function UTe(t, e) {
    return !t || t.type !== "DeclareClass" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(UTe, "isDeclareClass");
  function KTe(t, e) {
    return !t || t.type !== "DeclareFunction" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(KTe, "isDeclareFunction");
  function VTe(t, e) {
    return !t || t.type !== "DeclareInterface" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(VTe, "isDeclareInterface");
  function WTe(t, e) {
    return !t || t.type !== "DeclareModule" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(WTe, "isDeclareModule");
  function $Te(t, e) {
    return !t || t.type !== "DeclareModuleExports" ? !1 : e == null || (0, L.default)(t, e);
  }
  n($Te, "isDeclareModuleExports");
  function HTe(t, e) {
    return !t || t.type !== "DeclareTypeAlias" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(HTe, "isDeclareTypeAlias");
  function JTe(t, e) {
    return !t || t.type !== "DeclareOpaqueType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(JTe, "isDeclareOpaqueType");
  function YTe(t, e) {
    return !t || t.type !== "DeclareVariable" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(YTe, "isDeclareVariable");
  function XTe(t, e) {
    return !t || t.type !== "DeclareExportDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(XTe, "isDeclareExportDeclaration");
  function zTe(t, e) {
    return !t || t.type !== "DeclareExportAllDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(zTe, "isDeclareExportAllDeclaration");
  function GTe(t, e) {
    return !t || t.type !== "DeclaredPredicate" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(GTe, "isDeclaredPredicate");
  function QTe(t, e) {
    return !t || t.type !== "ExistsTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(QTe, "isExistsTypeAnnotation");
  function ZTe(t, e) {
    return !t || t.type !== "FunctionTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ZTe, "isFunctionTypeAnnotation");
  function ebe(t, e) {
    return !t || t.type !== "FunctionTypeParam" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ebe, "isFunctionTypeParam");
  function tbe(t, e) {
    return !t || t.type !== "GenericTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(tbe, "isGenericTypeAnnotation");
  function sbe(t, e) {
    return !t || t.type !== "InferredPredicate" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(sbe, "isInferredPredicate");
  function rbe(t, e) {
    return !t || t.type !== "InterfaceExtends" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(rbe, "isInterfaceExtends");
  function ibe(t, e) {
    return !t || t.type !== "InterfaceDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ibe, "isInterfaceDeclaration");
  function nbe(t, e) {
    return !t || t.type !== "InterfaceTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(nbe, "isInterfaceTypeAnnotation");
  function abe(t, e) {
    return !t || t.type !== "IntersectionTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(abe, "isIntersectionTypeAnnotation");
  function obe(t, e) {
    return !t || t.type !== "MixedTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(obe, "isMixedTypeAnnotation");
  function lbe(t, e) {
    return !t || t.type !== "EmptyTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(lbe, "isEmptyTypeAnnotation");
  function ube(t, e) {
    return !t || t.type !== "NullableTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ube, "isNullableTypeAnnotation");
  function cbe(t, e) {
    return !t || t.type !== "NumberLiteralTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(cbe, "isNumberLiteralTypeAnnotation");
  function pbe(t, e) {
    return !t || t.type !== "NumberTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(pbe, "isNumberTypeAnnotation");
  function hbe(t, e) {
    return !t || t.type !== "ObjectTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(hbe, "isObjectTypeAnnotation");
  function fbe(t, e) {
    return !t || t.type !== "ObjectTypeInternalSlot" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(fbe, "isObjectTypeInternalSlot");
  function dbe(t, e) {
    return !t || t.type !== "ObjectTypeCallProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(dbe, "isObjectTypeCallProperty");
  function mbe(t, e) {
    return !t || t.type !== "ObjectTypeIndexer" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(mbe, "isObjectTypeIndexer");
  function ybe(t, e) {
    return !t || t.type !== "ObjectTypeProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ybe, "isObjectTypeProperty");
  function gbe(t, e) {
    return !t || t.type !== "ObjectTypeSpreadProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(gbe, "isObjectTypeSpreadProperty");
  function Tbe(t, e) {
    return !t || t.type !== "OpaqueType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Tbe, "isOpaqueType");
  function bbe(t, e) {
    return !t || t.type !== "QualifiedTypeIdentifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(bbe, "isQualifiedTypeIdentifier");
  function xbe(t, e) {
    return !t || t.type !== "StringLiteralTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(xbe, "isStringLiteralTypeAnnotation");
  function Sbe(t, e) {
    return !t || t.type !== "StringTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Sbe, "isStringTypeAnnotation");
  function Pbe(t, e) {
    return !t || t.type !== "SymbolTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Pbe, "isSymbolTypeAnnotation");
  function Ebe(t, e) {
    return !t || t.type !== "ThisTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Ebe, "isThisTypeAnnotation");
  function Abe(t, e) {
    return !t || t.type !== "TupleTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Abe, "isTupleTypeAnnotation");
  function vbe(t, e) {
    return !t || t.type !== "TypeofTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(vbe, "isTypeofTypeAnnotation");
  function Cbe(t, e) {
    return !t || t.type !== "TypeAlias" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Cbe, "isTypeAlias");
  function wbe(t, e) {
    return !t || t.type !== "TypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(wbe, "isTypeAnnotation");
  function Ibe(t, e) {
    return !t || t.type !== "TypeCastExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Ibe, "isTypeCastExpression");
  function Nbe(t, e) {
    return !t || t.type !== "TypeParameter" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Nbe, "isTypeParameter");
  function kbe(t, e) {
    return !t || t.type !== "TypeParameterDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(kbe, "isTypeParameterDeclaration");
  function Dbe(t, e) {
    return !t || t.type !== "TypeParameterInstantiation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Dbe, "isTypeParameterInstantiation");
  function Obe(t, e) {
    return !t || t.type !== "UnionTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Obe, "isUnionTypeAnnotation");
  function _be(t, e) {
    return !t || t.type !== "Variance" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(_be, "isVariance");
  function Lbe(t, e) {
    return !t || t.type !== "VoidTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Lbe, "isVoidTypeAnnotation");
  function Bbe(t, e) {
    return !t || t.type !== "EnumDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Bbe, "isEnumDeclaration");
  function Mbe(t, e) {
    return !t || t.type !== "EnumBooleanBody" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Mbe, "isEnumBooleanBody");
  function Fbe(t, e) {
    return !t || t.type !== "EnumNumberBody" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Fbe, "isEnumNumberBody");
  function jbe(t, e) {
    return !t || t.type !== "EnumStringBody" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(jbe, "isEnumStringBody");
  function Rbe(t, e) {
    return !t || t.type !== "EnumSymbolBody" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Rbe, "isEnumSymbolBody");
  function qbe(t, e) {
    return !t || t.type !== "EnumBooleanMember" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(qbe, "isEnumBooleanMember");
  function Ube(t, e) {
    return !t || t.type !== "EnumNumberMember" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Ube, "isEnumNumberMember");
  function Kbe(t, e) {
    return !t || t.type !== "EnumStringMember" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Kbe, "isEnumStringMember");
  function Vbe(t, e) {
    return !t || t.type !== "EnumDefaultedMember" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Vbe, "isEnumDefaultedMember");
  function Wbe(t, e) {
    return !t || t.type !== "IndexedAccessType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Wbe, "isIndexedAccessType");
  function $be(t, e) {
    return !t || t.type !== "OptionalIndexedAccessType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n($be, "isOptionalIndexedAccessType");
  function Hbe(t, e) {
    return !t || t.type !== "JSXAttribute" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Hbe, "isJSXAttribute");
  function Jbe(t, e) {
    return !t || t.type !== "JSXClosingElement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Jbe, "isJSXClosingElement");
  function Ybe(t, e) {
    return !t || t.type !== "JSXElement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Ybe, "isJSXElement");
  function Xbe(t, e) {
    return !t || t.type !== "JSXEmptyExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Xbe, "isJSXEmptyExpression");
  function zbe(t, e) {
    return !t || t.type !== "JSXExpressionContainer" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(zbe, "isJSXExpressionContainer");
  function Gbe(t, e) {
    return !t || t.type !== "JSXSpreadChild" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Gbe, "isJSXSpreadChild");
  function Qbe(t, e) {
    return !t || t.type !== "JSXIdentifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Qbe, "isJSXIdentifier");
  function Zbe(t, e) {
    return !t || t.type !== "JSXMemberExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Zbe, "isJSXMemberExpression");
  function exe(t, e) {
    return !t || t.type !== "JSXNamespacedName" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(exe, "isJSXNamespacedName");
  function txe(t, e) {
    return !t || t.type !== "JSXOpeningElement" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(txe, "isJSXOpeningElement");
  function sxe(t, e) {
    return !t || t.type !== "JSXSpreadAttribute" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(sxe, "isJSXSpreadAttribute");
  function rxe(t, e) {
    return !t || t.type !== "JSXText" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(rxe, "isJSXText");
  function ixe(t, e) {
    return !t || t.type !== "JSXFragment" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ixe, "isJSXFragment");
  function nxe(t, e) {
    return !t || t.type !== "JSXOpeningFragment" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(nxe, "isJSXOpeningFragment");
  function axe(t, e) {
    return !t || t.type !== "JSXClosingFragment" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(axe, "isJSXClosingFragment");
  function oxe(t, e) {
    return !t || t.type !== "Noop" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(oxe, "isNoop");
  function lxe(t, e) {
    return !t || t.type !== "Placeholder" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(lxe, "isPlaceholder");
  function uxe(t, e) {
    return !t || t.type !== "V8IntrinsicIdentifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(uxe, "isV8IntrinsicIdentifier");
  function cxe(t, e) {
    return !t || t.type !== "ArgumentPlaceholder" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(cxe, "isArgumentPlaceholder");
  function pxe(t, e) {
    return !t || t.type !== "BindExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(pxe, "isBindExpression");
  function hxe(t, e) {
    return !t || t.type !== "ImportAttribute" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(hxe, "isImportAttribute");
  function fxe(t, e) {
    return !t || t.type !== "Decorator" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(fxe, "isDecorator");
  function dxe(t, e) {
    return !t || t.type !== "DoExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(dxe, "isDoExpression");
  function mxe(t, e) {
    return !t || t.type !== "ExportDefaultSpecifier" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(mxe, "isExportDefaultSpecifier");
  function yxe(t, e) {
    return !t || t.type !== "RecordExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(yxe, "isRecordExpression");
  function gxe(t, e) {
    return !t || t.type !== "TupleExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(gxe, "isTupleExpression");
  function Txe(t, e) {
    return !t || t.type !== "DecimalLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Txe, "isDecimalLiteral");
  function bxe(t, e) {
    return !t || t.type !== "ModuleExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(bxe, "isModuleExpression");
  function xxe(t, e) {
    return !t || t.type !== "TopicReference" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(xxe, "isTopicReference");
  function Sxe(t, e) {
    return !t || t.type !== "PipelineTopicExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Sxe, "isPipelineTopicExpression");
  function Pxe(t, e) {
    return !t || t.type !== "PipelineBareFunction" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Pxe, "isPipelineBareFunction");
  function Exe(t, e) {
    return !t || t.type !== "PipelinePrimaryTopicReference" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Exe, "isPipelinePrimaryTopicReference");
  function Axe(t, e) {
    return !t || t.type !== "TSParameterProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Axe, "isTSParameterProperty");
  function vxe(t, e) {
    return !t || t.type !== "TSDeclareFunction" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(vxe, "isTSDeclareFunction");
  function Cxe(t, e) {
    return !t || t.type !== "TSDeclareMethod" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Cxe, "isTSDeclareMethod");
  function wxe(t, e) {
    return !t || t.type !== "TSQualifiedName" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(wxe, "isTSQualifiedName");
  function Ixe(t, e) {
    return !t || t.type !== "TSCallSignatureDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Ixe, "isTSCallSignatureDeclaration");
  function Nxe(t, e) {
    return !t || t.type !== "TSConstructSignatureDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Nxe, "isTSConstructSignatureDeclaration");
  function kxe(t, e) {
    return !t || t.type !== "TSPropertySignature" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(kxe, "isTSPropertySignature");
  function Dxe(t, e) {
    return !t || t.type !== "TSMethodSignature" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Dxe, "isTSMethodSignature");
  function Oxe(t, e) {
    return !t || t.type !== "TSIndexSignature" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Oxe, "isTSIndexSignature");
  function _xe(t, e) {
    return !t || t.type !== "TSAnyKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(_xe, "isTSAnyKeyword");
  function Lxe(t, e) {
    return !t || t.type !== "TSBooleanKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Lxe, "isTSBooleanKeyword");
  function Bxe(t, e) {
    return !t || t.type !== "TSBigIntKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Bxe, "isTSBigIntKeyword");
  function Mxe(t, e) {
    return !t || t.type !== "TSIntrinsicKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Mxe, "isTSIntrinsicKeyword");
  function Fxe(t, e) {
    return !t || t.type !== "TSNeverKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Fxe, "isTSNeverKeyword");
  function jxe(t, e) {
    return !t || t.type !== "TSNullKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(jxe, "isTSNullKeyword");
  function Rxe(t, e) {
    return !t || t.type !== "TSNumberKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Rxe, "isTSNumberKeyword");
  function qxe(t, e) {
    return !t || t.type !== "TSObjectKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(qxe, "isTSObjectKeyword");
  function Uxe(t, e) {
    return !t || t.type !== "TSStringKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Uxe, "isTSStringKeyword");
  function Kxe(t, e) {
    return !t || t.type !== "TSSymbolKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Kxe, "isTSSymbolKeyword");
  function Vxe(t, e) {
    return !t || t.type !== "TSUndefinedKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Vxe, "isTSUndefinedKeyword");
  function Wxe(t, e) {
    return !t || t.type !== "TSUnknownKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Wxe, "isTSUnknownKeyword");
  function $xe(t, e) {
    return !t || t.type !== "TSVoidKeyword" ? !1 : e == null || (0, L.default)(t, e);
  }
  n($xe, "isTSVoidKeyword");
  function Hxe(t, e) {
    return !t || t.type !== "TSThisType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Hxe, "isTSThisType");
  function Jxe(t, e) {
    return !t || t.type !== "TSFunctionType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Jxe, "isTSFunctionType");
  function Yxe(t, e) {
    return !t || t.type !== "TSConstructorType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Yxe, "isTSConstructorType");
  function Xxe(t, e) {
    return !t || t.type !== "TSTypeReference" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Xxe, "isTSTypeReference");
  function zxe(t, e) {
    return !t || t.type !== "TSTypePredicate" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(zxe, "isTSTypePredicate");
  function Gxe(t, e) {
    return !t || t.type !== "TSTypeQuery" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Gxe, "isTSTypeQuery");
  function Qxe(t, e) {
    return !t || t.type !== "TSTypeLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Qxe, "isTSTypeLiteral");
  function Zxe(t, e) {
    return !t || t.type !== "TSArrayType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(Zxe, "isTSArrayType");
  function eSe(t, e) {
    return !t || t.type !== "TSTupleType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(eSe, "isTSTupleType");
  function tSe(t, e) {
    return !t || t.type !== "TSOptionalType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(tSe, "isTSOptionalType");
  function sSe(t, e) {
    return !t || t.type !== "TSRestType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(sSe, "isTSRestType");
  function rSe(t, e) {
    return !t || t.type !== "TSNamedTupleMember" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(rSe, "isTSNamedTupleMember");
  function iSe(t, e) {
    return !t || t.type !== "TSUnionType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(iSe, "isTSUnionType");
  function nSe(t, e) {
    return !t || t.type !== "TSIntersectionType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(nSe, "isTSIntersectionType");
  function aSe(t, e) {
    return !t || t.type !== "TSConditionalType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(aSe, "isTSConditionalType");
  function oSe(t, e) {
    return !t || t.type !== "TSInferType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(oSe, "isTSInferType");
  function lSe(t, e) {
    return !t || t.type !== "TSParenthesizedType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(lSe, "isTSParenthesizedType");
  function uSe(t, e) {
    return !t || t.type !== "TSTypeOperator" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(uSe, "isTSTypeOperator");
  function cSe(t, e) {
    return !t || t.type !== "TSIndexedAccessType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(cSe, "isTSIndexedAccessType");
  function pSe(t, e) {
    return !t || t.type !== "TSMappedType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(pSe, "isTSMappedType");
  function hSe(t, e) {
    return !t || t.type !== "TSTemplateLiteralType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(hSe, "isTSTemplateLiteralType");
  function fSe(t, e) {
    return !t || t.type !== "TSLiteralType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(fSe, "isTSLiteralType");
  function dSe(t, e) {
    return !t || t.type !== "TSExpressionWithTypeArguments" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(dSe, "isTSExpressionWithTypeArguments");
  function mSe(t, e) {
    return !t || t.type !== "TSInterfaceDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(mSe, "isTSInterfaceDeclaration");
  function ySe(t, e) {
    return !t || t.type !== "TSInterfaceBody" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ySe, "isTSInterfaceBody");
  function gSe(t, e) {
    return !t || t.type !== "TSTypeAliasDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(gSe, "isTSTypeAliasDeclaration");
  function TSe(t, e) {
    return !t || t.type !== "TSInstantiationExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(TSe, "isTSInstantiationExpression");
  function bSe(t, e) {
    return !t || t.type !== "TSAsExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(bSe, "isTSAsExpression");
  function xSe(t, e) {
    return !t || t.type !== "TSSatisfiesExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(xSe, "isTSSatisfiesExpression");
  function SSe(t, e) {
    return !t || t.type !== "TSTypeAssertion" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(SSe, "isTSTypeAssertion");
  function PSe(t, e) {
    return !t || t.type !== "TSEnumBody" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(PSe, "isTSEnumBody");
  function ESe(t, e) {
    return !t || t.type !== "TSEnumDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ESe, "isTSEnumDeclaration");
  function ASe(t, e) {
    return !t || t.type !== "TSEnumMember" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ASe, "isTSEnumMember");
  function vSe(t, e) {
    return !t || t.type !== "TSModuleDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(vSe, "isTSModuleDeclaration");
  function CSe(t, e) {
    return !t || t.type !== "TSModuleBlock" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(CSe, "isTSModuleBlock");
  function wSe(t, e) {
    return !t || t.type !== "TSImportType" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(wSe, "isTSImportType");
  function ISe(t, e) {
    return !t || t.type !== "TSImportEqualsDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(ISe, "isTSImportEqualsDeclaration");
  function NSe(t, e) {
    return !t || t.type !== "TSExternalModuleReference" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(NSe, "isTSExternalModuleReference");
  function kSe(t, e) {
    return !t || t.type !== "TSNonNullExpression" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(kSe, "isTSNonNullExpression");
  function DSe(t, e) {
    return !t || t.type !== "TSExportAssignment" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(DSe, "isTSExportAssignment");
  function OSe(t, e) {
    return !t || t.type !== "TSNamespaceExportDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(OSe, "isTSNamespaceExportDeclaration");
  function _Se(t, e) {
    return !t || t.type !== "TSTypeAnnotation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(_Se, "isTSTypeAnnotation");
  function LSe(t, e) {
    return !t || t.type !== "TSTypeParameterInstantiation" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(LSe, "isTSTypeParameterInstantiation");
  function BSe(t, e) {
    return !t || t.type !== "TSTypeParameterDeclaration" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(BSe, "isTSTypeParameterDeclaration");
  function MSe(t, e) {
    return !t || t.type !== "TSTypeParameter" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(MSe, "isTSTypeParameter");
  function FSe(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Identifier":
          case "StringLiteral":
          case "BlockStatement":
          case "ClassBody":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(FSe, "isStandardized");
  function jSe(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Expression":
          case "Identifier":
          case "StringLiteral":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(jSe, "isExpression");
  function RSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BinaryExpression":
      case "LogicalExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(RSe, "isBinary");
  function qSe(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(qSe, "isScopable");
  function USe(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(USe, "isBlockParent");
  function KSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BlockStatement":
      case "Program":
      case "TSModuleBlock":
        break;
      case "Placeholder":
        if (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(KSe, "isBlock");
  function VSe(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Statement":
          case "Declaration":
          case "BlockStatement":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(VSe, "isStatement");
  function WSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BreakStatement":
      case "ContinueStatement":
      case "ReturnStatement":
      case "ThrowStatement":
      case "YieldExpression":
      case "AwaitExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(WSe, "isTerminatorless");
  function $Se(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BreakStatement":
      case "ContinueStatement":
      case "ReturnStatement":
      case "ThrowStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n($Se, "isCompletionStatement");
  function HSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ConditionalExpression":
      case "IfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(HSe, "isConditional");
  function JSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForStatement":
      case "WhileStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(JSe, "isLoop");
  function YSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DoWhileStatement":
      case "WhileStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(YSe, "isWhile");
  function XSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExpressionStatement":
      case "ParenthesizedExpression":
      case "TypeCastExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(XSe, "isExpressionWrapper");
  function zSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ForInStatement":
      case "ForStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(zSe, "isFor");
  function GSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ForInStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(GSe, "isForXStatement");
  function QSe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "ObjectMethod":
      case "ArrowFunctionExpression":
      case "ClassMethod":
      case "ClassPrivateMethod":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(QSe, "isFunction");
  function ZSe(t, e) {
    if (!t) return !1;
    switch (t.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, L.default)(t, e);
  }
  n(ZSe, "isFunctionParent");
  function ePe(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(ePe, "isPureish");
  function tPe(t, e) {
    if (!t) return !1;
    switch (t.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":
      case "TSImportEqualsDeclaration":
        break;
      case "Placeholder":
        if (t.expectedNode === "Declaration") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(tPe, "isDeclaration");
  function sPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Identifier":
      case "RestElement":
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        break;
      case "Placeholder":
        switch (t.expectedNode) {
          case "Pattern":
          case "Identifier":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(sPe, "isPatternLike");
  function rPe(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Pattern":
          case "Identifier":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(rPe, "isLVal");
  function iPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Identifier":
      case "TSQualifiedName":
        break;
      case "Placeholder":
        if (t.expectedNode === "Identifier") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(iPe, "isTSEntityName");
  function nPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "StringLiteral":
      case "NumericLiteral":
      case "NullLiteral":
      case "BooleanLiteral":
      case "RegExpLiteral":
      case "TemplateLiteral":
      case "BigIntLiteral":
      case "DecimalLiteral":
        break;
      case "Placeholder":
        if (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(nPe, "isLiteral");
  function aPe(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(aPe, "isImmutable");
  function oPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ObjectProperty":
      case "ObjectTypeInternalSlot":
      case "ObjectTypeCallProperty":
      case "ObjectTypeIndexer":
      case "ObjectTypeProperty":
      case "ObjectTypeSpreadProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(oPe, "isUserWhitespacable");
  function lPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ClassMethod":
      case "ClassPrivateMethod":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(lPe, "isMethod");
  function uPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ObjectProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(uPe, "isObjectMember");
  function cPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectProperty":
      case "ClassProperty":
      case "ClassAccessorProperty":
      case "ClassPrivateProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(cPe, "isProperty");
  function pPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "UnaryExpression":
      case "SpreadElement":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(pPe, "isUnaryLike");
  function hPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
        break;
      case "Placeholder":
        if (t.expectedNode === "Pattern") break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(hPe, "isPattern");
  function fPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassExpression":
      case "ClassDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(fPe, "isClass");
  function x7(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
      case "ImportDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(x7, "isImportOrExportDeclaration");
  function dPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(dPe, "isExportDeclaration");
  function mPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportSpecifier":
      case "ImportDefaultSpecifier":
      case "ImportNamespaceSpecifier":
      case "ImportSpecifier":
      case "ExportNamespaceSpecifier":
      case "ExportDefaultSpecifier":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(mPe, "isModuleSpecifier");
  function yPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassAccessorProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(yPe, "isAccessor");
  function gPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
      case "PrivateName":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(gPe, "isPrivate");
  function TPe(t, e) {
    if (!t) return !1;
    switch (t.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, L.default)(t, e);
  }
  n(TPe, "isFlow");
  function bPe(t, e) {
    if (!t) return !1;
    switch (t.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, L.default)(t, e);
  }
  n(bPe, "isFlowType");
  function xPe(t, e) {
    if (!t) return !1;
    switch (t.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, L.default)(t, e);
  }
  n(xPe, "isFlowBaseAnnotation");
  function SPe(t, e) {
    if (!t) return !1;
    switch (t.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, L.default)(t, e);
  }
  n(SPe, "isFlowDeclaration");
  function PPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DeclaredPredicate":
      case "InferredPredicate":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(PPe, "isFlowPredicate");
  function EPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "EnumBooleanBody":
      case "EnumNumberBody":
      case "EnumStringBody":
      case "EnumSymbolBody":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(EPe, "isEnumBody");
  function APe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "EnumBooleanMember":
      case "EnumNumberMember":
      case "EnumStringMember":
      case "EnumDefaultedMember":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(APe, "isEnumMember");
  function vPe(t, e) {
    if (!t) return !1;
    switch (t.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, L.default)(t, e);
  }
  n(vPe, "isJSX");
  function CPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Noop":
      case "Placeholder":
      case "V8IntrinsicIdentifier":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(CPe, "isMiscellaneous");
  function wPe(t, e) {
    if (!t) return !1;
    switch (t.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 "TSTemplateLiteralType":
      case "TSLiteralType":
      case "TSExpressionWithTypeArguments":
      case "TSInterfaceDeclaration":
      case "TSInterfaceBody":
      case "TSTypeAliasDeclaration":
      case "TSInstantiationExpression":
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSEnumBody":
      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, L.default)(t, e);
  }
  n(wPe, "isTypeScript");
  function IPe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "TSCallSignatureDeclaration":
      case "TSConstructSignatureDeclaration":
      case "TSPropertySignature":
      case "TSMethodSignature":
      case "TSIndexSignature":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(IPe, "isTSTypeElement");
  function NPe(t, e) {
    if (!t) return !1;
    switch (t.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 "TSTemplateLiteralType":
      case "TSLiteralType":
      case "TSExpressionWithTypeArguments":
      case "TSImportType":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(NPe, "isTSType");
  function kPe(t, e) {
    if (!t) return !1;
    switch (t.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 "TSTemplateLiteralType":
      case "TSLiteralType":
        break;
      default:
        return !1;
    }
    return e == null || (0, L.default)(t, e);
  }
  n(kPe, "isTSBaseType");
  function DPe(t, e) {
    return (0, My.default)("isNumberLiteral", "isNumericLiteral"), !t || t.type !== "NumberLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(DPe, "isNumberLiteral");
  function OPe(t, e) {
    return (0, My.default)("isRegexLiteral", "isRegExpLiteral"), !t || t.type !== "RegexLiteral" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(OPe, "isRegexLiteral");
  function _Pe(t, e) {
    return (0, My.default)("isRestProperty", "isRestElement"), !t || t.type !== "RestProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(_Pe, "isRestProperty");
  function LPe(t, e) {
    return (0, My.default)("isSpreadProperty", "isSpreadElement"), !t || t.type !== "SpreadProperty" ? !1 : e == null || (0, L.default)(t, e);
  }
  n(LPe, "isSpreadProperty");
  function BPe(t, e) {
    return (0, My.default)("isModuleDeclaration", "isImportOrExportDeclaration"), x7(t, e);
  }
  n(BPe, "isModuleDeclaration");
});

// ../node_modules/@babel/types/lib/validators/matchesPattern.js
var TC = g((gC) => {
  "use strict";
  Object.defineProperty(gC, "__esModule", {
    value: !0
  });
  gC.default = MPe;
  var Fy = ti();
  function MPe(t, e, s) {
    if (!(0, Fy.isMemberExpression)(t)) return !1;
    let r = Array.isArray(e) ? e : e.split("."), i = [], a;
    for (a = t; (0, Fy.isMemberExpression)(a); a = a.object)
      i.push(a.property);
    if (i.push(a), i.length < r.length || !s && i.length > r.length) return !1;
    for (let o = 0, l = i.length - 1; o < r.length; o++, l--) {
      let u = i[l], c;
      if ((0, Fy.isIdentifier)(u))
        c = u.name;
      else if ((0, Fy.isStringLiteral)(u))
        c = u.value;
      else if ((0, Fy.isThisExpression)(u))
        c = "this";
      else
        return !1;
      if (r[o] !== c) return !1;
    }
    return !0;
  }
  n(MPe, "matchesPattern");
});

// ../node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js
var xC = g((bC) => {
  "use strict";
  Object.defineProperty(bC, "__esModule", {
    value: !0
  });
  bC.default = jPe;
  var FPe = TC();
  function jPe(t, e) {
    let s = t.split(".");
    return (r) => (0, FPe.default)(r, s, e);
  }
  n(jPe, "buildMatchMemberExpression");
});

// ../node_modules/@babel/types/lib/validators/react/isReactComponent.js
var S7 = g((yb) => {
  "use strict";
  Object.defineProperty(yb, "__esModule", {
    value: !0
  });
  yb.default = void 0;
  var RPe = xC(), qPe = (0, RPe.default)("React.Component"), J3s = yb.default = qPe;
});

// ../node_modules/@babel/types/lib/validators/react/isCompatTag.js
var P7 = g((SC) => {
  "use strict";
  Object.defineProperty(SC, "__esModule", {
    value: !0
  });
  SC.default = UPe;
  function UPe(t) {
    return !!t && /^[a-z]/.test(t);
  }
  n(UPe, "isCompatTag");
});

// ../node_modules/@babel/types/lib/validators/isType.js
var gb = g((PC) => {
  "use strict";
  Object.defineProperty(PC, "__esModule", {
    value: !0
  });
  PC.default = KPe;
  var E7 = ba();
  function KPe(t, e) {
    if (t === e) return !0;
    if (t == null || E7.ALIAS_KEYS[e]) return !1;
    let s = E7.FLIPPED_ALIAS_KEYS[e];
    if (s) {
      if (s[0] === t) return !0;
      for (let r of s)
        if (t === r) return !0;
    }
    return !1;
  }
  n(KPe, "isType");
});

// ../node_modules/@babel/types/lib/validators/isPlaceholderType.js
var AC = g((EC) => {
  "use strict";
  Object.defineProperty(EC, "__esModule", {
    value: !0
  });
  EC.default = WPe;
  var VPe = ba();
  function WPe(t, e) {
    if (t === e) return !0;
    let s = VPe.PLACEHOLDERS_ALIAS[t];
    if (s) {
      for (let r of s)
        if (e === r) return !0;
    }
    return !1;
  }
  n(WPe, "isPlaceholderType");
});

// ../node_modules/@babel/types/lib/validators/is.js
var Zf = g((vC) => {
  "use strict";
  Object.defineProperty(vC, "__esModule", {
    value: !0
  });
  vC.default = XPe;
  var $Pe = mb(), HPe = gb(), JPe = AC(), YPe = ba();
  function XPe(t, e, s) {
    return e ? (0, HPe.default)(e.type, t) ? s === void 0 ? !0 : (0, $Pe.default)(e, s) : !s && e.type === "Placeholder" && t in YPe.FLIPPED_ALIAS_KEYS ?
    (0, JPe.default)(e.expectedNode, t) : !1 : !1;
  }
  n(XPe, "is");
});

// ../node_modules/@babel/helper-validator-identifier/lib/identifier.js
var I7 = g((jy) => {
  "use strict";
  Object.defineProperty(jy, "__esModule", {
    value: !0
  });
  jy.isIdentifierChar = w7;
  jy.isIdentifierName = ZPe;
  jy.isIdentifierStart = C7;
  var wC = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993\
-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\
\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\
\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\
\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\
\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01\
-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
  A7 = "\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\
\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\
\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6\
-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20\
-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65", zPe = new RegExp("[" + wC + "]"), GPe = new RegExp("[" + wC + A7 + "]");
  wC = A7 = null;
  var v7 = [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], QPe = [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 CC(t, e) {
    let s = 65536;
    for (let r = 0, i = e.length; r < i; r += 2) {
      if (s += e[r], s > t) return !1;
      if (s += e[r + 1], s >= t) return !0;
    }
    return !1;
  }
  n(CC, "isInAstralSet");
  function C7(t) {
    return t < 65 ? t === 36 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && zPe.test(String.fromCharCode(t)) :
    CC(t, v7);
  }
  n(C7, "isIdentifierStart");
  function w7(t) {
    return t < 48 ? t === 36 : t < 58 ? !0 : t < 65 ? !1 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && GPe.test(
    String.fromCharCode(t)) : CC(t, v7) || CC(t, QPe);
  }
  n(w7, "isIdentifierChar");
  function ZPe(t) {
    let e = !0;
    for (let s = 0; s < t.length; s++) {
      let r = t.charCodeAt(s);
      if ((r & 64512) === 55296 && s + 1 < t.length) {
        let i = t.charCodeAt(++s);
        (i & 64512) === 56320 && (r = 65536 + ((r & 1023) << 10) + (i & 1023));
      }
      if (e) {
        if (e = !1, !C7(r))
          return !1;
      } else if (!w7(r))
        return !1;
    }
    return !e;
  }
  n(ZPe, "isIdentifierName");
});

// ../node_modules/@babel/helper-validator-identifier/lib/keyword.js
var O7 = g((Zp) => {
  "use strict";
  Object.defineProperty(Zp, "__esModule", {
    value: !0
  });
  Zp.isKeyword = iEe;
  Zp.isReservedWord = N7;
  Zp.isStrictBindOnlyReservedWord = D7;
  Zp.isStrictBindReservedWord = rEe;
  Zp.isStrictReservedWord = k7;
  var IC = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "swit\
ch", "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"]
  }, eEe = new Set(IC.keyword), tEe = new Set(IC.strict), sEe = new Set(IC.strictBind);
  function N7(t, e) {
    return e && t === "await" || t === "enum";
  }
  n(N7, "isReservedWord");
  function k7(t, e) {
    return N7(t, e) || tEe.has(t);
  }
  n(k7, "isStrictReservedWord");
  function D7(t) {
    return sEe.has(t);
  }
  n(D7, "isStrictBindOnlyReservedWord");
  function rEe(t, e) {
    return k7(t, e) || D7(t);
  }
  n(rEe, "isStrictBindReservedWord");
  function iEe(t) {
    return eEe.has(t);
  }
  n(iEe, "isKeyword");
});

// ../node_modules/@babel/helper-validator-identifier/lib/index.js
var xa = g((Yo) => {
  "use strict";
  Object.defineProperty(Yo, "__esModule", {
    value: !0
  });
  Object.defineProperty(Yo, "isIdentifierChar", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return NC.isIdentifierChar;
    }, "get")
  });
  Object.defineProperty(Yo, "isIdentifierName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return NC.isIdentifierName;
    }, "get")
  });
  Object.defineProperty(Yo, "isIdentifierStart", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return NC.isIdentifierStart;
    }, "get")
  });
  Object.defineProperty(Yo, "isKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ry.isKeyword;
    }, "get")
  });
  Object.defineProperty(Yo, "isReservedWord", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ry.isReservedWord;
    }, "get")
  });
  Object.defineProperty(Yo, "isStrictBindOnlyReservedWord", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ry.isStrictBindOnlyReservedWord;
    }, "get")
  });
  Object.defineProperty(Yo, "isStrictBindReservedWord", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ry.isStrictBindReservedWord;
    }, "get")
  });
  Object.defineProperty(Yo, "isStrictReservedWord", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ry.isStrictReservedWord;
    }, "get")
  });
  var NC = I7(), Ry = O7();
});

// ../node_modules/@babel/types/lib/validators/isValidIdentifier.js
var ed = g((DC) => {
  "use strict";
  Object.defineProperty(DC, "__esModule", {
    value: !0
  });
  DC.default = nEe;
  var kC = xa();
  function nEe(t, e = !0) {
    return typeof t != "string" || e && ((0, kC.isKeyword)(t) || (0, kC.isStrictReservedWord)(t, !0)) ? !1 : (0, kC.isIdentifierName)(t);
  }
  n(nEe, "isValidIdentifier");
});

// ../node_modules/@babel/helper-string-parser/lib/index.js
var bb = g((qy) => {
  "use strict";
  Object.defineProperty(qy, "__esModule", {
    value: !0
  });
  qy.readCodePoint = B7;
  qy.readInt = L7;
  qy.readStringContents = oEe;
  var aEe = /* @__PURE__ */ n(function(e) {
    return e >= 48 && e <= 57;
  }, "isDigit"), _7 = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, Tb = {
    bin: /* @__PURE__ */ n((t) => t === 48 || t === 49, "bin"),
    oct: /* @__PURE__ */ n((t) => t >= 48 && t <= 55, "oct"),
    dec: /* @__PURE__ */ n((t) => t >= 48 && t <= 57, "dec"),
    hex: /* @__PURE__ */ n((t) => t >= 48 && t <= 57 || t >= 65 && t <= 70 || t >= 97 && t <= 102, "hex")
  };
  function oEe(t, e, s, r, i, a) {
    let o = s, l = r, u = i, c = "", p = null, h = s, {
      length: f
    } = e;
    for (; ; ) {
      if (s >= f) {
        a.unterminated(o, l, u), c += e.slice(h, s);
        break;
      }
      let d = e.charCodeAt(s);
      if (lEe(t, d, e, s)) {
        c += e.slice(h, s);
        break;
      }
      if (d === 92) {
        c += e.slice(h, s);
        let m = uEe(e, s, r, i, t === "template", a);
        m.ch === null && !p ? p = {
          pos: s,
          lineStart: r,
          curLine: i
        } : c += m.ch, {
          pos: s,
          lineStart: r,
          curLine: i
        } = m, h = s;
      } else d === 8232 || d === 8233 ? (++s, ++i, r = s) : d === 10 || d === 13 ? t === "template" ? (c += e.slice(h, s) + `
`, ++s, d === 13 && e.charCodeAt(s) === 10 && ++s, ++i, h = r = s) : a.unterminated(o, l, u) : ++s;
    }
    return {
      pos: s,
      str: c,
      firstInvalidLoc: p,
      lineStart: r,
      curLine: i,
      containsInvalid: !!p
    };
  }
  n(oEe, "readStringContents");
  function lEe(t, e, s, r) {
    return t === "template" ? e === 96 || e === 36 && s.charCodeAt(r + 1) === 123 : e === (t === "double" ? 34 : 39);
  }
  n(lEe, "isStringEnd");
  function uEe(t, e, s, r, i, a) {
    let o = !i;
    e++;
    let l = /* @__PURE__ */ n((c) => ({
      pos: e,
      ch: c,
      lineStart: s,
      curLine: r
    }), "res"), u = t.charCodeAt(e++);
    switch (u) {
      case 110:
        return l(`
`);
      case 114:
        return l("\r");
      case 120: {
        let c;
        return {
          code: c,
          pos: e
        } = OC(t, e, s, r, 2, !1, o, a), l(c === null ? null : String.fromCharCode(c));
      }
      case 117: {
        let c;
        return {
          code: c,
          pos: e
        } = B7(t, e, s, r, o, a), l(c === null ? null : String.fromCodePoint(c));
      }
      case 116:
        return l("	");
      case 98:
        return l("\b");
      case 118:
        return l("\v");
      case 102:
        return l("\f");
      case 13:
        t.charCodeAt(e) === 10 && ++e;
      case 10:
        s = e, ++r;
      case 8232:
      case 8233:
        return l("");
      case 56:
      case 57:
        if (i)
          return l(null);
        a.strictNumericEscape(e - 1, s, r);
      default:
        if (u >= 48 && u <= 55) {
          let c = e - 1, h = /^[0-7]+/.exec(t.slice(c, e + 2))[0], f = parseInt(h, 8);
          f > 255 && (h = h.slice(0, -1), f = parseInt(h, 8)), e += h.length - 1;
          let d = t.charCodeAt(e);
          if (h !== "0" || d === 56 || d === 57) {
            if (i)
              return l(null);
            a.strictNumericEscape(c, s, r);
          }
          return l(String.fromCharCode(f));
        }
        return l(String.fromCharCode(u));
    }
  }
  n(uEe, "readEscapedChar");
  function OC(t, e, s, r, i, a, o, l) {
    let u = e, c;
    return {
      n: c,
      pos: e
    } = L7(t, e, s, r, 16, i, a, !1, l, !o), c === null && (o ? l.invalidEscapeSequence(u, s, r) : e = u - 1), {
      code: c,
      pos: e
    };
  }
  n(OC, "readHexChar");
  function L7(t, e, s, r, i, a, o, l, u, c) {
    let p = e, h = i === 16 ? _7.hex : _7.decBinOct, f = i === 16 ? Tb.hex : i === 10 ? Tb.dec : i === 8 ? Tb.oct : Tb.bin, d = !1, m = 0;
    for (let y = 0, T = a ?? 1 / 0; y < T; ++y) {
      let b = t.charCodeAt(e), E;
      if (b === 95 && l !== "bail") {
        let V = t.charCodeAt(e - 1), W = t.charCodeAt(e + 1);
        if (l) {
          if (Number.isNaN(W) || !f(W) || h.has(V) || h.has(W)) {
            if (c) return {
              n: null,
              pos: e
            };
            u.unexpectedNumericSeparator(e, s, r);
          }
        } else {
          if (c) return {
            n: null,
            pos: e
          };
          u.numericSeparatorInEscapeSequence(e, s, r);
        }
        ++e;
        continue;
      }
      if (b >= 97 ? E = b - 97 + 10 : b >= 65 ? E = b - 65 + 10 : aEe(b) ? E = b - 48 : E = 1 / 0, E >= i) {
        if (E <= 9 && c)
          return {
            n: null,
            pos: e
          };
        if (E <= 9 && u.invalidDigit(e, s, r, i))
          E = 0;
        else if (o)
          E = 0, d = !0;
        else
          break;
      }
      ++e, m = m * i + E;
    }
    return e === p || a != null && e - p !== a || d ? {
      n: null,
      pos: e
    } : {
      n: m,
      pos: e
    };
  }
  n(L7, "readInt");
  function B7(t, e, s, r, i, a) {
    let o = t.charCodeAt(e), l;
    if (o === 123) {
      if (++e, {
        code: l,
        pos: e
      } = OC(t, e, s, r, t.indexOf("}", e) - e, !0, i, a), ++e, l !== null && l > 1114111)
        if (i)
          a.invalidCodePoint(e, s, r);
        else
          return {
            code: null,
            pos: e
          };
    } else
      ({
        code: l,
        pos: e
      } = OC(t, e, s, r, 4, !1, i, a));
    return {
      code: l,
      pos: e
    };
  }
  n(B7, "readCodePoint");
});

// ../node_modules/@babel/types/lib/constants/index.js
var Ec = g((Qt) => {
  "use strict";
  Object.defineProperty(Qt, "__esModule", {
    value: !0
  });
  Qt.UPDATE_OPERATORS = Qt.UNARY_OPERATORS = Qt.STRING_UNARY_OPERATORS = Qt.STATEMENT_OR_BLOCK_KEYS = Qt.NUMBER_UNARY_OPERATORS = Qt.NUMBER_BINARY_OPERATORS =
  Qt.NOT_LOCAL_BINDING = Qt.LOGICAL_OPERATORS = Qt.INHERIT_KEYS = Qt.FOR_INIT_KEYS = Qt.FLATTENABLE_KEYS = Qt.EQUALITY_BINARY_OPERATORS = Qt.
  COMPARISON_BINARY_OPERATORS = Qt.COMMENT_KEYS = Qt.BOOLEAN_UNARY_OPERATORS = Qt.BOOLEAN_NUMBER_BINARY_OPERATORS = Qt.BOOLEAN_BINARY_OPERATORS =
  Qt.BLOCK_SCOPED_SYMBOL = Qt.BINARY_OPERATORS = Qt.ASSIGNMENT_OPERATORS = void 0;
  var f4s = Qt.STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"], d4s = Qt.FLATTENABLE_KEYS = ["body", "expressions"], m4s = Qt.
  FOR_INIT_KEYS = ["left", "init"], y4s = Qt.COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"], cEe = Qt.LOGICAL_OPERATORS =
  ["||", "&&", "??"], g4s = Qt.UPDATE_OPERATORS = ["++", "--"], pEe = Qt.BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="], hEe = Qt.
  EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="], fEe = Qt.COMPARISON_BINARY_OPERATORS = [...hEe, "in", "instanceof"], dEe = Qt.BOOLEAN_BINARY_OPERATORS =
  [...fEe, ...pEe], M7 = Qt.NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"], T4s = Qt.BINARY_OPERATORS =
  ["+", ...M7, ...dEe, "|>"], b4s = Qt.ASSIGNMENT_OPERATORS = ["=", "+=", ...M7.map((t) => t + "="), ...cEe.map((t) => t + "=")], mEe = Qt.BOOLEAN_UNARY_OPERATORS =
  ["delete", "!"], yEe = Qt.NUMBER_UNARY_OPERATORS = ["+", "-", "~"], gEe = Qt.STRING_UNARY_OPERATORS = ["typeof"], x4s = Qt.UNARY_OPERATORS =
  ["void", "throw", ...mEe, ...yEe, ...gEe], S4s = Qt.INHERIT_KEYS = {
    optional: ["typeAnnotation", "typeParameters", "returnType"],
    force: ["start", "loc", "end"]
  }, P4s = Qt.BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped"), E4s = Qt.NOT_LOCAL_BINDING = Symbol.for("should not be consid\
ered a local binding");
});

// ../node_modules/@babel/types/lib/definitions/utils.js
var Xo = g((qs) => {
  "use strict";
  Object.defineProperty(qs, "__esModule", {
    value: !0
  });
  qs.VISITOR_KEYS = qs.NODE_PARENT_VALIDATIONS = qs.NODE_FIELDS = qs.FLIPPED_ALIAS_KEYS = qs.DEPRECATED_KEYS = qs.BUILDER_KEYS = qs.ALIAS_KEYS =
  void 0;
  qs.arrayOf = j7;
  qs.arrayOfType = R7;
  qs.assertEach = q7;
  qs.assertNodeOrValueType = NEe;
  qs.assertNodeType = Pb;
  qs.assertOneOf = IEe;
  qs.assertOptionalChainStart = DEe;
  qs.assertShape = kEe;
  qs.assertValueType = MC;
  qs.chain = U7;
  qs.default = K7;
  qs.defineAliasedType = LEe;
  qs.validate = BC;
  qs.validateArrayOfType = wEe;
  qs.validateOptional = vEe;
  qs.validateOptionalType = CEe;
  qs.validateType = AEe;
  var F7 = Zf(), Sb = Eb(), TEe = qs.VISITOR_KEYS = {}, bEe = qs.ALIAS_KEYS = {}, _C = qs.FLIPPED_ALIAS_KEYS = {}, xEe = qs.NODE_FIELDS = {},
  SEe = qs.BUILDER_KEYS = {}, PEe = qs.DEPRECATED_KEYS = {}, EEe = qs.NODE_PARENT_VALIDATIONS = {};
  function xb(t) {
    return Array.isArray(t) ? "array" : t === null ? "null" : typeof t;
  }
  n(xb, "getType");
  function BC(t) {
    return {
      validate: t
    };
  }
  n(BC, "validate");
  function AEe(...t) {
    return BC(Pb(...t));
  }
  n(AEe, "validateType");
  function vEe(t) {
    return {
      validate: t,
      optional: !0
    };
  }
  n(vEe, "validateOptional");
  function CEe(...t) {
    return {
      validate: Pb(...t),
      optional: !0
    };
  }
  n(CEe, "validateOptionalType");
  function j7(t) {
    return U7(MC("array"), q7(t));
  }
  n(j7, "arrayOf");
  function R7(...t) {
    return j7(Pb(...t));
  }
  n(R7, "arrayOfType");
  function wEe(...t) {
    return BC(R7(...t));
  }
  n(wEe, "validateArrayOfType");
  function q7(t) {
    let e = process.env.BABEL_TYPES_8_BREAKING ? Sb.validateChild : () => {
    };
    function s(r, i, a) {
      if (Array.isArray(a))
        for (let o = 0; o < a.length; o++) {
          let l = `${i}[${o}]`, u = a[o];
          t(r, l, u), e(r, l, u);
        }
    }
    return n(s, "validator"), s.each = t, s;
  }
  n(q7, "assertEach");
  function IEe(...t) {
    function e(s, r, i) {
      if (!t.includes(i))
        throw new TypeError(`Property ${r} expected value to be one of ${JSON.stringify(t)} but got ${JSON.stringify(i)}`);
    }
    return n(e, "validate"), e.oneOf = t, e;
  }
  n(IEe, "assertOneOf");
  function Pb(...t) {
    function e(s, r, i) {
      for (let a of t)
        if ((0, F7.default)(a, i)) {
          (0, Sb.validateChild)(s, r, i);
          return;
        }
      throw new TypeError(`Property ${r} of ${s.type} expected node to be of a type ${JSON.stringify(t)} but instead got ${JSON.stringify(i?.
      type)}`);
    }
    return n(e, "validate"), e.oneOfNodeTypes = t, e;
  }
  n(Pb, "assertNodeType");
  function NEe(...t) {
    function e(s, r, i) {
      for (let a of t)
        if (xb(i) === a || (0, F7.default)(a, i)) {
          (0, Sb.validateChild)(s, r, i);
          return;
        }
      throw new TypeError(`Property ${r} of ${s.type} expected node to be of a type ${JSON.stringify(t)} but instead got ${JSON.stringify(i?.
      type)}`);
    }
    return n(e, "validate"), e.oneOfNodeOrValueTypes = t, e;
  }
  n(NEe, "assertNodeOrValueType");
  function MC(t) {
    function e(s, r, i) {
      if (!(xb(i) === t))
        throw new TypeError(`Property ${r} expected type of ${t} but got ${xb(i)}`);
    }
    return n(e, "validate"), e.type = t, e;
  }
  n(MC, "assertValueType");
  function kEe(t) {
    function e(s, r, i) {
      let a = [];
      for (let o of Object.keys(t))
        try {
          (0, Sb.validateField)(s, o, i[o], t[o]);
        } catch (l) {
          if (l instanceof TypeError) {
            a.push(l.message);
            continue;
          }
          throw l;
        }
      if (a.length)
        throw new TypeError(`Property ${r} of ${s.type} expected to have the following:
${a.join(`
`)}`);
    }
    return n(e, "validate"), e.shapeOf = t, e;
  }
  n(kEe, "assertShape");
  function DEe() {
    function t(e) {
      var s;
      let r = e;
      for (; e; ) {
        let {
          type: i
        } = r;
        if (i === "OptionalCallExpression") {
          if (r.optional) return;
          r = r.callee;
          continue;
        }
        if (i === "OptionalMemberExpression") {
          if (r.optional) return;
          r = r.object;
          continue;
        }
        break;
      }
      throw new TypeError(`Non-optional ${e.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chai\
n from ${(s = r) == null ? void 0 : s.type}`);
    }
    return n(t, "validate"), t;
  }
  n(DEe, "assertOptionalChainStart");
  function U7(...t) {
    function e(...s) {
      for (let r of t)
        r(...s);
    }
    if (n(e, "validate"), e.chainOf = t, t.length >= 2 && "type" in t[0] && t[0].type === "array" && !("each" in t[1]))
      throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');
    return e;
  }
  n(U7, "chain");
  var OEe = /* @__PURE__ */ new Set(["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"]), _Ee = /* @__PURE__ */ new Set(
  ["default", "optional", "deprecated", "validate"]), LC = {};
  function LEe(...t) {
    return (e, s = {}) => {
      let r = s.aliases;
      if (!r) {
        var i, a;
        s.inherits && (r = (i = LC[s.inherits].aliases) == null ? void 0 : i.slice()), (a = r) != null || (r = []), s.aliases = r;
      }
      let o = t.filter((l) => !r.includes(l));
      r.unshift(...o), K7(e, s);
    };
  }
  n(LEe, "defineAliasedType");
  function K7(t, e = {}) {
    let s = e.inherits && LC[e.inherits] || {}, r = e.fields;
    if (!r && (r = {}, s.fields)) {
      let l = Object.getOwnPropertyNames(s.fields);
      for (let u of l) {
        let c = s.fields[u], p = c.default;
        if (Array.isArray(p) ? p.length > 0 : p && typeof p == "object")
          throw new Error("field defaults can only be primitives or empty arrays currently");
        r[u] = {
          default: Array.isArray(p) ? [] : p,
          optional: c.optional,
          deprecated: c.deprecated,
          validate: c.validate
        };
      }
    }
    let i = e.visitor || s.visitor || [], a = e.aliases || s.aliases || [], o = e.builder || s.builder || e.visitor || [];
    for (let l of Object.keys(e))
      if (!OEe.has(l))
        throw new Error(`Unknown type option "${l}" on ${t}`);
    e.deprecatedAlias && (PEe[e.deprecatedAlias] = t);
    for (let l of i.concat(o))
      r[l] = r[l] || {};
    for (let l of Object.keys(r)) {
      let u = r[l];
      u.default !== void 0 && !o.includes(l) && (u.optional = !0), u.default === void 0 ? u.default = null : !u.validate && u.default != null &&
      (u.validate = MC(xb(u.default)));
      for (let c of Object.keys(u))
        if (!_Ee.has(c))
          throw new Error(`Unknown field key "${c}" on ${t}.${l}`);
    }
    TEe[t] = e.visitor = i, SEe[t] = e.builder = o, xEe[t] = e.fields = r, bEe[t] = e.aliases = a, a.forEach((l) => {
      _C[l] = _C[l] || [], _C[l].push(t);
    }), e.validate && (EEe[t] = e.validate), LC[t] = e;
  }
  n(K7, "defineType");
});

// ../node_modules/@babel/types/lib/definitions/core.js
var Ky = g((tn) => {
  "use strict";
  Object.defineProperty(tn, "__esModule", {
    value: !0
  });
  tn.patternLikeCommon = tn.importAttributes = tn.functionTypeAnnotationCommon = tn.functionDeclarationCommon = tn.functionCommon = tn.classMethodOrPropertyCommon =
  tn.classMethodOrDeclareMethodCommon = void 0;
  var dn = Zf(), BEe = ed(), V7 = xa(), MEe = bb(), Uy = Ec(), q = Xo(), Be = (0, q.defineAliasedType)("Standardized");
  Be("ArrayExpression", {
    fields: {
      elements: {
        validate: (0, q.arrayOf)((0, q.assertNodeOrValueType)("null", "Expression", "SpreadElement")),
        default: process.env.BABEL_TYPES_8_BREAKING ? void 0 : []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  });
  Be("AssignmentExpression", {
    fields: {
      operator: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? Object.assign(function() {
          let t = (0, q.assertOneOf)(...Uy.ASSIGNMENT_OPERATORS), e = (0, q.assertOneOf)("=");
          return function(s, r, i) {
            ((0, dn.default)("Pattern", s.left) ? e : t)(s, r, i);
          };
        }(), {
          type: "string"
        }) : (0, q.assertValueType)("string")
      },
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.assertNodeType)("Identifier", "MemberExpression", "OptionalMemberExpression", "\
ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, q.assertNodeType)(
        "LVal", "OptionalMemberExpression")
      },
      right: {
        validate: (0, q.assertNodeType)("Expression")
      }
    },
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Expression"]
  });
  Be("BinaryExpression", {
    builder: ["operator", "left", "right"],
    fields: {
      operator: {
        validate: (0, q.assertOneOf)(...Uy.BINARY_OPERATORS)
      },
      left: {
        validate: function() {
          let t = (0, q.assertNodeType)("Expression"), e = (0, q.assertNodeType)("Expression", "PrivateName");
          return Object.assign(function(r, i, a) {
            (r.operator === "in" ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "PrivateName"]
          });
        }()
      },
      right: {
        validate: (0, q.assertNodeType)("Expression")
      }
    },
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"]
  });
  Be("InterpreterDirective", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, q.assertValueType)("string")
      }
    }
  });
  Be("Directive", {
    visitor: ["value"],
    fields: {
      value: {
        validate: (0, q.assertNodeType)("DirectiveLiteral")
      }
    }
  });
  Be("DirectiveLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, q.assertValueType)("string")
      }
    }
  });
  Be("BlockStatement", {
    builder: ["body", "directives"],
    visitor: ["directives", "body"],
    fields: {
      directives: {
        validate: (0, q.arrayOfType)("Directive"),
        default: []
      },
      body: (0, q.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "Block", "Statement"]
  });
  Be("BreakStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, q.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  });
  Be("CallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, q.assertNodeType)("Expression", "Super", "V8IntrinsicIdentifier")
      },
      arguments: (0, q.validateArrayOfType)("Expression", "SpreadElement", "ArgumentPlaceholder"),
      typeArguments: {
        validate: (0, q.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      optional: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      typeParameters: {
        validate: (0, q.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  Be("CatchClause", {
    visitor: ["param", "body"],
    fields: {
      param: {
        validate: (0, q.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"),
        optional: !0
      },
      body: {
        validate: (0, q.assertNodeType)("BlockStatement")
      }
    },
    aliases: ["Scopable", "BlockParent"]
  });
  Be("ConditionalExpression", {
    visitor: ["test", "consequent", "alternate"],
    fields: {
      test: {
        validate: (0, q.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, q.assertNodeType)("Expression")
      },
      alternate: {
        validate: (0, q.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression", "Conditional"]
  });
  Be("ContinueStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, q.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  });
  Be("DebuggerStatement", {
    aliases: ["Statement"]
  });
  Be("DoWhileStatement", {
    builder: ["test", "body"],
    visitor: ["body", "test"],
    fields: {
      test: {
        validate: (0, q.assertNodeType)("Expression")
      },
      body: {
        validate: (0, q.assertNodeType)("Statement")
      }
    },
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"]
  });
  Be("EmptyStatement", {
    aliases: ["Statement"]
  });
  Be("ExpressionStatement", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, q.assertNodeType)("Expression")
      }
    },
    aliases: ["Statement", "ExpressionWrapper"]
  });
  Be("File", {
    builder: ["program", "comments", "tokens"],
    visitor: ["program"],
    fields: {
      program: {
        validate: (0, q.assertNodeType)("Program")
      },
      comments: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.assertEach)((0, q.assertNodeType)("CommentBlock", "CommentLine")) : Object.assign(
        () => {
        }, {
          each: {
            oneOfNodeTypes: ["CommentBlock", "CommentLine"]
          }
        }),
        optional: !0
      },
      tokens: {
        validate: (0, q.assertEach)(Object.assign(() => {
        }, {
          type: "any"
        })),
        optional: !0
      }
    }
  });
  Be("ForInStatement", {
    visitor: ["left", "right", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "Array\
Pattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, q.assertNodeType)("Var\
iableDeclaration", "LVal")
      },
      right: {
        validate: (0, q.assertNodeType)("Expression")
      },
      body: {
        validate: (0, q.assertNodeType)("Statement")
      }
    }
  });
  Be("ForStatement", {
    visitor: ["init", "test", "update", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"],
    fields: {
      init: {
        validate: (0, q.assertNodeType)("VariableDeclaration", "Expression"),
        optional: !0
      },
      test: {
        validate: (0, q.assertNodeType)("Expression"),
        optional: !0
      },
      update: {
        validate: (0, q.assertNodeType)("Expression"),
        optional: !0
      },
      body: {
        validate: (0, q.assertNodeType)("Statement")
      }
    }
  });
  var td = /* @__PURE__ */ n(() => ({
    params: (0, q.validateArrayOfType)("Identifier", "Pattern", "RestElement"),
    generator: {
      default: !1
    },
    async: {
      default: !1
    }
  }), "functionCommon");
  tn.functionCommon = td;
  var eh = /* @__PURE__ */ n(() => ({
    returnType: {
      validate: (0, q.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, q.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  }), "functionTypeAnnotationCommon");
  tn.functionTypeAnnotationCommon = eh;
  var W7 = /* @__PURE__ */ n(() => Object.assign({}, td(), {
    declare: {
      validate: (0, q.assertValueType)("boolean"),
      optional: !0
    },
    id: {
      validate: (0, q.assertNodeType)("Identifier"),
      optional: !0
    }
  }), "functionDeclarationCommon");
  tn.functionDeclarationCommon = W7;
  Be("FunctionDeclaration", {
    builder: ["id", "params", "body", "generator", "async"],
    visitor: ["id", "typeParameters", "params", "predicate", "returnType", "body"],
    fields: Object.assign({}, W7(), eh(), {
      body: {
        validate: (0, q.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, q.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    }),
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"],
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, q.assertNodeType)("Identifier");
      return function(e, s, r) {
        (0, dn.default)("ExportDefaultDeclaration", e) || t(r, "id", r.id);
      };
    }() : void 0
  });
  Be("FunctionExpression", {
    inherits: "FunctionDeclaration",
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, td(), eh(), {
      id: {
        validate: (0, q.assertNodeType)("Identifier"),
        optional: !0
      },
      body: {
        validate: (0, q.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, q.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  var sd = /* @__PURE__ */ n(() => ({
    typeAnnotation: {
      validate: (0, q.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    optional: {
      validate: (0, q.assertValueType)("boolean"),
      optional: !0
    },
    decorators: {
      validate: (0, q.arrayOfType)("Decorator"),
      optional: !0
    }
  }), "patternLikeCommon");
  tn.patternLikeCommon = sd;
  Be("Identifier", {
    builder: ["name"],
    visitor: ["typeAnnotation", "decorators"],
    aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"],
    fields: Object.assign({}, sd(), {
      name: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertValueType)("string"), Object.assign(function(t, e, s) {
          if (!(0, BEe.default)(s, !1))
            throw new TypeError(`"${s}" is not a valid identifier name`);
        }, {
          type: "string"
        })) : (0, q.assertValueType)("string")
      }
    }),
    validate: process.env.BABEL_TYPES_8_BREAKING ? function(t, e, s) {
      let r = /\.(\w+)$/.exec(e);
      if (!r) return;
      let [, i] = r, a = {
        computed: !1
      };
      if (i === "property") {
        if ((0, dn.default)("MemberExpression", t, a) || (0, dn.default)("OptionalMemberExpression", t, a)) return;
      } else if (i === "key") {
        if ((0, dn.default)("Property", t, a) || (0, dn.default)("Method", t, a)) return;
      } else if (i === "exported") {
        if ((0, dn.default)("ExportSpecifier", t)) return;
      } else if (i === "imported") {
        if ((0, dn.default)("ImportSpecifier", t, {
          imported: s
        })) return;
      } else if (i === "meta" && (0, dn.default)("MetaProperty", t, {
        meta: s
      }))
        return;
      if (((0, V7.isKeyword)(s.name) || (0, V7.isReservedWord)(s.name, !1)) && s.name !== "this")
        throw new TypeError(`"${s.name}" is not a valid identifier`);
    } : void 0
  });
  Be("IfStatement", {
    visitor: ["test", "consequent", "alternate"],
    aliases: ["Statement", "Conditional"],
    fields: {
      test: {
        validate: (0, q.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, q.assertNodeType)("Statement")
      },
      alternate: {
        optional: !0,
        validate: (0, q.assertNodeType)("Statement")
      }
    }
  });
  Be("LabeledStatement", {
    visitor: ["label", "body"],
    aliases: ["Statement"],
    fields: {
      label: {
        validate: (0, q.assertNodeType)("Identifier")
      },
      body: {
        validate: (0, q.assertNodeType)("Statement")
      }
    }
  });
  Be("StringLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, q.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Be("NumericLiteral", {
    builder: ["value"],
    deprecatedAlias: "NumberLiteral",
    fields: {
      value: {
        validate: (0, q.chain)((0, q.assertValueType)("number"), Object.assign(function(t, e, s) {
          if (1 / s < 0 || !Number.isFinite(s)) {
            let r = new Error(`NumericLiterals must be non-negative finite numbers. You can use t.valueToNode(${s}) instead.`);
          }
        }, {
          type: "number"
        }))
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Be("NullLiteral", {
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Be("BooleanLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, q.assertValueType)("boolean")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Be("RegExpLiteral", {
    builder: ["pattern", "flags"],
    deprecatedAlias: "RegexLiteral",
    aliases: ["Expression", "Pureish", "Literal"],
    fields: {
      pattern: {
        validate: (0, q.assertValueType)("string")
      },
      flags: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertValueType)("string"), Object.assign(function(t, e, s) {
          let r = /[^gimsuy]/.exec(s);
          if (r)
            throw new TypeError(`"${r[0]}" is not a valid RegExp flag`);
        }, {
          type: "string"
        })) : (0, q.assertValueType)("string"),
        default: ""
      }
    }
  });
  Be("LogicalExpression", {
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"],
    fields: {
      operator: {
        validate: (0, q.assertOneOf)(...Uy.LOGICAL_OPERATORS)
      },
      left: {
        validate: (0, q.assertNodeType)("Expression")
      },
      right: {
        validate: (0, q.assertNodeType)("Expression")
      }
    }
  });
  Be("MemberExpression", {
    builder: ["object", "property", "computed", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["optional"]],
    visitor: ["object", "property"],
    aliases: ["Expression", "LVal"],
    fields: Object.assign({
      object: {
        validate: (0, q.assertNodeType)("Expression", "Super")
      },
      property: {
        validate: function() {
          let t = (0, q.assertNodeType)("Identifier", "PrivateName"), e = (0, q.assertNodeType)("Expression"), s = /* @__PURE__ */ n(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, "validator");
          return s.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"], s;
        }()
      },
      computed: {
        default: !1
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  Be("NewExpression", {
    inherits: "CallExpression"
  });
  Be("Program", {
    visitor: ["directives", "body"],
    builder: ["body", "directives", "sourceType", "interpreter"],
    fields: {
      sourceType: {
        validate: (0, q.assertOneOf)("script", "module"),
        default: "script"
      },
      interpreter: {
        validate: (0, q.assertNodeType)("InterpreterDirective"),
        default: null,
        optional: !0
      },
      directives: {
        validate: (0, q.arrayOfType)("Directive"),
        default: []
      },
      body: (0, q.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "Block"]
  });
  Be("ObjectExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: (0, q.validateArrayOfType)("ObjectMethod", "ObjectProperty", "SpreadElement")
    }
  });
  Be("ObjectMethod", {
    builder: ["kind", "key", "params", "body", "computed", "generator", "async"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    fields: Object.assign({}, td(), eh(), {
      kind: Object.assign({
        validate: (0, q.assertOneOf)("method", "get", "set")
      }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
        default: "method"
      }),
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          let t = (0, q.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), e = (0, q.assertNodeType)("Expres\
sion"), s = /* @__PURE__ */ n(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, "validator");
          return s.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"], s;
        }()
      },
      decorators: {
        validate: (0, q.arrayOfType)("Decorator"),
        optional: !0
      },
      body: {
        validate: (0, q.assertNodeType)("BlockStatement")
      }
    }),
    aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"]
  });
  Be("ObjectProperty", {
    builder: ["key", "value", "computed", "shorthand", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["decorators"]],
    fields: {
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          let t = (0, q.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"), e = (0, q.
          assertNodeType)("Expression");
          return Object.assign(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"]
          });
        }()
      },
      value: {
        validate: (0, q.assertNodeType)("Expression", "PatternLike")
      },
      shorthand: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertValueType)("boolean"), Object.assign(function(t, e, s) {
          if (s) {
            if (t.computed)
              throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true");
            if (!(0, dn.default)("Identifier", t.key))
              throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier");
          }
        }, {
          type: "boolean"
        })) : (0, q.assertValueType)("boolean"),
        default: !1
      },
      decorators: {
        validate: (0, q.arrayOfType)("Decorator"),
        optional: !0
      }
    },
    visitor: ["key", "value", "decorators"],
    aliases: ["UserWhitespacable", "Property", "ObjectMember"],
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, q.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssert\
ion"), e = (0, q.assertNodeType)("Expression");
      return function(s, r, i) {
        ((0, dn.default)("ObjectPattern", s) ? t : e)(i, "value", i.value);
      };
    }() : void 0
  });
  Be("RestElement", {
    visitor: ["argument", "typeAnnotation"],
    builder: ["argument"],
    aliases: ["LVal", "PatternLike"],
    deprecatedAlias: "RestProperty",
    fields: Object.assign({}, sd(), {
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpressio\
n", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, q.assertNodeType)("LVal")
      }
    }),
    validate: process.env.BABEL_TYPES_8_BREAKING ? function(t, e) {
      let s = /(\w+)\[(\d+)\]/.exec(e);
      if (!s) throw new Error("Internal Babel error: malformed key.");
      let [, r, i] = s;
      if (t[r].length > +i + 1)
        throw new TypeError(`RestElement must be last element of ${r}`);
    } : void 0
  });
  Be("ReturnStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, q.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  Be("SequenceExpression", {
    visitor: ["expressions"],
    fields: {
      expressions: (0, q.validateArrayOfType)("Expression")
    },
    aliases: ["Expression"]
  });
  Be("ParenthesizedExpression", {
    visitor: ["expression"],
    aliases: ["Expression", "ExpressionWrapper"],
    fields: {
      expression: {
        validate: (0, q.assertNodeType)("Expression")
      }
    }
  });
  Be("SwitchCase", {
    visitor: ["test", "consequent"],
    fields: {
      test: {
        validate: (0, q.assertNodeType)("Expression"),
        optional: !0
      },
      consequent: (0, q.validateArrayOfType)("Statement")
    }
  });
  Be("SwitchStatement", {
    visitor: ["discriminant", "cases"],
    aliases: ["Statement", "BlockParent", "Scopable"],
    fields: {
      discriminant: {
        validate: (0, q.assertNodeType)("Expression")
      },
      cases: (0, q.validateArrayOfType)("SwitchCase")
    }
  });
  Be("ThisExpression", {
    aliases: ["Expression"]
  });
  Be("ThrowStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, q.assertNodeType)("Expression")
      }
    }
  });
  Be("TryStatement", {
    visitor: ["block", "handler", "finalizer"],
    aliases: ["Statement"],
    fields: {
      block: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertNodeType)("BlockStatement"), Object.assign(function(t) {
          if (!t.handler && !t.finalizer)
            throw new TypeError("TryStatement expects either a handler or finalizer, or both");
        }, {
          oneOfNodeTypes: ["BlockStatement"]
        })) : (0, q.assertNodeType)("BlockStatement")
      },
      handler: {
        optional: !0,
        validate: (0, q.assertNodeType)("CatchClause")
      },
      finalizer: {
        optional: !0,
        validate: (0, q.assertNodeType)("BlockStatement")
      }
    }
  });
  Be("UnaryExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !0
      },
      argument: {
        validate: (0, q.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, q.assertOneOf)(...Uy.UNARY_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["UnaryLike", "Expression"]
  });
  Be("UpdateExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !1
      },
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.assertNodeType)("Identifier", "MemberExpression") : (0, q.assertNodeType)("Expr\
ession")
      },
      operator: {
        validate: (0, q.assertOneOf)(...Uy.UPDATE_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["Expression"]
  });
  Be("VariableDeclaration", {
    builder: ["kind", "declarations"],
    visitor: ["declarations"],
    aliases: ["Statement", "Declaration"],
    fields: {
      declare: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      kind: {
        validate: (0, q.assertOneOf)("var", "let", "const", "using", "await using")
      },
      declarations: (0, q.validateArrayOfType)("VariableDeclarator")
    },
    validate: process.env.BABEL_TYPES_8_BREAKING ? (() => {
      let t = (0, q.assertNodeType)("Identifier");
      return function(e, s, r) {
        if ((0, dn.default)("ForXStatement", e, {
          left: r
        })) {
          if (r.declarations.length !== 1)
            throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${e.type}`);
        } else
          r.declarations.forEach((i) => {
            i.init || t(i, "id", i.id);
          });
      };
    })() : void 0
  });
  Be("VariableDeclarator", {
    visitor: ["id", "init"],
    fields: {
      id: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern") : (0, q.assertNodeType)(
        "LVal")
      },
      definite: {
        optional: !0,
        validate: (0, q.assertValueType)("boolean")
      },
      init: {
        optional: !0,
        validate: (0, q.assertNodeType)("Expression")
      }
    }
  });
  Be("WhileStatement", {
    visitor: ["test", "body"],
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"],
    fields: {
      test: {
        validate: (0, q.assertNodeType)("Expression")
      },
      body: {
        validate: (0, q.assertNodeType)("Statement")
      }
    }
  });
  Be("WithStatement", {
    visitor: ["object", "body"],
    aliases: ["Statement"],
    fields: {
      object: {
        validate: (0, q.assertNodeType)("Expression")
      },
      body: {
        validate: (0, q.assertNodeType)("Statement")
      }
    }
  });
  Be("AssignmentPattern", {
    visitor: ["left", "right", "decorators"],
    builder: ["left", "right"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, sd(), {
      left: {
        validate: (0, q.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExp\
ression", "TSTypeAssertion", "TSNonNullExpression")
      },
      right: {
        validate: (0, q.assertNodeType)("Expression")
      },
      decorators: {
        validate: (0, q.arrayOfType)("Decorator"),
        optional: !0
      }
    })
  });
  Be("ArrayPattern", {
    visitor: ["elements", "typeAnnotation"],
    builder: ["elements"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, sd(), {
      elements: {
        validate: (0, q.chain)((0, q.assertValueType)("array"), (0, q.assertEach)((0, q.assertNodeOrValueType)("null", "PatternLike", "LVal")))
      }
    })
  });
  Be("ArrowFunctionExpression", {
    builder: ["params", "body", "async"],
    visitor: ["typeParameters", "params", "predicate", "returnType", "body"],
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, td(), eh(), {
      expression: {
        validate: (0, q.assertValueType)("boolean")
      },
      body: {
        validate: (0, q.assertNodeType)("BlockStatement", "Expression")
      },
      predicate: {
        validate: (0, q.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  Be("ClassBody", {
    visitor: ["body"],
    fields: {
      body: (0, q.validateArrayOfType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty",
      "TSDeclareMethod", "TSIndexSignature", "StaticBlock")
    }
  });
  Be("ClassExpression", {
    builder: ["id", "superClass", "body", "decorators"],
    visitor: ["decorators", "id", "typeParameters", "superClass", "superTypeParameters", "mixins", "implements", "body"],
    aliases: ["Scopable", "Class", "Expression"],
    fields: {
      id: {
        validate: (0, q.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, q.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, q.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, q.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, q.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, q.arrayOfType)("TSExpressionWithTypeArguments", "ClassImplements"),
        optional: !0
      },
      decorators: {
        validate: (0, q.arrayOfType)("Decorator"),
        optional: !0
      },
      mixins: {
        validate: (0, q.assertNodeType)("InterfaceExtends"),
        optional: !0
      }
    }
  });
  Be("ClassDeclaration", {
    inherits: "ClassExpression",
    aliases: ["Scopable", "Class", "Statement", "Declaration"],
    fields: {
      id: {
        validate: (0, q.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, q.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, q.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, q.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, q.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, q.arrayOfType)("TSExpressionWithTypeArguments", "ClassImplements"),
        optional: !0
      },
      decorators: {
        validate: (0, q.arrayOfType)("Decorator"),
        optional: !0
      },
      mixins: {
        validate: (0, q.assertNodeType)("InterfaceExtends"),
        optional: !0
      },
      declare: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      abstract: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      }
    },
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, q.assertNodeType)("Identifier");
      return function(e, s, r) {
        (0, dn.default)("ExportDefaultDeclaration", e) || t(r, "id", r.id);
      };
    }() : void 0
  });
  var FC = tn.importAttributes = {
    attributes: {
      optional: !0,
      validate: (0, q.arrayOfType)("ImportAttribute")
    },
    assertions: {
      deprecated: !0,
      optional: !0,
      validate: (0, q.arrayOfType)("ImportAttribute")
    }
  };
  Be("ExportAllDeclaration", {
    builder: ["source"],
    visitor: ["source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: Object.assign({
      source: {
        validate: (0, q.assertNodeType)("StringLiteral")
      },
      exportKind: (0, q.validateOptional)((0, q.assertOneOf)("type", "value"))
    }, FC)
  });
  Be("ExportDefaultDeclaration", {
    visitor: ["declaration"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: (0, q.validateType)("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression"),
      exportKind: (0, q.validateOptional)((0, q.assertOneOf)("value"))
    }
  });
  Be("ExportNamedDeclaration", {
    builder: ["declaration", "specifiers", "source"],
    visitor: process.env ? ["declaration", "specifiers", "source", "attributes"] : ["declaration", "specifiers", "source", "attributes", "as\
sertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: Object.assign({
      declaration: {
        optional: !0,
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertNodeType)("Declaration"), Object.assign(function(t, e, s) {
          if (s && t.specifiers.length)
            throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration");
          if (s && t.source)
            throw new TypeError("Cannot export a declaration from a source");
        }, {
          oneOfNodeTypes: ["Declaration"]
        })) : (0, q.assertNodeType)("Declaration")
      }
    }, FC, {
      specifiers: {
        default: [],
        validate: (0, q.arrayOf)(function() {
          let t = (0, q.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"), e = (0, q.assertNodeType)(
          "ExportSpecifier");
          return process.env.BABEL_TYPES_8_BREAKING ? Object.assign(function(s, r, i) {
            (s.source ? t : e)(s, r, i);
          }, {
            oneOfNodeTypes: ["ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"]
          }) : t;
        }())
      },
      source: {
        validate: (0, q.assertNodeType)("StringLiteral"),
        optional: !0
      },
      exportKind: (0, q.validateOptional)((0, q.assertOneOf)("type", "value"))
    })
  });
  Be("ExportSpecifier", {
    visitor: ["local", "exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, q.assertNodeType)("Identifier")
      },
      exported: {
        validate: (0, q.assertNodeType)("Identifier", "StringLiteral")
      },
      exportKind: {
        validate: (0, q.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  });
  Be("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, q.assertNodeType)("VariableDeclaration", "LVal");
          let t = (0, q.assertNodeType)("VariableDeclaration"), e = (0, q.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "\
ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression");
          return Object.assign(function(s, r, i) {
            (0, dn.default)("VariableDeclaration", i) ? t(s, r, i) : e(s, r, i);
          }, {
            oneOfNodeTypes: ["VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TS\
SatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression"]
          });
        }()
      },
      right: {
        validate: (0, q.assertNodeType)("Expression")
      },
      body: {
        validate: (0, q.assertNodeType)("Statement")
      },
      await: {
        default: !1
      }
    }
  });
  Be("ImportDeclaration", {
    builder: ["specifiers", "source"],
    visitor: ["specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration"],
    fields: Object.assign({}, FC, {
      module: {
        optional: !0,
        validate: (0, q.assertValueType)("boolean")
      },
      phase: {
        default: null,
        validate: (0, q.assertOneOf)("source", "defer")
      },
      specifiers: (0, q.validateArrayOfType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"),
      source: {
        validate: (0, q.assertNodeType)("StringLiteral")
      },
      importKind: {
        validate: (0, q.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    })
  });
  Be("ImportDefaultSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, q.assertNodeType)("Identifier")
      }
    }
  });
  Be("ImportNamespaceSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, q.assertNodeType)("Identifier")
      }
    }
  });
  Be("ImportSpecifier", {
    visitor: ["imported", "local"],
    builder: ["local", "imported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, q.assertNodeType)("Identifier")
      },
      imported: {
        validate: (0, q.assertNodeType)("Identifier", "StringLiteral")
      },
      importKind: {
        validate: (0, q.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  });
  Be("ImportExpression", {
    visitor: ["source", "options"],
    aliases: ["Expression"],
    fields: {
      phase: {
        default: null,
        validate: (0, q.assertOneOf)("source", "defer")
      },
      source: {
        validate: (0, q.assertNodeType)("Expression")
      },
      options: {
        validate: (0, q.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  Be("MetaProperty", {
    visitor: ["meta", "property"],
    aliases: ["Expression"],
    fields: {
      meta: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertNodeType)("Identifier"), Object.assign(function(t, e, s) {
          let r;
          switch (s.name) {
            case "function":
              r = "sent";
              break;
            case "new":
              r = "target";
              break;
            case "import":
              r = "meta";
              break;
          }
          if (!(0, dn.default)("Identifier", t.property, {
            name: r
          }))
            throw new TypeError("Unrecognised MetaProperty");
        }, {
          oneOfNodeTypes: ["Identifier"]
        })) : (0, q.assertNodeType)("Identifier")
      },
      property: {
        validate: (0, q.assertNodeType)("Identifier")
      }
    }
  });
  var Ab = /* @__PURE__ */ n(() => ({
    abstract: {
      validate: (0, q.assertValueType)("boolean"),
      optional: !0
    },
    accessibility: {
      validate: (0, q.assertOneOf)("public", "private", "protected"),
      optional: !0
    },
    static: {
      default: !1
    },
    override: {
      default: !1
    },
    computed: {
      default: !1
    },
    optional: {
      validate: (0, q.assertValueType)("boolean"),
      optional: !0
    },
    key: {
      validate: (0, q.chain)(function() {
        let t = (0, q.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), e = (0, q.assertNodeType)("Expressi\
on");
        return function(s, r, i) {
          (s.computed ? e : t)(s, r, i);
        };
      }(), (0, q.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression"))
    }
  }), "classMethodOrPropertyCommon");
  tn.classMethodOrPropertyCommon = Ab;
  var jC = /* @__PURE__ */ n(() => Object.assign({}, td(), Ab(), {
    params: (0, q.validateArrayOfType)("Identifier", "Pattern", "RestElement", "TSParameterProperty"),
    kind: {
      validate: (0, q.assertOneOf)("get", "set", "method", "constructor"),
      default: "method"
    },
    access: {
      validate: (0, q.chain)((0, q.assertValueType)("string"), (0, q.assertOneOf)("public", "private", "protected")),
      optional: !0
    },
    decorators: {
      validate: (0, q.arrayOfType)("Decorator"),
      optional: !0
    }
  }), "classMethodOrDeclareMethodCommon");
  tn.classMethodOrDeclareMethodCommon = jC;
  Be("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({}, jC(), eh(), {
      body: {
        validate: (0, q.assertNodeType)("BlockStatement")
      }
    })
  });
  Be("ObjectPattern", {
    visitor: ["properties", "typeAnnotation", "decorators"],
    builder: ["properties"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, sd(), {
      properties: (0, q.validateArrayOfType)("RestElement", "ObjectProperty")
    })
  });
  Be("SpreadElement", {
    visitor: ["argument"],
    aliases: ["UnaryLike"],
    deprecatedAlias: "SpreadProperty",
    fields: {
      argument: {
        validate: (0, q.assertNodeType)("Expression")
      }
    }
  });
  Be("Super", {
    aliases: ["Expression"]
  });
  Be("TaggedTemplateExpression", {
    visitor: ["tag", "typeParameters", "quasi"],
    builder: ["tag", "quasi"],
    aliases: ["Expression"],
    fields: {
      tag: {
        validate: (0, q.assertNodeType)("Expression")
      },
      quasi: {
        validate: (0, q.assertNodeType)("TemplateLiteral")
      },
      typeParameters: {
        validate: (0, q.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  });
  Be("TemplateElement", {
    builder: ["value", "tail"],
    fields: {
      value: {
        validate: (0, q.chain)((0, q.assertShape)({
          raw: {
            validate: (0, q.assertValueType)("string")
          },
          cooked: {
            validate: (0, q.assertValueType)("string"),
            optional: !0
          }
        }), /* @__PURE__ */ n(function(e) {
          let s = e.value.raw, r = !1, i = /* @__PURE__ */ n(() => {
            throw new Error("Internal @babel/types error.");
          }, "error"), {
            str: a,
            firstInvalidLoc: o
          } = (0, MEe.readStringContents)("template", s, 0, 0, 0, {
            unterminated() {
              r = !0;
            },
            strictNumericEscape: i,
            invalidEscapeSequence: i,
            numericSeparatorInEscapeSequence: i,
            unexpectedNumericSeparator: i,
            invalidDigit: i,
            invalidCodePoint: i
          });
          if (!r) throw new Error("Invalid raw");
          e.value.cooked = o ? null : a;
        }, "templateElementCookedValidator"))
      },
      tail: {
        default: !1
      }
    }
  });
  Be("TemplateLiteral", {
    visitor: ["quasis", "expressions"],
    aliases: ["Expression", "Literal"],
    fields: {
      quasis: (0, q.validateArrayOfType)("TemplateElement"),
      expressions: {
        validate: (0, q.chain)((0, q.assertValueType)("array"), (0, q.assertEach)((0, q.assertNodeType)("Expression", "TSType")), function(t, e, s) {
          if (t.quasis.length !== s.length + 1)
            throw new TypeError(`Number of ${t.type} quasis should be exactly one more than the number of expressions.
Expected ${s.length + 1} quasis but got ${t.quasis.length}`);
        })
      }
    }
  });
  Be("YieldExpression", {
    builder: ["argument", "delegate"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      delegate: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertValueType)("boolean"), Object.assign(function(t, e, s) {
          if (s && !t.argument)
            throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument");
        }, {
          type: "boolean"
        })) : (0, q.assertValueType)("boolean"),
        default: !1
      },
      argument: {
        optional: !0,
        validate: (0, q.assertNodeType)("Expression")
      }
    }
  });
  Be("AwaitExpression", {
    builder: ["argument"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      argument: {
        validate: (0, q.assertNodeType)("Expression")
      }
    }
  });
  Be("Import", {
    aliases: ["Expression"]
  });
  Be("BigIntLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, q.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Be("ExportNamespaceSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, q.assertNodeType)("Identifier")
      }
    }
  });
  Be("OptionalMemberExpression", {
    builder: ["object", "property", "computed", "optional"],
    visitor: ["object", "property"],
    aliases: ["Expression"],
    fields: {
      object: {
        validate: (0, q.assertNodeType)("Expression")
      },
      property: {
        validate: function() {
          let t = (0, q.assertNodeType)("Identifier"), e = (0, q.assertNodeType)("Expression");
          return Object.assign(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier"]
          });
        }()
      },
      computed: {
        default: !1
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertValueType)("boolean"), (0, q.assertOptionalChainStart)()) : (0, q.
        assertValueType)("boolean")
      }
    }
  });
  Be("OptionalCallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments", "optional"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, q.assertNodeType)("Expression")
      },
      arguments: (0, q.validateArrayOfType)("Expression", "SpreadElement", "ArgumentPlaceholder"),
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, q.chain)((0, q.assertValueType)("boolean"), (0, q.assertOptionalChainStart)()) : (0, q.
        assertValueType)("boolean")
      },
      typeArguments: {
        validate: (0, q.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      typeParameters: {
        validate: (0, q.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  });
  Be("ClassProperty", {
    visitor: ["decorators", "variance", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property"],
    fields: Object.assign({}, Ab(), {
      value: {
        validate: (0, q.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, q.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, q.arrayOfType)("Decorator"),
        optional: !0
      },
      readonly: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, q.assertNodeType)("Variance"),
        optional: !0
      }
    })
  });
  Be("ClassAccessorProperty", {
    visitor: ["decorators", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property", "Accessor"],
    fields: Object.assign({}, Ab(), {
      key: {
        validate: (0, q.chain)(function() {
          let t = (0, q.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"), e = (0, q.assertNodeType)(
          "Expression");
          return function(s, r, i) {
            (s.computed ? e : t)(s, r, i);
          };
        }(), (0, q.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName"))
      },
      value: {
        validate: (0, q.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, q.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, q.arrayOfType)("Decorator"),
        optional: !0
      },
      readonly: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, q.assertNodeType)("Variance"),
        optional: !0
      }
    })
  });
  Be("ClassPrivateProperty", {
    visitor: ["decorators", "variance", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "decorators", "static"],
    aliases: ["Property", "Private"],
    fields: {
      key: {
        validate: (0, q.assertNodeType)("PrivateName")
      },
      value: {
        validate: (0, q.assertNodeType)("Expression"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, q.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, q.arrayOfType)("Decorator"),
        optional: !0
      },
      static: {
        validate: (0, q.assertValueType)("boolean"),
        default: !1
      },
      readonly: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      optional: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      definite: {
        validate: (0, q.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, q.assertNodeType)("Variance"),
        optional: !0
      }
    }
  });
  Be("ClassPrivateMethod", {
    builder: ["kind", "key", "params", "body", "static"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"],
    fields: Object.assign({}, jC(), eh(), {
      kind: {
        validate: (0, q.assertOneOf)("get", "set", "method"),
        default: "method"
      },
      key: {
        validate: (0, q.assertNodeType)("PrivateName")
      },
      body: {
        validate: (0, q.assertNodeType)("BlockStatement")
      }
    })
  });
  Be("PrivateName", {
    visitor: ["id"],
    aliases: ["Private"],
    fields: {
      id: {
        validate: (0, q.assertNodeType)("Identifier")
      }
    }
  });
  Be("StaticBlock", {
    visitor: ["body"],
    fields: {
      body: (0, q.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "FunctionParent"]
  });
});

// ../node_modules/@babel/types/lib/definitions/flow.js
var H7 = g(() => {
  "use strict";
  var $7 = Ky(), ue = Xo(), gt = (0, ue.defineAliasedType)("Flow"), RC = /* @__PURE__ */ n((t) => {
    let e = t === "DeclareClass";
    gt(t, {
      builder: ["id", "typeParameters", "extends", "body"],
      visitor: ["id", "typeParameters", "extends", ...e ? ["mixins", "implements"] : [], "body"],
      aliases: ["FlowDeclaration", "Statement", "Declaration"],
      fields: Object.assign({
        id: (0, ue.validateType)("Identifier"),
        typeParameters: (0, ue.validateOptionalType)("TypeParameterDeclaration"),
        extends: (0, ue.validateOptional)((0, ue.arrayOfType)("InterfaceExtends"))
      }, e ? {
        mixins: (0, ue.validateOptional)((0, ue.arrayOfType)("InterfaceExtends")),
        implements: (0, ue.validateOptional)((0, ue.arrayOfType)("ClassImplements"))
      } : {}, {
        body: (0, ue.validateType)("ObjectTypeAnnotation")
      })
    });
  }, "defineInterfaceishType");
  gt("AnyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("ArrayTypeAnnotation", {
    visitor: ["elementType"],
    aliases: ["FlowType"],
    fields: {
      elementType: (0, ue.validateType)("FlowType")
    }
  });
  gt("BooleanTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("BooleanLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("NullLiteralTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("ClassImplements", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      typeParameters: (0, ue.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  RC("DeclareClass");
  gt("DeclareFunction", {
    builder: ["id"],
    visitor: ["id", "predicate"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      predicate: (0, ue.validateOptionalType)("DeclaredPredicate")
    }
  });
  RC("DeclareInterface");
  gt("DeclareModule", {
    builder: ["id", "body", "kind"],
    visitor: ["id", "body"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ue.validateType)("Identifier", "StringLiteral"),
      body: (0, ue.validateType)("BlockStatement"),
      kind: (0, ue.validateOptional)((0, ue.assertOneOf)("CommonJS", "ES"))
    }
  });
  gt("DeclareModuleExports", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      typeAnnotation: (0, ue.validateType)("TypeAnnotation")
    }
  });
  gt("DeclareTypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      typeParameters: (0, ue.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, ue.validateType)("FlowType")
    }
  });
  gt("DeclareOpaqueType", {
    visitor: ["id", "typeParameters", "supertype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      typeParameters: (0, ue.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, ue.validateOptionalType)("FlowType"),
      impltype: (0, ue.validateOptionalType)("FlowType")
    }
  });
  gt("DeclareVariable", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ue.validateType)("Identifier")
    }
  });
  gt("DeclareExportDeclaration", {
    visitor: ["declaration", "specifiers", "source", "attributes"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: Object.assign({
      declaration: (0, ue.validateOptionalType)("Flow"),
      specifiers: (0, ue.validateOptional)((0, ue.arrayOfType)("ExportSpecifier", "ExportNamespaceSpecifier")),
      source: (0, ue.validateOptionalType)("StringLiteral"),
      default: (0, ue.validateOptional)((0, ue.assertValueType)("boolean"))
    }, $7.importAttributes)
  });
  gt("DeclareExportAllDeclaration", {
    visitor: ["source", "attributes"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: Object.assign({
      source: (0, ue.validateType)("StringLiteral"),
      exportKind: (0, ue.validateOptional)((0, ue.assertOneOf)("type", "value"))
    }, $7.importAttributes)
  });
  gt("DeclaredPredicate", {
    visitor: ["value"],
    aliases: ["FlowPredicate"],
    fields: {
      value: (0, ue.validateType)("Flow")
    }
  });
  gt("ExistsTypeAnnotation", {
    aliases: ["FlowType"]
  });
  gt("FunctionTypeAnnotation", {
    builder: ["typeParameters", "params", "rest", "returnType"],
    visitor: ["typeParameters", "this", "params", "rest", "returnType"],
    aliases: ["FlowType"],
    fields: {
      typeParameters: (0, ue.validateOptionalType)("TypeParameterDeclaration"),
      params: (0, ue.validateArrayOfType)("FunctionTypeParam"),
      rest: (0, ue.validateOptionalType)("FunctionTypeParam"),
      this: (0, ue.validateOptionalType)("FunctionTypeParam"),
      returnType: (0, ue.validateType)("FlowType")
    }
  });
  gt("FunctionTypeParam", {
    visitor: ["name", "typeAnnotation"],
    fields: {
      name: (0, ue.validateOptionalType)("Identifier"),
      typeAnnotation: (0, ue.validateType)("FlowType"),
      optional: (0, ue.validateOptional)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("GenericTypeAnnotation", {
    visitor: ["id", "typeParameters"],
    aliases: ["FlowType"],
    fields: {
      id: (0, ue.validateType)("Identifier", "QualifiedTypeIdentifier"),
      typeParameters: (0, ue.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  gt("InferredPredicate", {
    aliases: ["FlowPredicate"]
  });
  gt("InterfaceExtends", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, ue.validateType)("Identifier", "QualifiedTypeIdentifier"),
      typeParameters: (0, ue.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  RC("InterfaceDeclaration");
  gt("InterfaceTypeAnnotation", {
    visitor: ["extends", "body"],
    aliases: ["FlowType"],
    fields: {
      extends: (0, ue.validateOptional)((0, ue.arrayOfType)("InterfaceExtends")),
      body: (0, ue.validateType)("ObjectTypeAnnotation")
    }
  });
  gt("IntersectionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, ue.validate)((0, ue.arrayOfType)("FlowType"))
    }
  });
  gt("MixedTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("EmptyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("NullableTypeAnnotation", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowType"],
    fields: {
      typeAnnotation: (0, ue.validateType)("FlowType")
    }
  });
  gt("NumberLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, ue.validate)((0, ue.assertValueType)("number"))
    }
  });
  gt("NumberTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("ObjectTypeAnnotation", {
    visitor: ["properties", "indexers", "callProperties", "internalSlots"],
    aliases: ["FlowType"],
    builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"],
    fields: {
      properties: (0, ue.validate)((0, ue.arrayOfType)("ObjectTypeProperty", "ObjectTypeSpreadProperty")),
      indexers: {
        validate: (0, ue.arrayOfType)("ObjectTypeIndexer"),
        optional: !0,
        default: []
      },
      callProperties: {
        validate: (0, ue.arrayOfType)("ObjectTypeCallProperty"),
        optional: !0,
        default: []
      },
      internalSlots: {
        validate: (0, ue.arrayOfType)("ObjectTypeInternalSlot"),
        optional: !0,
        default: []
      },
      exact: {
        validate: (0, ue.assertValueType)("boolean"),
        default: !1
      },
      inexact: (0, ue.validateOptional)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("ObjectTypeInternalSlot", {
    visitor: ["id", "value"],
    builder: ["id", "value", "optional", "static", "method"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      value: (0, ue.validateType)("FlowType"),
      optional: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      static: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      method: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("ObjectTypeCallProperty", {
    visitor: ["value"],
    aliases: ["UserWhitespacable"],
    fields: {
      value: (0, ue.validateType)("FlowType"),
      static: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("ObjectTypeIndexer", {
    visitor: ["variance", "id", "key", "value"],
    builder: ["id", "key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, ue.validateOptionalType)("Identifier"),
      key: (0, ue.validateType)("FlowType"),
      value: (0, ue.validateType)("FlowType"),
      static: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      variance: (0, ue.validateOptionalType)("Variance")
    }
  });
  gt("ObjectTypeProperty", {
    visitor: ["key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      key: (0, ue.validateType)("Identifier", "StringLiteral"),
      value: (0, ue.validateType)("FlowType"),
      kind: (0, ue.validate)((0, ue.assertOneOf)("init", "get", "set")),
      static: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      proto: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      optional: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      variance: (0, ue.validateOptionalType)("Variance"),
      method: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("ObjectTypeSpreadProperty", {
    visitor: ["argument"],
    aliases: ["UserWhitespacable"],
    fields: {
      argument: (0, ue.validateType)("FlowType")
    }
  });
  gt("OpaqueType", {
    visitor: ["id", "typeParameters", "supertype", "impltype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      typeParameters: (0, ue.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, ue.validateOptionalType)("FlowType"),
      impltype: (0, ue.validateType)("FlowType")
    }
  });
  gt("QualifiedTypeIdentifier", {
    visitor: ["qualification", "id"],
    builder: ["id", "qualification"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      qualification: (0, ue.validateType)("Identifier", "QualifiedTypeIdentifier")
    }
  });
  gt("StringLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, ue.validate)((0, ue.assertValueType)("string"))
    }
  });
  gt("StringTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("SymbolTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("ThisTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("TupleTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, ue.validate)((0, ue.arrayOfType)("FlowType"))
    }
  });
  gt("TypeofTypeAnnotation", {
    visitor: ["argument"],
    aliases: ["FlowType"],
    fields: {
      argument: (0, ue.validateType)("FlowType")
    }
  });
  gt("TypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      typeParameters: (0, ue.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, ue.validateType)("FlowType")
    }
  });
  gt("TypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, ue.validateType)("FlowType")
    }
  });
  gt("TypeCastExpression", {
    visitor: ["expression", "typeAnnotation"],
    aliases: ["ExpressionWrapper", "Expression"],
    fields: {
      expression: (0, ue.validateType)("Expression"),
      typeAnnotation: (0, ue.validateType)("TypeAnnotation")
    }
  });
  gt("TypeParameter", {
    visitor: ["bound", "default", "variance"],
    fields: {
      name: (0, ue.validate)((0, ue.assertValueType)("string")),
      bound: (0, ue.validateOptionalType)("TypeAnnotation"),
      default: (0, ue.validateOptionalType)("FlowType"),
      variance: (0, ue.validateOptionalType)("Variance")
    }
  });
  gt("TypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, ue.validate)((0, ue.arrayOfType)("TypeParameter"))
    }
  });
  gt("TypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, ue.validate)((0, ue.arrayOfType)("FlowType"))
    }
  });
  gt("UnionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, ue.validate)((0, ue.arrayOfType)("FlowType"))
    }
  });
  gt("Variance", {
    builder: ["kind"],
    fields: {
      kind: (0, ue.validate)((0, ue.assertOneOf)("minus", "plus"))
    }
  });
  gt("VoidTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  gt("EnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      body: (0, ue.validateType)("EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody")
    }
  });
  gt("EnumBooleanBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      members: (0, ue.validateArrayOfType)("EnumBooleanMember"),
      hasUnknownMembers: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("EnumNumberBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      members: (0, ue.validateArrayOfType)("EnumNumberMember"),
      hasUnknownMembers: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("EnumStringBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, ue.validate)((0, ue.assertValueType)("boolean")),
      members: (0, ue.validateArrayOfType)("EnumStringMember", "EnumDefaultedMember"),
      hasUnknownMembers: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("EnumSymbolBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      members: (0, ue.validateArrayOfType)("EnumDefaultedMember"),
      hasUnknownMembers: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
  gt("EnumBooleanMember", {
    aliases: ["EnumMember"],
    builder: ["id"],
    visitor: ["id", "init"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      init: (0, ue.validateType)("BooleanLiteral")
    }
  });
  gt("EnumNumberMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      init: (0, ue.validateType)("NumericLiteral")
    }
  });
  gt("EnumStringMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, ue.validateType)("Identifier"),
      init: (0, ue.validateType)("StringLiteral")
    }
  });
  gt("EnumDefaultedMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, ue.validateType)("Identifier")
    }
  });
  gt("IndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, ue.validateType)("FlowType"),
      indexType: (0, ue.validateType)("FlowType")
    }
  });
  gt("OptionalIndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, ue.validateType)("FlowType"),
      indexType: (0, ue.validateType)("FlowType"),
      optional: (0, ue.validate)((0, ue.assertValueType)("boolean"))
    }
  });
});

// ../node_modules/@babel/types/lib/definitions/jsx.js
var J7 = g(() => {
  "use strict";
  var Rr = Xo(), mn = (0, Rr.defineAliasedType)("JSX");
  mn("JSXAttribute", {
    visitor: ["name", "value"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, Rr.assertNodeType)("JSXIdentifier", "JSXNamespacedName")
      },
      value: {
        optional: !0,
        validate: (0, Rr.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer")
      }
    }
  });
  mn("JSXClosingElement", {
    visitor: ["name"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, Rr.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      }
    }
  });
  mn("JSXElement", {
    builder: ["openingElement", "closingElement", "children", "selfClosing"],
    visitor: ["openingElement", "children", "closingElement"],
    aliases: ["Immutable", "Expression"],
    fields: Object.assign({
      openingElement: {
        validate: (0, Rr.assertNodeType)("JSXOpeningElement")
      },
      closingElement: {
        optional: !0,
        validate: (0, Rr.assertNodeType)("JSXClosingElement")
      },
      children: (0, Rr.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
    }, {
      selfClosing: {
        validate: (0, Rr.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  mn("JSXEmptyExpression", {});
  mn("JSXExpressionContainer", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, Rr.assertNodeType)("Expression", "JSXEmptyExpression")
      }
    }
  });
  mn("JSXSpreadChild", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, Rr.assertNodeType)("Expression")
      }
    }
  });
  mn("JSXIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, Rr.assertValueType)("string")
      }
    }
  });
  mn("JSXMemberExpression", {
    visitor: ["object", "property"],
    fields: {
      object: {
        validate: (0, Rr.assertNodeType)("JSXMemberExpression", "JSXIdentifier")
      },
      property: {
        validate: (0, Rr.assertNodeType)("JSXIdentifier")
      }
    }
  });
  mn("JSXNamespacedName", {
    visitor: ["namespace", "name"],
    fields: {
      namespace: {
        validate: (0, Rr.assertNodeType)("JSXIdentifier")
      },
      name: {
        validate: (0, Rr.assertNodeType)("JSXIdentifier")
      }
    }
  });
  mn("JSXOpeningElement", {
    builder: ["name", "attributes", "selfClosing"],
    visitor: ["name", "typeParameters", "typeArguments", "attributes"],
    aliases: ["Immutable"],
    fields: Object.assign({
      name: {
        validate: (0, Rr.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      },
      selfClosing: {
        default: !1
      },
      attributes: (0, Rr.validateArrayOfType)("JSXAttribute", "JSXSpreadAttribute"),
      typeArguments: {
        validate: (0, Rr.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      typeParameters: {
        validate: (0, Rr.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  });
  mn("JSXSpreadAttribute", {
    visitor: ["argument"],
    fields: {
      argument: {
        validate: (0, Rr.assertNodeType)("Expression")
      }
    }
  });
  mn("JSXText", {
    aliases: ["Immutable"],
    builder: ["value"],
    fields: {
      value: {
        validate: (0, Rr.assertValueType)("string")
      }
    }
  });
  mn("JSXFragment", {
    builder: ["openingFragment", "closingFragment", "children"],
    visitor: ["openingFragment", "children", "closingFragment"],
    aliases: ["Immutable", "Expression"],
    fields: {
      openingFragment: {
        validate: (0, Rr.assertNodeType)("JSXOpeningFragment")
      },
      closingFragment: {
        validate: (0, Rr.assertNodeType)("JSXClosingFragment")
      },
      children: (0, Rr.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
    }
  });
  mn("JSXOpeningFragment", {
    aliases: ["Immutable"]
  });
  mn("JSXClosingFragment", {
    aliases: ["Immutable"]
  });
});

// ../node_modules/@babel/types/lib/definitions/placeholders.js
var KC = g((Ac) => {
  "use strict";
  Object.defineProperty(Ac, "__esModule", {
    value: !0
  });
  Ac.PLACEHOLDERS_FLIPPED_ALIAS = Ac.PLACEHOLDERS_ALIAS = Ac.PLACEHOLDERS = void 0;
  var FEe = Xo(), jEe = Ac.PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "Class\
Body", "Pattern"], UC = Ac.PLACEHOLDERS_ALIAS = {
    Declaration: ["Statement"],
    Pattern: ["PatternLike", "LVal"]
  };
  for (let t of jEe) {
    let e = FEe.ALIAS_KEYS[t];
    e != null && e.length && (UC[t] = e);
  }
  var qC = Ac.PLACEHOLDERS_FLIPPED_ALIAS = {};
  Object.keys(UC).forEach((t) => {
    UC[t].forEach((e) => {
      hasOwnProperty.call(qC, e) || (qC[e] = []), qC[e].push(t);
    });
  });
});

// ../node_modules/@babel/types/lib/definitions/misc.js
var Y7 = g(() => {
  "use strict";
  var vb = Xo(), REe = KC(), qEe = Ky(), VC = (0, vb.defineAliasedType)("Miscellaneous");
  VC("Noop", {
    visitor: []
  });
  VC("Placeholder", {
    visitor: [],
    builder: ["expectedNode", "name"],
    fields: Object.assign({
      name: {
        validate: (0, vb.assertNodeType)("Identifier")
      },
      expectedNode: {
        validate: (0, vb.assertOneOf)(...REe.PLACEHOLDERS)
      }
    }, (0, qEe.patternLikeCommon)())
  });
  VC("V8IntrinsicIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, vb.assertValueType)("string")
      }
    }
  });
});

// ../node_modules/@babel/types/lib/definitions/experimental.js
var X7 = g(() => {
  "use strict";
  var br = Xo();
  (0, br.default)("ArgumentPlaceholder", {});
  (0, br.default)("BindExpression", {
    visitor: ["object", "callee"],
    aliases: ["Expression"],
    fields: process.env.BABEL_TYPES_8_BREAKING ? {
      object: {
        validate: (0, br.assertNodeType)("Expression")
      },
      callee: {
        validate: (0, br.assertNodeType)("Expression")
      }
    } : {
      object: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      },
      callee: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      }
    }
  });
  (0, br.default)("ImportAttribute", {
    visitor: ["key", "value"],
    fields: {
      key: {
        validate: (0, br.assertNodeType)("Identifier", "StringLiteral")
      },
      value: {
        validate: (0, br.assertNodeType)("StringLiteral")
      }
    }
  });
  (0, br.default)("Decorator", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, br.assertNodeType)("Expression")
      }
    }
  });
  (0, br.default)("DoExpression", {
    visitor: ["body"],
    builder: ["body", "async"],
    aliases: ["Expression"],
    fields: {
      body: {
        validate: (0, br.assertNodeType)("BlockStatement")
      },
      async: {
        validate: (0, br.assertValueType)("boolean"),
        default: !1
      }
    }
  });
  (0, br.default)("ExportDefaultSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, br.assertNodeType)("Identifier")
      }
    }
  });
  (0, br.default)("RecordExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: (0, br.validateArrayOfType)("ObjectProperty", "SpreadElement")
    }
  });
  (0, br.default)("TupleExpression", {
    fields: {
      elements: {
        validate: (0, br.arrayOfType)("Expression", "SpreadElement"),
        default: []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  });
  (0, br.default)("DecimalLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, br.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  (0, br.default)("ModuleExpression", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, br.assertNodeType)("Program")
      }
    },
    aliases: ["Expression"]
  });
  (0, br.default)("TopicReference", {
    aliases: ["Expression"]
  });
  (0, br.default)("PipelineTopicExpression", {
    builder: ["expression"],
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, br.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  });
  (0, br.default)("PipelineBareFunction", {
    builder: ["callee"],
    visitor: ["callee"],
    fields: {
      callee: {
        validate: (0, br.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  });
  (0, br.default)("PipelinePrimaryTopicReference", {
    aliases: ["Expression"]
  });
});

// ../node_modules/@babel/types/lib/definitions/typescript.js
var rq = g(() => {
  "use strict";
  var Te = Xo(), z7 = Ky(), UEe = Zf(), Ot = (0, Te.defineAliasedType)("TypeScript"), ta = (0, Te.assertValueType)("boolean"), G7 = /* @__PURE__ */ n(
  () => ({
    returnType: {
      validate: (0, Te.assertNodeType)("TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, Te.assertNodeType)("TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  }), "tSFunctionTypeAnnotationCommon");
  Ot("TSParameterProperty", {
    aliases: ["LVal"],
    visitor: ["parameter"],
    fields: {
      accessibility: {
        validate: (0, Te.assertOneOf)("public", "private", "protected"),
        optional: !0
      },
      readonly: {
        validate: (0, Te.assertValueType)("boolean"),
        optional: !0
      },
      parameter: {
        validate: (0, Te.assertNodeType)("Identifier", "AssignmentPattern")
      },
      override: {
        validate: (0, Te.assertValueType)("boolean"),
        optional: !0
      },
      decorators: {
        validate: (0, Te.arrayOfType)("Decorator"),
        optional: !0
      }
    }
  });
  Ot("TSDeclareFunction", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, z7.functionDeclarationCommon)(), G7())
  });
  Ot("TSDeclareMethod", {
    visitor: ["decorators", "key", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, z7.classMethodOrDeclareMethodCommon)(), G7())
  });
  Ot("TSQualifiedName", {
    aliases: ["TSEntityName"],
    visitor: ["left", "right"],
    fields: {
      left: (0, Te.validateType)("TSEntityName"),
      right: (0, Te.validateType)("Identifier")
    }
  });
  var Cb = /* @__PURE__ */ n(() => ({
    typeParameters: (0, Te.validateOptionalType)("TSTypeParameterDeclaration"),
    parameters: (0, Te.validateArrayOfType)("ArrayPattern", "Identifier", "ObjectPattern", "RestElement"),
    typeAnnotation: (0, Te.validateOptionalType)("TSTypeAnnotation")
  }), "signatureDeclarationCommon"), Q7 = {
    aliases: ["TSTypeElement"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"],
    fields: Cb()
  };
  Ot("TSCallSignatureDeclaration", Q7);
  Ot("TSConstructSignatureDeclaration", Q7);
  var Z7 = /* @__PURE__ */ n(() => ({
    key: (0, Te.validateType)("Expression"),
    computed: {
      default: !1
    },
    optional: (0, Te.validateOptional)(ta)
  }), "namedTypeElementCommon");
  Ot("TSPropertySignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeAnnotation"],
    fields: Object.assign({}, Z7(), {
      readonly: (0, Te.validateOptional)(ta),
      typeAnnotation: (0, Te.validateOptionalType)("TSTypeAnnotation"),
      kind: {
        optional: !0,
        validate: (0, Te.assertOneOf)("get", "set")
      }
    })
  });
  Ot("TSMethodSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeParameters", "parameters", "typeAnnotation"],
    fields: Object.assign({}, Cb(), Z7(), {
      kind: {
        validate: (0, Te.assertOneOf)("method", "get", "set")
      }
    })
  });
  Ot("TSIndexSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["parameters", "typeAnnotation"],
    fields: {
      readonly: (0, Te.validateOptional)(ta),
      static: (0, Te.validateOptional)(ta),
      parameters: (0, Te.validateArrayOfType)("Identifier"),
      typeAnnotation: (0, Te.validateOptionalType)("TSTypeAnnotation")
    }
  });
  var KEe = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeywor\
d", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"];
  for (let t of KEe)
    Ot(t, {
      aliases: ["TSType", "TSBaseType"],
      visitor: [],
      fields: {}
    });
  Ot("TSThisType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: [],
    fields: {}
  });
  var eq = {
    aliases: ["TSType"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"]
  };
  Ot("TSFunctionType", Object.assign({}, eq, {
    fields: Cb()
  }));
  Ot("TSConstructorType", Object.assign({}, eq, {
    fields: Object.assign({}, Cb(), {
      abstract: (0, Te.validateOptional)(ta)
    })
  }));
  Ot("TSTypeReference", {
    aliases: ["TSType"],
    visitor: ["typeName", "typeParameters"],
    fields: {
      typeName: (0, Te.validateType)("TSEntityName"),
      typeParameters: (0, Te.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  Ot("TSTypePredicate", {
    aliases: ["TSType"],
    visitor: ["parameterName", "typeAnnotation"],
    builder: ["parameterName", "typeAnnotation", "asserts"],
    fields: {
      parameterName: (0, Te.validateType)("Identifier", "TSThisType"),
      typeAnnotation: (0, Te.validateOptionalType)("TSTypeAnnotation"),
      asserts: (0, Te.validateOptional)(ta)
    }
  });
  Ot("TSTypeQuery", {
    aliases: ["TSType"],
    visitor: ["exprName", "typeParameters"],
    fields: {
      exprName: (0, Te.validateType)("TSEntityName", "TSImportType"),
      typeParameters: (0, Te.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  Ot("TSTypeLiteral", {
    aliases: ["TSType"],
    visitor: ["members"],
    fields: {
      members: (0, Te.validateArrayOfType)("TSTypeElement")
    }
  });
  Ot("TSArrayType", {
    aliases: ["TSType"],
    visitor: ["elementType"],
    fields: {
      elementType: (0, Te.validateType)("TSType")
    }
  });
  Ot("TSTupleType", {
    aliases: ["TSType"],
    visitor: ["elementTypes"],
    fields: {
      elementTypes: (0, Te.validateArrayOfType)("TSType", "TSNamedTupleMember")
    }
  });
  Ot("TSOptionalType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, Te.validateType)("TSType")
    }
  });
  Ot("TSRestType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, Te.validateType)("TSType")
    }
  });
  Ot("TSNamedTupleMember", {
    visitor: ["label", "elementType"],
    builder: ["label", "elementType", "optional"],
    fields: {
      label: (0, Te.validateType)("Identifier"),
      optional: {
        validate: ta,
        default: !1
      },
      elementType: (0, Te.validateType)("TSType")
    }
  });
  var tq = {
    aliases: ["TSType"],
    visitor: ["types"],
    fields: {
      types: (0, Te.validateArrayOfType)("TSType")
    }
  };
  Ot("TSUnionType", tq);
  Ot("TSIntersectionType", tq);
  Ot("TSConditionalType", {
    aliases: ["TSType"],
    visitor: ["checkType", "extendsType", "trueType", "falseType"],
    fields: {
      checkType: (0, Te.validateType)("TSType"),
      extendsType: (0, Te.validateType)("TSType"),
      trueType: (0, Te.validateType)("TSType"),
      falseType: (0, Te.validateType)("TSType")
    }
  });
  Ot("TSInferType", {
    aliases: ["TSType"],
    visitor: ["typeParameter"],
    fields: {
      typeParameter: (0, Te.validateType)("TSTypeParameter")
    }
  });
  Ot("TSParenthesizedType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, Te.validateType)("TSType")
    }
  });
  Ot("TSTypeOperator", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      operator: (0, Te.validate)((0, Te.assertValueType)("string")),
      typeAnnotation: (0, Te.validateType)("TSType")
    }
  });
  Ot("TSIndexedAccessType", {
    aliases: ["TSType"],
    visitor: ["objectType", "indexType"],
    fields: {
      objectType: (0, Te.validateType)("TSType"),
      indexType: (0, Te.validateType)("TSType")
    }
  });
  Ot("TSMappedType", {
    aliases: ["TSType"],
    visitor: ["typeParameter", "nameType", "typeAnnotation"],
    builder: ["typeParameter", "typeAnnotation", "nameType"],
    fields: Object.assign({}, {
      typeParameter: (0, Te.validateType)("TSTypeParameter")
    }, {
      readonly: (0, Te.validateOptional)((0, Te.assertOneOf)(!0, !1, "+", "-")),
      optional: (0, Te.validateOptional)((0, Te.assertOneOf)(!0, !1, "+", "-")),
      typeAnnotation: (0, Te.validateOptionalType)("TSType"),
      nameType: (0, Te.validateOptionalType)("TSType")
    })
  });
  Ot("TSTemplateLiteralType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: ["quasis", "types"],
    fields: {
      quasis: (0, Te.validateArrayOfType)("TemplateElement"),
      types: {
        validate: (0, Te.chain)((0, Te.assertValueType)("array"), (0, Te.assertEach)((0, Te.assertNodeType)("TSType")), function(t, e, s) {
          if (t.quasis.length !== s.length + 1)
            throw new TypeError(`Number of ${t.type} quasis should be exactly one more than the number of types.
Expected ${s.length + 1} quasis but got ${t.quasis.length}`);
        })
      }
    }
  });
  Ot("TSLiteralType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: ["literal"],
    fields: {
      literal: {
        validate: function() {
          let t = (0, Te.assertNodeType)("NumericLiteral", "BigIntLiteral"), e = (0, Te.assertOneOf)("-"), s = (0, Te.assertNodeType)("Numer\
icLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral");
          function r(i, a, o) {
            (0, UEe.default)("UnaryExpression", o) ? (e(o, "operator", o.operator), t(o, "argument", o.argument)) : s(i, a, o);
          }
          return n(r, "validator"), r.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiter\
al", "UnaryExpression"], r;
        }()
      }
    }
  });
  Ot("TSExpressionWithTypeArguments", {
    aliases: ["TSType"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, Te.validateType)("TSEntityName"),
      typeParameters: (0, Te.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  Ot("TSInterfaceDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "extends", "body"],
    fields: {
      declare: (0, Te.validateOptional)(ta),
      id: (0, Te.validateType)("Identifier"),
      typeParameters: (0, Te.validateOptionalType)("TSTypeParameterDeclaration"),
      extends: (0, Te.validateOptional)((0, Te.arrayOfType)("TSExpressionWithTypeArguments")),
      body: (0, Te.validateType)("TSInterfaceBody")
    }
  });
  Ot("TSInterfaceBody", {
    visitor: ["body"],
    fields: {
      body: (0, Te.validateArrayOfType)("TSTypeElement")
    }
  });
  Ot("TSTypeAliasDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "typeAnnotation"],
    fields: {
      declare: (0, Te.validateOptional)(ta),
      id: (0, Te.validateType)("Identifier"),
      typeParameters: (0, Te.validateOptionalType)("TSTypeParameterDeclaration"),
      typeAnnotation: (0, Te.validateType)("TSType")
    }
  });
  Ot("TSInstantiationExpression", {
    aliases: ["Expression"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, Te.validateType)("Expression"),
      typeParameters: (0, Te.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  var sq = {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression", "typeAnnotation"],
    fields: {
      expression: (0, Te.validateType)("Expression"),
      typeAnnotation: (0, Te.validateType)("TSType")
    }
  };
  Ot("TSAsExpression", sq);
  Ot("TSSatisfiesExpression", sq);
  Ot("TSTypeAssertion", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["typeAnnotation", "expression"],
    fields: {
      typeAnnotation: (0, Te.validateType)("TSType"),
      expression: (0, Te.validateType)("Expression")
    }
  });
  Ot("TSEnumBody", {
    visitor: ["members"],
    fields: {
      members: (0, Te.validateArrayOfType)("TSEnumMember")
    }
  });
  Ot("TSEnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "members"],
    fields: {
      declare: (0, Te.validateOptional)(ta),
      const: (0, Te.validateOptional)(ta),
      id: (0, Te.validateType)("Identifier"),
      members: (0, Te.validateArrayOfType)("TSEnumMember"),
      initializer: (0, Te.validateOptionalType)("Expression"),
      body: (0, Te.validateOptionalType)("TSEnumBody")
    }
  });
  Ot("TSEnumMember", {
    visitor: ["id", "initializer"],
    fields: {
      id: (0, Te.validateType)("Identifier", "StringLiteral"),
      initializer: (0, Te.validateOptionalType)("Expression")
    }
  });
  Ot("TSModuleDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: Object.assign({
      kind: {
        validate: (0, Te.assertOneOf)("global", "module", "namespace")
      },
      declare: (0, Te.validateOptional)(ta)
    }, {
      global: (0, Te.validateOptional)(ta)
    }, {
      id: (0, Te.validateType)("Identifier", "StringLiteral"),
      body: (0, Te.validateType)("TSModuleBlock", "TSModuleDeclaration")
    })
  });
  Ot("TSModuleBlock", {
    aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"],
    visitor: ["body"],
    fields: {
      body: (0, Te.validateArrayOfType)("Statement")
    }
  });
  Ot("TSImportType", {
    aliases: ["TSType"],
    builder: ["argument", "qualifier", "typeParameters"],
    visitor: ["argument", "options", "qualifier", "typeParameters"],
    fields: {
      argument: (0, Te.validateType)("StringLiteral"),
      qualifier: (0, Te.validateOptionalType)("TSEntityName"),
      typeParameters: (0, Te.validateOptionalType)("TSTypeParameterInstantiation"),
      options: {
        validate: (0, Te.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  Ot("TSImportEqualsDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "moduleReference"],
    fields: Object.assign({}, {
      isExport: (0, Te.validate)(ta)
    }, {
      id: (0, Te.validateType)("Identifier"),
      moduleReference: (0, Te.validateType)("TSEntityName", "TSExternalModuleReference"),
      importKind: {
        validate: (0, Te.assertOneOf)("type", "value"),
        optional: !0
      }
    })
  });
  Ot("TSExternalModuleReference", {
    visitor: ["expression"],
    fields: {
      expression: (0, Te.validateType)("StringLiteral")
    }
  });
  Ot("TSNonNullExpression", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression"],
    fields: {
      expression: (0, Te.validateType)("Expression")
    }
  });
  Ot("TSExportAssignment", {
    aliases: ["Statement"],
    visitor: ["expression"],
    fields: {
      expression: (0, Te.validateType)("Expression")
    }
  });
  Ot("TSNamespaceExportDeclaration", {
    aliases: ["Statement"],
    visitor: ["id"],
    fields: {
      id: (0, Te.validateType)("Identifier")
    }
  });
  Ot("TSTypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: {
        validate: (0, Te.assertNodeType)("TSType")
      }
    }
  });
  Ot("TSTypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, Te.validateArrayOfType)("TSType")
    }
  });
  Ot("TSTypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, Te.validateArrayOfType)("TSTypeParameter")
    }
  });
  Ot("TSTypeParameter", {
    builder: ["constraint", "default", "name"],
    visitor: ["constraint", "default"],
    fields: {
      name: {
        validate: (0, Te.assertValueType)("string")
      },
      in: {
        validate: (0, Te.assertValueType)("boolean"),
        optional: !0
      },
      out: {
        validate: (0, Te.assertValueType)("boolean"),
        optional: !0
      },
      const: {
        validate: (0, Te.assertValueType)("boolean"),
        optional: !0
      },
      constraint: {
        validate: (0, Te.assertNodeType)("TSType"),
        optional: !0
      },
      default: {
        validate: (0, Te.assertNodeType)("TSType"),
        optional: !0
      }
    }
  });
});

// ../node_modules/@babel/types/lib/definitions/deprecated-aliases.js
var iq = g((wb) => {
  "use strict";
  Object.defineProperty(wb, "__esModule", {
    value: !0
  });
  wb.DEPRECATED_ALIASES = void 0;
  var K4s = wb.DEPRECATED_ALIASES = {
    ModuleDeclaration: "ImportOrExportDeclaration"
  };
});

// ../node_modules/@babel/types/lib/definitions/index.js
var ba = g((yn) => {
  "use strict";
  Object.defineProperty(yn, "__esModule", {
    value: !0
  });
  Object.defineProperty(yn, "ALIAS_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Sa.ALIAS_KEYS;
    }, "get")
  });
  Object.defineProperty(yn, "BUILDER_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Sa.BUILDER_KEYS;
    }, "get")
  });
  Object.defineProperty(yn, "DEPRECATED_ALIASES", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return WC.DEPRECATED_ALIASES;
    }, "get")
  });
  Object.defineProperty(yn, "DEPRECATED_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Sa.DEPRECATED_KEYS;
    }, "get")
  });
  Object.defineProperty(yn, "FLIPPED_ALIAS_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Sa.FLIPPED_ALIAS_KEYS;
    }, "get")
  });
  Object.defineProperty(yn, "NODE_FIELDS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Sa.NODE_FIELDS;
    }, "get")
  });
  Object.defineProperty(yn, "NODE_PARENT_VALIDATIONS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Sa.NODE_PARENT_VALIDATIONS;
    }, "get")
  });
  Object.defineProperty(yn, "PLACEHOLDERS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return $C.PLACEHOLDERS;
    }, "get")
  });
  Object.defineProperty(yn, "PLACEHOLDERS_ALIAS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return $C.PLACEHOLDERS_ALIAS;
    }, "get")
  });
  Object.defineProperty(yn, "PLACEHOLDERS_FLIPPED_ALIAS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return $C.PLACEHOLDERS_FLIPPED_ALIAS;
    }, "get")
  });
  yn.TYPES = void 0;
  Object.defineProperty(yn, "VISITOR_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Sa.VISITOR_KEYS;
    }, "get")
  });
  Ky();
  H7();
  J7();
  Y7();
  X7();
  rq();
  var Sa = Xo(), $C = KC(), WC = iq();
  Object.keys(WC.DEPRECATED_ALIASES).forEach((t) => {
    Sa.FLIPPED_ALIAS_KEYS[t] = Sa.FLIPPED_ALIAS_KEYS[WC.DEPRECATED_ALIASES[t]];
  });
  var W4s = yn.TYPES = [].concat(Object.keys(Sa.VISITOR_KEYS), Object.keys(Sa.FLIPPED_ALIAS_KEYS), Object.keys(Sa.DEPRECATED_KEYS));
});

// ../node_modules/@babel/types/lib/validators/validate.js
var Eb = g((rd) => {
  "use strict";
  Object.defineProperty(rd, "__esModule", {
    value: !0
  });
  rd.default = VEe;
  rd.validateChild = aq;
  rd.validateField = nq;
  rd.validateInternal = WEe;
  var Vy = ba();
  function VEe(t, e, s) {
    if (!t) return;
    let r = Vy.NODE_FIELDS[t.type];
    if (!r) return;
    let i = r[e];
    nq(t, e, s, i), aq(t, e, s);
  }
  n(VEe, "validate");
  function WEe(t, e, s, r, i) {
    if (t != null && t.validate && !(t.optional && r == null) && (t.validate(e, s, r), i)) {
      var a;
      let o = r.type;
      if (o == null) return;
      (a = Vy.NODE_PARENT_VALIDATIONS[o]) == null || a.call(Vy.NODE_PARENT_VALIDATIONS, e, s, r);
    }
  }
  n(WEe, "validateInternal");
  function nq(t, e, s, r) {
    r != null && r.validate && (r.optional && s == null || r.validate(t, e, s));
  }
  n(nq, "validateField");
  function aq(t, e, s) {
    var r;
    let i = s?.type;
    i != null && ((r = Vy.NODE_PARENT_VALIDATIONS[i]) == null || r.call(Vy.NODE_PARENT_VALIDATIONS, t, e, s));
  }
  n(aq, "validateChild");
});

// ../node_modules/@babel/types/lib/builders/generated/lowercase.js
var HC = g((A) => {
  "use strict";
  Object.defineProperty(A, "__esModule", {
    value: !0
  });
  A.anyTypeAnnotation = E1e;
  A.argumentPlaceholder = Qve;
  A.arrayExpression = JEe;
  A.arrayPattern = KAe;
  A.arrayTypeAnnotation = A1e;
  A.arrowFunctionExpression = VAe;
  A.assignmentExpression = YEe;
  A.assignmentPattern = UAe;
  A.awaitExpression = p1e;
  A.bigIntLiteral = f1e;
  A.binaryExpression = XEe;
  A.bindExpression = Zve;
  A.blockStatement = ZEe;
  A.booleanLiteral = bAe;
  A.booleanLiteralTypeAnnotation = C1e;
  A.booleanTypeAnnotation = v1e;
  A.breakStatement = eAe;
  A.callExpression = tAe;
  A.catchClause = sAe;
  A.classAccessorProperty = T1e;
  A.classBody = WAe;
  A.classDeclaration = HAe;
  A.classExpression = $Ae;
  A.classImplements = I1e;
  A.classMethod = i1e;
  A.classPrivateMethod = x1e;
  A.classPrivateProperty = b1e;
  A.classProperty = g1e;
  A.conditionalExpression = rAe;
  A.continueStatement = iAe;
  A.debuggerStatement = nAe;
  A.decimalLiteral = aCe;
  A.declareClass = N1e;
  A.declareExportAllDeclaration = j1e;
  A.declareExportDeclaration = F1e;
  A.declareFunction = k1e;
  A.declareInterface = D1e;
  A.declareModule = O1e;
  A.declareModuleExports = _1e;
  A.declareOpaqueType = B1e;
  A.declareTypeAlias = L1e;
  A.declareVariable = M1e;
  A.declaredPredicate = R1e;
  A.decorator = tCe;
  A.directive = GEe;
  A.directiveLiteral = QEe;
  A.doExpression = sCe;
  A.doWhileStatement = aAe;
  A.emptyStatement = oAe;
  A.emptyTypeAnnotation = z1e;
  A.enumBooleanBody = Ave;
  A.enumBooleanMember = Ive;
  A.enumDeclaration = Eve;
  A.enumDefaultedMember = Dve;
  A.enumNumberBody = vve;
  A.enumNumberMember = Nve;
  A.enumStringBody = Cve;
  A.enumStringMember = kve;
  A.enumSymbolBody = wve;
  A.existsTypeAnnotation = q1e;
  A.exportAllDeclaration = JAe;
  A.exportDefaultDeclaration = YAe;
  A.exportDefaultSpecifier = rCe;
  A.exportNamedDeclaration = XAe;
  A.exportNamespaceSpecifier = d1e;
  A.exportSpecifier = zAe;
  A.expressionStatement = lAe;
  A.file = uAe;
  A.forInStatement = cAe;
  A.forOfStatement = GAe;
  A.forStatement = pAe;
  A.functionDeclaration = hAe;
  A.functionExpression = fAe;
  A.functionTypeAnnotation = U1e;
  A.functionTypeParam = K1e;
  A.genericTypeAnnotation = V1e;
  A.identifier = dAe;
  A.ifStatement = mAe;
  A.import = h1e;
  A.importAttribute = eCe;
  A.importDeclaration = QAe;
  A.importDefaultSpecifier = ZAe;
  A.importExpression = s1e;
  A.importNamespaceSpecifier = e1e;
  A.importSpecifier = t1e;
  A.indexedAccessType = Ove;
  A.inferredPredicate = W1e;
  A.interfaceDeclaration = H1e;
  A.interfaceExtends = $1e;
  A.interfaceTypeAnnotation = J1e;
  A.interpreterDirective = zEe;
  A.intersectionTypeAnnotation = Y1e;
  A.jSXAttribute = A.jsxAttribute = Lve;
  A.jSXClosingElement = A.jsxClosingElement = Bve;
  A.jSXClosingFragment = A.jsxClosingFragment = Yve;
  A.jSXElement = A.jsxElement = Mve;
  A.jSXEmptyExpression = A.jsxEmptyExpression = Fve;
  A.jSXExpressionContainer = A.jsxExpressionContainer = jve;
  A.jSXFragment = A.jsxFragment = Hve;
  A.jSXIdentifier = A.jsxIdentifier = qve;
  A.jSXMemberExpression = A.jsxMemberExpression = Uve;
  A.jSXNamespacedName = A.jsxNamespacedName = Kve;
  A.jSXOpeningElement = A.jsxOpeningElement = Vve;
  A.jSXOpeningFragment = A.jsxOpeningFragment = Jve;
  A.jSXSpreadAttribute = A.jsxSpreadAttribute = Wve;
  A.jSXSpreadChild = A.jsxSpreadChild = Rve;
  A.jSXText = A.jsxText = $ve;
  A.labeledStatement = yAe;
  A.logicalExpression = xAe;
  A.memberExpression = SAe;
  A.metaProperty = r1e;
  A.mixedTypeAnnotation = X1e;
  A.moduleExpression = oCe;
  A.newExpression = PAe;
  A.noop = Xve;
  A.nullLiteral = TAe;
  A.nullLiteralTypeAnnotation = w1e;
  A.nullableTypeAnnotation = G1e;
  A.numberLiteral = vwe;
  A.numberLiteralTypeAnnotation = Q1e;
  A.numberTypeAnnotation = Z1e;
  A.numericLiteral = oq;
  A.objectExpression = AAe;
  A.objectMethod = vAe;
  A.objectPattern = n1e;
  A.objectProperty = CAe;
  A.objectTypeAnnotation = eve;
  A.objectTypeCallProperty = sve;
  A.objectTypeIndexer = rve;
  A.objectTypeInternalSlot = tve;
  A.objectTypeProperty = ive;
  A.objectTypeSpreadProperty = nve;
  A.opaqueType = ave;
  A.optionalCallExpression = y1e;
  A.optionalIndexedAccessType = _ve;
  A.optionalMemberExpression = m1e;
  A.parenthesizedExpression = NAe;
  A.pipelineBareFunction = cCe;
  A.pipelinePrimaryTopicReference = pCe;
  A.pipelineTopicExpression = uCe;
  A.placeholder = zve;
  A.privateName = S1e;
  A.program = EAe;
  A.qualifiedTypeIdentifier = ove;
  A.recordExpression = iCe;
  A.regExpLiteral = lq;
  A.regexLiteral = Cwe;
  A.restElement = uq;
  A.restProperty = wwe;
  A.returnStatement = wAe;
  A.sequenceExpression = IAe;
  A.spreadElement = cq;
  A.spreadProperty = Iwe;
  A.staticBlock = P1e;
  A.stringLiteral = gAe;
  A.stringLiteralTypeAnnotation = lve;
  A.stringTypeAnnotation = uve;
  A.super = a1e;
  A.switchCase = kAe;
  A.switchStatement = DAe;
  A.symbolTypeAnnotation = cve;
  A.taggedTemplateExpression = o1e;
  A.templateElement = l1e;
  A.templateLiteral = u1e;
  A.thisExpression = OAe;
  A.thisTypeAnnotation = pve;
  A.throwStatement = _Ae;
  A.topicReference = lCe;
  A.tryStatement = LAe;
  A.tSAnyKeyword = A.tsAnyKeyword = SCe;
  A.tSArrayType = A.tsArrayType = UCe;
  A.tSAsExpression = A.tsAsExpression = owe;
  A.tSBigIntKeyword = A.tsBigIntKeyword = ECe;
  A.tSBooleanKeyword = A.tsBooleanKeyword = PCe;
  A.tSCallSignatureDeclaration = A.tsCallSignatureDeclaration = yCe;
  A.tSConditionalType = A.tsConditionalType = YCe;
  A.tSConstructSignatureDeclaration = A.tsConstructSignatureDeclaration = gCe;
  A.tSConstructorType = A.tsConstructorType = MCe;
  A.tSDeclareFunction = A.tsDeclareFunction = fCe;
  A.tSDeclareMethod = A.tsDeclareMethod = dCe;
  A.tSEnumBody = A.tsEnumBody = cwe;
  A.tSEnumDeclaration = A.tsEnumDeclaration = pwe;
  A.tSEnumMember = A.tsEnumMember = hwe;
  A.tSExportAssignment = A.tsExportAssignment = bwe;
  A.tSExpressionWithTypeArguments = A.tsExpressionWithTypeArguments = swe;
  A.tSExternalModuleReference = A.tsExternalModuleReference = gwe;
  A.tSFunctionType = A.tsFunctionType = BCe;
  A.tSImportEqualsDeclaration = A.tsImportEqualsDeclaration = ywe;
  A.tSImportType = A.tsImportType = mwe;
  A.tSIndexSignature = A.tsIndexSignature = xCe;
  A.tSIndexedAccessType = A.tsIndexedAccessType = QCe;
  A.tSInferType = A.tsInferType = XCe;
  A.tSInstantiationExpression = A.tsInstantiationExpression = awe;
  A.tSInterfaceBody = A.tsInterfaceBody = iwe;
  A.tSInterfaceDeclaration = A.tsInterfaceDeclaration = rwe;
  A.tSIntersectionType = A.tsIntersectionType = JCe;
  A.tSIntrinsicKeyword = A.tsIntrinsicKeyword = ACe;
  A.tSLiteralType = A.tsLiteralType = twe;
  A.tSMappedType = A.tsMappedType = ZCe;
  A.tSMethodSignature = A.tsMethodSignature = bCe;
  A.tSModuleBlock = A.tsModuleBlock = dwe;
  A.tSModuleDeclaration = A.tsModuleDeclaration = fwe;
  A.tSNamedTupleMember = A.tsNamedTupleMember = $Ce;
  A.tSNamespaceExportDeclaration = A.tsNamespaceExportDeclaration = xwe;
  A.tSNeverKeyword = A.tsNeverKeyword = vCe;
  A.tSNonNullExpression = A.tsNonNullExpression = Twe;
  A.tSNullKeyword = A.tsNullKeyword = CCe;
  A.tSNumberKeyword = A.tsNumberKeyword = wCe;
  A.tSObjectKeyword = A.tsObjectKeyword = ICe;
  A.tSOptionalType = A.tsOptionalType = VCe;
  A.tSParameterProperty = A.tsParameterProperty = hCe;
  A.tSParenthesizedType = A.tsParenthesizedType = zCe;
  A.tSPropertySignature = A.tsPropertySignature = TCe;
  A.tSQualifiedName = A.tsQualifiedName = mCe;
  A.tSRestType = A.tsRestType = WCe;
  A.tSSatisfiesExpression = A.tsSatisfiesExpression = lwe;
  A.tSStringKeyword = A.tsStringKeyword = NCe;
  A.tSSymbolKeyword = A.tsSymbolKeyword = kCe;
  A.tSTemplateLiteralType = A.tsTemplateLiteralType = ewe;
  A.tSThisType = A.tsThisType = LCe;
  A.tSTupleType = A.tsTupleType = KCe;
  A.tSTypeAliasDeclaration = A.tsTypeAliasDeclaration = nwe;
  A.tSTypeAnnotation = A.tsTypeAnnotation = Swe;
  A.tSTypeAssertion = A.tsTypeAssertion = uwe;
  A.tSTypeLiteral = A.tsTypeLiteral = qCe;
  A.tSTypeOperator = A.tsTypeOperator = GCe;
  A.tSTypeParameter = A.tsTypeParameter = Awe;
  A.tSTypeParameterDeclaration = A.tsTypeParameterDeclaration = Ewe;
  A.tSTypeParameterInstantiation = A.tsTypeParameterInstantiation = Pwe;
  A.tSTypePredicate = A.tsTypePredicate = jCe;
  A.tSTypeQuery = A.tsTypeQuery = RCe;
  A.tSTypeReference = A.tsTypeReference = FCe;
  A.tSUndefinedKeyword = A.tsUndefinedKeyword = DCe;
  A.tSUnionType = A.tsUnionType = HCe;
  A.tSUnknownKeyword = A.tsUnknownKeyword = OCe;
  A.tSVoidKeyword = A.tsVoidKeyword = _Ce;
  A.tupleExpression = nCe;
  A.tupleTypeAnnotation = hve;
  A.typeAlias = dve;
  A.typeAnnotation = mve;
  A.typeCastExpression = yve;
  A.typeParameter = gve;
  A.typeParameterDeclaration = Tve;
  A.typeParameterInstantiation = bve;
  A.typeofTypeAnnotation = fve;
  A.unaryExpression = BAe;
  A.unionTypeAnnotation = xve;
  A.updateExpression = MAe;
  A.v8IntrinsicIdentifier = Gve;
  A.variableDeclaration = FAe;
  A.variableDeclarator = jAe;
  A.variance = Sve;
  A.voidTypeAnnotation = Pve;
  A.whileStatement = RAe;
  A.withStatement = qAe;
  A.yieldExpression = c1e;
  var $Ee = Eb(), Ib = By(), HEe = Xo(), {
    validateInternal: x
  } = $Ee, {
    NODE_FIELDS: re
  } = HEe;
  function JEe(t = []) {
    let e = {
      type: "ArrayExpression",
      elements: t
    }, s = re.ArrayExpression;
    return x(s.elements, e, "elements", t, 1), e;
  }
  n(JEe, "arrayExpression");
  function YEe(t, e, s) {
    let r = {
      type: "AssignmentExpression",
      operator: t,
      left: e,
      right: s
    }, i = re.AssignmentExpression;
    return x(i.operator, r, "operator", t), x(i.left, r, "left", e, 1), x(i.right, r, "right", s, 1), r;
  }
  n(YEe, "assignmentExpression");
  function XEe(t, e, s) {
    let r = {
      type: "BinaryExpression",
      operator: t,
      left: e,
      right: s
    }, i = re.BinaryExpression;
    return x(i.operator, r, "operator", t), x(i.left, r, "left", e, 1), x(i.right, r, "right", s, 1), r;
  }
  n(XEe, "binaryExpression");
  function zEe(t) {
    let e = {
      type: "InterpreterDirective",
      value: t
    }, s = re.InterpreterDirective;
    return x(s.value, e, "value", t), e;
  }
  n(zEe, "interpreterDirective");
  function GEe(t) {
    let e = {
      type: "Directive",
      value: t
    }, s = re.Directive;
    return x(s.value, e, "value", t, 1), e;
  }
  n(GEe, "directive");
  function QEe(t) {
    let e = {
      type: "DirectiveLiteral",
      value: t
    }, s = re.DirectiveLiteral;
    return x(s.value, e, "value", t), e;
  }
  n(QEe, "directiveLiteral");
  function ZEe(t, e = []) {
    let s = {
      type: "BlockStatement",
      body: t,
      directives: e
    }, r = re.BlockStatement;
    return x(r.body, s, "body", t, 1), x(r.directives, s, "directives", e, 1), s;
  }
  n(ZEe, "blockStatement");
  function eAe(t = null) {
    let e = {
      type: "BreakStatement",
      label: t
    }, s = re.BreakStatement;
    return x(s.label, e, "label", t, 1), e;
  }
  n(eAe, "breakStatement");
  function tAe(t, e) {
    let s = {
      type: "CallExpression",
      callee: t,
      arguments: e
    }, r = re.CallExpression;
    return x(r.callee, s, "callee", t, 1), x(r.arguments, s, "arguments", e, 1), s;
  }
  n(tAe, "callExpression");
  function sAe(t = null, e) {
    let s = {
      type: "CatchClause",
      param: t,
      body: e
    }, r = re.CatchClause;
    return x(r.param, s, "param", t, 1), x(r.body, s, "body", e, 1), s;
  }
  n(sAe, "catchClause");
  function rAe(t, e, s) {
    let r = {
      type: "ConditionalExpression",
      test: t,
      consequent: e,
      alternate: s
    }, i = re.ConditionalExpression;
    return x(i.test, r, "test", t, 1), x(i.consequent, r, "consequent", e, 1), x(i.alternate, r, "alternate", s, 1), r;
  }
  n(rAe, "conditionalExpression");
  function iAe(t = null) {
    let e = {
      type: "ContinueStatement",
      label: t
    }, s = re.ContinueStatement;
    return x(s.label, e, "label", t, 1), e;
  }
  n(iAe, "continueStatement");
  function nAe() {
    return {
      type: "DebuggerStatement"
    };
  }
  n(nAe, "debuggerStatement");
  function aAe(t, e) {
    let s = {
      type: "DoWhileStatement",
      test: t,
      body: e
    }, r = re.DoWhileStatement;
    return x(r.test, s, "test", t, 1), x(r.body, s, "body", e, 1), s;
  }
  n(aAe, "doWhileStatement");
  function oAe() {
    return {
      type: "EmptyStatement"
    };
  }
  n(oAe, "emptyStatement");
  function lAe(t) {
    let e = {
      type: "ExpressionStatement",
      expression: t
    }, s = re.ExpressionStatement;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(lAe, "expressionStatement");
  function uAe(t, e = null, s = null) {
    let r = {
      type: "File",
      program: t,
      comments: e,
      tokens: s
    }, i = re.File;
    return x(i.program, r, "program", t, 1), x(i.comments, r, "comments", e, 1), x(i.tokens, r, "tokens", s), r;
  }
  n(uAe, "file");
  function cAe(t, e, s) {
    let r = {
      type: "ForInStatement",
      left: t,
      right: e,
      body: s
    }, i = re.ForInStatement;
    return x(i.left, r, "left", t, 1), x(i.right, r, "right", e, 1), x(i.body, r, "body", s, 1), r;
  }
  n(cAe, "forInStatement");
  function pAe(t = null, e = null, s = null, r) {
    let i = {
      type: "ForStatement",
      init: t,
      test: e,
      update: s,
      body: r
    }, a = re.ForStatement;
    return x(a.init, i, "init", t, 1), x(a.test, i, "test", e, 1), x(a.update, i, "update", s, 1), x(a.body, i, "body", r, 1), i;
  }
  n(pAe, "forStatement");
  function hAe(t = null, e, s, r = !1, i = !1) {
    let a = {
      type: "FunctionDeclaration",
      id: t,
      params: e,
      body: s,
      generator: r,
      async: i
    }, o = re.FunctionDeclaration;
    return x(o.id, a, "id", t, 1), x(o.params, a, "params", e, 1), x(o.body, a, "body", s, 1), x(o.generator, a, "generator", r), x(o.async,
    a, "async", i), a;
  }
  n(hAe, "functionDeclaration");
  function fAe(t = null, e, s, r = !1, i = !1) {
    let a = {
      type: "FunctionExpression",
      id: t,
      params: e,
      body: s,
      generator: r,
      async: i
    }, o = re.FunctionExpression;
    return x(o.id, a, "id", t, 1), x(o.params, a, "params", e, 1), x(o.body, a, "body", s, 1), x(o.generator, a, "generator", r), x(o.async,
    a, "async", i), a;
  }
  n(fAe, "functionExpression");
  function dAe(t) {
    let e = {
      type: "Identifier",
      name: t
    }, s = re.Identifier;
    return x(s.name, e, "name", t), e;
  }
  n(dAe, "identifier");
  function mAe(t, e, s = null) {
    let r = {
      type: "IfStatement",
      test: t,
      consequent: e,
      alternate: s
    }, i = re.IfStatement;
    return x(i.test, r, "test", t, 1), x(i.consequent, r, "consequent", e, 1), x(i.alternate, r, "alternate", s, 1), r;
  }
  n(mAe, "ifStatement");
  function yAe(t, e) {
    let s = {
      type: "LabeledStatement",
      label: t,
      body: e
    }, r = re.LabeledStatement;
    return x(r.label, s, "label", t, 1), x(r.body, s, "body", e, 1), s;
  }
  n(yAe, "labeledStatement");
  function gAe(t) {
    let e = {
      type: "StringLiteral",
      value: t
    }, s = re.StringLiteral;
    return x(s.value, e, "value", t), e;
  }
  n(gAe, "stringLiteral");
  function oq(t) {
    let e = {
      type: "NumericLiteral",
      value: t
    }, s = re.NumericLiteral;
    return x(s.value, e, "value", t), e;
  }
  n(oq, "numericLiteral");
  function TAe() {
    return {
      type: "NullLiteral"
    };
  }
  n(TAe, "nullLiteral");
  function bAe(t) {
    let e = {
      type: "BooleanLiteral",
      value: t
    }, s = re.BooleanLiteral;
    return x(s.value, e, "value", t), e;
  }
  n(bAe, "booleanLiteral");
  function lq(t, e = "") {
    let s = {
      type: "RegExpLiteral",
      pattern: t,
      flags: e
    }, r = re.RegExpLiteral;
    return x(r.pattern, s, "pattern", t), x(r.flags, s, "flags", e), s;
  }
  n(lq, "regExpLiteral");
  function xAe(t, e, s) {
    let r = {
      type: "LogicalExpression",
      operator: t,
      left: e,
      right: s
    }, i = re.LogicalExpression;
    return x(i.operator, r, "operator", t), x(i.left, r, "left", e, 1), x(i.right, r, "right", s, 1), r;
  }
  n(xAe, "logicalExpression");
  function SAe(t, e, s = !1, r = null) {
    let i = {
      type: "MemberExpression",
      object: t,
      property: e,
      computed: s,
      optional: r
    }, a = re.MemberExpression;
    return x(a.object, i, "object", t, 1), x(a.property, i, "property", e, 1), x(a.computed, i, "computed", s), x(a.optional, i, "optional",
    r), i;
  }
  n(SAe, "memberExpression");
  function PAe(t, e) {
    let s = {
      type: "NewExpression",
      callee: t,
      arguments: e
    }, r = re.NewExpression;
    return x(r.callee, s, "callee", t, 1), x(r.arguments, s, "arguments", e, 1), s;
  }
  n(PAe, "newExpression");
  function EAe(t, e = [], s = "script", r = null) {
    let i = {
      type: "Program",
      body: t,
      directives: e,
      sourceType: s,
      interpreter: r
    }, a = re.Program;
    return x(a.body, i, "body", t, 1), x(a.directives, i, "directives", e, 1), x(a.sourceType, i, "sourceType", s), x(a.interpreter, i, "int\
erpreter", r, 1), i;
  }
  n(EAe, "program");
  function AAe(t) {
    let e = {
      type: "ObjectExpression",
      properties: t
    }, s = re.ObjectExpression;
    return x(s.properties, e, "properties", t, 1), e;
  }
  n(AAe, "objectExpression");
  function vAe(t = "method", e, s, r, i = !1, a = !1, o = !1) {
    let l = {
      type: "ObjectMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      computed: i,
      generator: a,
      async: o
    }, u = re.ObjectMethod;
    return x(u.kind, l, "kind", t), x(u.key, l, "key", e, 1), x(u.params, l, "params", s, 1), x(u.body, l, "body", r, 1), x(u.computed, l, "\
computed", i), x(u.generator, l, "generator", a), x(u.async, l, "async", o), l;
  }
  n(vAe, "objectMethod");
  function CAe(t, e, s = !1, r = !1, i = null) {
    let a = {
      type: "ObjectProperty",
      key: t,
      value: e,
      computed: s,
      shorthand: r,
      decorators: i
    }, o = re.ObjectProperty;
    return x(o.key, a, "key", t, 1), x(o.value, a, "value", e, 1), x(o.computed, a, "computed", s), x(o.shorthand, a, "shorthand", r), x(o.decorators,
    a, "decorators", i, 1), a;
  }
  n(CAe, "objectProperty");
  function uq(t) {
    let e = {
      type: "RestElement",
      argument: t
    }, s = re.RestElement;
    return x(s.argument, e, "argument", t, 1), e;
  }
  n(uq, "restElement");
  function wAe(t = null) {
    let e = {
      type: "ReturnStatement",
      argument: t
    }, s = re.ReturnStatement;
    return x(s.argument, e, "argument", t, 1), e;
  }
  n(wAe, "returnStatement");
  function IAe(t) {
    let e = {
      type: "SequenceExpression",
      expressions: t
    }, s = re.SequenceExpression;
    return x(s.expressions, e, "expressions", t, 1), e;
  }
  n(IAe, "sequenceExpression");
  function NAe(t) {
    let e = {
      type: "ParenthesizedExpression",
      expression: t
    }, s = re.ParenthesizedExpression;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(NAe, "parenthesizedExpression");
  function kAe(t = null, e) {
    let s = {
      type: "SwitchCase",
      test: t,
      consequent: e
    }, r = re.SwitchCase;
    return x(r.test, s, "test", t, 1), x(r.consequent, s, "consequent", e, 1), s;
  }
  n(kAe, "switchCase");
  function DAe(t, e) {
    let s = {
      type: "SwitchStatement",
      discriminant: t,
      cases: e
    }, r = re.SwitchStatement;
    return x(r.discriminant, s, "discriminant", t, 1), x(r.cases, s, "cases", e, 1), s;
  }
  n(DAe, "switchStatement");
  function OAe() {
    return {
      type: "ThisExpression"
    };
  }
  n(OAe, "thisExpression");
  function _Ae(t) {
    let e = {
      type: "ThrowStatement",
      argument: t
    }, s = re.ThrowStatement;
    return x(s.argument, e, "argument", t, 1), e;
  }
  n(_Ae, "throwStatement");
  function LAe(t, e = null, s = null) {
    let r = {
      type: "TryStatement",
      block: t,
      handler: e,
      finalizer: s
    }, i = re.TryStatement;
    return x(i.block, r, "block", t, 1), x(i.handler, r, "handler", e, 1), x(i.finalizer, r, "finalizer", s, 1), r;
  }
  n(LAe, "tryStatement");
  function BAe(t, e, s = !0) {
    let r = {
      type: "UnaryExpression",
      operator: t,
      argument: e,
      prefix: s
    }, i = re.UnaryExpression;
    return x(i.operator, r, "operator", t), x(i.argument, r, "argument", e, 1), x(i.prefix, r, "prefix", s), r;
  }
  n(BAe, "unaryExpression");
  function MAe(t, e, s = !1) {
    let r = {
      type: "UpdateExpression",
      operator: t,
      argument: e,
      prefix: s
    }, i = re.UpdateExpression;
    return x(i.operator, r, "operator", t), x(i.argument, r, "argument", e, 1), x(i.prefix, r, "prefix", s), r;
  }
  n(MAe, "updateExpression");
  function FAe(t, e) {
    let s = {
      type: "VariableDeclaration",
      kind: t,
      declarations: e
    }, r = re.VariableDeclaration;
    return x(r.kind, s, "kind", t), x(r.declarations, s, "declarations", e, 1), s;
  }
  n(FAe, "variableDeclaration");
  function jAe(t, e = null) {
    let s = {
      type: "VariableDeclarator",
      id: t,
      init: e
    }, r = re.VariableDeclarator;
    return x(r.id, s, "id", t, 1), x(r.init, s, "init", e, 1), s;
  }
  n(jAe, "variableDeclarator");
  function RAe(t, e) {
    let s = {
      type: "WhileStatement",
      test: t,
      body: e
    }, r = re.WhileStatement;
    return x(r.test, s, "test", t, 1), x(r.body, s, "body", e, 1), s;
  }
  n(RAe, "whileStatement");
  function qAe(t, e) {
    let s = {
      type: "WithStatement",
      object: t,
      body: e
    }, r = re.WithStatement;
    return x(r.object, s, "object", t, 1), x(r.body, s, "body", e, 1), s;
  }
  n(qAe, "withStatement");
  function UAe(t, e) {
    let s = {
      type: "AssignmentPattern",
      left: t,
      right: e
    }, r = re.AssignmentPattern;
    return x(r.left, s, "left", t, 1), x(r.right, s, "right", e, 1), s;
  }
  n(UAe, "assignmentPattern");
  function KAe(t) {
    let e = {
      type: "ArrayPattern",
      elements: t
    }, s = re.ArrayPattern;
    return x(s.elements, e, "elements", t, 1), e;
  }
  n(KAe, "arrayPattern");
  function VAe(t, e, s = !1) {
    let r = {
      type: "ArrowFunctionExpression",
      params: t,
      body: e,
      async: s,
      expression: null
    }, i = re.ArrowFunctionExpression;
    return x(i.params, r, "params", t, 1), x(i.body, r, "body", e, 1), x(i.async, r, "async", s), r;
  }
  n(VAe, "arrowFunctionExpression");
  function WAe(t) {
    let e = {
      type: "ClassBody",
      body: t
    }, s = re.ClassBody;
    return x(s.body, e, "body", t, 1), e;
  }
  n(WAe, "classBody");
  function $Ae(t = null, e = null, s, r = null) {
    let i = {
      type: "ClassExpression",
      id: t,
      superClass: e,
      body: s,
      decorators: r
    }, a = re.ClassExpression;
    return x(a.id, i, "id", t, 1), x(a.superClass, i, "superClass", e, 1), x(a.body, i, "body", s, 1), x(a.decorators, i, "decorators", r, 1),
    i;
  }
  n($Ae, "classExpression");
  function HAe(t = null, e = null, s, r = null) {
    let i = {
      type: "ClassDeclaration",
      id: t,
      superClass: e,
      body: s,
      decorators: r
    }, a = re.ClassDeclaration;
    return x(a.id, i, "id", t, 1), x(a.superClass, i, "superClass", e, 1), x(a.body, i, "body", s, 1), x(a.decorators, i, "decorators", r, 1),
    i;
  }
  n(HAe, "classDeclaration");
  function JAe(t) {
    let e = {
      type: "ExportAllDeclaration",
      source: t
    }, s = re.ExportAllDeclaration;
    return x(s.source, e, "source", t, 1), e;
  }
  n(JAe, "exportAllDeclaration");
  function YAe(t) {
    let e = {
      type: "ExportDefaultDeclaration",
      declaration: t
    }, s = re.ExportDefaultDeclaration;
    return x(s.declaration, e, "declaration", t, 1), e;
  }
  n(YAe, "exportDefaultDeclaration");
  function XAe(t = null, e = [], s = null) {
    let r = {
      type: "ExportNamedDeclaration",
      declaration: t,
      specifiers: e,
      source: s
    }, i = re.ExportNamedDeclaration;
    return x(i.declaration, r, "declaration", t, 1), x(i.specifiers, r, "specifiers", e, 1), x(i.source, r, "source", s, 1), r;
  }
  n(XAe, "exportNamedDeclaration");
  function zAe(t, e) {
    let s = {
      type: "ExportSpecifier",
      local: t,
      exported: e
    }, r = re.ExportSpecifier;
    return x(r.local, s, "local", t, 1), x(r.exported, s, "exported", e, 1), s;
  }
  n(zAe, "exportSpecifier");
  function GAe(t, e, s, r = !1) {
    let i = {
      type: "ForOfStatement",
      left: t,
      right: e,
      body: s,
      await: r
    }, a = re.ForOfStatement;
    return x(a.left, i, "left", t, 1), x(a.right, i, "right", e, 1), x(a.body, i, "body", s, 1), x(a.await, i, "await", r), i;
  }
  n(GAe, "forOfStatement");
  function QAe(t, e) {
    let s = {
      type: "ImportDeclaration",
      specifiers: t,
      source: e
    }, r = re.ImportDeclaration;
    return x(r.specifiers, s, "specifiers", t, 1), x(r.source, s, "source", e, 1), s;
  }
  n(QAe, "importDeclaration");
  function ZAe(t) {
    let e = {
      type: "ImportDefaultSpecifier",
      local: t
    }, s = re.ImportDefaultSpecifier;
    return x(s.local, e, "local", t, 1), e;
  }
  n(ZAe, "importDefaultSpecifier");
  function e1e(t) {
    let e = {
      type: "ImportNamespaceSpecifier",
      local: t
    }, s = re.ImportNamespaceSpecifier;
    return x(s.local, e, "local", t, 1), e;
  }
  n(e1e, "importNamespaceSpecifier");
  function t1e(t, e) {
    let s = {
      type: "ImportSpecifier",
      local: t,
      imported: e
    }, r = re.ImportSpecifier;
    return x(r.local, s, "local", t, 1), x(r.imported, s, "imported", e, 1), s;
  }
  n(t1e, "importSpecifier");
  function s1e(t, e = null) {
    let s = {
      type: "ImportExpression",
      source: t,
      options: e
    }, r = re.ImportExpression;
    return x(r.source, s, "source", t, 1), x(r.options, s, "options", e, 1), s;
  }
  n(s1e, "importExpression");
  function r1e(t, e) {
    let s = {
      type: "MetaProperty",
      meta: t,
      property: e
    }, r = re.MetaProperty;
    return x(r.meta, s, "meta", t, 1), x(r.property, s, "property", e, 1), s;
  }
  n(r1e, "metaProperty");
  function i1e(t = "method", e, s, r, i = !1, a = !1, o = !1, l = !1) {
    let u = {
      type: "ClassMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      computed: i,
      static: a,
      generator: o,
      async: l
    }, c = re.ClassMethod;
    return x(c.kind, u, "kind", t), x(c.key, u, "key", e, 1), x(c.params, u, "params", s, 1), x(c.body, u, "body", r, 1), x(c.computed, u, "\
computed", i), x(c.static, u, "static", a), x(c.generator, u, "generator", o), x(c.async, u, "async", l), u;
  }
  n(i1e, "classMethod");
  function n1e(t) {
    let e = {
      type: "ObjectPattern",
      properties: t
    }, s = re.ObjectPattern;
    return x(s.properties, e, "properties", t, 1), e;
  }
  n(n1e, "objectPattern");
  function cq(t) {
    let e = {
      type: "SpreadElement",
      argument: t
    }, s = re.SpreadElement;
    return x(s.argument, e, "argument", t, 1), e;
  }
  n(cq, "spreadElement");
  function a1e() {
    return {
      type: "Super"
    };
  }
  n(a1e, "_super");
  function o1e(t, e) {
    let s = {
      type: "TaggedTemplateExpression",
      tag: t,
      quasi: e
    }, r = re.TaggedTemplateExpression;
    return x(r.tag, s, "tag", t, 1), x(r.quasi, s, "quasi", e, 1), s;
  }
  n(o1e, "taggedTemplateExpression");
  function l1e(t, e = !1) {
    let s = {
      type: "TemplateElement",
      value: t,
      tail: e
    }, r = re.TemplateElement;
    return x(r.value, s, "value", t), x(r.tail, s, "tail", e), s;
  }
  n(l1e, "templateElement");
  function u1e(t, e) {
    let s = {
      type: "TemplateLiteral",
      quasis: t,
      expressions: e
    }, r = re.TemplateLiteral;
    return x(r.quasis, s, "quasis", t, 1), x(r.expressions, s, "expressions", e, 1), s;
  }
  n(u1e, "templateLiteral");
  function c1e(t = null, e = !1) {
    let s = {
      type: "YieldExpression",
      argument: t,
      delegate: e
    }, r = re.YieldExpression;
    return x(r.argument, s, "argument", t, 1), x(r.delegate, s, "delegate", e), s;
  }
  n(c1e, "yieldExpression");
  function p1e(t) {
    let e = {
      type: "AwaitExpression",
      argument: t
    }, s = re.AwaitExpression;
    return x(s.argument, e, "argument", t, 1), e;
  }
  n(p1e, "awaitExpression");
  function h1e() {
    return {
      type: "Import"
    };
  }
  n(h1e, "_import");
  function f1e(t) {
    let e = {
      type: "BigIntLiteral",
      value: t
    }, s = re.BigIntLiteral;
    return x(s.value, e, "value", t), e;
  }
  n(f1e, "bigIntLiteral");
  function d1e(t) {
    let e = {
      type: "ExportNamespaceSpecifier",
      exported: t
    }, s = re.ExportNamespaceSpecifier;
    return x(s.exported, e, "exported", t, 1), e;
  }
  n(d1e, "exportNamespaceSpecifier");
  function m1e(t, e, s = !1, r) {
    let i = {
      type: "OptionalMemberExpression",
      object: t,
      property: e,
      computed: s,
      optional: r
    }, a = re.OptionalMemberExpression;
    return x(a.object, i, "object", t, 1), x(a.property, i, "property", e, 1), x(a.computed, i, "computed", s), x(a.optional, i, "optional",
    r), i;
  }
  n(m1e, "optionalMemberExpression");
  function y1e(t, e, s) {
    let r = {
      type: "OptionalCallExpression",
      callee: t,
      arguments: e,
      optional: s
    }, i = re.OptionalCallExpression;
    return x(i.callee, r, "callee", t, 1), x(i.arguments, r, "arguments", e, 1), x(i.optional, r, "optional", s), r;
  }
  n(y1e, "optionalCallExpression");
  function g1e(t, e = null, s = null, r = null, i = !1, a = !1) {
    let o = {
      type: "ClassProperty",
      key: t,
      value: e,
      typeAnnotation: s,
      decorators: r,
      computed: i,
      static: a
    }, l = re.ClassProperty;
    return x(l.key, o, "key", t, 1), x(l.value, o, "value", e, 1), x(l.typeAnnotation, o, "typeAnnotation", s, 1), x(l.decorators, o, "decor\
ators", r, 1), x(l.computed, o, "computed", i), x(l.static, o, "static", a), o;
  }
  n(g1e, "classProperty");
  function T1e(t, e = null, s = null, r = null, i = !1, a = !1) {
    let o = {
      type: "ClassAccessorProperty",
      key: t,
      value: e,
      typeAnnotation: s,
      decorators: r,
      computed: i,
      static: a
    }, l = re.ClassAccessorProperty;
    return x(l.key, o, "key", t, 1), x(l.value, o, "value", e, 1), x(l.typeAnnotation, o, "typeAnnotation", s, 1), x(l.decorators, o, "decor\
ators", r, 1), x(l.computed, o, "computed", i), x(l.static, o, "static", a), o;
  }
  n(T1e, "classAccessorProperty");
  function b1e(t, e = null, s = null, r = !1) {
    let i = {
      type: "ClassPrivateProperty",
      key: t,
      value: e,
      decorators: s,
      static: r
    }, a = re.ClassPrivateProperty;
    return x(a.key, i, "key", t, 1), x(a.value, i, "value", e, 1), x(a.decorators, i, "decorators", s, 1), x(a.static, i, "static", r), i;
  }
  n(b1e, "classPrivateProperty");
  function x1e(t = "method", e, s, r, i = !1) {
    let a = {
      type: "ClassPrivateMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      static: i
    }, o = re.ClassPrivateMethod;
    return x(o.kind, a, "kind", t), x(o.key, a, "key", e, 1), x(o.params, a, "params", s, 1), x(o.body, a, "body", r, 1), x(o.static, a, "st\
atic", i), a;
  }
  n(x1e, "classPrivateMethod");
  function S1e(t) {
    let e = {
      type: "PrivateName",
      id: t
    }, s = re.PrivateName;
    return x(s.id, e, "id", t, 1), e;
  }
  n(S1e, "privateName");
  function P1e(t) {
    let e = {
      type: "StaticBlock",
      body: t
    }, s = re.StaticBlock;
    return x(s.body, e, "body", t, 1), e;
  }
  n(P1e, "staticBlock");
  function E1e() {
    return {
      type: "AnyTypeAnnotation"
    };
  }
  n(E1e, "anyTypeAnnotation");
  function A1e(t) {
    let e = {
      type: "ArrayTypeAnnotation",
      elementType: t
    }, s = re.ArrayTypeAnnotation;
    return x(s.elementType, e, "elementType", t, 1), e;
  }
  n(A1e, "arrayTypeAnnotation");
  function v1e() {
    return {
      type: "BooleanTypeAnnotation"
    };
  }
  n(v1e, "booleanTypeAnnotation");
  function C1e(t) {
    let e = {
      type: "BooleanLiteralTypeAnnotation",
      value: t
    }, s = re.BooleanLiteralTypeAnnotation;
    return x(s.value, e, "value", t), e;
  }
  n(C1e, "booleanLiteralTypeAnnotation");
  function w1e() {
    return {
      type: "NullLiteralTypeAnnotation"
    };
  }
  n(w1e, "nullLiteralTypeAnnotation");
  function I1e(t, e = null) {
    let s = {
      type: "ClassImplements",
      id: t,
      typeParameters: e
    }, r = re.ClassImplements;
    return x(r.id, s, "id", t, 1), x(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(I1e, "classImplements");
  function N1e(t, e = null, s = null, r) {
    let i = {
      type: "DeclareClass",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = re.DeclareClass;
    return x(a.id, i, "id", t, 1), x(a.typeParameters, i, "typeParameters", e, 1), x(a.extends, i, "extends", s, 1), x(a.body, i, "body", r,
    1), i;
  }
  n(N1e, "declareClass");
  function k1e(t) {
    let e = {
      type: "DeclareFunction",
      id: t
    }, s = re.DeclareFunction;
    return x(s.id, e, "id", t, 1), e;
  }
  n(k1e, "declareFunction");
  function D1e(t, e = null, s = null, r) {
    let i = {
      type: "DeclareInterface",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = re.DeclareInterface;
    return x(a.id, i, "id", t, 1), x(a.typeParameters, i, "typeParameters", e, 1), x(a.extends, i, "extends", s, 1), x(a.body, i, "body", r,
    1), i;
  }
  n(D1e, "declareInterface");
  function O1e(t, e, s = null) {
    let r = {
      type: "DeclareModule",
      id: t,
      body: e,
      kind: s
    }, i = re.DeclareModule;
    return x(i.id, r, "id", t, 1), x(i.body, r, "body", e, 1), x(i.kind, r, "kind", s), r;
  }
  n(O1e, "declareModule");
  function _1e(t) {
    let e = {
      type: "DeclareModuleExports",
      typeAnnotation: t
    }, s = re.DeclareModuleExports;
    return x(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(_1e, "declareModuleExports");
  function L1e(t, e = null, s) {
    let r = {
      type: "DeclareTypeAlias",
      id: t,
      typeParameters: e,
      right: s
    }, i = re.DeclareTypeAlias;
    return x(i.id, r, "id", t, 1), x(i.typeParameters, r, "typeParameters", e, 1), x(i.right, r, "right", s, 1), r;
  }
  n(L1e, "declareTypeAlias");
  function B1e(t, e = null, s = null) {
    let r = {
      type: "DeclareOpaqueType",
      id: t,
      typeParameters: e,
      supertype: s
    }, i = re.DeclareOpaqueType;
    return x(i.id, r, "id", t, 1), x(i.typeParameters, r, "typeParameters", e, 1), x(i.supertype, r, "supertype", s, 1), r;
  }
  n(B1e, "declareOpaqueType");
  function M1e(t) {
    let e = {
      type: "DeclareVariable",
      id: t
    }, s = re.DeclareVariable;
    return x(s.id, e, "id", t, 1), e;
  }
  n(M1e, "declareVariable");
  function F1e(t = null, e = null, s = null, r = null) {
    let i = {
      type: "DeclareExportDeclaration",
      declaration: t,
      specifiers: e,
      source: s,
      attributes: r
    }, a = re.DeclareExportDeclaration;
    return x(a.declaration, i, "declaration", t, 1), x(a.specifiers, i, "specifiers", e, 1), x(a.source, i, "source", s, 1), x(a.attributes,
    i, "attributes", r, 1), i;
  }
  n(F1e, "declareExportDeclaration");
  function j1e(t, e = null) {
    let s = {
      type: "DeclareExportAllDeclaration",
      source: t,
      attributes: e
    }, r = re.DeclareExportAllDeclaration;
    return x(r.source, s, "source", t, 1), x(r.attributes, s, "attributes", e, 1), s;
  }
  n(j1e, "declareExportAllDeclaration");
  function R1e(t) {
    let e = {
      type: "DeclaredPredicate",
      value: t
    }, s = re.DeclaredPredicate;
    return x(s.value, e, "value", t, 1), e;
  }
  n(R1e, "declaredPredicate");
  function q1e() {
    return {
      type: "ExistsTypeAnnotation"
    };
  }
  n(q1e, "existsTypeAnnotation");
  function U1e(t = null, e, s = null, r) {
    let i = {
      type: "FunctionTypeAnnotation",
      typeParameters: t,
      params: e,
      rest: s,
      returnType: r
    }, a = re.FunctionTypeAnnotation;
    return x(a.typeParameters, i, "typeParameters", t, 1), x(a.params, i, "params", e, 1), x(a.rest, i, "rest", s, 1), x(a.returnType, i, "r\
eturnType", r, 1), i;
  }
  n(U1e, "functionTypeAnnotation");
  function K1e(t = null, e) {
    let s = {
      type: "FunctionTypeParam",
      name: t,
      typeAnnotation: e
    }, r = re.FunctionTypeParam;
    return x(r.name, s, "name", t, 1), x(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(K1e, "functionTypeParam");
  function V1e(t, e = null) {
    let s = {
      type: "GenericTypeAnnotation",
      id: t,
      typeParameters: e
    }, r = re.GenericTypeAnnotation;
    return x(r.id, s, "id", t, 1), x(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(V1e, "genericTypeAnnotation");
  function W1e() {
    return {
      type: "InferredPredicate"
    };
  }
  n(W1e, "inferredPredicate");
  function $1e(t, e = null) {
    let s = {
      type: "InterfaceExtends",
      id: t,
      typeParameters: e
    }, r = re.InterfaceExtends;
    return x(r.id, s, "id", t, 1), x(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n($1e, "interfaceExtends");
  function H1e(t, e = null, s = null, r) {
    let i = {
      type: "InterfaceDeclaration",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = re.InterfaceDeclaration;
    return x(a.id, i, "id", t, 1), x(a.typeParameters, i, "typeParameters", e, 1), x(a.extends, i, "extends", s, 1), x(a.body, i, "body", r,
    1), i;
  }
  n(H1e, "interfaceDeclaration");
  function J1e(t = null, e) {
    let s = {
      type: "InterfaceTypeAnnotation",
      extends: t,
      body: e
    }, r = re.InterfaceTypeAnnotation;
    return x(r.extends, s, "extends", t, 1), x(r.body, s, "body", e, 1), s;
  }
  n(J1e, "interfaceTypeAnnotation");
  function Y1e(t) {
    let e = {
      type: "IntersectionTypeAnnotation",
      types: t
    }, s = re.IntersectionTypeAnnotation;
    return x(s.types, e, "types", t, 1), e;
  }
  n(Y1e, "intersectionTypeAnnotation");
  function X1e() {
    return {
      type: "MixedTypeAnnotation"
    };
  }
  n(X1e, "mixedTypeAnnotation");
  function z1e() {
    return {
      type: "EmptyTypeAnnotation"
    };
  }
  n(z1e, "emptyTypeAnnotation");
  function G1e(t) {
    let e = {
      type: "NullableTypeAnnotation",
      typeAnnotation: t
    }, s = re.NullableTypeAnnotation;
    return x(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(G1e, "nullableTypeAnnotation");
  function Q1e(t) {
    let e = {
      type: "NumberLiteralTypeAnnotation",
      value: t
    }, s = re.NumberLiteralTypeAnnotation;
    return x(s.value, e, "value", t), e;
  }
  n(Q1e, "numberLiteralTypeAnnotation");
  function Z1e() {
    return {
      type: "NumberTypeAnnotation"
    };
  }
  n(Z1e, "numberTypeAnnotation");
  function eve(t, e = [], s = [], r = [], i = !1) {
    let a = {
      type: "ObjectTypeAnnotation",
      properties: t,
      indexers: e,
      callProperties: s,
      internalSlots: r,
      exact: i
    }, o = re.ObjectTypeAnnotation;
    return x(o.properties, a, "properties", t, 1), x(o.indexers, a, "indexers", e, 1), x(o.callProperties, a, "callProperties", s, 1), x(o.internalSlots,
    a, "internalSlots", r, 1), x(o.exact, a, "exact", i), a;
  }
  n(eve, "objectTypeAnnotation");
  function tve(t, e, s, r, i) {
    let a = {
      type: "ObjectTypeInternalSlot",
      id: t,
      value: e,
      optional: s,
      static: r,
      method: i
    }, o = re.ObjectTypeInternalSlot;
    return x(o.id, a, "id", t, 1), x(o.value, a, "value", e, 1), x(o.optional, a, "optional", s), x(o.static, a, "static", r), x(o.method, a,
    "method", i), a;
  }
  n(tve, "objectTypeInternalSlot");
  function sve(t) {
    let e = {
      type: "ObjectTypeCallProperty",
      value: t,
      static: null
    }, s = re.ObjectTypeCallProperty;
    return x(s.value, e, "value", t, 1), e;
  }
  n(sve, "objectTypeCallProperty");
  function rve(t = null, e, s, r = null) {
    let i = {
      type: "ObjectTypeIndexer",
      id: t,
      key: e,
      value: s,
      variance: r,
      static: null
    }, a = re.ObjectTypeIndexer;
    return x(a.id, i, "id", t, 1), x(a.key, i, "key", e, 1), x(a.value, i, "value", s, 1), x(a.variance, i, "variance", r, 1), i;
  }
  n(rve, "objectTypeIndexer");
  function ive(t, e, s = null) {
    let r = {
      type: "ObjectTypeProperty",
      key: t,
      value: e,
      variance: s,
      kind: null,
      method: null,
      optional: null,
      proto: null,
      static: null
    }, i = re.ObjectTypeProperty;
    return x(i.key, r, "key", t, 1), x(i.value, r, "value", e, 1), x(i.variance, r, "variance", s, 1), r;
  }
  n(ive, "objectTypeProperty");
  function nve(t) {
    let e = {
      type: "ObjectTypeSpreadProperty",
      argument: t
    }, s = re.ObjectTypeSpreadProperty;
    return x(s.argument, e, "argument", t, 1), e;
  }
  n(nve, "objectTypeSpreadProperty");
  function ave(t, e = null, s = null, r) {
    let i = {
      type: "OpaqueType",
      id: t,
      typeParameters: e,
      supertype: s,
      impltype: r
    }, a = re.OpaqueType;
    return x(a.id, i, "id", t, 1), x(a.typeParameters, i, "typeParameters", e, 1), x(a.supertype, i, "supertype", s, 1), x(a.impltype, i, "i\
mpltype", r, 1), i;
  }
  n(ave, "opaqueType");
  function ove(t, e) {
    let s = {
      type: "QualifiedTypeIdentifier",
      id: t,
      qualification: e
    }, r = re.QualifiedTypeIdentifier;
    return x(r.id, s, "id", t, 1), x(r.qualification, s, "qualification", e, 1), s;
  }
  n(ove, "qualifiedTypeIdentifier");
  function lve(t) {
    let e = {
      type: "StringLiteralTypeAnnotation",
      value: t
    }, s = re.StringLiteralTypeAnnotation;
    return x(s.value, e, "value", t), e;
  }
  n(lve, "stringLiteralTypeAnnotation");
  function uve() {
    return {
      type: "StringTypeAnnotation"
    };
  }
  n(uve, "stringTypeAnnotation");
  function cve() {
    return {
      type: "SymbolTypeAnnotation"
    };
  }
  n(cve, "symbolTypeAnnotation");
  function pve() {
    return {
      type: "ThisTypeAnnotation"
    };
  }
  n(pve, "thisTypeAnnotation");
  function hve(t) {
    let e = {
      type: "TupleTypeAnnotation",
      types: t
    }, s = re.TupleTypeAnnotation;
    return x(s.types, e, "types", t, 1), e;
  }
  n(hve, "tupleTypeAnnotation");
  function fve(t) {
    let e = {
      type: "TypeofTypeAnnotation",
      argument: t
    }, s = re.TypeofTypeAnnotation;
    return x(s.argument, e, "argument", t, 1), e;
  }
  n(fve, "typeofTypeAnnotation");
  function dve(t, e = null, s) {
    let r = {
      type: "TypeAlias",
      id: t,
      typeParameters: e,
      right: s
    }, i = re.TypeAlias;
    return x(i.id, r, "id", t, 1), x(i.typeParameters, r, "typeParameters", e, 1), x(i.right, r, "right", s, 1), r;
  }
  n(dve, "typeAlias");
  function mve(t) {
    let e = {
      type: "TypeAnnotation",
      typeAnnotation: t
    }, s = re.TypeAnnotation;
    return x(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(mve, "typeAnnotation");
  function yve(t, e) {
    let s = {
      type: "TypeCastExpression",
      expression: t,
      typeAnnotation: e
    }, r = re.TypeCastExpression;
    return x(r.expression, s, "expression", t, 1), x(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(yve, "typeCastExpression");
  function gve(t = null, e = null, s = null) {
    let r = {
      type: "TypeParameter",
      bound: t,
      default: e,
      variance: s,
      name: null
    }, i = re.TypeParameter;
    return x(i.bound, r, "bound", t, 1), x(i.default, r, "default", e, 1), x(i.variance, r, "variance", s, 1), r;
  }
  n(gve, "typeParameter");
  function Tve(t) {
    let e = {
      type: "TypeParameterDeclaration",
      params: t
    }, s = re.TypeParameterDeclaration;
    return x(s.params, e, "params", t, 1), e;
  }
  n(Tve, "typeParameterDeclaration");
  function bve(t) {
    let e = {
      type: "TypeParameterInstantiation",
      params: t
    }, s = re.TypeParameterInstantiation;
    return x(s.params, e, "params", t, 1), e;
  }
  n(bve, "typeParameterInstantiation");
  function xve(t) {
    let e = {
      type: "UnionTypeAnnotation",
      types: t
    }, s = re.UnionTypeAnnotation;
    return x(s.types, e, "types", t, 1), e;
  }
  n(xve, "unionTypeAnnotation");
  function Sve(t) {
    let e = {
      type: "Variance",
      kind: t
    }, s = re.Variance;
    return x(s.kind, e, "kind", t), e;
  }
  n(Sve, "variance");
  function Pve() {
    return {
      type: "VoidTypeAnnotation"
    };
  }
  n(Pve, "voidTypeAnnotation");
  function Eve(t, e) {
    let s = {
      type: "EnumDeclaration",
      id: t,
      body: e
    }, r = re.EnumDeclaration;
    return x(r.id, s, "id", t, 1), x(r.body, s, "body", e, 1), s;
  }
  n(Eve, "enumDeclaration");
  function Ave(t) {
    let e = {
      type: "EnumBooleanBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = re.EnumBooleanBody;
    return x(s.members, e, "members", t, 1), e;
  }
  n(Ave, "enumBooleanBody");
  function vve(t) {
    let e = {
      type: "EnumNumberBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = re.EnumNumberBody;
    return x(s.members, e, "members", t, 1), e;
  }
  n(vve, "enumNumberBody");
  function Cve(t) {
    let e = {
      type: "EnumStringBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = re.EnumStringBody;
    return x(s.members, e, "members", t, 1), e;
  }
  n(Cve, "enumStringBody");
  function wve(t) {
    let e = {
      type: "EnumSymbolBody",
      members: t,
      hasUnknownMembers: null
    }, s = re.EnumSymbolBody;
    return x(s.members, e, "members", t, 1), e;
  }
  n(wve, "enumSymbolBody");
  function Ive(t) {
    let e = {
      type: "EnumBooleanMember",
      id: t,
      init: null
    }, s = re.EnumBooleanMember;
    return x(s.id, e, "id", t, 1), e;
  }
  n(Ive, "enumBooleanMember");
  function Nve(t, e) {
    let s = {
      type: "EnumNumberMember",
      id: t,
      init: e
    }, r = re.EnumNumberMember;
    return x(r.id, s, "id", t, 1), x(r.init, s, "init", e, 1), s;
  }
  n(Nve, "enumNumberMember");
  function kve(t, e) {
    let s = {
      type: "EnumStringMember",
      id: t,
      init: e
    }, r = re.EnumStringMember;
    return x(r.id, s, "id", t, 1), x(r.init, s, "init", e, 1), s;
  }
  n(kve, "enumStringMember");
  function Dve(t) {
    let e = {
      type: "EnumDefaultedMember",
      id: t
    }, s = re.EnumDefaultedMember;
    return x(s.id, e, "id", t, 1), e;
  }
  n(Dve, "enumDefaultedMember");
  function Ove(t, e) {
    let s = {
      type: "IndexedAccessType",
      objectType: t,
      indexType: e
    }, r = re.IndexedAccessType;
    return x(r.objectType, s, "objectType", t, 1), x(r.indexType, s, "indexType", e, 1), s;
  }
  n(Ove, "indexedAccessType");
  function _ve(t, e) {
    let s = {
      type: "OptionalIndexedAccessType",
      objectType: t,
      indexType: e,
      optional: null
    }, r = re.OptionalIndexedAccessType;
    return x(r.objectType, s, "objectType", t, 1), x(r.indexType, s, "indexType", e, 1), s;
  }
  n(_ve, "optionalIndexedAccessType");
  function Lve(t, e = null) {
    let s = {
      type: "JSXAttribute",
      name: t,
      value: e
    }, r = re.JSXAttribute;
    return x(r.name, s, "name", t, 1), x(r.value, s, "value", e, 1), s;
  }
  n(Lve, "jsxAttribute");
  function Bve(t) {
    let e = {
      type: "JSXClosingElement",
      name: t
    }, s = re.JSXClosingElement;
    return x(s.name, e, "name", t, 1), e;
  }
  n(Bve, "jsxClosingElement");
  function Mve(t, e = null, s, r = null) {
    let i = {
      type: "JSXElement",
      openingElement: t,
      closingElement: e,
      children: s,
      selfClosing: r
    }, a = re.JSXElement;
    return x(a.openingElement, i, "openingElement", t, 1), x(a.closingElement, i, "closingElement", e, 1), x(a.children, i, "children", s, 1),
    x(a.selfClosing, i, "selfClosing", r), i;
  }
  n(Mve, "jsxElement");
  function Fve() {
    return {
      type: "JSXEmptyExpression"
    };
  }
  n(Fve, "jsxEmptyExpression");
  function jve(t) {
    let e = {
      type: "JSXExpressionContainer",
      expression: t
    }, s = re.JSXExpressionContainer;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(jve, "jsxExpressionContainer");
  function Rve(t) {
    let e = {
      type: "JSXSpreadChild",
      expression: t
    }, s = re.JSXSpreadChild;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(Rve, "jsxSpreadChild");
  function qve(t) {
    let e = {
      type: "JSXIdentifier",
      name: t
    }, s = re.JSXIdentifier;
    return x(s.name, e, "name", t), e;
  }
  n(qve, "jsxIdentifier");
  function Uve(t, e) {
    let s = {
      type: "JSXMemberExpression",
      object: t,
      property: e
    }, r = re.JSXMemberExpression;
    return x(r.object, s, "object", t, 1), x(r.property, s, "property", e, 1), s;
  }
  n(Uve, "jsxMemberExpression");
  function Kve(t, e) {
    let s = {
      type: "JSXNamespacedName",
      namespace: t,
      name: e
    }, r = re.JSXNamespacedName;
    return x(r.namespace, s, "namespace", t, 1), x(r.name, s, "name", e, 1), s;
  }
  n(Kve, "jsxNamespacedName");
  function Vve(t, e, s = !1) {
    let r = {
      type: "JSXOpeningElement",
      name: t,
      attributes: e,
      selfClosing: s
    }, i = re.JSXOpeningElement;
    return x(i.name, r, "name", t, 1), x(i.attributes, r, "attributes", e, 1), x(i.selfClosing, r, "selfClosing", s), r;
  }
  n(Vve, "jsxOpeningElement");
  function Wve(t) {
    let e = {
      type: "JSXSpreadAttribute",
      argument: t
    }, s = re.JSXSpreadAttribute;
    return x(s.argument, e, "argument", t, 1), e;
  }
  n(Wve, "jsxSpreadAttribute");
  function $ve(t) {
    let e = {
      type: "JSXText",
      value: t
    }, s = re.JSXText;
    return x(s.value, e, "value", t), e;
  }
  n($ve, "jsxText");
  function Hve(t, e, s) {
    let r = {
      type: "JSXFragment",
      openingFragment: t,
      closingFragment: e,
      children: s
    }, i = re.JSXFragment;
    return x(i.openingFragment, r, "openingFragment", t, 1), x(i.closingFragment, r, "closingFragment", e, 1), x(i.children, r, "children", s,
    1), r;
  }
  n(Hve, "jsxFragment");
  function Jve() {
    return {
      type: "JSXOpeningFragment"
    };
  }
  n(Jve, "jsxOpeningFragment");
  function Yve() {
    return {
      type: "JSXClosingFragment"
    };
  }
  n(Yve, "jsxClosingFragment");
  function Xve() {
    return {
      type: "Noop"
    };
  }
  n(Xve, "noop");
  function zve(t, e) {
    let s = {
      type: "Placeholder",
      expectedNode: t,
      name: e
    }, r = re.Placeholder;
    return x(r.expectedNode, s, "expectedNode", t), x(r.name, s, "name", e, 1), s;
  }
  n(zve, "placeholder");
  function Gve(t) {
    let e = {
      type: "V8IntrinsicIdentifier",
      name: t
    }, s = re.V8IntrinsicIdentifier;
    return x(s.name, e, "name", t), e;
  }
  n(Gve, "v8IntrinsicIdentifier");
  function Qve() {
    return {
      type: "ArgumentPlaceholder"
    };
  }
  n(Qve, "argumentPlaceholder");
  function Zve(t, e) {
    let s = {
      type: "BindExpression",
      object: t,
      callee: e
    }, r = re.BindExpression;
    return x(r.object, s, "object", t, 1), x(r.callee, s, "callee", e, 1), s;
  }
  n(Zve, "bindExpression");
  function eCe(t, e) {
    let s = {
      type: "ImportAttribute",
      key: t,
      value: e
    }, r = re.ImportAttribute;
    return x(r.key, s, "key", t, 1), x(r.value, s, "value", e, 1), s;
  }
  n(eCe, "importAttribute");
  function tCe(t) {
    let e = {
      type: "Decorator",
      expression: t
    }, s = re.Decorator;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(tCe, "decorator");
  function sCe(t, e = !1) {
    let s = {
      type: "DoExpression",
      body: t,
      async: e
    }, r = re.DoExpression;
    return x(r.body, s, "body", t, 1), x(r.async, s, "async", e), s;
  }
  n(sCe, "doExpression");
  function rCe(t) {
    let e = {
      type: "ExportDefaultSpecifier",
      exported: t
    }, s = re.ExportDefaultSpecifier;
    return x(s.exported, e, "exported", t, 1), e;
  }
  n(rCe, "exportDefaultSpecifier");
  function iCe(t) {
    let e = {
      type: "RecordExpression",
      properties: t
    }, s = re.RecordExpression;
    return x(s.properties, e, "properties", t, 1), e;
  }
  n(iCe, "recordExpression");
  function nCe(t = []) {
    let e = {
      type: "TupleExpression",
      elements: t
    }, s = re.TupleExpression;
    return x(s.elements, e, "elements", t, 1), e;
  }
  n(nCe, "tupleExpression");
  function aCe(t) {
    let e = {
      type: "DecimalLiteral",
      value: t
    }, s = re.DecimalLiteral;
    return x(s.value, e, "value", t), e;
  }
  n(aCe, "decimalLiteral");
  function oCe(t) {
    let e = {
      type: "ModuleExpression",
      body: t
    }, s = re.ModuleExpression;
    return x(s.body, e, "body", t, 1), e;
  }
  n(oCe, "moduleExpression");
  function lCe() {
    return {
      type: "TopicReference"
    };
  }
  n(lCe, "topicReference");
  function uCe(t) {
    let e = {
      type: "PipelineTopicExpression",
      expression: t
    }, s = re.PipelineTopicExpression;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(uCe, "pipelineTopicExpression");
  function cCe(t) {
    let e = {
      type: "PipelineBareFunction",
      callee: t
    }, s = re.PipelineBareFunction;
    return x(s.callee, e, "callee", t, 1), e;
  }
  n(cCe, "pipelineBareFunction");
  function pCe() {
    return {
      type: "PipelinePrimaryTopicReference"
    };
  }
  n(pCe, "pipelinePrimaryTopicReference");
  function hCe(t) {
    let e = {
      type: "TSParameterProperty",
      parameter: t
    }, s = re.TSParameterProperty;
    return x(s.parameter, e, "parameter", t, 1), e;
  }
  n(hCe, "tsParameterProperty");
  function fCe(t = null, e = null, s, r = null) {
    let i = {
      type: "TSDeclareFunction",
      id: t,
      typeParameters: e,
      params: s,
      returnType: r
    }, a = re.TSDeclareFunction;
    return x(a.id, i, "id", t, 1), x(a.typeParameters, i, "typeParameters", e, 1), x(a.params, i, "params", s, 1), x(a.returnType, i, "retur\
nType", r, 1), i;
  }
  n(fCe, "tsDeclareFunction");
  function dCe(t = null, e, s = null, r, i = null) {
    let a = {
      type: "TSDeclareMethod",
      decorators: t,
      key: e,
      typeParameters: s,
      params: r,
      returnType: i
    }, o = re.TSDeclareMethod;
    return x(o.decorators, a, "decorators", t, 1), x(o.key, a, "key", e, 1), x(o.typeParameters, a, "typeParameters", s, 1), x(o.params, a, "\
params", r, 1), x(o.returnType, a, "returnType", i, 1), a;
  }
  n(dCe, "tsDeclareMethod");
  function mCe(t, e) {
    let s = {
      type: "TSQualifiedName",
      left: t,
      right: e
    }, r = re.TSQualifiedName;
    return x(r.left, s, "left", t, 1), x(r.right, s, "right", e, 1), s;
  }
  n(mCe, "tsQualifiedName");
  function yCe(t = null, e, s = null) {
    let r = {
      type: "TSCallSignatureDeclaration",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = re.TSCallSignatureDeclaration;
    return x(i.typeParameters, r, "typeParameters", t, 1), x(i.parameters, r, "parameters", e, 1), x(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(yCe, "tsCallSignatureDeclaration");
  function gCe(t = null, e, s = null) {
    let r = {
      type: "TSConstructSignatureDeclaration",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = re.TSConstructSignatureDeclaration;
    return x(i.typeParameters, r, "typeParameters", t, 1), x(i.parameters, r, "parameters", e, 1), x(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(gCe, "tsConstructSignatureDeclaration");
  function TCe(t, e = null) {
    let s = {
      type: "TSPropertySignature",
      key: t,
      typeAnnotation: e
    }, r = re.TSPropertySignature;
    return x(r.key, s, "key", t, 1), x(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(TCe, "tsPropertySignature");
  function bCe(t, e = null, s, r = null) {
    let i = {
      type: "TSMethodSignature",
      key: t,
      typeParameters: e,
      parameters: s,
      typeAnnotation: r,
      kind: null
    }, a = re.TSMethodSignature;
    return x(a.key, i, "key", t, 1), x(a.typeParameters, i, "typeParameters", e, 1), x(a.parameters, i, "parameters", s, 1), x(a.typeAnnotation,
    i, "typeAnnotation", r, 1), i;
  }
  n(bCe, "tsMethodSignature");
  function xCe(t, e = null) {
    let s = {
      type: "TSIndexSignature",
      parameters: t,
      typeAnnotation: e
    }, r = re.TSIndexSignature;
    return x(r.parameters, s, "parameters", t, 1), x(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(xCe, "tsIndexSignature");
  function SCe() {
    return {
      type: "TSAnyKeyword"
    };
  }
  n(SCe, "tsAnyKeyword");
  function PCe() {
    return {
      type: "TSBooleanKeyword"
    };
  }
  n(PCe, "tsBooleanKeyword");
  function ECe() {
    return {
      type: "TSBigIntKeyword"
    };
  }
  n(ECe, "tsBigIntKeyword");
  function ACe() {
    return {
      type: "TSIntrinsicKeyword"
    };
  }
  n(ACe, "tsIntrinsicKeyword");
  function vCe() {
    return {
      type: "TSNeverKeyword"
    };
  }
  n(vCe, "tsNeverKeyword");
  function CCe() {
    return {
      type: "TSNullKeyword"
    };
  }
  n(CCe, "tsNullKeyword");
  function wCe() {
    return {
      type: "TSNumberKeyword"
    };
  }
  n(wCe, "tsNumberKeyword");
  function ICe() {
    return {
      type: "TSObjectKeyword"
    };
  }
  n(ICe, "tsObjectKeyword");
  function NCe() {
    return {
      type: "TSStringKeyword"
    };
  }
  n(NCe, "tsStringKeyword");
  function kCe() {
    return {
      type: "TSSymbolKeyword"
    };
  }
  n(kCe, "tsSymbolKeyword");
  function DCe() {
    return {
      type: "TSUndefinedKeyword"
    };
  }
  n(DCe, "tsUndefinedKeyword");
  function OCe() {
    return {
      type: "TSUnknownKeyword"
    };
  }
  n(OCe, "tsUnknownKeyword");
  function _Ce() {
    return {
      type: "TSVoidKeyword"
    };
  }
  n(_Ce, "tsVoidKeyword");
  function LCe() {
    return {
      type: "TSThisType"
    };
  }
  n(LCe, "tsThisType");
  function BCe(t = null, e, s = null) {
    let r = {
      type: "TSFunctionType",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = re.TSFunctionType;
    return x(i.typeParameters, r, "typeParameters", t, 1), x(i.parameters, r, "parameters", e, 1), x(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(BCe, "tsFunctionType");
  function MCe(t = null, e, s = null) {
    let r = {
      type: "TSConstructorType",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = re.TSConstructorType;
    return x(i.typeParameters, r, "typeParameters", t, 1), x(i.parameters, r, "parameters", e, 1), x(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(MCe, "tsConstructorType");
  function FCe(t, e = null) {
    let s = {
      type: "TSTypeReference",
      typeName: t,
      typeParameters: e
    }, r = re.TSTypeReference;
    return x(r.typeName, s, "typeName", t, 1), x(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(FCe, "tsTypeReference");
  function jCe(t, e = null, s = null) {
    let r = {
      type: "TSTypePredicate",
      parameterName: t,
      typeAnnotation: e,
      asserts: s
    }, i = re.TSTypePredicate;
    return x(i.parameterName, r, "parameterName", t, 1), x(i.typeAnnotation, r, "typeAnnotation", e, 1), x(i.asserts, r, "asserts", s), r;
  }
  n(jCe, "tsTypePredicate");
  function RCe(t, e = null) {
    let s = {
      type: "TSTypeQuery",
      exprName: t,
      typeParameters: e
    }, r = re.TSTypeQuery;
    return x(r.exprName, s, "exprName", t, 1), x(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(RCe, "tsTypeQuery");
  function qCe(t) {
    let e = {
      type: "TSTypeLiteral",
      members: t
    }, s = re.TSTypeLiteral;
    return x(s.members, e, "members", t, 1), e;
  }
  n(qCe, "tsTypeLiteral");
  function UCe(t) {
    let e = {
      type: "TSArrayType",
      elementType: t
    }, s = re.TSArrayType;
    return x(s.elementType, e, "elementType", t, 1), e;
  }
  n(UCe, "tsArrayType");
  function KCe(t) {
    let e = {
      type: "TSTupleType",
      elementTypes: t
    }, s = re.TSTupleType;
    return x(s.elementTypes, e, "elementTypes", t, 1), e;
  }
  n(KCe, "tsTupleType");
  function VCe(t) {
    let e = {
      type: "TSOptionalType",
      typeAnnotation: t
    }, s = re.TSOptionalType;
    return x(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(VCe, "tsOptionalType");
  function WCe(t) {
    let e = {
      type: "TSRestType",
      typeAnnotation: t
    }, s = re.TSRestType;
    return x(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(WCe, "tsRestType");
  function $Ce(t, e, s = !1) {
    let r = {
      type: "TSNamedTupleMember",
      label: t,
      elementType: e,
      optional: s
    }, i = re.TSNamedTupleMember;
    return x(i.label, r, "label", t, 1), x(i.elementType, r, "elementType", e, 1), x(i.optional, r, "optional", s), r;
  }
  n($Ce, "tsNamedTupleMember");
  function HCe(t) {
    let e = {
      type: "TSUnionType",
      types: t
    }, s = re.TSUnionType;
    return x(s.types, e, "types", t, 1), e;
  }
  n(HCe, "tsUnionType");
  function JCe(t) {
    let e = {
      type: "TSIntersectionType",
      types: t
    }, s = re.TSIntersectionType;
    return x(s.types, e, "types", t, 1), e;
  }
  n(JCe, "tsIntersectionType");
  function YCe(t, e, s, r) {
    let i = {
      type: "TSConditionalType",
      checkType: t,
      extendsType: e,
      trueType: s,
      falseType: r
    }, a = re.TSConditionalType;
    return x(a.checkType, i, "checkType", t, 1), x(a.extendsType, i, "extendsType", e, 1), x(a.trueType, i, "trueType", s, 1), x(a.falseType,
    i, "falseType", r, 1), i;
  }
  n(YCe, "tsConditionalType");
  function XCe(t) {
    let e = {
      type: "TSInferType",
      typeParameter: t
    }, s = re.TSInferType;
    return x(s.typeParameter, e, "typeParameter", t, 1), e;
  }
  n(XCe, "tsInferType");
  function zCe(t) {
    let e = {
      type: "TSParenthesizedType",
      typeAnnotation: t
    }, s = re.TSParenthesizedType;
    return x(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(zCe, "tsParenthesizedType");
  function GCe(t) {
    let e = {
      type: "TSTypeOperator",
      typeAnnotation: t,
      operator: null
    }, s = re.TSTypeOperator;
    return x(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(GCe, "tsTypeOperator");
  function QCe(t, e) {
    let s = {
      type: "TSIndexedAccessType",
      objectType: t,
      indexType: e
    }, r = re.TSIndexedAccessType;
    return x(r.objectType, s, "objectType", t, 1), x(r.indexType, s, "indexType", e, 1), s;
  }
  n(QCe, "tsIndexedAccessType");
  function ZCe(t, e = null, s = null) {
    let r = {
      type: "TSMappedType",
      typeParameter: t,
      typeAnnotation: e,
      nameType: s
    }, i = re.TSMappedType;
    return x(i.typeParameter, r, "typeParameter", t, 1), x(i.typeAnnotation, r, "typeAnnotation", e, 1), x(i.nameType, r, "nameType", s, 1),
    r;
  }
  n(ZCe, "tsMappedType");
  function ewe(t, e) {
    let s = {
      type: "TSTemplateLiteralType",
      quasis: t,
      types: e
    }, r = re.TSTemplateLiteralType;
    return x(r.quasis, s, "quasis", t, 1), x(r.types, s, "types", e, 1), s;
  }
  n(ewe, "tsTemplateLiteralType");
  function twe(t) {
    let e = {
      type: "TSLiteralType",
      literal: t
    }, s = re.TSLiteralType;
    return x(s.literal, e, "literal", t, 1), e;
  }
  n(twe, "tsLiteralType");
  function swe(t, e = null) {
    let s = {
      type: "TSExpressionWithTypeArguments",
      expression: t,
      typeParameters: e
    }, r = re.TSExpressionWithTypeArguments;
    return x(r.expression, s, "expression", t, 1), x(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(swe, "tsExpressionWithTypeArguments");
  function rwe(t, e = null, s = null, r) {
    let i = {
      type: "TSInterfaceDeclaration",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = re.TSInterfaceDeclaration;
    return x(a.id, i, "id", t, 1), x(a.typeParameters, i, "typeParameters", e, 1), x(a.extends, i, "extends", s, 1), x(a.body, i, "body", r,
    1), i;
  }
  n(rwe, "tsInterfaceDeclaration");
  function iwe(t) {
    let e = {
      type: "TSInterfaceBody",
      body: t
    }, s = re.TSInterfaceBody;
    return x(s.body, e, "body", t, 1), e;
  }
  n(iwe, "tsInterfaceBody");
  function nwe(t, e = null, s) {
    let r = {
      type: "TSTypeAliasDeclaration",
      id: t,
      typeParameters: e,
      typeAnnotation: s
    }, i = re.TSTypeAliasDeclaration;
    return x(i.id, r, "id", t, 1), x(i.typeParameters, r, "typeParameters", e, 1), x(i.typeAnnotation, r, "typeAnnotation", s, 1), r;
  }
  n(nwe, "tsTypeAliasDeclaration");
  function awe(t, e = null) {
    let s = {
      type: "TSInstantiationExpression",
      expression: t,
      typeParameters: e
    }, r = re.TSInstantiationExpression;
    return x(r.expression, s, "expression", t, 1), x(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(awe, "tsInstantiationExpression");
  function owe(t, e) {
    let s = {
      type: "TSAsExpression",
      expression: t,
      typeAnnotation: e
    }, r = re.TSAsExpression;
    return x(r.expression, s, "expression", t, 1), x(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(owe, "tsAsExpression");
  function lwe(t, e) {
    let s = {
      type: "TSSatisfiesExpression",
      expression: t,
      typeAnnotation: e
    }, r = re.TSSatisfiesExpression;
    return x(r.expression, s, "expression", t, 1), x(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(lwe, "tsSatisfiesExpression");
  function uwe(t, e) {
    let s = {
      type: "TSTypeAssertion",
      typeAnnotation: t,
      expression: e
    }, r = re.TSTypeAssertion;
    return x(r.typeAnnotation, s, "typeAnnotation", t, 1), x(r.expression, s, "expression", e, 1), s;
  }
  n(uwe, "tsTypeAssertion");
  function cwe(t) {
    let e = {
      type: "TSEnumBody",
      members: t
    }, s = re.TSEnumBody;
    return x(s.members, e, "members", t, 1), e;
  }
  n(cwe, "tsEnumBody");
  function pwe(t, e) {
    let s = {
      type: "TSEnumDeclaration",
      id: t,
      members: e
    }, r = re.TSEnumDeclaration;
    return x(r.id, s, "id", t, 1), x(r.members, s, "members", e, 1), s;
  }
  n(pwe, "tsEnumDeclaration");
  function hwe(t, e = null) {
    let s = {
      type: "TSEnumMember",
      id: t,
      initializer: e
    }, r = re.TSEnumMember;
    return x(r.id, s, "id", t, 1), x(r.initializer, s, "initializer", e, 1), s;
  }
  n(hwe, "tsEnumMember");
  function fwe(t, e) {
    let s = {
      type: "TSModuleDeclaration",
      id: t,
      body: e,
      kind: null
    }, r = re.TSModuleDeclaration;
    return x(r.id, s, "id", t, 1), x(r.body, s, "body", e, 1), s;
  }
  n(fwe, "tsModuleDeclaration");
  function dwe(t) {
    let e = {
      type: "TSModuleBlock",
      body: t
    }, s = re.TSModuleBlock;
    return x(s.body, e, "body", t, 1), e;
  }
  n(dwe, "tsModuleBlock");
  function mwe(t, e = null, s = null) {
    let r = {
      type: "TSImportType",
      argument: t,
      qualifier: e,
      typeParameters: s
    }, i = re.TSImportType;
    return x(i.argument, r, "argument", t, 1), x(i.qualifier, r, "qualifier", e, 1), x(i.typeParameters, r, "typeParameters", s, 1), r;
  }
  n(mwe, "tsImportType");
  function ywe(t, e) {
    let s = {
      type: "TSImportEqualsDeclaration",
      id: t,
      moduleReference: e,
      isExport: null
    }, r = re.TSImportEqualsDeclaration;
    return x(r.id, s, "id", t, 1), x(r.moduleReference, s, "moduleReference", e, 1), s;
  }
  n(ywe, "tsImportEqualsDeclaration");
  function gwe(t) {
    let e = {
      type: "TSExternalModuleReference",
      expression: t
    }, s = re.TSExternalModuleReference;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(gwe, "tsExternalModuleReference");
  function Twe(t) {
    let e = {
      type: "TSNonNullExpression",
      expression: t
    }, s = re.TSNonNullExpression;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(Twe, "tsNonNullExpression");
  function bwe(t) {
    let e = {
      type: "TSExportAssignment",
      expression: t
    }, s = re.TSExportAssignment;
    return x(s.expression, e, "expression", t, 1), e;
  }
  n(bwe, "tsExportAssignment");
  function xwe(t) {
    let e = {
      type: "TSNamespaceExportDeclaration",
      id: t
    }, s = re.TSNamespaceExportDeclaration;
    return x(s.id, e, "id", t, 1), e;
  }
  n(xwe, "tsNamespaceExportDeclaration");
  function Swe(t) {
    let e = {
      type: "TSTypeAnnotation",
      typeAnnotation: t
    }, s = re.TSTypeAnnotation;
    return x(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(Swe, "tsTypeAnnotation");
  function Pwe(t) {
    let e = {
      type: "TSTypeParameterInstantiation",
      params: t
    }, s = re.TSTypeParameterInstantiation;
    return x(s.params, e, "params", t, 1), e;
  }
  n(Pwe, "tsTypeParameterInstantiation");
  function Ewe(t) {
    let e = {
      type: "TSTypeParameterDeclaration",
      params: t
    }, s = re.TSTypeParameterDeclaration;
    return x(s.params, e, "params", t, 1), e;
  }
  n(Ewe, "tsTypeParameterDeclaration");
  function Awe(t = null, e = null, s) {
    let r = {
      type: "TSTypeParameter",
      constraint: t,
      default: e,
      name: s
    }, i = re.TSTypeParameter;
    return x(i.constraint, r, "constraint", t, 1), x(i.default, r, "default", e, 1), x(i.name, r, "name", s), r;
  }
  n(Awe, "tsTypeParameter");
  function vwe(t) {
    return (0, Ib.default)("NumberLiteral", "NumericLiteral", "The node type "), oq(t);
  }
  n(vwe, "NumberLiteral");
  function Cwe(t, e = "") {
    return (0, Ib.default)("RegexLiteral", "RegExpLiteral", "The node type "), lq(t, e);
  }
  n(Cwe, "RegexLiteral");
  function wwe(t) {
    return (0, Ib.default)("RestProperty", "RestElement", "The node type "), uq(t);
  }
  n(wwe, "RestProperty");
  function Iwe(t) {
    return (0, Ib.default)("SpreadProperty", "SpreadElement", "The node type "), cq(t);
  }
  n(Iwe, "SpreadProperty");
});

// ../node_modules/@babel/types/lib/builders/generated/uppercase.js
var pq = g(($) => {
  "use strict";
  Object.defineProperty($, "__esModule", {
    value: !0
  });
  Object.defineProperty($, "AnyTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.anyTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "ArgumentPlaceholder", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.argumentPlaceholder;
    }, "get")
  });
  Object.defineProperty($, "ArrayExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.arrayExpression;
    }, "get")
  });
  Object.defineProperty($, "ArrayPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.arrayPattern;
    }, "get")
  });
  Object.defineProperty($, "ArrayTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.arrayTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "ArrowFunctionExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.arrowFunctionExpression;
    }, "get")
  });
  Object.defineProperty($, "AssignmentExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.assignmentExpression;
    }, "get")
  });
  Object.defineProperty($, "AssignmentPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.assignmentPattern;
    }, "get")
  });
  Object.defineProperty($, "AwaitExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.awaitExpression;
    }, "get")
  });
  Object.defineProperty($, "BigIntLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.bigIntLiteral;
    }, "get")
  });
  Object.defineProperty($, "BinaryExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.binaryExpression;
    }, "get")
  });
  Object.defineProperty($, "BindExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.bindExpression;
    }, "get")
  });
  Object.defineProperty($, "BlockStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.blockStatement;
    }, "get")
  });
  Object.defineProperty($, "BooleanLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.booleanLiteral;
    }, "get")
  });
  Object.defineProperty($, "BooleanLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.booleanLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "BooleanTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.booleanTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "BreakStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.breakStatement;
    }, "get")
  });
  Object.defineProperty($, "CallExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.callExpression;
    }, "get")
  });
  Object.defineProperty($, "CatchClause", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.catchClause;
    }, "get")
  });
  Object.defineProperty($, "ClassAccessorProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classAccessorProperty;
    }, "get")
  });
  Object.defineProperty($, "ClassBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classBody;
    }, "get")
  });
  Object.defineProperty($, "ClassDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classDeclaration;
    }, "get")
  });
  Object.defineProperty($, "ClassExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classExpression;
    }, "get")
  });
  Object.defineProperty($, "ClassImplements", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classImplements;
    }, "get")
  });
  Object.defineProperty($, "ClassMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classMethod;
    }, "get")
  });
  Object.defineProperty($, "ClassPrivateMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classPrivateMethod;
    }, "get")
  });
  Object.defineProperty($, "ClassPrivateProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classPrivateProperty;
    }, "get")
  });
  Object.defineProperty($, "ClassProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.classProperty;
    }, "get")
  });
  Object.defineProperty($, "ConditionalExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.conditionalExpression;
    }, "get")
  });
  Object.defineProperty($, "ContinueStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.continueStatement;
    }, "get")
  });
  Object.defineProperty($, "DebuggerStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.debuggerStatement;
    }, "get")
  });
  Object.defineProperty($, "DecimalLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.decimalLiteral;
    }, "get")
  });
  Object.defineProperty($, "DeclareClass", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareClass;
    }, "get")
  });
  Object.defineProperty($, "DeclareExportAllDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareExportAllDeclaration;
    }, "get")
  });
  Object.defineProperty($, "DeclareExportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareExportDeclaration;
    }, "get")
  });
  Object.defineProperty($, "DeclareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareFunction;
    }, "get")
  });
  Object.defineProperty($, "DeclareInterface", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareInterface;
    }, "get")
  });
  Object.defineProperty($, "DeclareModule", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareModule;
    }, "get")
  });
  Object.defineProperty($, "DeclareModuleExports", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareModuleExports;
    }, "get")
  });
  Object.defineProperty($, "DeclareOpaqueType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareOpaqueType;
    }, "get")
  });
  Object.defineProperty($, "DeclareTypeAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareTypeAlias;
    }, "get")
  });
  Object.defineProperty($, "DeclareVariable", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declareVariable;
    }, "get")
  });
  Object.defineProperty($, "DeclaredPredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.declaredPredicate;
    }, "get")
  });
  Object.defineProperty($, "Decorator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.decorator;
    }, "get")
  });
  Object.defineProperty($, "Directive", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.directive;
    }, "get")
  });
  Object.defineProperty($, "DirectiveLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.directiveLiteral;
    }, "get")
  });
  Object.defineProperty($, "DoExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.doExpression;
    }, "get")
  });
  Object.defineProperty($, "DoWhileStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.doWhileStatement;
    }, "get")
  });
  Object.defineProperty($, "EmptyStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.emptyStatement;
    }, "get")
  });
  Object.defineProperty($, "EmptyTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.emptyTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "EnumBooleanBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumBooleanBody;
    }, "get")
  });
  Object.defineProperty($, "EnumBooleanMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumBooleanMember;
    }, "get")
  });
  Object.defineProperty($, "EnumDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumDeclaration;
    }, "get")
  });
  Object.defineProperty($, "EnumDefaultedMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumDefaultedMember;
    }, "get")
  });
  Object.defineProperty($, "EnumNumberBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumNumberBody;
    }, "get")
  });
  Object.defineProperty($, "EnumNumberMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumNumberMember;
    }, "get")
  });
  Object.defineProperty($, "EnumStringBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumStringBody;
    }, "get")
  });
  Object.defineProperty($, "EnumStringMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumStringMember;
    }, "get")
  });
  Object.defineProperty($, "EnumSymbolBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.enumSymbolBody;
    }, "get")
  });
  Object.defineProperty($, "ExistsTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.existsTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "ExportAllDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.exportAllDeclaration;
    }, "get")
  });
  Object.defineProperty($, "ExportDefaultDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.exportDefaultDeclaration;
    }, "get")
  });
  Object.defineProperty($, "ExportDefaultSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.exportDefaultSpecifier;
    }, "get")
  });
  Object.defineProperty($, "ExportNamedDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.exportNamedDeclaration;
    }, "get")
  });
  Object.defineProperty($, "ExportNamespaceSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.exportNamespaceSpecifier;
    }, "get")
  });
  Object.defineProperty($, "ExportSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.exportSpecifier;
    }, "get")
  });
  Object.defineProperty($, "ExpressionStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.expressionStatement;
    }, "get")
  });
  Object.defineProperty($, "File", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.file;
    }, "get")
  });
  Object.defineProperty($, "ForInStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.forInStatement;
    }, "get")
  });
  Object.defineProperty($, "ForOfStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.forOfStatement;
    }, "get")
  });
  Object.defineProperty($, "ForStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.forStatement;
    }, "get")
  });
  Object.defineProperty($, "FunctionDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.functionDeclaration;
    }, "get")
  });
  Object.defineProperty($, "FunctionExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.functionExpression;
    }, "get")
  });
  Object.defineProperty($, "FunctionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.functionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "FunctionTypeParam", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.functionTypeParam;
    }, "get")
  });
  Object.defineProperty($, "GenericTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.genericTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.identifier;
    }, "get")
  });
  Object.defineProperty($, "IfStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.ifStatement;
    }, "get")
  });
  Object.defineProperty($, "Import", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.import;
    }, "get")
  });
  Object.defineProperty($, "ImportAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.importAttribute;
    }, "get")
  });
  Object.defineProperty($, "ImportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.importDeclaration;
    }, "get")
  });
  Object.defineProperty($, "ImportDefaultSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.importDefaultSpecifier;
    }, "get")
  });
  Object.defineProperty($, "ImportExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.importExpression;
    }, "get")
  });
  Object.defineProperty($, "ImportNamespaceSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.importNamespaceSpecifier;
    }, "get")
  });
  Object.defineProperty($, "ImportSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.importSpecifier;
    }, "get")
  });
  Object.defineProperty($, "IndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.indexedAccessType;
    }, "get")
  });
  Object.defineProperty($, "InferredPredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.inferredPredicate;
    }, "get")
  });
  Object.defineProperty($, "InterfaceDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.interfaceDeclaration;
    }, "get")
  });
  Object.defineProperty($, "InterfaceExtends", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.interfaceExtends;
    }, "get")
  });
  Object.defineProperty($, "InterfaceTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.interfaceTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "InterpreterDirective", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.interpreterDirective;
    }, "get")
  });
  Object.defineProperty($, "IntersectionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.intersectionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "JSXAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxAttribute;
    }, "get")
  });
  Object.defineProperty($, "JSXClosingElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxClosingElement;
    }, "get")
  });
  Object.defineProperty($, "JSXClosingFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxClosingFragment;
    }, "get")
  });
  Object.defineProperty($, "JSXElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxElement;
    }, "get")
  });
  Object.defineProperty($, "JSXEmptyExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxEmptyExpression;
    }, "get")
  });
  Object.defineProperty($, "JSXExpressionContainer", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxExpressionContainer;
    }, "get")
  });
  Object.defineProperty($, "JSXFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxFragment;
    }, "get")
  });
  Object.defineProperty($, "JSXIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxIdentifier;
    }, "get")
  });
  Object.defineProperty($, "JSXMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxMemberExpression;
    }, "get")
  });
  Object.defineProperty($, "JSXNamespacedName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxNamespacedName;
    }, "get")
  });
  Object.defineProperty($, "JSXOpeningElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxOpeningElement;
    }, "get")
  });
  Object.defineProperty($, "JSXOpeningFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxOpeningFragment;
    }, "get")
  });
  Object.defineProperty($, "JSXSpreadAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxSpreadAttribute;
    }, "get")
  });
  Object.defineProperty($, "JSXSpreadChild", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxSpreadChild;
    }, "get")
  });
  Object.defineProperty($, "JSXText", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.jsxText;
    }, "get")
  });
  Object.defineProperty($, "LabeledStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.labeledStatement;
    }, "get")
  });
  Object.defineProperty($, "LogicalExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.logicalExpression;
    }, "get")
  });
  Object.defineProperty($, "MemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.memberExpression;
    }, "get")
  });
  Object.defineProperty($, "MetaProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.metaProperty;
    }, "get")
  });
  Object.defineProperty($, "MixedTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.mixedTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "ModuleExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.moduleExpression;
    }, "get")
  });
  Object.defineProperty($, "NewExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.newExpression;
    }, "get")
  });
  Object.defineProperty($, "Noop", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.noop;
    }, "get")
  });
  Object.defineProperty($, "NullLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.nullLiteral;
    }, "get")
  });
  Object.defineProperty($, "NullLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.nullLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "NullableTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.nullableTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "NumberLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.numberLiteral;
    }, "get")
  });
  Object.defineProperty($, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.numberLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "NumberTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.numberTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "NumericLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.numericLiteral;
    }, "get")
  });
  Object.defineProperty($, "ObjectExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectExpression;
    }, "get")
  });
  Object.defineProperty($, "ObjectMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectMethod;
    }, "get")
  });
  Object.defineProperty($, "ObjectPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectPattern;
    }, "get")
  });
  Object.defineProperty($, "ObjectProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectProperty;
    }, "get")
  });
  Object.defineProperty($, "ObjectTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "ObjectTypeCallProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectTypeCallProperty;
    }, "get")
  });
  Object.defineProperty($, "ObjectTypeIndexer", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectTypeIndexer;
    }, "get")
  });
  Object.defineProperty($, "ObjectTypeInternalSlot", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectTypeInternalSlot;
    }, "get")
  });
  Object.defineProperty($, "ObjectTypeProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectTypeProperty;
    }, "get")
  });
  Object.defineProperty($, "ObjectTypeSpreadProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.objectTypeSpreadProperty;
    }, "get")
  });
  Object.defineProperty($, "OpaqueType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.opaqueType;
    }, "get")
  });
  Object.defineProperty($, "OptionalCallExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.optionalCallExpression;
    }, "get")
  });
  Object.defineProperty($, "OptionalIndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.optionalIndexedAccessType;
    }, "get")
  });
  Object.defineProperty($, "OptionalMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.optionalMemberExpression;
    }, "get")
  });
  Object.defineProperty($, "ParenthesizedExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.parenthesizedExpression;
    }, "get")
  });
  Object.defineProperty($, "PipelineBareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.pipelineBareFunction;
    }, "get")
  });
  Object.defineProperty($, "PipelinePrimaryTopicReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.pipelinePrimaryTopicReference;
    }, "get")
  });
  Object.defineProperty($, "PipelineTopicExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.pipelineTopicExpression;
    }, "get")
  });
  Object.defineProperty($, "Placeholder", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.placeholder;
    }, "get")
  });
  Object.defineProperty($, "PrivateName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.privateName;
    }, "get")
  });
  Object.defineProperty($, "Program", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.program;
    }, "get")
  });
  Object.defineProperty($, "QualifiedTypeIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.qualifiedTypeIdentifier;
    }, "get")
  });
  Object.defineProperty($, "RecordExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.recordExpression;
    }, "get")
  });
  Object.defineProperty($, "RegExpLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.regExpLiteral;
    }, "get")
  });
  Object.defineProperty($, "RegexLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.regexLiteral;
    }, "get")
  });
  Object.defineProperty($, "RestElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.restElement;
    }, "get")
  });
  Object.defineProperty($, "RestProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.restProperty;
    }, "get")
  });
  Object.defineProperty($, "ReturnStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.returnStatement;
    }, "get")
  });
  Object.defineProperty($, "SequenceExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.sequenceExpression;
    }, "get")
  });
  Object.defineProperty($, "SpreadElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.spreadElement;
    }, "get")
  });
  Object.defineProperty($, "SpreadProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.spreadProperty;
    }, "get")
  });
  Object.defineProperty($, "StaticBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.staticBlock;
    }, "get")
  });
  Object.defineProperty($, "StringLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.stringLiteral;
    }, "get")
  });
  Object.defineProperty($, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.stringLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "StringTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.stringTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "Super", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.super;
    }, "get")
  });
  Object.defineProperty($, "SwitchCase", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.switchCase;
    }, "get")
  });
  Object.defineProperty($, "SwitchStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.switchStatement;
    }, "get")
  });
  Object.defineProperty($, "SymbolTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.symbolTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "TSAnyKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsAnyKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSArrayType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsArrayType;
    }, "get")
  });
  Object.defineProperty($, "TSAsExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsAsExpression;
    }, "get")
  });
  Object.defineProperty($, "TSBigIntKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsBigIntKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSBooleanKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsBooleanKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSCallSignatureDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsCallSignatureDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSConditionalType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsConditionalType;
    }, "get")
  });
  Object.defineProperty($, "TSConstructSignatureDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsConstructSignatureDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSConstructorType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsConstructorType;
    }, "get")
  });
  Object.defineProperty($, "TSDeclareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsDeclareFunction;
    }, "get")
  });
  Object.defineProperty($, "TSDeclareMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsDeclareMethod;
    }, "get")
  });
  Object.defineProperty($, "TSEnumBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsEnumBody;
    }, "get")
  });
  Object.defineProperty($, "TSEnumDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsEnumDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSEnumMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsEnumMember;
    }, "get")
  });
  Object.defineProperty($, "TSExportAssignment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsExportAssignment;
    }, "get")
  });
  Object.defineProperty($, "TSExpressionWithTypeArguments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsExpressionWithTypeArguments;
    }, "get")
  });
  Object.defineProperty($, "TSExternalModuleReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsExternalModuleReference;
    }, "get")
  });
  Object.defineProperty($, "TSFunctionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsFunctionType;
    }, "get")
  });
  Object.defineProperty($, "TSImportEqualsDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsImportEqualsDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSImportType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsImportType;
    }, "get")
  });
  Object.defineProperty($, "TSIndexSignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsIndexSignature;
    }, "get")
  });
  Object.defineProperty($, "TSIndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsIndexedAccessType;
    }, "get")
  });
  Object.defineProperty($, "TSInferType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsInferType;
    }, "get")
  });
  Object.defineProperty($, "TSInstantiationExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsInstantiationExpression;
    }, "get")
  });
  Object.defineProperty($, "TSInterfaceBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsInterfaceBody;
    }, "get")
  });
  Object.defineProperty($, "TSInterfaceDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsInterfaceDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSIntersectionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsIntersectionType;
    }, "get")
  });
  Object.defineProperty($, "TSIntrinsicKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsIntrinsicKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSLiteralType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsLiteralType;
    }, "get")
  });
  Object.defineProperty($, "TSMappedType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsMappedType;
    }, "get")
  });
  Object.defineProperty($, "TSMethodSignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsMethodSignature;
    }, "get")
  });
  Object.defineProperty($, "TSModuleBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsModuleBlock;
    }, "get")
  });
  Object.defineProperty($, "TSModuleDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsModuleDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSNamedTupleMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsNamedTupleMember;
    }, "get")
  });
  Object.defineProperty($, "TSNamespaceExportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsNamespaceExportDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSNeverKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsNeverKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSNonNullExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsNonNullExpression;
    }, "get")
  });
  Object.defineProperty($, "TSNullKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsNullKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSNumberKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsNumberKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSObjectKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsObjectKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSOptionalType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsOptionalType;
    }, "get")
  });
  Object.defineProperty($, "TSParameterProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsParameterProperty;
    }, "get")
  });
  Object.defineProperty($, "TSParenthesizedType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsParenthesizedType;
    }, "get")
  });
  Object.defineProperty($, "TSPropertySignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsPropertySignature;
    }, "get")
  });
  Object.defineProperty($, "TSQualifiedName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsQualifiedName;
    }, "get")
  });
  Object.defineProperty($, "TSRestType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsRestType;
    }, "get")
  });
  Object.defineProperty($, "TSSatisfiesExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsSatisfiesExpression;
    }, "get")
  });
  Object.defineProperty($, "TSStringKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsStringKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSSymbolKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsSymbolKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSTemplateLiteralType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTemplateLiteralType;
    }, "get")
  });
  Object.defineProperty($, "TSThisType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsThisType;
    }, "get")
  });
  Object.defineProperty($, "TSTupleType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTupleType;
    }, "get")
  });
  Object.defineProperty($, "TSTypeAliasDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeAliasDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "TSTypeAssertion", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeAssertion;
    }, "get")
  });
  Object.defineProperty($, "TSTypeLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeLiteral;
    }, "get")
  });
  Object.defineProperty($, "TSTypeOperator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeOperator;
    }, "get")
  });
  Object.defineProperty($, "TSTypeParameter", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeParameter;
    }, "get")
  });
  Object.defineProperty($, "TSTypeParameterDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeParameterDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TSTypeParameterInstantiation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeParameterInstantiation;
    }, "get")
  });
  Object.defineProperty($, "TSTypePredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypePredicate;
    }, "get")
  });
  Object.defineProperty($, "TSTypeQuery", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeQuery;
    }, "get")
  });
  Object.defineProperty($, "TSTypeReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsTypeReference;
    }, "get")
  });
  Object.defineProperty($, "TSUndefinedKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsUndefinedKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsUnionType;
    }, "get")
  });
  Object.defineProperty($, "TSUnknownKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsUnknownKeyword;
    }, "get")
  });
  Object.defineProperty($, "TSVoidKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tsVoidKeyword;
    }, "get")
  });
  Object.defineProperty($, "TaggedTemplateExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.taggedTemplateExpression;
    }, "get")
  });
  Object.defineProperty($, "TemplateElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.templateElement;
    }, "get")
  });
  Object.defineProperty($, "TemplateLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.templateLiteral;
    }, "get")
  });
  Object.defineProperty($, "ThisExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.thisExpression;
    }, "get")
  });
  Object.defineProperty($, "ThisTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.thisTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "ThrowStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.throwStatement;
    }, "get")
  });
  Object.defineProperty($, "TopicReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.topicReference;
    }, "get")
  });
  Object.defineProperty($, "TryStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tryStatement;
    }, "get")
  });
  Object.defineProperty($, "TupleExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tupleExpression;
    }, "get")
  });
  Object.defineProperty($, "TupleTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.tupleTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "TypeAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.typeAlias;
    }, "get")
  });
  Object.defineProperty($, "TypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.typeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "TypeCastExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.typeCastExpression;
    }, "get")
  });
  Object.defineProperty($, "TypeParameter", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.typeParameter;
    }, "get")
  });
  Object.defineProperty($, "TypeParameterDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.typeParameterDeclaration;
    }, "get")
  });
  Object.defineProperty($, "TypeParameterInstantiation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.typeParameterInstantiation;
    }, "get")
  });
  Object.defineProperty($, "TypeofTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.typeofTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "UnaryExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.unaryExpression;
    }, "get")
  });
  Object.defineProperty($, "UnionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.unionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "UpdateExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.updateExpression;
    }, "get")
  });
  Object.defineProperty($, "V8IntrinsicIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.v8IntrinsicIdentifier;
    }, "get")
  });
  Object.defineProperty($, "VariableDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.variableDeclaration;
    }, "get")
  });
  Object.defineProperty($, "VariableDeclarator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.variableDeclarator;
    }, "get")
  });
  Object.defineProperty($, "Variance", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.variance;
    }, "get")
  });
  Object.defineProperty($, "VoidTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.voidTypeAnnotation;
    }, "get")
  });
  Object.defineProperty($, "WhileStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.whileStatement;
    }, "get")
  });
  Object.defineProperty($, "WithStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.withStatement;
    }, "get")
  });
  Object.defineProperty($, "YieldExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Y.yieldExpression;
    }, "get")
  });
  var Y = HC();
});

// ../node_modules/@babel/types/lib/builders/generated/index.js
var sa = g((vc) => {
  "use strict";
  Object.defineProperty(vc, "__esModule", {
    value: !0
  });
  var JC = HC();
  Object.keys(JC).forEach(function(t) {
    t === "default" || t === "__esModule" || t in vc && vc[t] === JC[t] || Object.defineProperty(vc, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return JC[t];
      }, "get")
    });
  });
  var YC = pq();
  Object.keys(YC).forEach(function(t) {
    t === "default" || t === "__esModule" || t in vc && vc[t] === YC[t] || Object.defineProperty(vc, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return YC[t];
      }, "get")
    });
  });
});

// ../node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js
var hq = g((XC) => {
  "use strict";
  Object.defineProperty(XC, "__esModule", {
    value: !0
  });
  XC.default = Dwe;
  var Nwe = sa(), kwe = fe();
  function Dwe(t, e) {
    let s = t.value.split(/\r\n|\n|\r/), r = 0;
    for (let a = 0; a < s.length; a++)
      /[^ \t]/.exec(s[a]) && (r = a);
    let i = "";
    for (let a = 0; a < s.length; a++) {
      let o = s[a], l = a === 0, u = a === s.length - 1, c = a === r, p = o.replace(/\t/g, " ");
      l || (p = p.replace(/^ +/, "")), u || (p = p.replace(/ +$/, "")), p && (c || (p += " "), i += p);
    }
    i && e.push((0, kwe.inherits)((0, Nwe.stringLiteral)(i), t));
  }
  n(Dwe, "cleanJSXElementLiteralChild");
});

// ../node_modules/@babel/types/lib/builders/react/buildChildren.js
var fq = g((GC) => {
  "use strict";
  Object.defineProperty(GC, "__esModule", {
    value: !0
  });
  GC.default = _we;
  var zC = ti(), Owe = hq();
  function _we(t) {
    let e = [];
    for (let s = 0; s < t.children.length; s++) {
      let r = t.children[s];
      if ((0, zC.isJSXText)(r)) {
        (0, Owe.default)(r, e);
        continue;
      }
      (0, zC.isJSXExpressionContainer)(r) && (r = r.expression), !(0, zC.isJSXEmptyExpression)(r) && e.push(r);
    }
    return e;
  }
  n(_we, "buildChildren");
});

// ../node_modules/@babel/types/lib/validators/isNode.js
var ZC = g((QC) => {
  "use strict";
  Object.defineProperty(QC, "__esModule", {
    value: !0
  });
  QC.default = Bwe;
  var Lwe = ba();
  function Bwe(t) {
    return !!(t && Lwe.VISITOR_KEYS[t.type]);
  }
  n(Bwe, "isNode");
});

// ../node_modules/@babel/types/lib/asserts/assertNode.js
var dq = g((ew) => {
  "use strict";
  Object.defineProperty(ew, "__esModule", {
    value: !0
  });
  ew.default = Fwe;
  var Mwe = ZC();
  function Fwe(t) {
    if (!(0, Mwe.default)(t)) {
      var e;
      let s = (e = t?.type) != null ? e : JSON.stringify(t);
      throw new TypeError(`Not a valid node of type "${s}"`);
    }
  }
  n(Fwe, "assertNode");
});

// ../node_modules/@babel/types/lib/asserts/generated/index.js
var mq = g((I) => {
  "use strict";
  Object.defineProperty(I, "__esModule", {
    value: !0
  });
  I.assertAccessor = t2e;
  I.assertAnyTypeAnnotation = bNe;
  I.assertArgumentPlaceholder = Yke;
  I.assertArrayExpression = Rwe;
  I.assertArrayPattern = FIe;
  I.assertArrayTypeAnnotation = xNe;
  I.assertArrowFunctionExpression = jIe;
  I.assertAssignmentExpression = qwe;
  I.assertAssignmentPattern = MIe;
  I.assertAwaitExpression = oNe;
  I.assertBigIntLiteral = uNe;
  I.assertBinary = EOe;
  I.assertBinaryExpression = Uwe;
  I.assertBindExpression = Xke;
  I.assertBlock = COe;
  I.assertBlockParent = vOe;
  I.assertBlockStatement = $we;
  I.assertBooleanLiteral = hIe;
  I.assertBooleanLiteralTypeAnnotation = PNe;
  I.assertBooleanTypeAnnotation = SNe;
  I.assertBreakStatement = Hwe;
  I.assertCallExpression = Jwe;
  I.assertCatchClause = Ywe;
  I.assertClass = GOe;
  I.assertClassAccessorProperty = dNe;
  I.assertClassBody = RIe;
  I.assertClassDeclaration = UIe;
  I.assertClassExpression = qIe;
  I.assertClassImplements = ANe;
  I.assertClassMethod = ZIe;
  I.assertClassPrivateMethod = yNe;
  I.assertClassPrivateProperty = mNe;
  I.assertClassProperty = fNe;
  I.assertCompletionStatement = NOe;
  I.assertConditional = kOe;
  I.assertConditionalExpression = Xwe;
  I.assertContinueStatement = zwe;
  I.assertDebuggerStatement = Gwe;
  I.assertDecimalLiteral = sDe;
  I.assertDeclaration = ROe;
  I.assertDeclareClass = vNe;
  I.assertDeclareExportAllDeclaration = LNe;
  I.assertDeclareExportDeclaration = _Ne;
  I.assertDeclareFunction = CNe;
  I.assertDeclareInterface = wNe;
  I.assertDeclareModule = INe;
  I.assertDeclareModuleExports = NNe;
  I.assertDeclareOpaqueType = DNe;
  I.assertDeclareTypeAlias = kNe;
  I.assertDeclareVariable = ONe;
  I.assertDeclaredPredicate = BNe;
  I.assertDecorator = Gke;
  I.assertDirective = Vwe;
  I.assertDirectiveLiteral = Wwe;
  I.assertDoExpression = Qke;
  I.assertDoWhileStatement = Qwe;
  I.assertEmptyStatement = Zwe;
  I.assertEmptyTypeAnnotation = HNe;
  I.assertEnumBody = l2e;
  I.assertEnumBooleanBody = xke;
  I.assertEnumBooleanMember = Ake;
  I.assertEnumDeclaration = bke;
  I.assertEnumDefaultedMember = wke;
  I.assertEnumMember = u2e;
  I.assertEnumNumberBody = Ske;
  I.assertEnumNumberMember = vke;
  I.assertEnumStringBody = Pke;
  I.assertEnumStringMember = Cke;
  I.assertEnumSymbolBody = Eke;
  I.assertExistsTypeAnnotation = MNe;
  I.assertExportAllDeclaration = KIe;
  I.assertExportDeclaration = ZOe;
  I.assertExportDefaultDeclaration = VIe;
  I.assertExportDefaultSpecifier = Zke;
  I.assertExportNamedDeclaration = WIe;
  I.assertExportNamespaceSpecifier = cNe;
  I.assertExportSpecifier = $Ie;
  I.assertExpression = POe;
  I.assertExpressionStatement = eIe;
  I.assertExpressionWrapper = _Oe;
  I.assertFile = tIe;
  I.assertFlow = r2e;
  I.assertFlowBaseAnnotation = n2e;
  I.assertFlowDeclaration = a2e;
  I.assertFlowPredicate = o2e;
  I.assertFlowType = i2e;
  I.assertFor = LOe;
  I.assertForInStatement = sIe;
  I.assertForOfStatement = HIe;
  I.assertForStatement = rIe;
  I.assertForXStatement = BOe;
  I.assertFunction = MOe;
  I.assertFunctionDeclaration = iIe;
  I.assertFunctionExpression = nIe;
  I.assertFunctionParent = FOe;
  I.assertFunctionTypeAnnotation = FNe;
  I.assertFunctionTypeParam = jNe;
  I.assertGenericTypeAnnotation = RNe;
  I.assertIdentifier = aIe;
  I.assertIfStatement = oIe;
  I.assertImmutable = WOe;
  I.assertImport = lNe;
  I.assertImportAttribute = zke;
  I.assertImportDeclaration = JIe;
  I.assertImportDefaultSpecifier = YIe;
  I.assertImportExpression = GIe;
  I.assertImportNamespaceSpecifier = XIe;
  I.assertImportOrExportDeclaration = QOe;
  I.assertImportSpecifier = zIe;
  I.assertIndexedAccessType = Ike;
  I.assertInferredPredicate = qNe;
  I.assertInterfaceDeclaration = KNe;
  I.assertInterfaceExtends = UNe;
  I.assertInterfaceTypeAnnotation = VNe;
  I.assertInterpreterDirective = Kwe;
  I.assertIntersectionTypeAnnotation = WNe;
  I.assertJSX = c2e;
  I.assertJSXAttribute = kke;
  I.assertJSXClosingElement = Dke;
  I.assertJSXClosingFragment = Wke;
  I.assertJSXElement = Oke;
  I.assertJSXEmptyExpression = _ke;
  I.assertJSXExpressionContainer = Lke;
  I.assertJSXFragment = Kke;
  I.assertJSXIdentifier = Mke;
  I.assertJSXMemberExpression = Fke;
  I.assertJSXNamespacedName = jke;
  I.assertJSXOpeningElement = Rke;
  I.assertJSXOpeningFragment = Vke;
  I.assertJSXSpreadAttribute = qke;
  I.assertJSXSpreadChild = Bke;
  I.assertJSXText = Uke;
  I.assertLVal = UOe;
  I.assertLabeledStatement = lIe;
  I.assertLiteral = VOe;
  I.assertLogicalExpression = dIe;
  I.assertLoop = DOe;
  I.assertMemberExpression = mIe;
  I.assertMetaProperty = QIe;
  I.assertMethod = HOe;
  I.assertMiscellaneous = p2e;
  I.assertMixedTypeAnnotation = $Ne;
  I.assertModuleDeclaration = x2e;
  I.assertModuleExpression = rDe;
  I.assertModuleSpecifier = e2e;
  I.assertNewExpression = yIe;
  I.assertNoop = $ke;
  I.assertNullLiteral = pIe;
  I.assertNullLiteralTypeAnnotation = ENe;
  I.assertNullableTypeAnnotation = JNe;
  I.assertNumberLiteral = y2e;
  I.assertNumberLiteralTypeAnnotation = YNe;
  I.assertNumberTypeAnnotation = XNe;
  I.assertNumericLiteral = cIe;
  I.assertObjectExpression = TIe;
  I.assertObjectMember = JOe;
  I.assertObjectMethod = bIe;
  I.assertObjectPattern = eNe;
  I.assertObjectProperty = xIe;
  I.assertObjectTypeAnnotation = zNe;
  I.assertObjectTypeCallProperty = QNe;
  I.assertObjectTypeIndexer = ZNe;
  I.assertObjectTypeInternalSlot = GNe;
  I.assertObjectTypeProperty = eke;
  I.assertObjectTypeSpreadProperty = tke;
  I.assertOpaqueType = ske;
  I.assertOptionalCallExpression = hNe;
  I.assertOptionalIndexedAccessType = Nke;
  I.assertOptionalMemberExpression = pNe;
  I.assertParenthesizedExpression = AIe;
  I.assertPattern = zOe;
  I.assertPatternLike = qOe;
  I.assertPipelineBareFunction = aDe;
  I.assertPipelinePrimaryTopicReference = oDe;
  I.assertPipelineTopicExpression = nDe;
  I.assertPlaceholder = Hke;
  I.assertPrivate = s2e;
  I.assertPrivateName = gNe;
  I.assertProgram = gIe;
  I.assertProperty = YOe;
  I.assertPureish = jOe;
  I.assertQualifiedTypeIdentifier = rke;
  I.assertRecordExpression = eDe;
  I.assertRegExpLiteral = fIe;
  I.assertRegexLiteral = g2e;
  I.assertRestElement = SIe;
  I.assertRestProperty = T2e;
  I.assertReturnStatement = PIe;
  I.assertScopable = AOe;
  I.assertSequenceExpression = EIe;
  I.assertSpreadElement = tNe;
  I.assertSpreadProperty = b2e;
  I.assertStandardized = SOe;
  I.assertStatement = wOe;
  I.assertStaticBlock = TNe;
  I.assertStringLiteral = uIe;
  I.assertStringLiteralTypeAnnotation = ike;
  I.assertStringTypeAnnotation = nke;
  I.assertSuper = sNe;
  I.assertSwitchCase = vIe;
  I.assertSwitchStatement = CIe;
  I.assertSymbolTypeAnnotation = ake;
  I.assertTSAnyKeyword = gDe;
  I.assertTSArrayType = FDe;
  I.assertTSAsExpression = rOe;
  I.assertTSBaseType = m2e;
  I.assertTSBigIntKeyword = bDe;
  I.assertTSBooleanKeyword = TDe;
  I.assertTSCallSignatureDeclaration = hDe;
  I.assertTSConditionalType = WDe;
  I.assertTSConstructSignatureDeclaration = fDe;
  I.assertTSConstructorType = ODe;
  I.assertTSDeclareFunction = uDe;
  I.assertTSDeclareMethod = cDe;
  I.assertTSEntityName = KOe;
  I.assertTSEnumBody = aOe;
  I.assertTSEnumDeclaration = oOe;
  I.assertTSEnumMember = lOe;
  I.assertTSExportAssignment = mOe;
  I.assertTSExpressionWithTypeArguments = QDe;
  I.assertTSExternalModuleReference = fOe;
  I.assertTSFunctionType = DDe;
  I.assertTSImportEqualsDeclaration = hOe;
  I.assertTSImportType = pOe;
  I.assertTSIndexSignature = yDe;
  I.assertTSIndexedAccessType = YDe;
  I.assertTSInferType = $De;
  I.assertTSInstantiationExpression = sOe;
  I.assertTSInterfaceBody = eOe;
  I.assertTSInterfaceDeclaration = ZDe;
  I.assertTSIntersectionType = VDe;
  I.assertTSIntrinsicKeyword = xDe;
  I.assertTSLiteralType = GDe;
  I.assertTSMappedType = XDe;
  I.assertTSMethodSignature = mDe;
  I.assertTSModuleBlock = cOe;
  I.assertTSModuleDeclaration = uOe;
  I.assertTSNamedTupleMember = UDe;
  I.assertTSNamespaceExportDeclaration = yOe;
  I.assertTSNeverKeyword = SDe;
  I.assertTSNonNullExpression = dOe;
  I.assertTSNullKeyword = PDe;
  I.assertTSNumberKeyword = EDe;
  I.assertTSObjectKeyword = ADe;
  I.assertTSOptionalType = RDe;
  I.assertTSParameterProperty = lDe;
  I.assertTSParenthesizedType = HDe;
  I.assertTSPropertySignature = dDe;
  I.assertTSQualifiedName = pDe;
  I.assertTSRestType = qDe;
  I.assertTSSatisfiesExpression = iOe;
  I.assertTSStringKeyword = vDe;
  I.assertTSSymbolKeyword = CDe;
  I.assertTSTemplateLiteralType = zDe;
  I.assertTSThisType = kDe;
  I.assertTSTupleType = jDe;
  I.assertTSType = d2e;
  I.assertTSTypeAliasDeclaration = tOe;
  I.assertTSTypeAnnotation = gOe;
  I.assertTSTypeAssertion = nOe;
  I.assertTSTypeElement = f2e;
  I.assertTSTypeLiteral = MDe;
  I.assertTSTypeOperator = JDe;
  I.assertTSTypeParameter = xOe;
  I.assertTSTypeParameterDeclaration = bOe;
  I.assertTSTypeParameterInstantiation = TOe;
  I.assertTSTypePredicate = LDe;
  I.assertTSTypeQuery = BDe;
  I.assertTSTypeReference = _De;
  I.assertTSUndefinedKeyword = wDe;
  I.assertTSUnionType = KDe;
  I.assertTSUnknownKeyword = IDe;
  I.assertTSVoidKeyword = NDe;
  I.assertTaggedTemplateExpression = rNe;
  I.assertTemplateElement = iNe;
  I.assertTemplateLiteral = nNe;
  I.assertTerminatorless = IOe;
  I.assertThisExpression = wIe;
  I.assertThisTypeAnnotation = oke;
  I.assertThrowStatement = IIe;
  I.assertTopicReference = iDe;
  I.assertTryStatement = NIe;
  I.assertTupleExpression = tDe;
  I.assertTupleTypeAnnotation = lke;
  I.assertTypeAlias = cke;
  I.assertTypeAnnotation = pke;
  I.assertTypeCastExpression = hke;
  I.assertTypeParameter = fke;
  I.assertTypeParameterDeclaration = dke;
  I.assertTypeParameterInstantiation = mke;
  I.assertTypeScript = h2e;
  I.assertTypeofTypeAnnotation = uke;
  I.assertUnaryExpression = kIe;
  I.assertUnaryLike = XOe;
  I.assertUnionTypeAnnotation = yke;
  I.assertUpdateExpression = DIe;
  I.assertUserWhitespacable = $Oe;
  I.assertV8IntrinsicIdentifier = Jke;
  I.assertVariableDeclaration = OIe;
  I.assertVariableDeclarator = _Ie;
  I.assertVariance = gke;
  I.assertVoidTypeAnnotation = Tke;
  I.assertWhile = OOe;
  I.assertWhileStatement = LIe;
  I.assertWithStatement = BIe;
  I.assertYieldExpression = aNe;
  var jwe = Zf(), Wy = By();
  function _(t, e, s) {
    if (!(0, jwe.default)(t, e, s))
      throw new Error(`Expected type "${t}" with option ${JSON.stringify(s)}, but instead got "${e.type}".`);
  }
  n(_, "assert");
  function Rwe(t, e) {
    _("ArrayExpression", t, e);
  }
  n(Rwe, "assertArrayExpression");
  function qwe(t, e) {
    _("AssignmentExpression", t, e);
  }
  n(qwe, "assertAssignmentExpression");
  function Uwe(t, e) {
    _("BinaryExpression", t, e);
  }
  n(Uwe, "assertBinaryExpression");
  function Kwe(t, e) {
    _("InterpreterDirective", t, e);
  }
  n(Kwe, "assertInterpreterDirective");
  function Vwe(t, e) {
    _("Directive", t, e);
  }
  n(Vwe, "assertDirective");
  function Wwe(t, e) {
    _("DirectiveLiteral", t, e);
  }
  n(Wwe, "assertDirectiveLiteral");
  function $we(t, e) {
    _("BlockStatement", t, e);
  }
  n($we, "assertBlockStatement");
  function Hwe(t, e) {
    _("BreakStatement", t, e);
  }
  n(Hwe, "assertBreakStatement");
  function Jwe(t, e) {
    _("CallExpression", t, e);
  }
  n(Jwe, "assertCallExpression");
  function Ywe(t, e) {
    _("CatchClause", t, e);
  }
  n(Ywe, "assertCatchClause");
  function Xwe(t, e) {
    _("ConditionalExpression", t, e);
  }
  n(Xwe, "assertConditionalExpression");
  function zwe(t, e) {
    _("ContinueStatement", t, e);
  }
  n(zwe, "assertContinueStatement");
  function Gwe(t, e) {
    _("DebuggerStatement", t, e);
  }
  n(Gwe, "assertDebuggerStatement");
  function Qwe(t, e) {
    _("DoWhileStatement", t, e);
  }
  n(Qwe, "assertDoWhileStatement");
  function Zwe(t, e) {
    _("EmptyStatement", t, e);
  }
  n(Zwe, "assertEmptyStatement");
  function eIe(t, e) {
    _("ExpressionStatement", t, e);
  }
  n(eIe, "assertExpressionStatement");
  function tIe(t, e) {
    _("File", t, e);
  }
  n(tIe, "assertFile");
  function sIe(t, e) {
    _("ForInStatement", t, e);
  }
  n(sIe, "assertForInStatement");
  function rIe(t, e) {
    _("ForStatement", t, e);
  }
  n(rIe, "assertForStatement");
  function iIe(t, e) {
    _("FunctionDeclaration", t, e);
  }
  n(iIe, "assertFunctionDeclaration");
  function nIe(t, e) {
    _("FunctionExpression", t, e);
  }
  n(nIe, "assertFunctionExpression");
  function aIe(t, e) {
    _("Identifier", t, e);
  }
  n(aIe, "assertIdentifier");
  function oIe(t, e) {
    _("IfStatement", t, e);
  }
  n(oIe, "assertIfStatement");
  function lIe(t, e) {
    _("LabeledStatement", t, e);
  }
  n(lIe, "assertLabeledStatement");
  function uIe(t, e) {
    _("StringLiteral", t, e);
  }
  n(uIe, "assertStringLiteral");
  function cIe(t, e) {
    _("NumericLiteral", t, e);
  }
  n(cIe, "assertNumericLiteral");
  function pIe(t, e) {
    _("NullLiteral", t, e);
  }
  n(pIe, "assertNullLiteral");
  function hIe(t, e) {
    _("BooleanLiteral", t, e);
  }
  n(hIe, "assertBooleanLiteral");
  function fIe(t, e) {
    _("RegExpLiteral", t, e);
  }
  n(fIe, "assertRegExpLiteral");
  function dIe(t, e) {
    _("LogicalExpression", t, e);
  }
  n(dIe, "assertLogicalExpression");
  function mIe(t, e) {
    _("MemberExpression", t, e);
  }
  n(mIe, "assertMemberExpression");
  function yIe(t, e) {
    _("NewExpression", t, e);
  }
  n(yIe, "assertNewExpression");
  function gIe(t, e) {
    _("Program", t, e);
  }
  n(gIe, "assertProgram");
  function TIe(t, e) {
    _("ObjectExpression", t, e);
  }
  n(TIe, "assertObjectExpression");
  function bIe(t, e) {
    _("ObjectMethod", t, e);
  }
  n(bIe, "assertObjectMethod");
  function xIe(t, e) {
    _("ObjectProperty", t, e);
  }
  n(xIe, "assertObjectProperty");
  function SIe(t, e) {
    _("RestElement", t, e);
  }
  n(SIe, "assertRestElement");
  function PIe(t, e) {
    _("ReturnStatement", t, e);
  }
  n(PIe, "assertReturnStatement");
  function EIe(t, e) {
    _("SequenceExpression", t, e);
  }
  n(EIe, "assertSequenceExpression");
  function AIe(t, e) {
    _("ParenthesizedExpression", t, e);
  }
  n(AIe, "assertParenthesizedExpression");
  function vIe(t, e) {
    _("SwitchCase", t, e);
  }
  n(vIe, "assertSwitchCase");
  function CIe(t, e) {
    _("SwitchStatement", t, e);
  }
  n(CIe, "assertSwitchStatement");
  function wIe(t, e) {
    _("ThisExpression", t, e);
  }
  n(wIe, "assertThisExpression");
  function IIe(t, e) {
    _("ThrowStatement", t, e);
  }
  n(IIe, "assertThrowStatement");
  function NIe(t, e) {
    _("TryStatement", t, e);
  }
  n(NIe, "assertTryStatement");
  function kIe(t, e) {
    _("UnaryExpression", t, e);
  }
  n(kIe, "assertUnaryExpression");
  function DIe(t, e) {
    _("UpdateExpression", t, e);
  }
  n(DIe, "assertUpdateExpression");
  function OIe(t, e) {
    _("VariableDeclaration", t, e);
  }
  n(OIe, "assertVariableDeclaration");
  function _Ie(t, e) {
    _("VariableDeclarator", t, e);
  }
  n(_Ie, "assertVariableDeclarator");
  function LIe(t, e) {
    _("WhileStatement", t, e);
  }
  n(LIe, "assertWhileStatement");
  function BIe(t, e) {
    _("WithStatement", t, e);
  }
  n(BIe, "assertWithStatement");
  function MIe(t, e) {
    _("AssignmentPattern", t, e);
  }
  n(MIe, "assertAssignmentPattern");
  function FIe(t, e) {
    _("ArrayPattern", t, e);
  }
  n(FIe, "assertArrayPattern");
  function jIe(t, e) {
    _("ArrowFunctionExpression", t, e);
  }
  n(jIe, "assertArrowFunctionExpression");
  function RIe(t, e) {
    _("ClassBody", t, e);
  }
  n(RIe, "assertClassBody");
  function qIe(t, e) {
    _("ClassExpression", t, e);
  }
  n(qIe, "assertClassExpression");
  function UIe(t, e) {
    _("ClassDeclaration", t, e);
  }
  n(UIe, "assertClassDeclaration");
  function KIe(t, e) {
    _("ExportAllDeclaration", t, e);
  }
  n(KIe, "assertExportAllDeclaration");
  function VIe(t, e) {
    _("ExportDefaultDeclaration", t, e);
  }
  n(VIe, "assertExportDefaultDeclaration");
  function WIe(t, e) {
    _("ExportNamedDeclaration", t, e);
  }
  n(WIe, "assertExportNamedDeclaration");
  function $Ie(t, e) {
    _("ExportSpecifier", t, e);
  }
  n($Ie, "assertExportSpecifier");
  function HIe(t, e) {
    _("ForOfStatement", t, e);
  }
  n(HIe, "assertForOfStatement");
  function JIe(t, e) {
    _("ImportDeclaration", t, e);
  }
  n(JIe, "assertImportDeclaration");
  function YIe(t, e) {
    _("ImportDefaultSpecifier", t, e);
  }
  n(YIe, "assertImportDefaultSpecifier");
  function XIe(t, e) {
    _("ImportNamespaceSpecifier", t, e);
  }
  n(XIe, "assertImportNamespaceSpecifier");
  function zIe(t, e) {
    _("ImportSpecifier", t, e);
  }
  n(zIe, "assertImportSpecifier");
  function GIe(t, e) {
    _("ImportExpression", t, e);
  }
  n(GIe, "assertImportExpression");
  function QIe(t, e) {
    _("MetaProperty", t, e);
  }
  n(QIe, "assertMetaProperty");
  function ZIe(t, e) {
    _("ClassMethod", t, e);
  }
  n(ZIe, "assertClassMethod");
  function eNe(t, e) {
    _("ObjectPattern", t, e);
  }
  n(eNe, "assertObjectPattern");
  function tNe(t, e) {
    _("SpreadElement", t, e);
  }
  n(tNe, "assertSpreadElement");
  function sNe(t, e) {
    _("Super", t, e);
  }
  n(sNe, "assertSuper");
  function rNe(t, e) {
    _("TaggedTemplateExpression", t, e);
  }
  n(rNe, "assertTaggedTemplateExpression");
  function iNe(t, e) {
    _("TemplateElement", t, e);
  }
  n(iNe, "assertTemplateElement");
  function nNe(t, e) {
    _("TemplateLiteral", t, e);
  }
  n(nNe, "assertTemplateLiteral");
  function aNe(t, e) {
    _("YieldExpression", t, e);
  }
  n(aNe, "assertYieldExpression");
  function oNe(t, e) {
    _("AwaitExpression", t, e);
  }
  n(oNe, "assertAwaitExpression");
  function lNe(t, e) {
    _("Import", t, e);
  }
  n(lNe, "assertImport");
  function uNe(t, e) {
    _("BigIntLiteral", t, e);
  }
  n(uNe, "assertBigIntLiteral");
  function cNe(t, e) {
    _("ExportNamespaceSpecifier", t, e);
  }
  n(cNe, "assertExportNamespaceSpecifier");
  function pNe(t, e) {
    _("OptionalMemberExpression", t, e);
  }
  n(pNe, "assertOptionalMemberExpression");
  function hNe(t, e) {
    _("OptionalCallExpression", t, e);
  }
  n(hNe, "assertOptionalCallExpression");
  function fNe(t, e) {
    _("ClassProperty", t, e);
  }
  n(fNe, "assertClassProperty");
  function dNe(t, e) {
    _("ClassAccessorProperty", t, e);
  }
  n(dNe, "assertClassAccessorProperty");
  function mNe(t, e) {
    _("ClassPrivateProperty", t, e);
  }
  n(mNe, "assertClassPrivateProperty");
  function yNe(t, e) {
    _("ClassPrivateMethod", t, e);
  }
  n(yNe, "assertClassPrivateMethod");
  function gNe(t, e) {
    _("PrivateName", t, e);
  }
  n(gNe, "assertPrivateName");
  function TNe(t, e) {
    _("StaticBlock", t, e);
  }
  n(TNe, "assertStaticBlock");
  function bNe(t, e) {
    _("AnyTypeAnnotation", t, e);
  }
  n(bNe, "assertAnyTypeAnnotation");
  function xNe(t, e) {
    _("ArrayTypeAnnotation", t, e);
  }
  n(xNe, "assertArrayTypeAnnotation");
  function SNe(t, e) {
    _("BooleanTypeAnnotation", t, e);
  }
  n(SNe, "assertBooleanTypeAnnotation");
  function PNe(t, e) {
    _("BooleanLiteralTypeAnnotation", t, e);
  }
  n(PNe, "assertBooleanLiteralTypeAnnotation");
  function ENe(t, e) {
    _("NullLiteralTypeAnnotation", t, e);
  }
  n(ENe, "assertNullLiteralTypeAnnotation");
  function ANe(t, e) {
    _("ClassImplements", t, e);
  }
  n(ANe, "assertClassImplements");
  function vNe(t, e) {
    _("DeclareClass", t, e);
  }
  n(vNe, "assertDeclareClass");
  function CNe(t, e) {
    _("DeclareFunction", t, e);
  }
  n(CNe, "assertDeclareFunction");
  function wNe(t, e) {
    _("DeclareInterface", t, e);
  }
  n(wNe, "assertDeclareInterface");
  function INe(t, e) {
    _("DeclareModule", t, e);
  }
  n(INe, "assertDeclareModule");
  function NNe(t, e) {
    _("DeclareModuleExports", t, e);
  }
  n(NNe, "assertDeclareModuleExports");
  function kNe(t, e) {
    _("DeclareTypeAlias", t, e);
  }
  n(kNe, "assertDeclareTypeAlias");
  function DNe(t, e) {
    _("DeclareOpaqueType", t, e);
  }
  n(DNe, "assertDeclareOpaqueType");
  function ONe(t, e) {
    _("DeclareVariable", t, e);
  }
  n(ONe, "assertDeclareVariable");
  function _Ne(t, e) {
    _("DeclareExportDeclaration", t, e);
  }
  n(_Ne, "assertDeclareExportDeclaration");
  function LNe(t, e) {
    _("DeclareExportAllDeclaration", t, e);
  }
  n(LNe, "assertDeclareExportAllDeclaration");
  function BNe(t, e) {
    _("DeclaredPredicate", t, e);
  }
  n(BNe, "assertDeclaredPredicate");
  function MNe(t, e) {
    _("ExistsTypeAnnotation", t, e);
  }
  n(MNe, "assertExistsTypeAnnotation");
  function FNe(t, e) {
    _("FunctionTypeAnnotation", t, e);
  }
  n(FNe, "assertFunctionTypeAnnotation");
  function jNe(t, e) {
    _("FunctionTypeParam", t, e);
  }
  n(jNe, "assertFunctionTypeParam");
  function RNe(t, e) {
    _("GenericTypeAnnotation", t, e);
  }
  n(RNe, "assertGenericTypeAnnotation");
  function qNe(t, e) {
    _("InferredPredicate", t, e);
  }
  n(qNe, "assertInferredPredicate");
  function UNe(t, e) {
    _("InterfaceExtends", t, e);
  }
  n(UNe, "assertInterfaceExtends");
  function KNe(t, e) {
    _("InterfaceDeclaration", t, e);
  }
  n(KNe, "assertInterfaceDeclaration");
  function VNe(t, e) {
    _("InterfaceTypeAnnotation", t, e);
  }
  n(VNe, "assertInterfaceTypeAnnotation");
  function WNe(t, e) {
    _("IntersectionTypeAnnotation", t, e);
  }
  n(WNe, "assertIntersectionTypeAnnotation");
  function $Ne(t, e) {
    _("MixedTypeAnnotation", t, e);
  }
  n($Ne, "assertMixedTypeAnnotation");
  function HNe(t, e) {
    _("EmptyTypeAnnotation", t, e);
  }
  n(HNe, "assertEmptyTypeAnnotation");
  function JNe(t, e) {
    _("NullableTypeAnnotation", t, e);
  }
  n(JNe, "assertNullableTypeAnnotation");
  function YNe(t, e) {
    _("NumberLiteralTypeAnnotation", t, e);
  }
  n(YNe, "assertNumberLiteralTypeAnnotation");
  function XNe(t, e) {
    _("NumberTypeAnnotation", t, e);
  }
  n(XNe, "assertNumberTypeAnnotation");
  function zNe(t, e) {
    _("ObjectTypeAnnotation", t, e);
  }
  n(zNe, "assertObjectTypeAnnotation");
  function GNe(t, e) {
    _("ObjectTypeInternalSlot", t, e);
  }
  n(GNe, "assertObjectTypeInternalSlot");
  function QNe(t, e) {
    _("ObjectTypeCallProperty", t, e);
  }
  n(QNe, "assertObjectTypeCallProperty");
  function ZNe(t, e) {
    _("ObjectTypeIndexer", t, e);
  }
  n(ZNe, "assertObjectTypeIndexer");
  function eke(t, e) {
    _("ObjectTypeProperty", t, e);
  }
  n(eke, "assertObjectTypeProperty");
  function tke(t, e) {
    _("ObjectTypeSpreadProperty", t, e);
  }
  n(tke, "assertObjectTypeSpreadProperty");
  function ske(t, e) {
    _("OpaqueType", t, e);
  }
  n(ske, "assertOpaqueType");
  function rke(t, e) {
    _("QualifiedTypeIdentifier", t, e);
  }
  n(rke, "assertQualifiedTypeIdentifier");
  function ike(t, e) {
    _("StringLiteralTypeAnnotation", t, e);
  }
  n(ike, "assertStringLiteralTypeAnnotation");
  function nke(t, e) {
    _("StringTypeAnnotation", t, e);
  }
  n(nke, "assertStringTypeAnnotation");
  function ake(t, e) {
    _("SymbolTypeAnnotation", t, e);
  }
  n(ake, "assertSymbolTypeAnnotation");
  function oke(t, e) {
    _("ThisTypeAnnotation", t, e);
  }
  n(oke, "assertThisTypeAnnotation");
  function lke(t, e) {
    _("TupleTypeAnnotation", t, e);
  }
  n(lke, "assertTupleTypeAnnotation");
  function uke(t, e) {
    _("TypeofTypeAnnotation", t, e);
  }
  n(uke, "assertTypeofTypeAnnotation");
  function cke(t, e) {
    _("TypeAlias", t, e);
  }
  n(cke, "assertTypeAlias");
  function pke(t, e) {
    _("TypeAnnotation", t, e);
  }
  n(pke, "assertTypeAnnotation");
  function hke(t, e) {
    _("TypeCastExpression", t, e);
  }
  n(hke, "assertTypeCastExpression");
  function fke(t, e) {
    _("TypeParameter", t, e);
  }
  n(fke, "assertTypeParameter");
  function dke(t, e) {
    _("TypeParameterDeclaration", t, e);
  }
  n(dke, "assertTypeParameterDeclaration");
  function mke(t, e) {
    _("TypeParameterInstantiation", t, e);
  }
  n(mke, "assertTypeParameterInstantiation");
  function yke(t, e) {
    _("UnionTypeAnnotation", t, e);
  }
  n(yke, "assertUnionTypeAnnotation");
  function gke(t, e) {
    _("Variance", t, e);
  }
  n(gke, "assertVariance");
  function Tke(t, e) {
    _("VoidTypeAnnotation", t, e);
  }
  n(Tke, "assertVoidTypeAnnotation");
  function bke(t, e) {
    _("EnumDeclaration", t, e);
  }
  n(bke, "assertEnumDeclaration");
  function xke(t, e) {
    _("EnumBooleanBody", t, e);
  }
  n(xke, "assertEnumBooleanBody");
  function Ske(t, e) {
    _("EnumNumberBody", t, e);
  }
  n(Ske, "assertEnumNumberBody");
  function Pke(t, e) {
    _("EnumStringBody", t, e);
  }
  n(Pke, "assertEnumStringBody");
  function Eke(t, e) {
    _("EnumSymbolBody", t, e);
  }
  n(Eke, "assertEnumSymbolBody");
  function Ake(t, e) {
    _("EnumBooleanMember", t, e);
  }
  n(Ake, "assertEnumBooleanMember");
  function vke(t, e) {
    _("EnumNumberMember", t, e);
  }
  n(vke, "assertEnumNumberMember");
  function Cke(t, e) {
    _("EnumStringMember", t, e);
  }
  n(Cke, "assertEnumStringMember");
  function wke(t, e) {
    _("EnumDefaultedMember", t, e);
  }
  n(wke, "assertEnumDefaultedMember");
  function Ike(t, e) {
    _("IndexedAccessType", t, e);
  }
  n(Ike, "assertIndexedAccessType");
  function Nke(t, e) {
    _("OptionalIndexedAccessType", t, e);
  }
  n(Nke, "assertOptionalIndexedAccessType");
  function kke(t, e) {
    _("JSXAttribute", t, e);
  }
  n(kke, "assertJSXAttribute");
  function Dke(t, e) {
    _("JSXClosingElement", t, e);
  }
  n(Dke, "assertJSXClosingElement");
  function Oke(t, e) {
    _("JSXElement", t, e);
  }
  n(Oke, "assertJSXElement");
  function _ke(t, e) {
    _("JSXEmptyExpression", t, e);
  }
  n(_ke, "assertJSXEmptyExpression");
  function Lke(t, e) {
    _("JSXExpressionContainer", t, e);
  }
  n(Lke, "assertJSXExpressionContainer");
  function Bke(t, e) {
    _("JSXSpreadChild", t, e);
  }
  n(Bke, "assertJSXSpreadChild");
  function Mke(t, e) {
    _("JSXIdentifier", t, e);
  }
  n(Mke, "assertJSXIdentifier");
  function Fke(t, e) {
    _("JSXMemberExpression", t, e);
  }
  n(Fke, "assertJSXMemberExpression");
  function jke(t, e) {
    _("JSXNamespacedName", t, e);
  }
  n(jke, "assertJSXNamespacedName");
  function Rke(t, e) {
    _("JSXOpeningElement", t, e);
  }
  n(Rke, "assertJSXOpeningElement");
  function qke(t, e) {
    _("JSXSpreadAttribute", t, e);
  }
  n(qke, "assertJSXSpreadAttribute");
  function Uke(t, e) {
    _("JSXText", t, e);
  }
  n(Uke, "assertJSXText");
  function Kke(t, e) {
    _("JSXFragment", t, e);
  }
  n(Kke, "assertJSXFragment");
  function Vke(t, e) {
    _("JSXOpeningFragment", t, e);
  }
  n(Vke, "assertJSXOpeningFragment");
  function Wke(t, e) {
    _("JSXClosingFragment", t, e);
  }
  n(Wke, "assertJSXClosingFragment");
  function $ke(t, e) {
    _("Noop", t, e);
  }
  n($ke, "assertNoop");
  function Hke(t, e) {
    _("Placeholder", t, e);
  }
  n(Hke, "assertPlaceholder");
  function Jke(t, e) {
    _("V8IntrinsicIdentifier", t, e);
  }
  n(Jke, "assertV8IntrinsicIdentifier");
  function Yke(t, e) {
    _("ArgumentPlaceholder", t, e);
  }
  n(Yke, "assertArgumentPlaceholder");
  function Xke(t, e) {
    _("BindExpression", t, e);
  }
  n(Xke, "assertBindExpression");
  function zke(t, e) {
    _("ImportAttribute", t, e);
  }
  n(zke, "assertImportAttribute");
  function Gke(t, e) {
    _("Decorator", t, e);
  }
  n(Gke, "assertDecorator");
  function Qke(t, e) {
    _("DoExpression", t, e);
  }
  n(Qke, "assertDoExpression");
  function Zke(t, e) {
    _("ExportDefaultSpecifier", t, e);
  }
  n(Zke, "assertExportDefaultSpecifier");
  function eDe(t, e) {
    _("RecordExpression", t, e);
  }
  n(eDe, "assertRecordExpression");
  function tDe(t, e) {
    _("TupleExpression", t, e);
  }
  n(tDe, "assertTupleExpression");
  function sDe(t, e) {
    _("DecimalLiteral", t, e);
  }
  n(sDe, "assertDecimalLiteral");
  function rDe(t, e) {
    _("ModuleExpression", t, e);
  }
  n(rDe, "assertModuleExpression");
  function iDe(t, e) {
    _("TopicReference", t, e);
  }
  n(iDe, "assertTopicReference");
  function nDe(t, e) {
    _("PipelineTopicExpression", t, e);
  }
  n(nDe, "assertPipelineTopicExpression");
  function aDe(t, e) {
    _("PipelineBareFunction", t, e);
  }
  n(aDe, "assertPipelineBareFunction");
  function oDe(t, e) {
    _("PipelinePrimaryTopicReference", t, e);
  }
  n(oDe, "assertPipelinePrimaryTopicReference");
  function lDe(t, e) {
    _("TSParameterProperty", t, e);
  }
  n(lDe, "assertTSParameterProperty");
  function uDe(t, e) {
    _("TSDeclareFunction", t, e);
  }
  n(uDe, "assertTSDeclareFunction");
  function cDe(t, e) {
    _("TSDeclareMethod", t, e);
  }
  n(cDe, "assertTSDeclareMethod");
  function pDe(t, e) {
    _("TSQualifiedName", t, e);
  }
  n(pDe, "assertTSQualifiedName");
  function hDe(t, e) {
    _("TSCallSignatureDeclaration", t, e);
  }
  n(hDe, "assertTSCallSignatureDeclaration");
  function fDe(t, e) {
    _("TSConstructSignatureDeclaration", t, e);
  }
  n(fDe, "assertTSConstructSignatureDeclaration");
  function dDe(t, e) {
    _("TSPropertySignature", t, e);
  }
  n(dDe, "assertTSPropertySignature");
  function mDe(t, e) {
    _("TSMethodSignature", t, e);
  }
  n(mDe, "assertTSMethodSignature");
  function yDe(t, e) {
    _("TSIndexSignature", t, e);
  }
  n(yDe, "assertTSIndexSignature");
  function gDe(t, e) {
    _("TSAnyKeyword", t, e);
  }
  n(gDe, "assertTSAnyKeyword");
  function TDe(t, e) {
    _("TSBooleanKeyword", t, e);
  }
  n(TDe, "assertTSBooleanKeyword");
  function bDe(t, e) {
    _("TSBigIntKeyword", t, e);
  }
  n(bDe, "assertTSBigIntKeyword");
  function xDe(t, e) {
    _("TSIntrinsicKeyword", t, e);
  }
  n(xDe, "assertTSIntrinsicKeyword");
  function SDe(t, e) {
    _("TSNeverKeyword", t, e);
  }
  n(SDe, "assertTSNeverKeyword");
  function PDe(t, e) {
    _("TSNullKeyword", t, e);
  }
  n(PDe, "assertTSNullKeyword");
  function EDe(t, e) {
    _("TSNumberKeyword", t, e);
  }
  n(EDe, "assertTSNumberKeyword");
  function ADe(t, e) {
    _("TSObjectKeyword", t, e);
  }
  n(ADe, "assertTSObjectKeyword");
  function vDe(t, e) {
    _("TSStringKeyword", t, e);
  }
  n(vDe, "assertTSStringKeyword");
  function CDe(t, e) {
    _("TSSymbolKeyword", t, e);
  }
  n(CDe, "assertTSSymbolKeyword");
  function wDe(t, e) {
    _("TSUndefinedKeyword", t, e);
  }
  n(wDe, "assertTSUndefinedKeyword");
  function IDe(t, e) {
    _("TSUnknownKeyword", t, e);
  }
  n(IDe, "assertTSUnknownKeyword");
  function NDe(t, e) {
    _("TSVoidKeyword", t, e);
  }
  n(NDe, "assertTSVoidKeyword");
  function kDe(t, e) {
    _("TSThisType", t, e);
  }
  n(kDe, "assertTSThisType");
  function DDe(t, e) {
    _("TSFunctionType", t, e);
  }
  n(DDe, "assertTSFunctionType");
  function ODe(t, e) {
    _("TSConstructorType", t, e);
  }
  n(ODe, "assertTSConstructorType");
  function _De(t, e) {
    _("TSTypeReference", t, e);
  }
  n(_De, "assertTSTypeReference");
  function LDe(t, e) {
    _("TSTypePredicate", t, e);
  }
  n(LDe, "assertTSTypePredicate");
  function BDe(t, e) {
    _("TSTypeQuery", t, e);
  }
  n(BDe, "assertTSTypeQuery");
  function MDe(t, e) {
    _("TSTypeLiteral", t, e);
  }
  n(MDe, "assertTSTypeLiteral");
  function FDe(t, e) {
    _("TSArrayType", t, e);
  }
  n(FDe, "assertTSArrayType");
  function jDe(t, e) {
    _("TSTupleType", t, e);
  }
  n(jDe, "assertTSTupleType");
  function RDe(t, e) {
    _("TSOptionalType", t, e);
  }
  n(RDe, "assertTSOptionalType");
  function qDe(t, e) {
    _("TSRestType", t, e);
  }
  n(qDe, "assertTSRestType");
  function UDe(t, e) {
    _("TSNamedTupleMember", t, e);
  }
  n(UDe, "assertTSNamedTupleMember");
  function KDe(t, e) {
    _("TSUnionType", t, e);
  }
  n(KDe, "assertTSUnionType");
  function VDe(t, e) {
    _("TSIntersectionType", t, e);
  }
  n(VDe, "assertTSIntersectionType");
  function WDe(t, e) {
    _("TSConditionalType", t, e);
  }
  n(WDe, "assertTSConditionalType");
  function $De(t, e) {
    _("TSInferType", t, e);
  }
  n($De, "assertTSInferType");
  function HDe(t, e) {
    _("TSParenthesizedType", t, e);
  }
  n(HDe, "assertTSParenthesizedType");
  function JDe(t, e) {
    _("TSTypeOperator", t, e);
  }
  n(JDe, "assertTSTypeOperator");
  function YDe(t, e) {
    _("TSIndexedAccessType", t, e);
  }
  n(YDe, "assertTSIndexedAccessType");
  function XDe(t, e) {
    _("TSMappedType", t, e);
  }
  n(XDe, "assertTSMappedType");
  function zDe(t, e) {
    _("TSTemplateLiteralType", t, e);
  }
  n(zDe, "assertTSTemplateLiteralType");
  function GDe(t, e) {
    _("TSLiteralType", t, e);
  }
  n(GDe, "assertTSLiteralType");
  function QDe(t, e) {
    _("TSExpressionWithTypeArguments", t, e);
  }
  n(QDe, "assertTSExpressionWithTypeArguments");
  function ZDe(t, e) {
    _("TSInterfaceDeclaration", t, e);
  }
  n(ZDe, "assertTSInterfaceDeclaration");
  function eOe(t, e) {
    _("TSInterfaceBody", t, e);
  }
  n(eOe, "assertTSInterfaceBody");
  function tOe(t, e) {
    _("TSTypeAliasDeclaration", t, e);
  }
  n(tOe, "assertTSTypeAliasDeclaration");
  function sOe(t, e) {
    _("TSInstantiationExpression", t, e);
  }
  n(sOe, "assertTSInstantiationExpression");
  function rOe(t, e) {
    _("TSAsExpression", t, e);
  }
  n(rOe, "assertTSAsExpression");
  function iOe(t, e) {
    _("TSSatisfiesExpression", t, e);
  }
  n(iOe, "assertTSSatisfiesExpression");
  function nOe(t, e) {
    _("TSTypeAssertion", t, e);
  }
  n(nOe, "assertTSTypeAssertion");
  function aOe(t, e) {
    _("TSEnumBody", t, e);
  }
  n(aOe, "assertTSEnumBody");
  function oOe(t, e) {
    _("TSEnumDeclaration", t, e);
  }
  n(oOe, "assertTSEnumDeclaration");
  function lOe(t, e) {
    _("TSEnumMember", t, e);
  }
  n(lOe, "assertTSEnumMember");
  function uOe(t, e) {
    _("TSModuleDeclaration", t, e);
  }
  n(uOe, "assertTSModuleDeclaration");
  function cOe(t, e) {
    _("TSModuleBlock", t, e);
  }
  n(cOe, "assertTSModuleBlock");
  function pOe(t, e) {
    _("TSImportType", t, e);
  }
  n(pOe, "assertTSImportType");
  function hOe(t, e) {
    _("TSImportEqualsDeclaration", t, e);
  }
  n(hOe, "assertTSImportEqualsDeclaration");
  function fOe(t, e) {
    _("TSExternalModuleReference", t, e);
  }
  n(fOe, "assertTSExternalModuleReference");
  function dOe(t, e) {
    _("TSNonNullExpression", t, e);
  }
  n(dOe, "assertTSNonNullExpression");
  function mOe(t, e) {
    _("TSExportAssignment", t, e);
  }
  n(mOe, "assertTSExportAssignment");
  function yOe(t, e) {
    _("TSNamespaceExportDeclaration", t, e);
  }
  n(yOe, "assertTSNamespaceExportDeclaration");
  function gOe(t, e) {
    _("TSTypeAnnotation", t, e);
  }
  n(gOe, "assertTSTypeAnnotation");
  function TOe(t, e) {
    _("TSTypeParameterInstantiation", t, e);
  }
  n(TOe, "assertTSTypeParameterInstantiation");
  function bOe(t, e) {
    _("TSTypeParameterDeclaration", t, e);
  }
  n(bOe, "assertTSTypeParameterDeclaration");
  function xOe(t, e) {
    _("TSTypeParameter", t, e);
  }
  n(xOe, "assertTSTypeParameter");
  function SOe(t, e) {
    _("Standardized", t, e);
  }
  n(SOe, "assertStandardized");
  function POe(t, e) {
    _("Expression", t, e);
  }
  n(POe, "assertExpression");
  function EOe(t, e) {
    _("Binary", t, e);
  }
  n(EOe, "assertBinary");
  function AOe(t, e) {
    _("Scopable", t, e);
  }
  n(AOe, "assertScopable");
  function vOe(t, e) {
    _("BlockParent", t, e);
  }
  n(vOe, "assertBlockParent");
  function COe(t, e) {
    _("Block", t, e);
  }
  n(COe, "assertBlock");
  function wOe(t, e) {
    _("Statement", t, e);
  }
  n(wOe, "assertStatement");
  function IOe(t, e) {
    _("Terminatorless", t, e);
  }
  n(IOe, "assertTerminatorless");
  function NOe(t, e) {
    _("CompletionStatement", t, e);
  }
  n(NOe, "assertCompletionStatement");
  function kOe(t, e) {
    _("Conditional", t, e);
  }
  n(kOe, "assertConditional");
  function DOe(t, e) {
    _("Loop", t, e);
  }
  n(DOe, "assertLoop");
  function OOe(t, e) {
    _("While", t, e);
  }
  n(OOe, "assertWhile");
  function _Oe(t, e) {
    _("ExpressionWrapper", t, e);
  }
  n(_Oe, "assertExpressionWrapper");
  function LOe(t, e) {
    _("For", t, e);
  }
  n(LOe, "assertFor");
  function BOe(t, e) {
    _("ForXStatement", t, e);
  }
  n(BOe, "assertForXStatement");
  function MOe(t, e) {
    _("Function", t, e);
  }
  n(MOe, "assertFunction");
  function FOe(t, e) {
    _("FunctionParent", t, e);
  }
  n(FOe, "assertFunctionParent");
  function jOe(t, e) {
    _("Pureish", t, e);
  }
  n(jOe, "assertPureish");
  function ROe(t, e) {
    _("Declaration", t, e);
  }
  n(ROe, "assertDeclaration");
  function qOe(t, e) {
    _("PatternLike", t, e);
  }
  n(qOe, "assertPatternLike");
  function UOe(t, e) {
    _("LVal", t, e);
  }
  n(UOe, "assertLVal");
  function KOe(t, e) {
    _("TSEntityName", t, e);
  }
  n(KOe, "assertTSEntityName");
  function VOe(t, e) {
    _("Literal", t, e);
  }
  n(VOe, "assertLiteral");
  function WOe(t, e) {
    _("Immutable", t, e);
  }
  n(WOe, "assertImmutable");
  function $Oe(t, e) {
    _("UserWhitespacable", t, e);
  }
  n($Oe, "assertUserWhitespacable");
  function HOe(t, e) {
    _("Method", t, e);
  }
  n(HOe, "assertMethod");
  function JOe(t, e) {
    _("ObjectMember", t, e);
  }
  n(JOe, "assertObjectMember");
  function YOe(t, e) {
    _("Property", t, e);
  }
  n(YOe, "assertProperty");
  function XOe(t, e) {
    _("UnaryLike", t, e);
  }
  n(XOe, "assertUnaryLike");
  function zOe(t, e) {
    _("Pattern", t, e);
  }
  n(zOe, "assertPattern");
  function GOe(t, e) {
    _("Class", t, e);
  }
  n(GOe, "assertClass");
  function QOe(t, e) {
    _("ImportOrExportDeclaration", t, e);
  }
  n(QOe, "assertImportOrExportDeclaration");
  function ZOe(t, e) {
    _("ExportDeclaration", t, e);
  }
  n(ZOe, "assertExportDeclaration");
  function e2e(t, e) {
    _("ModuleSpecifier", t, e);
  }
  n(e2e, "assertModuleSpecifier");
  function t2e(t, e) {
    _("Accessor", t, e);
  }
  n(t2e, "assertAccessor");
  function s2e(t, e) {
    _("Private", t, e);
  }
  n(s2e, "assertPrivate");
  function r2e(t, e) {
    _("Flow", t, e);
  }
  n(r2e, "assertFlow");
  function i2e(t, e) {
    _("FlowType", t, e);
  }
  n(i2e, "assertFlowType");
  function n2e(t, e) {
    _("FlowBaseAnnotation", t, e);
  }
  n(n2e, "assertFlowBaseAnnotation");
  function a2e(t, e) {
    _("FlowDeclaration", t, e);
  }
  n(a2e, "assertFlowDeclaration");
  function o2e(t, e) {
    _("FlowPredicate", t, e);
  }
  n(o2e, "assertFlowPredicate");
  function l2e(t, e) {
    _("EnumBody", t, e);
  }
  n(l2e, "assertEnumBody");
  function u2e(t, e) {
    _("EnumMember", t, e);
  }
  n(u2e, "assertEnumMember");
  function c2e(t, e) {
    _("JSX", t, e);
  }
  n(c2e, "assertJSX");
  function p2e(t, e) {
    _("Miscellaneous", t, e);
  }
  n(p2e, "assertMiscellaneous");
  function h2e(t, e) {
    _("TypeScript", t, e);
  }
  n(h2e, "assertTypeScript");
  function f2e(t, e) {
    _("TSTypeElement", t, e);
  }
  n(f2e, "assertTSTypeElement");
  function d2e(t, e) {
    _("TSType", t, e);
  }
  n(d2e, "assertTSType");
  function m2e(t, e) {
    _("TSBaseType", t, e);
  }
  n(m2e, "assertTSBaseType");
  function y2e(t, e) {
    (0, Wy.default)("assertNumberLiteral", "assertNumericLiteral"), _("NumberLiteral", t, e);
  }
  n(y2e, "assertNumberLiteral");
  function g2e(t, e) {
    (0, Wy.default)("assertRegexLiteral", "assertRegExpLiteral"), _("RegexLiteral", t, e);
  }
  n(g2e, "assertRegexLiteral");
  function T2e(t, e) {
    (0, Wy.default)("assertRestProperty", "assertRestElement"), _("RestProperty", t, e);
  }
  n(T2e, "assertRestProperty");
  function b2e(t, e) {
    (0, Wy.default)("assertSpreadProperty", "assertSpreadElement"), _("SpreadProperty", t, e);
  }
  n(b2e, "assertSpreadProperty");
  function x2e(t, e) {
    (0, Wy.default)("assertModuleDeclaration", "assertImportOrExportDeclaration"), _("ModuleDeclaration", t, e);
  }
  n(x2e, "assertModuleDeclaration");
});

// ../node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js
var yq = g((Nb) => {
  "use strict";
  Object.defineProperty(Nb, "__esModule", {
    value: !0
  });
  Nb.default = void 0;
  var mo = sa(), pjs = Nb.default = S2e;
  function S2e(t) {
    switch (t) {
      case "string":
        return (0, mo.stringTypeAnnotation)();
      case "number":
        return (0, mo.numberTypeAnnotation)();
      case "undefined":
        return (0, mo.voidTypeAnnotation)();
      case "boolean":
        return (0, mo.booleanTypeAnnotation)();
      case "function":
        return (0, mo.genericTypeAnnotation)((0, mo.identifier)("Function"));
      case "object":
        return (0, mo.genericTypeAnnotation)((0, mo.identifier)("Object"));
      case "symbol":
        return (0, mo.genericTypeAnnotation)((0, mo.identifier)("Symbol"));
      case "bigint":
        return (0, mo.anyTypeAnnotation)();
    }
    throw new Error("Invalid typeof value: " + t);
  }
  n(S2e, "createTypeAnnotationBasedOnTypeof");
});

// ../node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js
var sw = g((tw) => {
  "use strict";
  Object.defineProperty(tw, "__esModule", {
    value: !0
  });
  tw.default = Tq;
  var $y = ti();
  function gq(t) {
    return (0, $y.isIdentifier)(t) ? t.name : `${t.id.name}.${gq(t.qualification)}`;
  }
  n(gq, "getQualifiedName");
  function Tq(t) {
    let e = Array.from(t), s = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = [];
    for (let o = 0; o < e.length; o++) {
      let l = e[o];
      if (l && !a.includes(l)) {
        if ((0, $y.isAnyTypeAnnotation)(l))
          return [l];
        if ((0, $y.isFlowBaseAnnotation)(l)) {
          r.set(l.type, l);
          continue;
        }
        if ((0, $y.isUnionTypeAnnotation)(l)) {
          i.has(l.types) || (e.push(...l.types), i.add(l.types));
          continue;
        }
        if ((0, $y.isGenericTypeAnnotation)(l)) {
          let u = gq(l.id);
          if (s.has(u)) {
            let c = s.get(u);
            c.typeParameters ? l.typeParameters && (c.typeParameters.params.push(...l.typeParameters.params), c.typeParameters.params = Tq(c.
            typeParameters.params)) : c = l.typeParameters;
          } else
            s.set(u, l);
          continue;
        }
        a.push(l);
      }
    }
    for (let [, o] of r)
      a.push(o);
    for (let [, o] of s)
      a.push(o);
    return a;
  }
  n(Tq, "removeTypeDuplicates");
});

// ../node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js
var bq = g((rw) => {
  "use strict";
  Object.defineProperty(rw, "__esModule", {
    value: !0
  });
  rw.default = A2e;
  var P2e = sa(), E2e = sw();
  function A2e(t) {
    let e = (0, E2e.default)(t);
    return e.length === 1 ? e[0] : (0, P2e.unionTypeAnnotation)(e);
  }
  n(A2e, "createFlowUnionType");
});

// ../node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js
var Pq = g((iw) => {
  "use strict";
  Object.defineProperty(iw, "__esModule", {
    value: !0
  });
  iw.default = Sq;
  var id = ti();
  function xq(t) {
    return (0, id.isIdentifier)(t) ? t.name : (0, id.isThisExpression)(t) ? "this" : `${t.right.name}.${xq(t.left)}`;
  }
  n(xq, "getQualifiedName");
  function Sq(t) {
    let e = Array.from(t), s = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = [];
    for (let o = 0; o < e.length; o++) {
      let l = e[o];
      if (!l || a.includes(l))
        continue;
      if ((0, id.isTSAnyKeyword)(l))
        return [l];
      if ((0, id.isTSBaseType)(l)) {
        r.set(l.type, l);
        continue;
      }
      if ((0, id.isTSUnionType)(l)) {
        i.has(l.types) || (e.push(...l.types), i.add(l.types));
        continue;
      }
      let u = "typeParameters";
      if ((0, id.isTSTypeReference)(l) && l[u]) {
        let c = l[u], p = xq(l.typeName);
        if (s.has(p)) {
          let h = s.get(p), f = h[u];
          f ? (f.params.push(...c.params), f.params = Sq(f.params)) : h = c;
        } else
          s.set(p, l);
        continue;
      }
      a.push(l);
    }
    for (let [, o] of r)
      a.push(o);
    for (let [, o] of s)
      a.push(o);
    return a;
  }
  n(Sq, "removeTypeDuplicates");
});

// ../node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js
var Eq = g((nw) => {
  "use strict";
  Object.defineProperty(nw, "__esModule", {
    value: !0
  });
  nw.default = I2e;
  var v2e = sa(), C2e = Pq(), w2e = ti();
  function I2e(t) {
    let e = t.map((r) => (0, w2e.isTSTypeAnnotation)(r) ? r.typeAnnotation : r), s = (0, C2e.default)(e);
    return s.length === 1 ? s[0] : (0, v2e.tsUnionType)(s);
  }
  n(I2e, "createTSUnionType");
});

// ../node_modules/@babel/types/lib/builders/productions.js
var ow = g((aw) => {
  "use strict";
  Object.defineProperty(aw, "__esModule", {
    value: !0
  });
  aw.buildUndefinedNode = N2e;
  var Aq = sa();
  function N2e() {
    return (0, Aq.unaryExpression)("void", (0, Aq.numericLiteral)(0), !0);
  }
  n(N2e, "buildUndefinedNode");
});

// ../node_modules/@babel/types/lib/clone/cloneNode.js
var Cc = g((uw) => {
  "use strict";
  Object.defineProperty(uw, "__esModule", {
    value: !0
  });
  uw.default = k2e;
  var vq = ba(), Cq = ti(), {
    hasOwn: zo
  } = {
    hasOwn: Function.call.bind(Object.prototype.hasOwnProperty)
  };
  function wq(t, e, s, r) {
    return t && typeof t.type == "string" ? Iq(t, e, s, r) : t;
  }
  n(wq, "cloneIfNode");
  function lw(t, e, s, r) {
    return Array.isArray(t) ? t.map((i) => wq(i, e, s, r)) : wq(t, e, s, r);
  }
  n(lw, "cloneIfNodeOrArray");
  function k2e(t, e = !0, s = !1) {
    return Iq(t, e, s, /* @__PURE__ */ new Map());
  }
  n(k2e, "cloneNode");
  function Iq(t, e = !0, s = !1, r) {
    if (!t) return t;
    let {
      type: i
    } = t, a = {
      type: t.type
    };
    if ((0, Cq.isIdentifier)(t))
      a.name = t.name, zo(t, "optional") && typeof t.optional == "boolean" && (a.optional = t.optional), zo(t, "typeAnnotation") && (a.typeAnnotation =
      e ? lw(t.typeAnnotation, !0, s, r) : t.typeAnnotation), zo(t, "decorators") && (a.decorators = e ? lw(t.decorators, !0, s, r) : t.decorators);
    else if (zo(vq.NODE_FIELDS, i))
      for (let o of Object.keys(vq.NODE_FIELDS[i]))
        zo(t, o) && (e ? a[o] = (0, Cq.isFile)(t) && o === "comments" ? kb(t.comments, e, s, r) : lw(t[o], !0, s, r) : a[o] = t[o]);
    else
      throw new Error(`Unknown node type: "${i}"`);
    return zo(t, "loc") && (s ? a.loc = null : a.loc = t.loc), zo(t, "leadingComments") && (a.leadingComments = kb(t.leadingComments, e, s, r)),
    zo(t, "innerComments") && (a.innerComments = kb(t.innerComments, e, s, r)), zo(t, "trailingComments") && (a.trailingComments = kb(t.trailingComments,
    e, s, r)), zo(t, "extra") && (a.extra = Object.assign({}, t.extra)), a;
  }
  n(Iq, "cloneNodeInternal");
  function kb(t, e, s, r) {
    return !t || !e ? t : t.map((i) => {
      let a = r.get(i);
      if (a) return a;
      let {
        type: o,
        value: l,
        loc: u
      } = i, c = {
        type: o,
        value: l,
        loc: u
      };
      return s && (c.loc = null), r.set(i, c), c;
    });
  }
  n(kb, "maybeCloneComments");
});

// ../node_modules/@babel/types/lib/clone/clone.js
var Nq = g((cw) => {
  "use strict";
  Object.defineProperty(cw, "__esModule", {
    value: !0
  });
  cw.default = O2e;
  var D2e = Cc();
  function O2e(t) {
    return (0, D2e.default)(t, !1);
  }
  n(O2e, "clone");
});

// ../node_modules/@babel/types/lib/clone/cloneDeep.js
var kq = g((pw) => {
  "use strict";
  Object.defineProperty(pw, "__esModule", {
    value: !0
  });
  pw.default = L2e;
  var _2e = Cc();
  function L2e(t) {
    return (0, _2e.default)(t);
  }
  n(L2e, "cloneDeep");
});

// ../node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js
var Dq = g((hw) => {
  "use strict";
  Object.defineProperty(hw, "__esModule", {
    value: !0
  });
  hw.default = M2e;
  var B2e = Cc();
  function M2e(t) {
    return (0, B2e.default)(t, !0, !0);
  }
  n(M2e, "cloneDeepWithoutLoc");
});

// ../node_modules/@babel/types/lib/clone/cloneWithoutLoc.js
var Oq = g((fw) => {
  "use strict";
  Object.defineProperty(fw, "__esModule", {
    value: !0
  });
  fw.default = j2e;
  var F2e = Cc();
  function j2e(t) {
    return (0, F2e.default)(t, !1, !0);
  }
  n(j2e, "cloneWithoutLoc");
});

// ../node_modules/@babel/types/lib/comments/addComments.js
var mw = g((dw) => {
  "use strict";
  Object.defineProperty(dw, "__esModule", {
    value: !0
  });
  dw.default = R2e;
  function R2e(t, e, s) {
    if (!s || !t) return t;
    let r = `${e}Comments`;
    return t[r] ? e === "leading" ? t[r] = s.concat(t[r]) : t[r].push(...s) : t[r] = s, t;
  }
  n(R2e, "addComments");
});

// ../node_modules/@babel/types/lib/comments/addComment.js
var _q = g((yw) => {
  "use strict";
  Object.defineProperty(yw, "__esModule", {
    value: !0
  });
  yw.default = U2e;
  var q2e = mw();
  function U2e(t, e, s, r) {
    return (0, q2e.default)(t, e, [{
      type: r ? "CommentLine" : "CommentBlock",
      value: s
    }]);
  }
  n(U2e, "addComment");
});

// ../node_modules/@babel/types/lib/utils/inherit.js
var Db = g((gw) => {
  "use strict";
  Object.defineProperty(gw, "__esModule", {
    value: !0
  });
  gw.default = K2e;
  function K2e(t, e, s) {
    e && s && (e[t] = Array.from(new Set([].concat(e[t], s[t]).filter(Boolean))));
  }
  n(K2e, "inherit");
});

// ../node_modules/@babel/types/lib/comments/inheritInnerComments.js
var bw = g((Tw) => {
  "use strict";
  Object.defineProperty(Tw, "__esModule", {
    value: !0
  });
  Tw.default = W2e;
  var V2e = Db();
  function W2e(t, e) {
    (0, V2e.default)("innerComments", t, e);
  }
  n(W2e, "inheritInnerComments");
});

// ../node_modules/@babel/types/lib/comments/inheritLeadingComments.js
var Sw = g((xw) => {
  "use strict";
  Object.defineProperty(xw, "__esModule", {
    value: !0
  });
  xw.default = H2e;
  var $2e = Db();
  function H2e(t, e) {
    (0, $2e.default)("leadingComments", t, e);
  }
  n(H2e, "inheritLeadingComments");
});

// ../node_modules/@babel/types/lib/comments/inheritTrailingComments.js
var Ew = g((Pw) => {
  "use strict";
  Object.defineProperty(Pw, "__esModule", {
    value: !0
  });
  Pw.default = Y2e;
  var J2e = Db();
  function Y2e(t, e) {
    (0, J2e.default)("trailingComments", t, e);
  }
  n(Y2e, "inheritTrailingComments");
});

// ../node_modules/@babel/types/lib/comments/inheritsComments.js
var vw = g((Aw) => {
  "use strict";
  Object.defineProperty(Aw, "__esModule", {
    value: !0
  });
  Aw.default = Q2e;
  var X2e = Ew(), z2e = Sw(), G2e = bw();
  function Q2e(t, e) {
    return (0, X2e.default)(t, e), (0, z2e.default)(t, e), (0, G2e.default)(t, e), t;
  }
  n(Q2e, "inheritsComments");
});

// ../node_modules/@babel/types/lib/comments/removeComments.js
var Lq = g((Cw) => {
  "use strict";
  Object.defineProperty(Cw, "__esModule", {
    value: !0
  });
  Cw.default = e_e;
  var Z2e = Ec();
  function e_e(t) {
    return Z2e.COMMENT_KEYS.forEach((e) => {
      t[e] = null;
    }), t;
  }
  n(e_e, "removeComments");
});

// ../node_modules/@babel/types/lib/constants/generated/index.js
var Bq = g((Ce) => {
  "use strict";
  Object.defineProperty(Ce, "__esModule", {
    value: !0
  });
  Ce.WHILE_TYPES = Ce.USERWHITESPACABLE_TYPES = Ce.UNARYLIKE_TYPES = Ce.TYPESCRIPT_TYPES = Ce.TSTYPE_TYPES = Ce.TSTYPEELEMENT_TYPES = Ce.TSENTITYNAME_TYPES =
  Ce.TSBASETYPE_TYPES = Ce.TERMINATORLESS_TYPES = Ce.STATEMENT_TYPES = Ce.STANDARDIZED_TYPES = Ce.SCOPABLE_TYPES = Ce.PUREISH_TYPES = Ce.PROPERTY_TYPES =
  Ce.PRIVATE_TYPES = Ce.PATTERN_TYPES = Ce.PATTERNLIKE_TYPES = Ce.OBJECTMEMBER_TYPES = Ce.MODULESPECIFIER_TYPES = Ce.MODULEDECLARATION_TYPES =
  Ce.MISCELLANEOUS_TYPES = Ce.METHOD_TYPES = Ce.LVAL_TYPES = Ce.LOOP_TYPES = Ce.LITERAL_TYPES = Ce.JSX_TYPES = Ce.IMPORTOREXPORTDECLARATION_TYPES =
  Ce.IMMUTABLE_TYPES = Ce.FUNCTION_TYPES = Ce.FUNCTIONPARENT_TYPES = Ce.FOR_TYPES = Ce.FORXSTATEMENT_TYPES = Ce.FLOW_TYPES = Ce.FLOWTYPE_TYPES =
  Ce.FLOWPREDICATE_TYPES = Ce.FLOWDECLARATION_TYPES = Ce.FLOWBASEANNOTATION_TYPES = Ce.EXPRESSION_TYPES = Ce.EXPRESSIONWRAPPER_TYPES = Ce.EXPORTDECLARATION_TYPES =
  Ce.ENUMMEMBER_TYPES = Ce.ENUMBODY_TYPES = Ce.DECLARATION_TYPES = Ce.CONDITIONAL_TYPES = Ce.COMPLETIONSTATEMENT_TYPES = Ce.CLASS_TYPES = Ce.
  BLOCK_TYPES = Ce.BLOCKPARENT_TYPES = Ce.BINARY_TYPES = Ce.ACCESSOR_TYPES = void 0;
  var $t = ba(), zjs = Ce.STANDARDIZED_TYPES = $t.FLIPPED_ALIAS_KEYS.Standardized, Gjs = Ce.EXPRESSION_TYPES = $t.FLIPPED_ALIAS_KEYS.Expression,
  Qjs = Ce.BINARY_TYPES = $t.FLIPPED_ALIAS_KEYS.Binary, Zjs = Ce.SCOPABLE_TYPES = $t.FLIPPED_ALIAS_KEYS.Scopable, e8s = Ce.BLOCKPARENT_TYPES =
  $t.FLIPPED_ALIAS_KEYS.BlockParent, t8s = Ce.BLOCK_TYPES = $t.FLIPPED_ALIAS_KEYS.Block, s8s = Ce.STATEMENT_TYPES = $t.FLIPPED_ALIAS_KEYS.Statement,
  r8s = Ce.TERMINATORLESS_TYPES = $t.FLIPPED_ALIAS_KEYS.Terminatorless, i8s = Ce.COMPLETIONSTATEMENT_TYPES = $t.FLIPPED_ALIAS_KEYS.CompletionStatement,
  n8s = Ce.CONDITIONAL_TYPES = $t.FLIPPED_ALIAS_KEYS.Conditional, a8s = Ce.LOOP_TYPES = $t.FLIPPED_ALIAS_KEYS.Loop, o8s = Ce.WHILE_TYPES = $t.
  FLIPPED_ALIAS_KEYS.While, l8s = Ce.EXPRESSIONWRAPPER_TYPES = $t.FLIPPED_ALIAS_KEYS.ExpressionWrapper, u8s = Ce.FOR_TYPES = $t.FLIPPED_ALIAS_KEYS.
  For, c8s = Ce.FORXSTATEMENT_TYPES = $t.FLIPPED_ALIAS_KEYS.ForXStatement, p8s = Ce.FUNCTION_TYPES = $t.FLIPPED_ALIAS_KEYS.Function, h8s = Ce.
  FUNCTIONPARENT_TYPES = $t.FLIPPED_ALIAS_KEYS.FunctionParent, f8s = Ce.PUREISH_TYPES = $t.FLIPPED_ALIAS_KEYS.Pureish, d8s = Ce.DECLARATION_TYPES =
  $t.FLIPPED_ALIAS_KEYS.Declaration, m8s = Ce.PATTERNLIKE_TYPES = $t.FLIPPED_ALIAS_KEYS.PatternLike, y8s = Ce.LVAL_TYPES = $t.FLIPPED_ALIAS_KEYS.
  LVal, g8s = Ce.TSENTITYNAME_TYPES = $t.FLIPPED_ALIAS_KEYS.TSEntityName, T8s = Ce.LITERAL_TYPES = $t.FLIPPED_ALIAS_KEYS.Literal, b8s = Ce.IMMUTABLE_TYPES =
  $t.FLIPPED_ALIAS_KEYS.Immutable, x8s = Ce.USERWHITESPACABLE_TYPES = $t.FLIPPED_ALIAS_KEYS.UserWhitespacable, S8s = Ce.METHOD_TYPES = $t.FLIPPED_ALIAS_KEYS.
  Method, P8s = Ce.OBJECTMEMBER_TYPES = $t.FLIPPED_ALIAS_KEYS.ObjectMember, E8s = Ce.PROPERTY_TYPES = $t.FLIPPED_ALIAS_KEYS.Property, A8s = Ce.
  UNARYLIKE_TYPES = $t.FLIPPED_ALIAS_KEYS.UnaryLike, v8s = Ce.PATTERN_TYPES = $t.FLIPPED_ALIAS_KEYS.Pattern, C8s = Ce.CLASS_TYPES = $t.FLIPPED_ALIAS_KEYS.
  Class, t_e = Ce.IMPORTOREXPORTDECLARATION_TYPES = $t.FLIPPED_ALIAS_KEYS.ImportOrExportDeclaration, w8s = Ce.EXPORTDECLARATION_TYPES = $t.FLIPPED_ALIAS_KEYS.
  ExportDeclaration, I8s = Ce.MODULESPECIFIER_TYPES = $t.FLIPPED_ALIAS_KEYS.ModuleSpecifier, N8s = Ce.ACCESSOR_TYPES = $t.FLIPPED_ALIAS_KEYS.
  Accessor, k8s = Ce.PRIVATE_TYPES = $t.FLIPPED_ALIAS_KEYS.Private, D8s = Ce.FLOW_TYPES = $t.FLIPPED_ALIAS_KEYS.Flow, O8s = Ce.FLOWTYPE_TYPES =
  $t.FLIPPED_ALIAS_KEYS.FlowType, _8s = Ce.FLOWBASEANNOTATION_TYPES = $t.FLIPPED_ALIAS_KEYS.FlowBaseAnnotation, L8s = Ce.FLOWDECLARATION_TYPES =
  $t.FLIPPED_ALIAS_KEYS.FlowDeclaration, B8s = Ce.FLOWPREDICATE_TYPES = $t.FLIPPED_ALIAS_KEYS.FlowPredicate, M8s = Ce.ENUMBODY_TYPES = $t.FLIPPED_ALIAS_KEYS.
  EnumBody, F8s = Ce.ENUMMEMBER_TYPES = $t.FLIPPED_ALIAS_KEYS.EnumMember, j8s = Ce.JSX_TYPES = $t.FLIPPED_ALIAS_KEYS.JSX, R8s = Ce.MISCELLANEOUS_TYPES =
  $t.FLIPPED_ALIAS_KEYS.Miscellaneous, q8s = Ce.TYPESCRIPT_TYPES = $t.FLIPPED_ALIAS_KEYS.TypeScript, U8s = Ce.TSTYPEELEMENT_TYPES = $t.FLIPPED_ALIAS_KEYS.
  TSTypeElement, K8s = Ce.TSTYPE_TYPES = $t.FLIPPED_ALIAS_KEYS.TSType, V8s = Ce.TSBASETYPE_TYPES = $t.FLIPPED_ALIAS_KEYS.TSBaseType, W8s = Ce.
  MODULEDECLARATION_TYPES = t_e;
});

// ../node_modules/@babel/types/lib/converters/toBlock.js
var Nw = g((Iw) => {
  "use strict";
  Object.defineProperty(Iw, "__esModule", {
    value: !0
  });
  Iw.default = s_e;
  var Ob = ti(), ww = sa();
  function s_e(t, e) {
    if ((0, Ob.isBlockStatement)(t))
      return t;
    let s = [];
    return (0, Ob.isEmptyStatement)(t) ? s = [] : ((0, Ob.isStatement)(t) || ((0, Ob.isFunction)(e) ? t = (0, ww.returnStatement)(t) : t = (0, ww.
    expressionStatement)(t)), s = [t]), (0, ww.blockStatement)(s);
  }
  n(s_e, "toBlock");
});

// ../node_modules/@babel/types/lib/converters/ensureBlock.js
var Mq = g((kw) => {
  "use strict";
  Object.defineProperty(kw, "__esModule", {
    value: !0
  });
  kw.default = i_e;
  var r_e = Nw();
  function i_e(t, e = "body") {
    let s = (0, r_e.default)(t[e], t);
    return t[e] = s, s;
  }
  n(i_e, "ensureBlock");
});

// ../node_modules/@babel/types/lib/converters/toIdentifier.js
var Ow = g((Dw) => {
  "use strict";
  Object.defineProperty(Dw, "__esModule", {
    value: !0
  });
  Dw.default = o_e;
  var n_e = ed(), a_e = xa();
  function o_e(t) {
    t = t + "";
    let e = "";
    for (let s of t)
      e += (0, a_e.isIdentifierChar)(s.codePointAt(0)) ? s : "-";
    return e = e.replace(/^[-0-9]+/, ""), e = e.replace(/[-\s]+(.)?/g, function(s, r) {
      return r ? r.toUpperCase() : "";
    }), (0, n_e.default)(e) || (e = `_${e}`), e || "_";
  }
  n(o_e, "toIdentifier");
});

// ../node_modules/@babel/types/lib/converters/toBindingIdentifierName.js
var Fq = g((_w) => {
  "use strict";
  Object.defineProperty(_w, "__esModule", {
    value: !0
  });
  _w.default = u_e;
  var l_e = Ow();
  function u_e(t) {
    return t = (0, l_e.default)(t), (t === "eval" || t === "arguments") && (t = "_" + t), t;
  }
  n(u_e, "toBindingIdentifierName");
});

// ../node_modules/@babel/types/lib/converters/toComputedKey.js
var jq = g((Lw) => {
  "use strict";
  Object.defineProperty(Lw, "__esModule", {
    value: !0
  });
  Lw.default = h_e;
  var c_e = ti(), p_e = sa();
  function h_e(t, e = t.key || t.property) {
    return !t.computed && (0, c_e.isIdentifier)(e) && (e = (0, p_e.stringLiteral)(e.name)), e;
  }
  n(h_e, "toComputedKey");
});

// ../node_modules/@babel/types/lib/converters/toExpression.js
var Rq = g((_b) => {
  "use strict";
  Object.defineProperty(_b, "__esModule", {
    value: !0
  });
  _b.default = void 0;
  var Hy = ti(), s6s = _b.default = f_e;
  function f_e(t) {
    if ((0, Hy.isExpressionStatement)(t) && (t = t.expression), (0, Hy.isExpression)(t))
      return t;
    if ((0, Hy.isClass)(t) ? t.type = "ClassExpression" : (0, Hy.isFunction)(t) && (t.type = "FunctionExpression"), !(0, Hy.isExpression)(t))
      throw new Error(`cannot turn ${t.type} to an expression`);
    return t;
  }
  n(f_e, "toExpression");
});

// ../node_modules/@babel/types/lib/traverse/traverseFast.js
var Fw = g((Mw) => {
  "use strict";
  Object.defineProperty(Mw, "__esModule", {
    value: !0
  });
  Mw.default = Bw;
  var d_e = ba();
  function Bw(t, e, s) {
    if (!t) return;
    let r = d_e.VISITOR_KEYS[t.type];
    if (r) {
      s = s || {}, e(t, s);
      for (let i of r) {
        let a = t[i];
        if (Array.isArray(a))
          for (let o of a)
            Bw(o, e, s);
        else
          Bw(a, e, s);
      }
    }
  }
  n(Bw, "traverseFast");
});

// ../node_modules/@babel/types/lib/modifications/removeProperties.js
var Rw = g((jw) => {
  "use strict";
  Object.defineProperty(jw, "__esModule", {
    value: !0
  });
  jw.default = g_e;
  var m_e = Ec(), qq = ["tokens", "start", "end", "loc", "raw", "rawValue"], y_e = [...m_e.COMMENT_KEYS, "comments", ...qq];
  function g_e(t, e = {}) {
    let s = e.preserveComments ? qq : y_e;
    for (let i of s)
      t[i] != null && (t[i] = void 0);
    for (let i of Object.keys(t))
      i[0] === "_" && t[i] != null && (t[i] = void 0);
    let r = Object.getOwnPropertySymbols(t);
    for (let i of r)
      t[i] = null;
  }
  n(g_e, "removeProperties");
});

// ../node_modules/@babel/types/lib/modifications/removePropertiesDeep.js
var Uw = g((qw) => {
  "use strict";
  Object.defineProperty(qw, "__esModule", {
    value: !0
  });
  qw.default = x_e;
  var T_e = Fw(), b_e = Rw();
  function x_e(t, e) {
    return (0, T_e.default)(t, b_e.default, e), t;
  }
  n(x_e, "removePropertiesDeep");
});

// ../node_modules/@babel/types/lib/converters/toKeyAlias.js
var Kq = g((Kw) => {
  "use strict";
  Object.defineProperty(Kw, "__esModule", {
    value: !0
  });
  Kw.default = th;
  var Uq = ti(), S_e = Cc(), P_e = Uw();
  function th(t, e = t.key) {
    let s;
    return t.kind === "method" ? th.increment() + "" : ((0, Uq.isIdentifier)(e) ? s = e.name : (0, Uq.isStringLiteral)(e) ? s = JSON.stringify(
    e.value) : s = JSON.stringify((0, P_e.default)((0, S_e.default)(e))), t.computed && (s = `[${s}]`), t.static && (s = `static:${s}`), s);
  }
  n(th, "toKeyAlias");
  th.uid = 0;
  th.increment = function() {
    return th.uid >= Number.MAX_SAFE_INTEGER ? th.uid = 0 : th.uid++;
  };
});

// ../node_modules/@babel/types/lib/converters/toStatement.js
var Vq = g((Bb) => {
  "use strict";
  Object.defineProperty(Bb, "__esModule", {
    value: !0
  });
  Bb.default = void 0;
  var Lb = ti(), E_e = sa(), f6s = Bb.default = A_e;
  function A_e(t, e) {
    if ((0, Lb.isStatement)(t))
      return t;
    let s = !1, r;
    if ((0, Lb.isClass)(t))
      s = !0, r = "ClassDeclaration";
    else if ((0, Lb.isFunction)(t))
      s = !0, r = "FunctionDeclaration";
    else if ((0, Lb.isAssignmentExpression)(t))
      return (0, E_e.expressionStatement)(t);
    if (s && !t.id && (r = !1), !r) {
      if (e)
        return !1;
      throw new Error(`cannot turn ${t.type} to a statement`);
    }
    return t.type = r, t;
  }
  n(A_e, "toStatement");
});

// ../node_modules/@babel/types/lib/converters/valueToNode.js
var Wq = g((Mb) => {
  "use strict";
  Object.defineProperty(Mb, "__esModule", {
    value: !0
  });
  Mb.default = void 0;
  var v_e = ed(), sn = sa(), y6s = Mb.default = Vw, C_e = Function.call.bind(Object.prototype.toString);
  function w_e(t) {
    return C_e(t) === "[object RegExp]";
  }
  n(w_e, "isRegExp");
  function I_e(t) {
    if (typeof t != "object" || t === null || Object.prototype.toString.call(t) !== "[object Object]")
      return !1;
    let e = Object.getPrototypeOf(t);
    return e === null || Object.getPrototypeOf(e) === null;
  }
  n(I_e, "isPlainObject");
  function Vw(t) {
    if (t === void 0)
      return (0, sn.identifier)("undefined");
    if (t === !0 || t === !1)
      return (0, sn.booleanLiteral)(t);
    if (t === null)
      return (0, sn.nullLiteral)();
    if (typeof t == "string")
      return (0, sn.stringLiteral)(t);
    if (typeof t == "number") {
      let e;
      if (Number.isFinite(t))
        e = (0, sn.numericLiteral)(Math.abs(t));
      else {
        let s;
        Number.isNaN(t) ? s = (0, sn.numericLiteral)(0) : s = (0, sn.numericLiteral)(1), e = (0, sn.binaryExpression)("/", s, (0, sn.numericLiteral)(
        0));
      }
      return (t < 0 || Object.is(t, -0)) && (e = (0, sn.unaryExpression)("-", e)), e;
    }
    if (w_e(t)) {
      let e = t.source, s = /\/([a-z]*)$/.exec(t.toString())[1];
      return (0, sn.regExpLiteral)(e, s);
    }
    if (Array.isArray(t))
      return (0, sn.arrayExpression)(t.map(Vw));
    if (I_e(t)) {
      let e = [];
      for (let s of Object.keys(t)) {
        let r;
        (0, v_e.default)(s) ? r = (0, sn.identifier)(s) : r = (0, sn.stringLiteral)(s), e.push((0, sn.objectProperty)(r, Vw(t[s])));
      }
      return (0, sn.objectExpression)(e);
    }
    throw new Error("don't know how to turn this value into a node");
  }
  n(Vw, "valueToNode");
});

// ../node_modules/@babel/types/lib/modifications/appendToMemberExpression.js
var $q = g((Ww) => {
  "use strict";
  Object.defineProperty(Ww, "__esModule", {
    value: !0
  });
  Ww.default = k_e;
  var N_e = sa();
  function k_e(t, e, s = !1) {
    return t.object = (0, N_e.memberExpression)(t.object, t.property, t.computed), t.property = e, t.computed = !!s, t;
  }
  n(k_e, "appendToMemberExpression");
});

// ../node_modules/@babel/types/lib/modifications/inherits.js
var Jq = g(($w) => {
  "use strict";
  Object.defineProperty($w, "__esModule", {
    value: !0
  });
  $w.default = O_e;
  var Hq = Ec(), D_e = vw();
  function O_e(t, e) {
    if (!t || !e) return t;
    for (let s of Hq.INHERIT_KEYS.optional)
      t[s] == null && (t[s] = e[s]);
    for (let s of Object.keys(e))
      s[0] === "_" && s !== "__clone" && (t[s] = e[s]);
    for (let s of Hq.INHERIT_KEYS.force)
      t[s] = e[s];
    return (0, D_e.default)(t, e), t;
  }
  n(O_e, "inherits");
});

// ../node_modules/@babel/types/lib/modifications/prependToMemberExpression.js
var Yq = g((Hw) => {
  "use strict";
  Object.defineProperty(Hw, "__esModule", {
    value: !0
  });
  Hw.default = B_e;
  var __e = sa(), L_e = fe();
  function B_e(t, e) {
    if ((0, L_e.isSuper)(t.object))
      throw new Error("Cannot prepend node to super property access (`super.foo`).");
    return t.object = (0, __e.memberExpression)(e, t.object), t;
  }
  n(B_e, "prependToMemberExpression");
});

// ../node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js
var Xq = g((Jw) => {
  "use strict";
  Object.defineProperty(Jw, "__esModule", {
    value: !0
  });
  Jw.default = M_e;
  function M_e(t) {
    let e = [].concat(t), s = /* @__PURE__ */ Object.create(null);
    for (; e.length; ) {
      let r = e.pop();
      if (r)
        switch (r.type) {
          case "ArrayPattern":
            e.push(...r.elements);
            break;
          case "AssignmentExpression":
          case "AssignmentPattern":
          case "ForInStatement":
          case "ForOfStatement":
            e.push(r.left);
            break;
          case "ObjectPattern":
            e.push(...r.properties);
            break;
          case "ObjectProperty":
            e.push(r.value);
            break;
          case "RestElement":
          case "UpdateExpression":
            e.push(r.argument);
            break;
          case "UnaryExpression":
            r.operator === "delete" && e.push(r.argument);
            break;
          case "Identifier":
            s[r.name] = r;
            break;
          default:
            break;
        }
    }
    return s;
  }
  n(M_e, "getAssignmentIdentifiers");
});

// ../node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js
var Jy = g((Xw) => {
  "use strict";
  Object.defineProperty(Xw, "__esModule", {
    value: !0
  });
  Xw.default = Yw;
  var ql = ti();
  function Yw(t, e, s, r) {
    let i = [].concat(t), a = /* @__PURE__ */ Object.create(null);
    for (; i.length; ) {
      let o = i.shift();
      if (!o || r && ((0, ql.isAssignmentExpression)(o) || (0, ql.isUnaryExpression)(o) || (0, ql.isUpdateExpression)(o)))
        continue;
      if ((0, ql.isIdentifier)(o)) {
        e ? (a[o.name] = a[o.name] || []).push(o) : a[o.name] = o;
        continue;
      }
      if ((0, ql.isExportDeclaration)(o) && !(0, ql.isExportAllDeclaration)(o)) {
        (0, ql.isDeclaration)(o.declaration) && i.push(o.declaration);
        continue;
      }
      if (s) {
        if ((0, ql.isFunctionDeclaration)(o)) {
          i.push(o.id);
          continue;
        }
        if ((0, ql.isFunctionExpression)(o))
          continue;
      }
      let l = Yw.keys[o.type];
      if (l)
        for (let u = 0; u < l.length; u++) {
          let c = l[u], p = o[c];
          p && (Array.isArray(p) ? i.push(...p) : i.push(p));
        }
    }
    return a;
  }
  n(Yw, "getBindingIdentifiers");
  var F_e = {
    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"],
    TSImportEqualsDeclaration: ["id"],
    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"]
  };
  Yw.keys = F_e;
});

// ../node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js
var zq = g((Fb) => {
  "use strict";
  Object.defineProperty(Fb, "__esModule", {
    value: !0
  });
  Fb.default = void 0;
  var j_e = Jy(), N6s = Fb.default = R_e;
  function R_e(t, e) {
    return (0, j_e.default)(t, e, !0);
  }
  n(R_e, "getOuterBindingIdentifiers");
});

// ../node_modules/@babel/types/lib/retrievers/getFunctionName.js
var Qq = g((zw) => {
  "use strict";
  Object.defineProperty(zw, "__esModule", {
    value: !0
  });
  zw.default = U_e;
  var Pa = ti();
  function q_e(t) {
    return (0, Pa.isNullLiteral)(t) ? "null" : (0, Pa.isRegExpLiteral)(t) ? `/${t.pattern}/${t.flags}` : (0, Pa.isTemplateLiteral)(t) ? t.quasis.
    map((e) => e.value.raw).join("") : t.value !== void 0 ? String(t.value) : null;
  }
  n(q_e, "getNameFromLiteralId");
  function Gq(t) {
    if (!t.computed || (0, Pa.isLiteral)(t.key))
      return t.key;
  }
  n(Gq, "getObjectMemberKey");
  function U_e(t, e) {
    if ("id" in t && t.id)
      return {
        name: t.id.name,
        originalNode: t.id
      };
    let s = "", r;
    if ((0, Pa.isObjectProperty)(e, {
      value: t
    }) ? r = Gq(e) : (0, Pa.isObjectMethod)(t) || (0, Pa.isClassMethod)(t) ? (r = Gq(t), t.kind === "get" ? s = "get " : t.kind === "set" &&
    (s = "set ")) : (0, Pa.isVariableDeclarator)(e, {
      init: t
    }) ? r = e.id : (0, Pa.isAssignmentExpression)(e, {
      operator: "=",
      right: t
    }) && (r = e.left), !r) return null;
    let i = (0, Pa.isLiteral)(r) ? q_e(r) : (0, Pa.isIdentifier)(r) ? r.name : (0, Pa.isPrivateName)(r) ? r.id.name : null;
    return i == null ? null : {
      name: s + i,
      originalNode: r
    };
  }
  n(U_e, "getFunctionName");
});

// ../node_modules/@babel/types/lib/traverse/traverse.js
var Zq = g((Qw) => {
  "use strict";
  Object.defineProperty(Qw, "__esModule", {
    value: !0
  });
  Qw.default = V_e;
  var K_e = ba();
  function V_e(t, e, s) {
    typeof e == "function" && (e = {
      enter: e
    });
    let {
      enter: r,
      exit: i
    } = e;
    Gw(t, r, i, s, []);
  }
  n(V_e, "traverse");
  function Gw(t, e, s, r, i) {
    let a = K_e.VISITOR_KEYS[t.type];
    if (a) {
      e && e(t, i, r);
      for (let o of a) {
        let l = t[o];
        if (Array.isArray(l))
          for (let u = 0; u < l.length; u++) {
            let c = l[u];
            c && (i.push({
              node: t,
              key: o,
              index: u
            }), Gw(c, e, s, r, i), i.pop());
          }
        else l && (i.push({
          node: t,
          key: o
        }), Gw(l, e, s, r, i), i.pop());
      }
      s && s(t, i, r);
    }
  }
  n(Gw, "traverseSimpleImpl");
});

// ../node_modules/@babel/types/lib/validators/isBinding.js
var eU = g((Zw) => {
  "use strict";
  Object.defineProperty(Zw, "__esModule", {
    value: !0
  });
  Zw.default = $_e;
  var W_e = Jy();
  function $_e(t, e, s) {
    if (s && t.type === "Identifier" && e.type === "ObjectProperty" && s.type === "ObjectExpression")
      return !1;
    let r = W_e.default.keys[e.type];
    if (r)
      for (let i = 0; i < r.length; i++) {
        let a = r[i], o = e[a];
        if (Array.isArray(o)) {
          if (o.includes(t)) return !0;
        } else if (o === t) return !0;
      }
    return !1;
  }
  n($_e, "isBinding");
});

// ../node_modules/@babel/types/lib/validators/isLet.js
var tI = g((eI) => {
  "use strict";
  Object.defineProperty(eI, "__esModule", {
    value: !0
  });
  eI.default = Y_e;
  var H_e = ti(), J_e = Ec();
  function Y_e(t) {
    return (0, H_e.isVariableDeclaration)(t) && (t.kind !== "var" || t[J_e.BLOCK_SCOPED_SYMBOL]);
  }
  n(Y_e, "isLet");
});

// ../node_modules/@babel/types/lib/validators/isBlockScoped.js
var sU = g((sI) => {
  "use strict";
  Object.defineProperty(sI, "__esModule", {
    value: !0
  });
  sI.default = z_e;
  var tU = ti(), X_e = tI();
  function z_e(t) {
    return (0, tU.isFunctionDeclaration)(t) || (0, tU.isClassDeclaration)(t) || (0, X_e.default)(t);
  }
  n(z_e, "isBlockScoped");
});

// ../node_modules/@babel/types/lib/validators/isImmutable.js
var rU = g((rI) => {
  "use strict";
  Object.defineProperty(rI, "__esModule", {
    value: !0
  });
  rI.default = Z_e;
  var G_e = gb(), Q_e = ti();
  function Z_e(t) {
    return (0, G_e.default)(t.type, "Immutable") ? !0 : (0, Q_e.isIdentifier)(t) ? t.name === "undefined" : !1;
  }
  n(Z_e, "isImmutable");
});

// ../node_modules/@babel/types/lib/validators/isNodesEquivalent.js
var nU = g((nI) => {
  "use strict";
  Object.defineProperty(nI, "__esModule", {
    value: !0
  });
  nI.default = iI;
  var iU = ba();
  function iI(t, e) {
    if (typeof t != "object" || typeof e != "object" || t == null || e == null)
      return t === e;
    if (t.type !== e.type)
      return !1;
    let s = Object.keys(iU.NODE_FIELDS[t.type] || t.type), r = iU.VISITOR_KEYS[t.type];
    for (let i of s) {
      let a = t[i], o = e[i];
      if (typeof a != typeof o)
        return !1;
      if (!(a == null && o == null)) {
        if (a == null || o == null)
          return !1;
        if (Array.isArray(a)) {
          if (!Array.isArray(o) || a.length !== o.length)
            return !1;
          for (let l = 0; l < a.length; l++)
            if (!iI(a[l], o[l]))
              return !1;
          continue;
        }
        if (typeof a == "object" && !(r != null && r.includes(i))) {
          for (let l of Object.keys(a))
            if (a[l] !== o[l])
              return !1;
          continue;
        }
        if (!iI(a, o))
          return !1;
      }
    }
    return !0;
  }
  n(iI, "isNodesEquivalent");
});

// ../node_modules/@babel/types/lib/validators/isReferenced.js
var aU = g((aI) => {
  "use strict";
  Object.defineProperty(aI, "__esModule", {
    value: !0
  });
  aI.default = eLe;
  function eLe(t, e, s) {
    switch (e.type) {
      case "MemberExpression":
      case "OptionalMemberExpression":
        return e.property === t ? !!e.computed : e.object === t;
      case "JSXMemberExpression":
        return e.object === t;
      case "VariableDeclarator":
        return e.init === t;
      case "ArrowFunctionExpression":
        return e.body === t;
      case "PrivateName":
        return !1;
      case "ClassMethod":
      case "ClassPrivateMethod":
      case "ObjectMethod":
        return e.key === t ? !!e.computed : !1;
      case "ObjectProperty":
        return e.key === t ? !!e.computed : !s || s.type !== "ObjectPattern";
      case "ClassProperty":
      case "ClassAccessorProperty":
        return e.key === t ? !!e.computed : !0;
      case "ClassPrivateProperty":
        return e.key !== t;
      case "ClassDeclaration":
      case "ClassExpression":
        return e.superClass === t;
      case "AssignmentExpression":
        return e.right === t;
      case "AssignmentPattern":
        return e.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 s != null && s.source ? !1 : e.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 e.key !== t;
      case "TSEnumMember":
        return e.id !== t;
      case "TSPropertySignature":
        return e.key === t ? !!e.computed : !0;
    }
    return !0;
  }
  n(eLe, "isReferenced");
});

// ../node_modules/@babel/types/lib/validators/isScope.js
var oU = g((oI) => {
  "use strict";
  Object.defineProperty(oI, "__esModule", {
    value: !0
  });
  oI.default = tLe;
  var sh = ti();
  function tLe(t, e) {
    return (0, sh.isBlockStatement)(t) && ((0, sh.isFunction)(e) || (0, sh.isCatchClause)(e)) ? !1 : (0, sh.isPattern)(t) && ((0, sh.isFunction)(
    e) || (0, sh.isCatchClause)(e)) ? !0 : (0, sh.isScopable)(t);
  }
  n(tLe, "isScope");
});

// ../node_modules/@babel/types/lib/validators/isSpecifierDefault.js
var uU = g((lI) => {
  "use strict";
  Object.defineProperty(lI, "__esModule", {
    value: !0
  });
  lI.default = sLe;
  var lU = ti();
  function sLe(t) {
    return (0, lU.isImportDefaultSpecifier)(t) || (0, lU.isIdentifier)(t.imported || t.exported, {
      name: "default"
    });
  }
  n(sLe, "isSpecifierDefault");
});

// ../node_modules/@babel/types/lib/validators/isValidES3Identifier.js
var cU = g((uI) => {
  "use strict";
  Object.defineProperty(uI, "__esModule", {
    value: !0
  });
  uI.default = nLe;
  var rLe = ed(), iLe = /* @__PURE__ */ new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "impleme\
nts", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "trans\
ient", "volatile"]);
  function nLe(t) {
    return (0, rLe.default)(t) && !iLe.has(t);
  }
  n(nLe, "isValidES3Identifier");
});

// ../node_modules/@babel/types/lib/validators/isVar.js
var pU = g((cI) => {
  "use strict";
  Object.defineProperty(cI, "__esModule", {
    value: !0
  });
  cI.default = lLe;
  var aLe = ti(), oLe = Ec();
  function lLe(t) {
    return (0, aLe.isVariableDeclaration)(t, {
      kind: "var"
    }) && !t[oLe.BLOCK_SCOPED_SYMBOL];
  }
  n(lLe, "isVar");
});

// ../node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js
var hU = g((fI) => {
  "use strict";
  Object.defineProperty(fI, "__esModule", {
    value: !0
  });
  fI.default = jb;
  var uLe = Jy(), rh = ti(), pI = sa(), hI = ow(), cLe = Cc();
  function jb(t, e) {
    let s = [], r = !0;
    for (let i of t)
      if ((0, rh.isEmptyStatement)(i) || (r = !1), (0, rh.isExpression)(i))
        s.push(i);
      else if ((0, rh.isExpressionStatement)(i))
        s.push(i.expression);
      else if ((0, rh.isVariableDeclaration)(i)) {
        if (i.kind !== "var") return;
        for (let a of i.declarations) {
          let o = (0, uLe.default)(a);
          for (let l of Object.keys(o))
            e.push({
              kind: i.kind,
              id: (0, cLe.default)(o[l])
            });
          a.init && s.push((0, pI.assignmentExpression)("=", a.id, a.init));
        }
        r = !0;
      } else if ((0, rh.isIfStatement)(i)) {
        let a = i.consequent ? jb([i.consequent], e) : (0, hI.buildUndefinedNode)(), o = i.alternate ? jb([i.alternate], e) : (0, hI.buildUndefinedNode)();
        if (!a || !o) return;
        s.push((0, pI.conditionalExpression)(i.test, a, o));
      } else if ((0, rh.isBlockStatement)(i)) {
        let a = jb(i.body, e);
        if (!a) return;
        s.push(a);
      } else if ((0, rh.isEmptyStatement)(i))
        t.indexOf(i) === 0 && (r = !0);
      else
        return;
    return r && s.push((0, hI.buildUndefinedNode)()), s.length === 1 ? s[0] : (0, pI.sequenceExpression)(s);
  }
  n(jb, "gatherSequenceExpressions");
});

// ../node_modules/@babel/types/lib/converters/toSequenceExpression.js
var fU = g((dI) => {
  "use strict";
  Object.defineProperty(dI, "__esModule", {
    value: !0
  });
  dI.default = hLe;
  var pLe = hU();
  function hLe(t, e) {
    if (!(t != null && t.length)) return;
    let s = [], r = (0, pLe.default)(t, s);
    if (r) {
      for (let i of s)
        e.push(i);
      return r;
    }
  }
  n(hLe, "toSequenceExpression");
});

// ../node_modules/@babel/types/lib/index.js
var fe = g((Re) => {
  "use strict";
  Object.defineProperty(Re, "__esModule", {
    value: !0
  });
  var wc = {
    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(Re, "__internal__deprecationWarning", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return yBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "addComment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ALe.default;
    }, "get")
  });
  Object.defineProperty(Re, "addComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return vLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "appendToMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return qLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "assertNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return yLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "buildMatchMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return mBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "clone", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return xLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "cloneDeep", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return SLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "cloneDeepWithoutLoc", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return PLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "cloneNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return bLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "cloneWithoutLoc", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ELe.default;
    }, "get")
  });
  Object.defineProperty(Re, "createFlowUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return dU.default;
    }, "get")
  });
  Object.defineProperty(Re, "createTSUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return TLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "createTypeAnnotationBasedOnTypeof", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return gLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "createUnionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return dU.default;
    }, "get")
  });
  Object.defineProperty(Re, "ensureBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return DLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "getAssignmentIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return HLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "getBindingIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return JLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "getFunctionName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return XLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "getOuterBindingIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return YLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "inheritInnerComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return CLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "inheritLeadingComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "inheritTrailingComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return NLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "inherits", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ULe.default;
    }, "get")
  });
  Object.defineProperty(Re, "inheritsComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ILe.default;
    }, "get")
  });
  Object.defineProperty(Re, "is", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return QLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isBinding", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ZLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isBlockScoped", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return eBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isImmutable", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return tBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isLet", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return sBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return rBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isNodesEquivalent", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return iBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isPlaceholderType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return nBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isReferenced", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return aBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isScope", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return oBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isSpecifierDefault", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return uBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isValidES3Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return cBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isValidIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return pBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "isVar", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return hBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "matchesPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "prependToMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return KLe.default;
    }, "get")
  });
  Re.react = void 0;
  Object.defineProperty(Re, "removeComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return kLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "removeProperties", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return VLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "removePropertiesDeep", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return WLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "removeTypeDuplicates", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return $Le.default;
    }, "get")
  });
  Object.defineProperty(Re, "shallowEqual", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return GLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "toBindingIdentifierName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return OLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "toBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return _Le.default;
    }, "get")
  });
  Object.defineProperty(Re, "toComputedKey", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return LLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "toExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return BLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "toIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return MLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "toKeyAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return FLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "toStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return jLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "traverse", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Rb.default;
    }, "get")
  });
  Object.defineProperty(Re, "traverseFast", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return zLe.default;
    }, "get")
  });
  Object.defineProperty(Re, "validate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return dBe.default;
    }, "get")
  });
  Object.defineProperty(Re, "valueToNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return RLe.default;
    }, "get")
  });
  var fLe = S7(), dLe = P7(), mLe = fq(), yLe = dq(), mI = mq();
  Object.keys(mI).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(wc, t) || t in Re && Re[t] === mI[t] || Object.defineProperty(
    Re, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return mI[t];
      }, "get")
    });
  });
  var gLe = yq(), dU = bq(), TLe = Eq(), yI = ow();
  Object.keys(yI).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(wc, t) || t in Re && Re[t] === yI[t] || Object.defineProperty(
    Re, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return yI[t];
      }, "get")
    });
  });
  var gI = sa();
  Object.keys(gI).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(wc, t) || t in Re && Re[t] === gI[t] || Object.defineProperty(
    Re, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return gI[t];
      }, "get")
    });
  });
  var bLe = Cc(), xLe = Nq(), SLe = kq(), PLe = Dq(), ELe = Oq(), ALe = _q(), vLe = mw(), CLe = bw(), wLe = Sw(), ILe = vw(), NLe = Ew(), kLe = Lq(),
  TI = Bq();
  Object.keys(TI).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(wc, t) || t in Re && Re[t] === TI[t] || Object.defineProperty(
    Re, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return TI[t];
      }, "get")
    });
  });
  var bI = Ec();
  Object.keys(bI).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(wc, t) || t in Re && Re[t] === bI[t] || Object.defineProperty(
    Re, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return bI[t];
      }, "get")
    });
  });
  var DLe = Mq(), OLe = Fq(), _Le = Nw(), LLe = jq(), BLe = Rq(), MLe = Ow(), FLe = Kq(), jLe = Vq(), RLe = Wq(), xI = ba();
  Object.keys(xI).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(wc, t) || t in Re && Re[t] === xI[t] || Object.defineProperty(
    Re, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return xI[t];
      }, "get")
    });
  });
  var qLe = $q(), ULe = Jq(), KLe = Yq(), VLe = Rw(), WLe = Uw(), $Le = sw(), HLe = Xq(), JLe = Jy(), YLe = zq(), XLe = Qq(), Rb = Zq();
  Object.keys(Rb).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(wc, t) || t in Re && Re[t] === Rb[t] || Object.defineProperty(
    Re, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return Rb[t];
      }, "get")
    });
  });
  var zLe = Fw(), GLe = mb(), QLe = Zf(), ZLe = eU(), eBe = sU(), tBe = rU(), sBe = tI(), rBe = ZC(), iBe = nU(), nBe = AC(), aBe = aU(), oBe = oU(),
  lBe = uU(), uBe = gb(), cBe = cU(), pBe = ed(), hBe = pU(), fBe = TC(), dBe = Eb(), mBe = xC(), SI = ti();
  Object.keys(SI).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(wc, t) || t in Re && Re[t] === SI[t] || Object.defineProperty(
    Re, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return SI[t];
      }, "get")
    });
  });
  var yBe = By(), gBe = fU(), aRs = Re.react = {
    isReactComponent: fLe.default,
    isCompatTag: dLe.default,
    buildChildren: mLe.default
  };
  Re.toSequenceExpression = gBe.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-releas\
e instead!");
});

// ../node_modules/@babel/template/lib/formatters.js
var mU = g((Ea) => {
  "use strict";
  Object.defineProperty(Ea, "__esModule", {
    value: !0
  });
  Ea.statements = Ea.statement = Ea.smart = Ea.program = Ea.expression = void 0;
  var TBe = fe(), {
    assertExpressionStatement: bBe
  } = TBe;
  function PI(t) {
    return {
      code: /* @__PURE__ */ n((e) => `/* @babel/template */;
${e}`, "code"),
      validate: /* @__PURE__ */ n(() => {
      }, "validate"),
      unwrap: /* @__PURE__ */ n((e) => t(e.program.body.slice(1)), "unwrap")
    };
  }
  n(PI, "makeStatementFormatter");
  var uRs = Ea.smart = PI((t) => t.length > 1 ? t : t[0]), cRs = Ea.statements = PI((t) => t), pRs = Ea.statement = PI((t) => {
    if (t.length === 0)
      throw new Error("Found nothing to return.");
    if (t.length > 1)
      throw new Error("Found multiple statements but wanted one");
    return t[0];
  }), xBe = Ea.expression = {
    code: /* @__PURE__ */ n((t) => `(
${t}
)`, "code"),
    validate: /* @__PURE__ */ n((t) => {
      if (t.program.body.length > 1)
        throw new Error("Found multiple statements but wanted one");
      if (xBe.unwrap(t).start === 0)
        throw new Error("Parse result included parens.");
    }, "validate"),
    unwrap: /* @__PURE__ */ n(({
      program: t
    }) => {
      let [e] = t.body;
      return bBe(e), e.expression;
    }, "unwrap")
  }, hRs = Ea.program = {
    code: /* @__PURE__ */ n((t) => t, "code"),
    validate: /* @__PURE__ */ n(() => {
    }, "validate"),
    unwrap: /* @__PURE__ */ n((t) => t.program, "unwrap")
  };
});

// ../node_modules/@babel/template/lib/options.js
var qb = g((Yy) => {
  "use strict";
  Object.defineProperty(Yy, "__esModule", {
    value: !0
  });
  Yy.merge = EBe;
  Yy.normalizeReplacements = vBe;
  Yy.validate = ABe;
  var SBe = ["placeholderWhitelist", "placeholderPattern", "preserveComments", "syntacticPlaceholders"];
  function PBe(t, e) {
    if (t == null) return {};
    var s = {};
    for (var r in t) if ({}.hasOwnProperty.call(t, r)) {
      if (e.includes(r)) continue;
      s[r] = t[r];
    }
    return s;
  }
  n(PBe, "_objectWithoutPropertiesLoose");
  function EBe(t, e) {
    let {
      placeholderWhitelist: s = t.placeholderWhitelist,
      placeholderPattern: r = t.placeholderPattern,
      preserveComments: i = t.preserveComments,
      syntacticPlaceholders: a = t.syntacticPlaceholders
    } = e;
    return {
      parser: Object.assign({}, t.parser, e.parser),
      placeholderWhitelist: s,
      placeholderPattern: r,
      preserveComments: i,
      syntacticPlaceholders: a
    };
  }
  n(EBe, "merge");
  function ABe(t) {
    if (t != null && typeof t != "object")
      throw new Error("Unknown template options.");
    let e = t || {}, {
      placeholderWhitelist: s,
      placeholderPattern: r,
      preserveComments: i,
      syntacticPlaceholders: a
    } = e, o = PBe(e, SBe);
    if (s != null && !(s instanceof Set))
      throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");
    if (r != null && !(r instanceof RegExp) && r !== !1)
      throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined");
    if (i != null && typeof i != "boolean")
      throw new Error("'.preserveComments' must be a boolean, null, or undefined");
    if (a != null && typeof a != "boolean")
      throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined");
    if (a === !0 && (s != null || r != null))
      throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");
    return {
      parser: o,
      placeholderWhitelist: s || void 0,
      placeholderPattern: r ?? void 0,
      preserveComments: i ?? void 0,
      syntacticPlaceholders: a ?? void 0
    };
  }
  n(ABe, "validate");
  function vBe(t) {
    if (Array.isArray(t))
      return t.reduce((e, s, r) => (e["$" + r] = s, e), {});
    if (typeof t == "object" || t == null)
      return t || void 0;
    throw new Error("Template replacements must be an array, object, null, or undefined");
  }
  n(vBe, "normalizeReplacements");
});

// ../node_modules/@babel/template/node_modules/@babel/parser/lib/index.js
var HU = g((rg) => {
  "use strict";
  Object.defineProperty(rg, "__esModule", {
    value: !0
  });
  function CBe(t, e) {
    if (t == null) return {};
    var s = {};
    for (var r in t) if ({}.hasOwnProperty.call(t, r)) {
      if (e.includes(r)) continue;
      s[r] = t[r];
    }
    return s;
  }
  n(CBe, "_objectWithoutPropertiesLoose");
  var Qo = class {
    static {
      n(this, "Position");
    }
    constructor(e, s, r) {
      this.line = void 0, this.column = void 0, this.index = void 0, this.line = e, this.column = s, this.index = r;
    }
  }, ud = class {
    static {
      n(this, "SourceLocation");
    }
    constructor(e, s) {
      this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = e, this.end = s;
    }
  };
  function Tn(t, e) {
    let {
      line: s,
      column: r,
      index: i
    } = t;
    return new Qo(s, r + e, i + e);
  }
  n(Tn, "createPositionWithColumnOffset");
  var yU = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED", wBe = {
    ImportMetaOutsideModule: {
      message: `import.meta may appear only with 'sourceType: "module"'`,
      code: yU
    },
    ImportOutsideModule: {
      message: `'import' and 'export' may appear only with 'sourceType: "module"'`,
      code: yU
    }
  }, gU = {
    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"
  }, Vb = /* @__PURE__ */ n((t) => t.type === "UpdateExpression" ? gU.UpdateExpression[`${t.prefix}`] : gU[t.type], "toNodeDescription"), IBe = {
    AccessorIsGenerator: /* @__PURE__ */ n(({
      kind: t
    }) => `A ${t}ter cannot be a generator.`, "AccessorIsGenerator"),
    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: /* @__PURE__ */ n(({
      kind: t
    }) => `Missing initializer in ${t} declaration.`, "DeclarationMissingInitializer"),
    DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(deco\
rator)(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 s\
ame 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: /* @__PURE__ */ n(({
      exportName: t
    }) => `\`${t}\` has already been exported. Exported identifiers must be unique.`, "DuplicateExport"),
    DuplicateProto: "Redefinition of __proto__ property.",
    DuplicateRegExpFlags: "Duplicate regular expression flag.",
    DynamicImportPhaseRequiresImportExpressions: /* @__PURE__ */ n(({
      phase: t
    }) => `'import.${t}(...)' can only be parsed when using the 'createImportExpressions' option.`, "DynamicImportPhaseRequiresImportExpress\
ions"),
    ElementAfterRest: "Rest element must be last element.",
    EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
    ExportBindingIsString: /* @__PURE__ */ n(({
      localName: t,
      exportName: e
    }) => `A string literal cannot be used as an exported binding without \`from\`.
- Did you mean \`export { '${t}' as '${e}' } from 'some-module'\`?`, "ExportBindingIsString"),
    ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
    ForInOfLoopInitializer: /* @__PURE__ */ n(({
      type: t
    }) => `'${t === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, "ForInOfLoopInitialize\
r"),
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Unsyntactic ${t === "BreakStatement" ? "break" : "continue"}.`, "IllegalBreakContinue"),
    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: /* @__PURE__ */ n(({
      importName: t
    }) => `A string literal cannot be used as an imported binding.
- Did you mean \`import { "${t}" as foo }\`?`, "ImportBindingIsString"),
    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: /* @__PURE__ */ n(({
      radix: t
    }) => `Expected number in radix ${t}.`, "InvalidDigit"),
    InvalidEscapeSequence: "Bad character escape sequence.",
    InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
    InvalidEscapedReservedWord: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Escape sequence in keyword ${t}.`, "InvalidEscapedReservedWord"),
    InvalidIdentifier: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Invalid identifier ${t}.`, "InvalidIdentifier"),
    InvalidLhs: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid left-hand side in ${Vb(t)}.`, "InvalidLhs"),
    InvalidLhsBinding: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Binding invalid left-hand side in ${Vb(t)}.`, "InvalidLhsBinding"),
    InvalidLhsOptionalChaining: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid optional chaining in the left-hand side of ${Vb(t)}.`, "InvalidLhsOptionalChaining"),
    InvalidNumber: "Invalid number.",
    InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
    InvalidOrUnexpectedToken: /* @__PURE__ */ n(({
      unexpected: t
    }) => `Unexpected character '${t}'.`, "InvalidOrUnexpectedToken"),
    InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
    InvalidPrivateFieldResolution: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private name #${t} is not defined.`, "InvalidPrivateFieldResolution"),
    InvalidPropertyBindingPattern: "Binding member expression.",
    InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
    InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
    LabelRedeclaration: /* @__PURE__ */ n(({
      labelName: t
    }) => `Label '${t}' is already declared.`, "LabelRedeclaration"),
    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: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling the parser plugin: ${t.map((e) => JSON.stringify(e)).join(", ")}.`, "MissingPlugin"),
    MissingOneOfPlugins: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${t.map((e) => JSON.stringify(e)).join(", ")}.`,
    "MissingOneOfPlugins"),
    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: /* @__PURE__ */ n(({
      key: t
    }) => `Duplicate key "${t}" is not allowed in module attributes.`, "ModuleAttributesWithDuplicateKeys"),
    ModuleExportNameHasLoneSurrogate: /* @__PURE__ */ n(({
      surrogateCharCode: t
    }) => `An export name cannot include a lone surrogate, found '\\u${t.toString(16)}'.`, "ModuleExportNameHasLoneSurrogate"),
    ModuleExportUndefined: /* @__PURE__ */ n(({
      localName: t
    }) => `Export '${t}' is not defined.`, "ModuleExportUndefined"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private names are only allowed in property accesses (\`obj.#${t}\`) or in \`in\` expressions (\`#${t} in obj\`).`, "PrivateInExpe\
ctedIn"),
    PrivateNameRedeclaration: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Duplicate private name #${t}.`, "PrivateNameRedeclaration"),
    RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 're\
cordAndTuple' 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 th\
e '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 sta\
tement.",
    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 n\
ot 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 'reco\
rdAndTuple' 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: /* @__PURE__ */ n(({
      keyword: t
    }) => `Unexpected keyword '${t}'.`, "UnexpectedKeyword"),
    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: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Unexpected reserved word '${t}'.`, "UnexpectedReservedWord"),
    UnexpectedSuper: "'super' is only allowed in object methods and classes.",
    UnexpectedToken: /* @__PURE__ */ n(({
      expected: t,
      unexpected: e
    }) => `Unexpected token${e ? ` '${e}'.` : ""}${t ? `, expected "${t}"` : ""}`, "UnexpectedToken"),
    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: /* @__PURE__ */ n(({
      target: t,
      onlyValidPropertyName: e
    }) => `The only valid meta property for ${t} is ${t}.${e}.`, "UnsupportedMetaProperty"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Identifier '${t}' has already been declared.`, "VarRedeclaration"),
    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."
  }, NBe = {
    StrictDelete: "Deleting local variable in strict mode.",
    StrictEvalArguments: /* @__PURE__ */ n(({
      referenceName: t
    }) => `Assigning to '${t}' in strict mode.`, "StrictEvalArguments"),
    StrictEvalArgumentsBinding: /* @__PURE__ */ n(({
      bindingName: t
    }) => `Binding '${t}' in strict mode.`, "StrictEvalArgumentsBinding"),
    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."
  }, kBe = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]), DBe = Object.
  assign({
    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" opt\
ion.',
    PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
    PipeTopicUnconfiguredToken: /* @__PURE__ */ n(({
      token: t
    }) => `Invalid topic token ${t}. In order to use ${t} as a topic reference, the pipelineOperator plugin must be configured with { "propo\
sal": "hack", "topicToken": "${t}" }.`, "PipeTopicUnconfiguredToken"),
    PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
    PipeUnparenthesizedBody: /* @__PURE__ */ n(({
      type: t
    }) => `Hack-style pipe body cannot be an unparenthesized ${Vb({
      type: t
    })}; please wrap it in parentheses.`, "PipeUnparenthesizedBody")
  }, {
    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 "sma\
rt" option.'
  }), OBe = ["message"];
  function TU(t, e, s) {
    Object.defineProperty(t, e, {
      enumerable: !1,
      configurable: !0,
      value: s
    });
  }
  n(TU, "defineHidden");
  function _Be({
    toMessage: t,
    code: e,
    reasonCode: s,
    syntaxPlugin: r
  }) {
    let i = s === "MissingPlugin" || s === "MissingOneOfPlugins";
    {
      let a = {
        AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter",
        AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters",
        ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumRefer\
ence",
        SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter",
        SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter",
        SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType"
      };
      a[s] && (s = a[s]);
    }
    return /* @__PURE__ */ n(function a(o, l) {
      let u = new SyntaxError();
      return u.code = e, u.reasonCode = s, u.loc = o, u.pos = o.index, u.syntaxPlugin = r, i && (u.missingPlugin = l.missingPlugin), TU(u, "\
clone", /* @__PURE__ */ n(function(p = {}) {
        var h;
        let {
          line: f,
          column: d,
          index: m
        } = (h = p.loc) != null ? h : o;
        return a(new Qo(f, d, m), Object.assign({}, l, p.details));
      }, "clone")), TU(u, "details", l), Object.defineProperty(u, "message", {
        configurable: !0,
        get() {
          let c = `${t(l)} (${o.line}:${o.column})`;
          return this.message = c, c;
        },
        set(c) {
          Object.defineProperty(this, "message", {
            value: c,
            writable: !0
          });
        }
      }), u;
    }, "constructor");
  }
  n(_Be, "toParseErrorConstructor");
  function Wl(t, e) {
    if (Array.isArray(t))
      return (r) => Wl(r, t[0]);
    let s = {};
    for (let r of Object.keys(t)) {
      let i = t[r], a = typeof i == "string" ? {
        message: /* @__PURE__ */ n(() => i, "message")
      } : typeof i == "function" ? {
        message: i
      } : i, {
        message: o
      } = a, l = CBe(a, OBe), u = typeof o == "string" ? () => o : o;
      s[r] = _Be(Object.assign({
        code: "BABEL_PARSER_SYNTAX_ERROR",
        reasonCode: r,
        toMessage: u
      }, e ? {
        syntaxPlugin: e
      } : {}, l));
    }
    return s;
  }
  n(Wl, "ParseErrorEnum");
  var G = Object.assign({}, Wl(wBe), Wl(IBe), Wl(NBe), Wl`pipelineOperator`(DBe));
  function LBe() {
    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
    };
  }
  n(LBe, "createDefaultOptions");
  function BBe(t) {
    let e = LBe();
    if (t == null)
      return e;
    if (t.annexB != null && t.annexB !== !1)
      throw new Error("The `annexB` option can only be set to `false`.");
    for (let s of Object.keys(e))
      t[s] != null && (e[s] = t[s]);
    if (e.startLine === 1)
      t.startIndex == null && e.startColumn > 0 ? e.startIndex = e.startColumn : t.startColumn == null && e.startIndex > 0 && (e.startColumn =
      e.startIndex);
    else if ((t.startColumn == null || t.startIndex == null) && t.startIndex != null)
      throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
    return e;
  }
  n(BBe, "getOptions");
  var {
    defineProperty: MBe
  } = Object, bU = /* @__PURE__ */ n((t, e) => {
    t && MBe(t, e, {
      enumerable: !1,
      value: t[e]
    });
  }, "toUnenumerable");
  function Xy(t) {
    return bU(t.loc.start, "index"), bU(t.loc.end, "index"), t;
  }
  n(Xy, "toESTreeLocation");
  var FBe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "ESTreeParserMixin");
    }
    parse() {
      let s = Xy(super.parse());
      return this.optionFlags & 128 && (s.tokens = s.tokens.map(Xy)), s;
    }
    parseRegExpLiteral({
      pattern: s,
      flags: r
    }) {
      let i = null;
      try {
        i = new RegExp(s, r);
      } catch {
      }
      let a = this.estreeParseLiteral(i);
      return a.regex = {
        pattern: s,
        flags: r
      }, a;
    }
    parseBigIntLiteral(s) {
      let r;
      try {
        r = BigInt(s);
      } catch {
        r = null;
      }
      let i = this.estreeParseLiteral(r);
      return i.bigint = String(i.value || s), i;
    }
    parseDecimalLiteral(s) {
      let i = this.estreeParseLiteral(null);
      return i.decimal = String(i.value || s), i;
    }
    estreeParseLiteral(s) {
      return this.parseLiteral(s, "Literal");
    }
    parseStringLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNumericLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNullLiteral() {
      return this.estreeParseLiteral(null);
    }
    parseBooleanLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    directiveToStmt(s) {
      let r = s.value;
      delete s.value, r.type = "Literal", r.raw = r.extra.raw, r.value = r.extra.expressionValue;
      let i = s;
      return i.type = "ExpressionStatement", i.expression = r, i.directive = r.extra.rawValue, delete r.extra, i;
    }
    initFunction(s, r) {
      super.initFunction(s, r), s.expression = !1;
    }
    checkDeclaration(s) {
      s != null && this.isObjectProperty(s) ? this.checkDeclaration(s.value) : super.checkDeclaration(s);
    }
    getObjectOrClassMethodParams(s) {
      return s.value.params;
    }
    isValidDirective(s) {
      var r;
      return s.type === "ExpressionStatement" && s.expression.type === "Literal" && typeof s.expression.value == "string" && !((r = s.expression.
      extra) != null && r.parenthesized);
    }
    parseBlockBody(s, r, i, a, o) {
      super.parseBlockBody(s, r, i, a, o);
      let l = s.directives.map((u) => this.directiveToStmt(u));
      s.body = l.concat(s.body), delete s.directives;
    }
    parsePrivateName() {
      let s = super.parsePrivateName();
      return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(s) : s;
    }
    convertPrivateNameToPrivateIdentifier(s) {
      let r = super.getPrivateNameSV(s);
      return s = s, delete s.id, s.name = r, s.type = "PrivateIdentifier", s;
    }
    isPrivateName(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.type === "PrivateIdentifier" : super.isPrivateName(s);
    }
    getPrivateNameSV(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.name : super.getPrivateNameSV(s);
    }
    parseLiteral(s, r) {
      let i = super.parseLiteral(s, r);
      return i.raw = i.extra.raw, delete i.extra, i;
    }
    parseFunctionBody(s, r, i = !1) {
      super.parseFunctionBody(s, r, i), s.expression = s.body.type !== "BlockStatement";
    }
    parseMethod(s, r, i, a, o, l, u = !1) {
      let c = this.startNode();
      c.kind = s.kind, c = super.parseMethod(c, r, i, a, o, l, u), c.type = "FunctionExpression", delete c.kind, s.value = c;
      let {
        typeParameters: p
      } = s;
      return p && (delete s.typeParameters, c.typeParameters = p, this.resetStartLocationFromNode(c, p)), l === "ClassPrivateMethod" && (s.computed =
      !1), this.finishNode(s, "MethodDefinition");
    }
    nameIsConstructor(s) {
      return s.type === "Literal" ? s.value === "constructor" : super.nameIsConstructor(s);
    }
    parseClassProperty(...s) {
      let r = super.parseClassProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition"), r;
    }
    parseClassPrivateProperty(...s) {
      let r = super.parseClassPrivateProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition", r.computed = !1), r;
    }
    parseObjectMethod(s, r, i, a, o) {
      let l = super.parseObjectMethod(s, r, i, a, o);
      return l && (l.type = "Property", l.kind === "method" && (l.kind = "init"), l.shorthand = !1), l;
    }
    parseObjectProperty(s, r, i, a) {
      let o = super.parseObjectProperty(s, r, i, a);
      return o && (o.kind = "init", o.type = "Property"), o;
    }
    isValidLVal(s, r, i) {
      return s === "Property" ? "value" : super.isValidLVal(s, r, i);
    }
    isAssignable(s, r) {
      return s != null && this.isObjectProperty(s) ? this.isAssignable(s.value, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      if (s != null && this.isObjectProperty(s)) {
        let {
          key: i,
          value: a
        } = s;
        this.isPrivateName(i) && this.classScope.usePrivateName(this.getPrivateNameSV(i), i.loc.start), this.toAssignable(a, r);
      } else
        super.toAssignable(s, r);
    }
    toAssignableObjectExpressionProp(s, r, i) {
      s.type === "Property" && (s.kind === "get" || s.kind === "set") ? this.raise(G.PatternHasAccessor, s.key) : s.type === "Property" && s.
      method ? this.raise(G.PatternHasMethod, s.key) : super.toAssignableObjectExpressionProp(s, r, i);
    }
    finishCallExpression(s, r) {
      let i = super.finishCallExpression(s, r);
      if (i.callee.type === "Import") {
        var a, o;
        i.type = "ImportExpression", i.source = i.arguments[0], i.options = (a = i.arguments[1]) != null ? a : null, i.attributes = (o = i.arguments[1]) !=
        null ? o : null, delete i.arguments, delete i.callee;
      }
      return i;
    }
    toReferencedArguments(s) {
      s.type !== "ImportExpression" && super.toReferencedArguments(s);
    }
    parseExport(s, r) {
      let i = this.state.lastTokStartLoc, a = super.parseExport(s, r);
      switch (a.type) {
        case "ExportAllDeclaration":
          a.exported = null;
          break;
        case "ExportNamedDeclaration":
          a.specifiers.length === 1 && a.specifiers[0].type === "ExportNamespaceSpecifier" && (a.type = "ExportAllDeclaration", a.exported =
          a.specifiers[0].exported, delete a.specifiers);
        case "ExportDefaultDeclaration":
          {
            var o;
            let {
              declaration: l
            } = a;
            l?.type === "ClassDeclaration" && ((o = l.decorators) == null ? void 0 : o.length) > 0 && l.start === a.start && this.resetStartLocation(
            a, i);
          }
          break;
      }
      return a;
    }
    parseSubscript(s, r, i, a) {
      let o = super.parseSubscript(s, r, i, a);
      if (a.optionalChainMember) {
        if ((o.type === "OptionalMemberExpression" || o.type === "OptionalCallExpression") && (o.type = o.type.substring(8)), a.stop) {
          let l = this.startNodeAtNode(o);
          return l.expression = o, this.finishNode(l, "ChainExpression");
        }
      } else (o.type === "MemberExpression" || o.type === "CallExpression") && (o.optional = !1);
      return o;
    }
    isOptionalMemberExpression(s) {
      return s.type === "ChainExpression" ? s.expression.type === "MemberExpression" : super.isOptionalMemberExpression(s);
    }
    hasPropertyAsPrivateName(s) {
      return s.type === "ChainExpression" && (s = s.expression), super.hasPropertyAsPrivateName(s);
    }
    isObjectProperty(s) {
      return s.type === "Property" && s.kind === "init" && !s.method;
    }
    isObjectMethod(s) {
      return s.type === "Property" && (s.method || s.kind === "get" || s.kind === "set");
    }
    finishNodeAt(s, r, i) {
      return Xy(super.finishNodeAt(s, r, i));
    }
    resetStartLocation(s, r) {
      super.resetStartLocation(s, r), Xy(s);
    }
    resetEndLocation(s, r = this.state.lastTokEndLoc) {
      super.resetEndLocation(s, r), Xy(s);
    }
  }, "estree"), ah = class {
    static {
      n(this, "TokContext");
    }
    constructor(e, s) {
      this.token = void 0, this.preserveSpace = void 0, this.token = e, this.preserveSpace = !!s;
    }
  }, Ws = {
    brace: new ah("{"),
    j_oTag: new ah("<tag"),
    j_cTag: new ah("</tag"),
    j_expr: new ah("<tag>...</tag>", !0)
  };
  Ws.template = new ah("`", !0);
  var is = !0, qe = !0, EI = !0, zy = !0, Ic = !0, jBe = !0, Hb = class {
    static {
      n(this, "ExportedTokenType");
    }
    constructor(e, s = {}) {
      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 = e, this.keyword = s.keyword,
      this.beforeExpr = !!s.beforeExpr, this.startsExpr = !!s.startsExpr, this.rightAssociative = !!s.rightAssociative, this.isLoop = !!s.isLoop,
      this.isAssign = !!s.isAssign, this.prefix = !!s.prefix, this.postfix = !!s.postfix, this.binop = s.binop != null ? s.binop : null, this.
      updateContext = null;
    }
  }, YI = /* @__PURE__ */ new Map();
  function Is(t, e = {}) {
    e.keyword = t;
    let s = vt(t, e);
    return YI.set(t, s), s;
  }
  n(Is, "createKeyword");
  function gn(t, e) {
    return vt(t, {
      beforeExpr: is,
      binop: e
    });
  }
  n(gn, "createBinop");
  var Zy = -1, Kl = [], XI = [], zI = [], GI = [], QI = [], ZI = [];
  function vt(t, e = {}) {
    var s, r, i, a;
    return ++Zy, XI.push(t), zI.push((s = e.binop) != null ? s : -1), GI.push((r = e.beforeExpr) != null ? r : !1), QI.push((i = e.startsExpr) !=
    null ? i : !1), ZI.push((a = e.prefix) != null ? a : !1), Kl.push(new Hb(t, e)), Zy;
  }
  n(vt, "createToken");
  function rs(t, e = {}) {
    var s, r, i, a;
    return ++Zy, YI.set(t, Zy), XI.push(t), zI.push((s = e.binop) != null ? s : -1), GI.push((r = e.beforeExpr) != null ? r : !1), QI.push((i =
    e.startsExpr) != null ? i : !1), ZI.push((a = e.prefix) != null ? a : !1), Kl.push(new Hb("name", e)), Zy;
  }
  n(rs, "createKeywordLike");
  var RBe = {
    bracketL: vt("[", {
      beforeExpr: is,
      startsExpr: qe
    }),
    bracketHashL: vt("#[", {
      beforeExpr: is,
      startsExpr: qe
    }),
    bracketBarL: vt("[|", {
      beforeExpr: is,
      startsExpr: qe
    }),
    bracketR: vt("]"),
    bracketBarR: vt("|]"),
    braceL: vt("{", {
      beforeExpr: is,
      startsExpr: qe
    }),
    braceBarL: vt("{|", {
      beforeExpr: is,
      startsExpr: qe
    }),
    braceHashL: vt("#{", {
      beforeExpr: is,
      startsExpr: qe
    }),
    braceR: vt("}"),
    braceBarR: vt("|}"),
    parenL: vt("(", {
      beforeExpr: is,
      startsExpr: qe
    }),
    parenR: vt(")"),
    comma: vt(",", {
      beforeExpr: is
    }),
    semi: vt(";", {
      beforeExpr: is
    }),
    colon: vt(":", {
      beforeExpr: is
    }),
    doubleColon: vt("::", {
      beforeExpr: is
    }),
    dot: vt("."),
    question: vt("?", {
      beforeExpr: is
    }),
    questionDot: vt("?."),
    arrow: vt("=>", {
      beforeExpr: is
    }),
    template: vt("template"),
    ellipsis: vt("...", {
      beforeExpr: is
    }),
    backQuote: vt("`", {
      startsExpr: qe
    }),
    dollarBraceL: vt("${", {
      beforeExpr: is,
      startsExpr: qe
    }),
    templateTail: vt("...`", {
      startsExpr: qe
    }),
    templateNonTail: vt("...${", {
      beforeExpr: is,
      startsExpr: qe
    }),
    at: vt("@"),
    hash: vt("#", {
      startsExpr: qe
    }),
    interpreterDirective: vt("#!..."),
    eq: vt("=", {
      beforeExpr: is,
      isAssign: zy
    }),
    assign: vt("_=", {
      beforeExpr: is,
      isAssign: zy
    }),
    slashAssign: vt("_=", {
      beforeExpr: is,
      isAssign: zy
    }),
    xorAssign: vt("_=", {
      beforeExpr: is,
      isAssign: zy
    }),
    moduloAssign: vt("_=", {
      beforeExpr: is,
      isAssign: zy
    }),
    incDec: vt("++/--", {
      prefix: Ic,
      postfix: jBe,
      startsExpr: qe
    }),
    bang: vt("!", {
      beforeExpr: is,
      prefix: Ic,
      startsExpr: qe
    }),
    tilde: vt("~", {
      beforeExpr: is,
      prefix: Ic,
      startsExpr: qe
    }),
    doubleCaret: vt("^^", {
      startsExpr: qe
    }),
    doubleAt: vt("@@", {
      startsExpr: qe
    }),
    pipeline: gn("|>", 0),
    nullishCoalescing: gn("??", 1),
    logicalOR: gn("||", 1),
    logicalAND: gn("&&", 2),
    bitwiseOR: gn("|", 3),
    bitwiseXOR: gn("^", 4),
    bitwiseAND: gn("&", 5),
    equality: gn("==/!=/===/!==", 6),
    lt: gn("</>/<=/>=", 7),
    gt: gn("</>/<=/>=", 7),
    relational: gn("</>/<=/>=", 7),
    bitShift: gn("<</>>/>>>", 8),
    bitShiftL: gn("<</>>/>>>", 8),
    bitShiftR: gn("<</>>/>>>", 8),
    plusMin: vt("+/-", {
      beforeExpr: is,
      binop: 9,
      prefix: Ic,
      startsExpr: qe
    }),
    modulo: vt("%", {
      binop: 10,
      startsExpr: qe
    }),
    star: vt("*", {
      binop: 10
    }),
    slash: gn("/", 10),
    exponent: vt("**", {
      beforeExpr: is,
      binop: 11,
      rightAssociative: !0
    }),
    _in: Is("in", {
      beforeExpr: is,
      binop: 7
    }),
    _instanceof: Is("instanceof", {
      beforeExpr: is,
      binop: 7
    }),
    _break: Is("break"),
    _case: Is("case", {
      beforeExpr: is
    }),
    _catch: Is("catch"),
    _continue: Is("continue"),
    _debugger: Is("debugger"),
    _default: Is("default", {
      beforeExpr: is
    }),
    _else: Is("else", {
      beforeExpr: is
    }),
    _finally: Is("finally"),
    _function: Is("function", {
      startsExpr: qe
    }),
    _if: Is("if"),
    _return: Is("return", {
      beforeExpr: is
    }),
    _switch: Is("switch"),
    _throw: Is("throw", {
      beforeExpr: is,
      prefix: Ic,
      startsExpr: qe
    }),
    _try: Is("try"),
    _var: Is("var"),
    _const: Is("const"),
    _with: Is("with"),
    _new: Is("new", {
      beforeExpr: is,
      startsExpr: qe
    }),
    _this: Is("this", {
      startsExpr: qe
    }),
    _super: Is("super", {
      startsExpr: qe
    }),
    _class: Is("class", {
      startsExpr: qe
    }),
    _extends: Is("extends", {
      beforeExpr: is
    }),
    _export: Is("export"),
    _import: Is("import", {
      startsExpr: qe
    }),
    _null: Is("null", {
      startsExpr: qe
    }),
    _true: Is("true", {
      startsExpr: qe
    }),
    _false: Is("false", {
      startsExpr: qe
    }),
    _typeof: Is("typeof", {
      beforeExpr: is,
      prefix: Ic,
      startsExpr: qe
    }),
    _void: Is("void", {
      beforeExpr: is,
      prefix: Ic,
      startsExpr: qe
    }),
    _delete: Is("delete", {
      beforeExpr: is,
      prefix: Ic,
      startsExpr: qe
    }),
    _do: Is("do", {
      isLoop: EI,
      beforeExpr: is
    }),
    _for: Is("for", {
      isLoop: EI
    }),
    _while: Is("while", {
      isLoop: EI
    }),
    _as: rs("as", {
      startsExpr: qe
    }),
    _assert: rs("assert", {
      startsExpr: qe
    }),
    _async: rs("async", {
      startsExpr: qe
    }),
    _await: rs("await", {
      startsExpr: qe
    }),
    _defer: rs("defer", {
      startsExpr: qe
    }),
    _from: rs("from", {
      startsExpr: qe
    }),
    _get: rs("get", {
      startsExpr: qe
    }),
    _let: rs("let", {
      startsExpr: qe
    }),
    _meta: rs("meta", {
      startsExpr: qe
    }),
    _of: rs("of", {
      startsExpr: qe
    }),
    _sent: rs("sent", {
      startsExpr: qe
    }),
    _set: rs("set", {
      startsExpr: qe
    }),
    _source: rs("source", {
      startsExpr: qe
    }),
    _static: rs("static", {
      startsExpr: qe
    }),
    _using: rs("using", {
      startsExpr: qe
    }),
    _yield: rs("yield", {
      startsExpr: qe
    }),
    _asserts: rs("asserts", {
      startsExpr: qe
    }),
    _checks: rs("checks", {
      startsExpr: qe
    }),
    _exports: rs("exports", {
      startsExpr: qe
    }),
    _global: rs("global", {
      startsExpr: qe
    }),
    _implements: rs("implements", {
      startsExpr: qe
    }),
    _intrinsic: rs("intrinsic", {
      startsExpr: qe
    }),
    _infer: rs("infer", {
      startsExpr: qe
    }),
    _is: rs("is", {
      startsExpr: qe
    }),
    _mixins: rs("mixins", {
      startsExpr: qe
    }),
    _proto: rs("proto", {
      startsExpr: qe
    }),
    _require: rs("require", {
      startsExpr: qe
    }),
    _satisfies: rs("satisfies", {
      startsExpr: qe
    }),
    _keyof: rs("keyof", {
      startsExpr: qe
    }),
    _readonly: rs("readonly", {
      startsExpr: qe
    }),
    _unique: rs("unique", {
      startsExpr: qe
    }),
    _abstract: rs("abstract", {
      startsExpr: qe
    }),
    _declare: rs("declare", {
      startsExpr: qe
    }),
    _enum: rs("enum", {
      startsExpr: qe
    }),
    _module: rs("module", {
      startsExpr: qe
    }),
    _namespace: rs("namespace", {
      startsExpr: qe
    }),
    _interface: rs("interface", {
      startsExpr: qe
    }),
    _type: rs("type", {
      startsExpr: qe
    }),
    _opaque: rs("opaque", {
      startsExpr: qe
    }),
    name: vt("name", {
      startsExpr: qe
    }),
    placeholder: vt("%%", {
      startsExpr: !0
    }),
    string: vt("string", {
      startsExpr: qe
    }),
    num: vt("num", {
      startsExpr: qe
    }),
    bigint: vt("bigint", {
      startsExpr: qe
    }),
    decimal: vt("decimal", {
      startsExpr: qe
    }),
    regexp: vt("regexp", {
      startsExpr: qe
    }),
    privateName: vt("#name", {
      startsExpr: qe
    }),
    eof: vt("eof"),
    jsxName: vt("jsxName"),
    jsxText: vt("jsxText", {
      beforeExpr: !0
    }),
    jsxTagStart: vt("jsxTagStart", {
      startsExpr: !0
    }),
    jsxTagEnd: vt("jsxTagEnd")
  };
  function $s(t) {
    return t >= 93 && t <= 133;
  }
  n($s, "tokenIsIdentifier");
  function qBe(t) {
    return t <= 92;
  }
  n(qBe, "tokenKeywordOrIdentifierIsKeyword");
  function yo(t) {
    return t >= 58 && t <= 133;
  }
  n(yo, "tokenIsKeywordOrIdentifier");
  function DU(t) {
    return t >= 58 && t <= 137;
  }
  n(DU, "tokenIsLiteralPropertyName");
  function UBe(t) {
    return GI[t];
  }
  n(UBe, "tokenComesBeforeExpression");
  function II(t) {
    return QI[t];
  }
  n(II, "tokenCanStartExpression");
  function KBe(t) {
    return t >= 29 && t <= 33;
  }
  n(KBe, "tokenIsAssignment");
  function xU(t) {
    return t >= 129 && t <= 131;
  }
  n(xU, "tokenIsFlowInterfaceOrTypeOrOpaque");
  function VBe(t) {
    return t >= 90 && t <= 92;
  }
  n(VBe, "tokenIsLoop");
  function eN(t) {
    return t >= 58 && t <= 92;
  }
  n(eN, "tokenIsKeyword");
  function WBe(t) {
    return t >= 39 && t <= 59;
  }
  n(WBe, "tokenIsOperator");
  function $Be(t) {
    return t === 34;
  }
  n($Be, "tokenIsPostfix");
  function HBe(t) {
    return ZI[t];
  }
  n(HBe, "tokenIsPrefix");
  function JBe(t) {
    return t >= 121 && t <= 123;
  }
  n(JBe, "tokenIsTSTypeOperator");
  function YBe(t) {
    return t >= 124 && t <= 130;
  }
  n(YBe, "tokenIsTSDeclarationStart");
  function kc(t) {
    return XI[t];
  }
  n(kc, "tokenLabelName");
  function Wb(t) {
    return zI[t];
  }
  n(Wb, "tokenOperatorPrecedence");
  function XBe(t) {
    return t === 57;
  }
  n(XBe, "tokenIsRightAssociative");
  function Jb(t) {
    return t >= 24 && t <= 25;
  }
  n(Jb, "tokenIsTemplate");
  function Ul(t) {
    return Kl[t];
  }
  n(Ul, "getExportedToken");
  Kl[8].updateContext = (t) => {
    t.pop();
  }, Kl[5].updateContext = Kl[7].updateContext = Kl[23].updateContext = (t) => {
    t.push(Ws.brace);
  }, Kl[22].updateContext = (t) => {
    t[t.length - 1] === Ws.template ? t.pop() : t.push(Ws.template);
  }, Kl[143].updateContext = (t) => {
    t.push(Ws.j_expr, Ws.j_oTag);
  };
  var tN = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993\
-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\
\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\
\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\
\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\
\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01\
-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
  OU = "\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\
\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\
\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6\
-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20\
-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65", zBe = new RegExp("[" + tN + "]"), GBe = new RegExp("[" + tN + OU + "]");
  tN = OU = null;
  var _U = [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], QBe = [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 NI(t, e) {
    let s = 65536;
    for (let r = 0, i = e.length; r < i; r += 2) {
      if (s += e[r], s > t) return !1;
      if (s += e[r + 1], s >= t) return !0;
    }
    return !1;
  }
  n(NI, "isInAstralSet");
  function Vl(t) {
    return t < 65 ? t === 36 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && zBe.test(String.fromCharCode(t)) :
    NI(t, _U);
  }
  n(Vl, "isIdentifierStart");
  function ad(t) {
    return t < 48 ? t === 36 : t < 58 ? !0 : t < 65 ? !1 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && GBe.test(
    String.fromCharCode(t)) : NI(t, _U) || NI(t, QBe);
  }
  n(ad, "isIdentifierChar");
  var sN = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "swit\
ch", "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"]
  }, ZBe = new Set(sN.keyword), eMe = new Set(sN.strict), tMe = new Set(sN.strictBind);
  function LU(t, e) {
    return e && t === "await" || t === "enum";
  }
  n(LU, "isReservedWord");
  function BU(t, e) {
    return LU(t, e) || eMe.has(t);
  }
  n(BU, "isStrictReservedWord");
  function MU(t) {
    return tMe.has(t);
  }
  n(MU, "isStrictBindOnlyReservedWord");
  function FU(t, e) {
    return BU(t, e) || MU(t);
  }
  n(FU, "isStrictBindReservedWord");
  function sMe(t) {
    return ZBe.has(t);
  }
  n(sMe, "isKeyword");
  function rMe(t, e, s) {
    return t === 64 && e === 64 && Vl(s);
  }
  n(rMe, "isIteratorStart");
  var iMe = /* @__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", "protecte\
d", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
  function nMe(t) {
    return iMe.has(t);
  }
  n(nMe, "canBeReservedWord");
  var eg = class {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = e;
    }
  }, tg = class {
    static {
      n(this, "ScopeHandler");
    }
    constructor(e, s) {
      this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = e,
      this.inModule = s;
    }
    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() {
      let e = this.currentThisScopeFlags();
      return (e & 64) > 0 && (e & 2) === 0;
    }
    get inStaticBlock() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 128)
          return !0;
        if (s & 451)
          return !1;
      }
    }
    get inNonArrowFunction() {
      return (this.currentThisScopeFlags() & 2) > 0;
    }
    get treatFunctionsAsVar() {
      return this.treatFunctionsAsVarInScope(this.currentScope());
    }
    createScope(e) {
      return new eg(e);
    }
    enter(e) {
      this.scopeStack.push(this.createScope(e));
    }
    exit() {
      return this.scopeStack.pop().flags;
    }
    treatFunctionsAsVarInScope(e) {
      return !!(e.flags & 130 || !this.parser.inModule && e.flags & 1);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 8 || s & 16) {
        this.checkRedeclarationInScope(i, e, s, r);
        let a = i.names.get(e) || 0;
        s & 16 ? a = a | 4 : (i.firstLexicalName || (i.firstLexicalName = e), a = a | 2), i.names.set(e, a), s & 8 && this.maybeExportDefined(
        i, e);
      } else if (s & 4)
        for (let a = this.scopeStack.length - 1; a >= 0 && (i = this.scopeStack[a], this.checkRedeclarationInScope(i, e, s, r), i.names.set(
        e, (i.names.get(e) || 0) | 1), this.maybeExportDefined(i, e), !(i.flags & 387)); --a)
          ;
      this.parser.inModule && i.flags & 1 && this.undefinedExports.delete(e);
    }
    maybeExportDefined(e, s) {
      this.parser.inModule && e.flags & 1 && this.undefinedExports.delete(s);
    }
    checkRedeclarationInScope(e, s, r, i) {
      this.isRedeclaredInScope(e, s, r) && this.parser.raise(G.VarRedeclaration, i, {
        identifierName: s
      });
    }
    isRedeclaredInScope(e, s, r) {
      if (!(r & 1)) return !1;
      if (r & 8)
        return e.names.has(s);
      let i = e.names.get(s);
      return r & 16 ? (i & 2) > 0 || !this.treatFunctionsAsVarInScope(e) && (i & 1) > 0 : (i & 2) > 0 && !(e.flags & 8 && e.firstLexicalName ===
      s) || !this.treatFunctionsAsVarInScope(e) && (i & 4) > 0;
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      this.scopeStack[0].names.has(s) || this.undefinedExports.set(s, e.loc.start);
    }
    currentScope() {
      return this.scopeStack[this.scopeStack.length - 1];
    }
    currentVarScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 387)
          return s;
      }
    }
    currentThisScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 451 && !(s & 4))
          return s;
      }
    }
  }, kI = class extends eg {
    static {
      n(this, "FlowScope");
    }
    constructor(...e) {
      super(...e), this.declareFunctions = /* @__PURE__ */ new Set();
    }
  }, DI = class extends tg {
    static {
      n(this, "FlowScopeHandler");
    }
    createScope(e) {
      return new kI(e);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 2048) {
        this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e), i.declareFunctions.add(e);
        return;
      }
      super.declareName(e, s, r);
    }
    isRedeclaredInScope(e, s, r) {
      if (super.isRedeclaredInScope(e, s, r)) return !0;
      if (r & 2048 && !e.declareFunctions.has(s)) {
        let i = e.names.get(s);
        return (i & 4) > 0 || (i & 2) > 0;
      }
      return !1;
    }
    checkLocalExport(e) {
      this.scopeStack[0].declareFunctions.has(e.name) || super.checkLocalExport(e);
    }
  }, OI = class {
    static {
      n(this, "BaseParser");
    }
    constructor() {
      this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
    }
    sourceToOffsetPos(e) {
      return e + this.startIndex;
    }
    offsetToSourcePos(e) {
      return e - this.startIndex;
    }
    hasPlugin(e) {
      if (typeof e == "string")
        return this.plugins.has(e);
      {
        let [s, r] = e;
        if (!this.hasPlugin(s))
          return !1;
        let i = this.plugins.get(s);
        for (let a of Object.keys(r))
          if (i?.[a] !== r[a])
            return !1;
        return !0;
      }
    }
    getPluginOption(e, s) {
      var r;
      return (r = this.plugins.get(e)) == null ? void 0 : r[s];
    }
  };
  function jU(t, e) {
    t.trailingComments === void 0 ? t.trailingComments = e : t.trailingComments.unshift(...e);
  }
  n(jU, "setTrailingComments");
  function aMe(t, e) {
    t.leadingComments === void 0 ? t.leadingComments = e : t.leadingComments.unshift(...e);
  }
  n(aMe, "setLeadingComments");
  function sg(t, e) {
    t.innerComments === void 0 ? t.innerComments = e : t.innerComments.unshift(...e);
  }
  n(sg, "setInnerComments");
  function ih(t, e, s) {
    let r = null, i = e.length;
    for (; r === null && i > 0; )
      r = e[--i];
    r === null || r.start > s.start ? sg(t, s.comments) : jU(r, s.comments);
  }
  n(ih, "adjustInnerComments");
  var _I = class extends OI {
    static {
      n(this, "CommentsParser");
    }
    addComment(e) {
      this.filename && (e.loc.filename = this.filename);
      let {
        commentsLen: s
      } = this.state;
      this.comments.length !== s && (this.comments.length = s), this.comments.push(e), this.state.commentsLen++;
    }
    processComment(e) {
      let {
        commentStack: s
      } = this.state, r = s.length;
      if (r === 0) return;
      let i = r - 1, a = s[i];
      a.start === e.end && (a.leadingNode = e, i--);
      let {
        start: o
      } = e;
      for (; i >= 0; i--) {
        let l = s[i], u = l.end;
        if (u > o)
          l.containingNode = e, this.finalizeComment(l), s.splice(i, 1);
        else {
          u === o && (l.trailingNode = e);
          break;
        }
      }
    }
    finalizeComment(e) {
      let {
        comments: s
      } = e;
      if (e.leadingNode !== null || e.trailingNode !== null)
        e.leadingNode !== null && jU(e.leadingNode, s), e.trailingNode !== null && aMe(e.trailingNode, s);
      else {
        let {
          containingNode: r,
          start: i
        } = e;
        if (this.input.charCodeAt(this.offsetToSourcePos(i) - 1) === 44)
          switch (r.type) {
            case "ObjectExpression":
            case "ObjectPattern":
            case "RecordExpression":
              ih(r, r.properties, e);
              break;
            case "CallExpression":
            case "OptionalCallExpression":
              ih(r, r.arguments, e);
              break;
            case "FunctionDeclaration":
            case "FunctionExpression":
            case "ArrowFunctionExpression":
            case "ObjectMethod":
            case "ClassMethod":
            case "ClassPrivateMethod":
              ih(r, r.params, e);
              break;
            case "ArrayExpression":
            case "ArrayPattern":
            case "TupleExpression":
              ih(r, r.elements, e);
              break;
            case "ExportNamedDeclaration":
            case "ImportDeclaration":
              ih(r, r.specifiers, e);
              break;
            case "TSEnumDeclaration":
              ih(r, r.members, e);
              break;
            case "TSEnumBody":
              ih(r, r.members, e);
              break;
            default:
              sg(r, s);
          }
        else
          sg(r, s);
      }
    }
    finalizeRemainingComments() {
      let {
        commentStack: e
      } = this.state;
      for (let s = e.length - 1; s >= 0; s--)
        this.finalizeComment(e[s]);
      this.state.commentStack = [];
    }
    resetPreviousNodeTrailingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      if (r === 0) return;
      let i = s[r - 1];
      i.leadingNode === e && (i.leadingNode = null);
    }
    resetPreviousIdentifierLeadingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      r !== 0 && (s[r - 1].trailingNode === e ? s[r - 1].trailingNode = null : r >= 2 && s[r - 2].trailingNode === e && (s[r - 2].trailingNode =
      null));
    }
    takeSurroundingComments(e, s, r) {
      let {
        commentStack: i
      } = this.state, a = i.length;
      if (a === 0) return;
      let o = a - 1;
      for (; o >= 0; o--) {
        let l = i[o], u = l.end;
        if (l.start === r)
          l.leadingNode = e;
        else if (u === s)
          l.trailingNode = e;
        else if (u < s)
          break;
      }
    }
  }, oMe = /\r\n|[\r\n\u2028\u2029]/, Ub = new RegExp(oMe.source, "g");
  function od(t) {
    switch (t) {
      case 10:
      case 13:
      case 8232:
      case 8233:
        return !0;
      default:
        return !1;
    }
  }
  n(od, "isNewLine");
  function SU(t, e, s) {
    for (let r = e; r < s; r++)
      if (od(t.charCodeAt(r)))
        return !0;
    return !1;
  }
  n(SU, "hasNewLine");
  var AI = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, vI = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;
  function lMe(t) {
    switch (t) {
      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;
    }
  }
  n(lMe, "isWhitespace");
  var LI = class t {
    static {
      n(this, "State");
    }
    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 = [Ws.brace], this.firstInvalidTemplateEscapePos = null,
      this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
    }
    get strict() {
      return (this.flags & 1) > 0;
    }
    set strict(e) {
      e ? this.flags |= 1 : this.flags &= -2;
    }
    init({
      strictMode: e,
      sourceType: s,
      startIndex: r,
      startLine: i,
      startColumn: a
    }) {
      this.strict = e === !1 ? !1 : e === !0 ? !0 : s === "module", this.startIndex = r, this.curLine = i, this.lineStart = -a, this.startLoc =
      this.endLoc = new Qo(i, a, r);
    }
    get maybeInArrowParameters() {
      return (this.flags & 2) > 0;
    }
    set maybeInArrowParameters(e) {
      e ? this.flags |= 2 : this.flags &= -3;
    }
    get inType() {
      return (this.flags & 4) > 0;
    }
    set inType(e) {
      e ? this.flags |= 4 : this.flags &= -5;
    }
    get noAnonFunctionType() {
      return (this.flags & 8) > 0;
    }
    set noAnonFunctionType(e) {
      e ? this.flags |= 8 : this.flags &= -9;
    }
    get hasFlowComment() {
      return (this.flags & 16) > 0;
    }
    set hasFlowComment(e) {
      e ? this.flags |= 16 : this.flags &= -17;
    }
    get isAmbientContext() {
      return (this.flags & 32) > 0;
    }
    set isAmbientContext(e) {
      e ? this.flags |= 32 : this.flags &= -33;
    }
    get inAbstractClass() {
      return (this.flags & 64) > 0;
    }
    set inAbstractClass(e) {
      e ? this.flags |= 64 : this.flags &= -65;
    }
    get inDisallowConditionalTypesContext() {
      return (this.flags & 128) > 0;
    }
    set inDisallowConditionalTypesContext(e) {
      e ? this.flags |= 128 : this.flags &= -129;
    }
    get soloAwait() {
      return (this.flags & 256) > 0;
    }
    set soloAwait(e) {
      e ? this.flags |= 256 : this.flags &= -257;
    }
    get inFSharpPipelineDirectBody() {
      return (this.flags & 512) > 0;
    }
    set inFSharpPipelineDirectBody(e) {
      e ? this.flags |= 512 : this.flags &= -513;
    }
    get canStartJSXElement() {
      return (this.flags & 1024) > 0;
    }
    set canStartJSXElement(e) {
      e ? this.flags |= 1024 : this.flags &= -1025;
    }
    get containsEsc() {
      return (this.flags & 2048) > 0;
    }
    set containsEsc(e) {
      e ? this.flags |= 2048 : this.flags &= -2049;
    }
    get hasTopLevelAwait() {
      return (this.flags & 4096) > 0;
    }
    set hasTopLevelAwait(e) {
      e ? this.flags |= 4096 : this.flags &= -4097;
    }
    curPosition() {
      return new Qo(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex);
    }
    clone() {
      let e = new t();
      return e.flags = this.flags, e.startIndex = this.startIndex, e.curLine = this.curLine, e.lineStart = this.lineStart, e.startLoc = this.
      startLoc, e.endLoc = this.endLoc, e.errors = this.errors.slice(), e.potentialArrowAt = this.potentialArrowAt, e.noArrowAt = this.noArrowAt.
      slice(), e.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), e.topicContext = this.topicContext, e.labels = this.labels.
      slice(), e.commentsLen = this.commentsLen, e.commentStack = this.commentStack.slice(), e.pos = this.pos, e.type = this.type, e.value =
      this.value, e.start = this.start, e.end = this.end, e.lastTokEndLoc = this.lastTokEndLoc, e.lastTokStartLoc = this.lastTokStartLoc, e.
      context = this.context.slice(), e.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, e.strictErrors = this.strictErrors,
      e.tokensLength = this.tokensLength, e;
    }
  }, uMe = /* @__PURE__ */ n(function(e) {
    return e >= 48 && e <= 57;
  }, "isDigit"), PU = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, Kb = {
    bin: /* @__PURE__ */ n((t) => t === 48 || t === 49, "bin"),
    oct: /* @__PURE__ */ n((t) => t >= 48 && t <= 55, "oct"),
    dec: /* @__PURE__ */ n((t) => t >= 48 && t <= 57, "dec"),
    hex: /* @__PURE__ */ n((t) => t >= 48 && t <= 57 || t >= 65 && t <= 70 || t >= 97 && t <= 102, "hex")
  };
  function EU(t, e, s, r, i, a) {
    let o = s, l = r, u = i, c = "", p = null, h = s, {
      length: f
    } = e;
    for (; ; ) {
      if (s >= f) {
        a.unterminated(o, l, u), c += e.slice(h, s);
        break;
      }
      let d = e.charCodeAt(s);
      if (cMe(t, d, e, s)) {
        c += e.slice(h, s);
        break;
      }
      if (d === 92) {
        c += e.slice(h, s);
        let m = pMe(e, s, r, i, t === "template", a);
        m.ch === null && !p ? p = {
          pos: s,
          lineStart: r,
          curLine: i
        } : c += m.ch, {
          pos: s,
          lineStart: r,
          curLine: i
        } = m, h = s;
      } else d === 8232 || d === 8233 ? (++s, ++i, r = s) : d === 10 || d === 13 ? t === "template" ? (c += e.slice(h, s) + `
`, ++s, d === 13 && e.charCodeAt(s) === 10 && ++s, ++i, h = r = s) : a.unterminated(o, l, u) : ++s;
    }
    return {
      pos: s,
      str: c,
      firstInvalidLoc: p,
      lineStart: r,
      curLine: i,
      containsInvalid: !!p
    };
  }
  n(EU, "readStringContents");
  function cMe(t, e, s, r) {
    return t === "template" ? e === 96 || e === 36 && s.charCodeAt(r + 1) === 123 : e === (t === "double" ? 34 : 39);
  }
  n(cMe, "isStringEnd");
  function pMe(t, e, s, r, i, a) {
    let o = !i;
    e++;
    let l = /* @__PURE__ */ n((c) => ({
      pos: e,
      ch: c,
      lineStart: s,
      curLine: r
    }), "res"), u = t.charCodeAt(e++);
    switch (u) {
      case 110:
        return l(`
`);
      case 114:
        return l("\r");
      case 120: {
        let c;
        return {
          code: c,
          pos: e
        } = BI(t, e, s, r, 2, !1, o, a), l(c === null ? null : String.fromCharCode(c));
      }
      case 117: {
        let c;
        return {
          code: c,
          pos: e
        } = qU(t, e, s, r, o, a), l(c === null ? null : String.fromCodePoint(c));
      }
      case 116:
        return l("	");
      case 98:
        return l("\b");
      case 118:
        return l("\v");
      case 102:
        return l("\f");
      case 13:
        t.charCodeAt(e) === 10 && ++e;
      case 10:
        s = e, ++r;
      case 8232:
      case 8233:
        return l("");
      case 56:
      case 57:
        if (i)
          return l(null);
        a.strictNumericEscape(e - 1, s, r);
      default:
        if (u >= 48 && u <= 55) {
          let c = e - 1, h = /^[0-7]+/.exec(t.slice(c, e + 2))[0], f = parseInt(h, 8);
          f > 255 && (h = h.slice(0, -1), f = parseInt(h, 8)), e += h.length - 1;
          let d = t.charCodeAt(e);
          if (h !== "0" || d === 56 || d === 57) {
            if (i)
              return l(null);
            a.strictNumericEscape(c, s, r);
          }
          return l(String.fromCharCode(f));
        }
        return l(String.fromCharCode(u));
    }
  }
  n(pMe, "readEscapedChar");
  function BI(t, e, s, r, i, a, o, l) {
    let u = e, c;
    return {
      n: c,
      pos: e
    } = RU(t, e, s, r, 16, i, a, !1, l, !o), c === null && (o ? l.invalidEscapeSequence(u, s, r) : e = u - 1), {
      code: c,
      pos: e
    };
  }
  n(BI, "readHexChar");
  function RU(t, e, s, r, i, a, o, l, u, c) {
    let p = e, h = i === 16 ? PU.hex : PU.decBinOct, f = i === 16 ? Kb.hex : i === 10 ? Kb.dec : i === 8 ? Kb.oct : Kb.bin, d = !1, m = 0;
    for (let y = 0, T = a ?? 1 / 0; y < T; ++y) {
      let b = t.charCodeAt(e), E;
      if (b === 95 && l !== "bail") {
        let V = t.charCodeAt(e - 1), W = t.charCodeAt(e + 1);
        if (l) {
          if (Number.isNaN(W) || !f(W) || h.has(V) || h.has(W)) {
            if (c) return {
              n: null,
              pos: e
            };
            u.unexpectedNumericSeparator(e, s, r);
          }
        } else {
          if (c) return {
            n: null,
            pos: e
          };
          u.numericSeparatorInEscapeSequence(e, s, r);
        }
        ++e;
        continue;
      }
      if (b >= 97 ? E = b - 97 + 10 : b >= 65 ? E = b - 65 + 10 : uMe(b) ? E = b - 48 : E = 1 / 0, E >= i) {
        if (E <= 9 && c)
          return {
            n: null,
            pos: e
          };
        if (E <= 9 && u.invalidDigit(e, s, r, i))
          E = 0;
        else if (o)
          E = 0, d = !0;
        else
          break;
      }
      ++e, m = m * i + E;
    }
    return e === p || a != null && e - p !== a || d ? {
      n: null,
      pos: e
    } : {
      n: m,
      pos: e
    };
  }
  n(RU, "readInt");
  function qU(t, e, s, r, i, a) {
    let o = t.charCodeAt(e), l;
    if (o === 123) {
      if (++e, {
        code: l,
        pos: e
      } = BI(t, e, s, r, t.indexOf("}", e) - e, !0, i, a), ++e, l !== null && l > 1114111)
        if (i)
          a.invalidCodePoint(e, s, r);
        else
          return {
            code: null,
            pos: e
          };
    } else
      ({
        code: l,
        pos: e
      } = BI(t, e, s, r, 4, !1, i, a));
    return {
      code: l,
      pos: e
    };
  }
  n(qU, "readCodePoint");
  function Gy(t, e, s) {
    return new Qo(s, t - e, t);
  }
  n(Gy, "buildPosition");
  var hMe = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]), Go = class {
    static {
      n(this, "Token");
    }
    constructor(e) {
      let s = e.startIndex || 0;
      this.type = e.type, this.value = e.value, this.start = s + e.start, this.end = s + e.end, this.loc = new ud(e.startLoc, e.endLoc);
    }
  }, MI = class extends _I {
    static {
      n(this, "Tokenizer");
    }
    constructor(e, s) {
      super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
        invalidDigit: /* @__PURE__ */ n((r, i, a, o) => this.optionFlags & 1024 ? (this.raise(G.InvalidDigit, Gy(r, i, a), {
          radix: o
        }), !0) : !1, "invalidDigit"),
        numericSeparatorInEscapeSequence: this.errorBuilder(G.NumericSeparatorInEscapeSequence),
        unexpectedNumericSeparator: this.errorBuilder(G.UnexpectedNumericSeparator)
      }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
        invalidEscapeSequence: this.errorBuilder(G.InvalidEscapeSequence),
        invalidCodePoint: this.errorBuilder(G.InvalidCodePoint)
      }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: /* @__PURE__ */ n((r, i, a) => {
          this.recordStrictModeErrors(G.StrictNumericEscape, Gy(r, i, a));
        }, "strictNumericEscape"),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(G.UnterminatedString, Gy(r - 1, i, a));
        }, "unterminated")
      }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: this.errorBuilder(G.StrictNumericEscape),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(G.UnterminatedTemplate, Gy(r, i, a));
        }, "unterminated")
      }), this.state = new LI(), this.state.init(e), this.input = s, this.length = s.length, this.comments = [], this.isLookahead = !1;
    }
    pushToken(e) {
      this.tokens.length = this.state.tokensLength, this.tokens.push(e), ++this.state.tokensLength;
    }
    next() {
      this.checkKeywordEscapes(), this.optionFlags & 128 && this.pushToken(new Go(this.state)), this.state.lastTokEndLoc = this.state.endLoc,
      this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
    }
    eat(e) {
      return this.match(e) ? (this.next(), !0) : !1;
    }
    match(e) {
      return this.state.type === e;
    }
    createLookaheadState(e) {
      return {
        pos: e.pos,
        value: null,
        type: e.type,
        start: e.start,
        end: e.end,
        context: [this.curContext()],
        inType: e.inType,
        startLoc: e.startLoc,
        lastTokEndLoc: e.lastTokEndLoc,
        curLine: e.curLine,
        lineStart: e.lineStart,
        curPosition: e.curPosition
      };
    }
    lookahead() {
      let e = this.state;
      this.state = this.createLookaheadState(e), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
      let s = this.state;
      return this.state = e, s;
    }
    nextTokenStart() {
      return this.nextTokenStartSince(this.state.pos);
    }
    nextTokenStartSince(e) {
      return AI.lastIndex = e, AI.test(this.input) ? AI.lastIndex : e;
    }
    lookaheadCharCode() {
      return this.input.charCodeAt(this.nextTokenStart());
    }
    nextTokenInLineStart() {
      return this.nextTokenInLineStartSince(this.state.pos);
    }
    nextTokenInLineStartSince(e) {
      return vI.lastIndex = e, vI.test(this.input) ? vI.lastIndex : e;
    }
    lookaheadInLineCharCode() {
      return this.input.charCodeAt(this.nextTokenInLineStart());
    }
    codePointAtPos(e) {
      let s = this.input.charCodeAt(e);
      if ((s & 64512) === 55296 && ++e < this.input.length) {
        let r = this.input.charCodeAt(e);
        (r & 64512) === 56320 && (s = 65536 + ((s & 1023) << 10) + (r & 1023));
      }
      return s;
    }
    setStrict(e) {
      this.state.strict = e, e && (this.state.strictErrors.forEach(([s, r]) => this.raise(s, r)), 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(e) {
      let s;
      this.isLookahead || (s = this.state.curPosition());
      let r = this.state.pos, i = this.input.indexOf(e, r + 2);
      if (i === -1)
        throw this.raise(G.UnterminatedComment, this.state.curPosition());
      for (this.state.pos = i + e.length, Ub.lastIndex = r + 2; Ub.test(this.input) && Ub.lastIndex <= i; )
        ++this.state.curLine, this.state.lineStart = Ub.lastIndex;
      if (this.isLookahead) return;
      let a = {
        type: "CommentBlock",
        value: this.input.slice(r + 2, i),
        start: this.sourceToOffsetPos(r),
        end: this.sourceToOffsetPos(i + e.length),
        loc: new ud(s, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(a), a;
    }
    skipLineComment(e) {
      let s = this.state.pos, r;
      this.isLookahead || (r = this.state.curPosition());
      let i = this.input.charCodeAt(this.state.pos += e);
      if (this.state.pos < this.length)
        for (; !od(i) && ++this.state.pos < this.length; )
          i = this.input.charCodeAt(this.state.pos);
      if (this.isLookahead) return;
      let a = this.state.pos, l = {
        type: "CommentLine",
        value: this.input.slice(s + e, a),
        start: this.sourceToOffsetPos(s),
        end: this.sourceToOffsetPos(a),
        loc: new ud(r, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(l), l;
    }
    skipSpace() {
      let e = this.state.pos, s = this.optionFlags & 2048 ? [] : null;
      e: for (; this.state.pos < this.length; ) {
        let r = this.input.charCodeAt(this.state.pos);
        switch (r) {
          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: {
                let i = this.skipBlockComment("*/");
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              case 47: {
                let i = this.skipLineComment(2);
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (lMe(r))
              ++this.state.pos;
            else if (r === 45 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 45 && this.input.charCodeAt(i + 2) === 62 && (e === 0 || this.state.lineStart > e)) {
                let a = this.skipLineComment(3);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else if (r === 60 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 33 && this.input.charCodeAt(i + 2) === 45 && this.input.charCodeAt(i + 3) === 45) {
                let a = this.skipLineComment(4);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else
              break e;
        }
      }
      if (s?.length > 0) {
        let r = this.state.pos, i = {
          start: this.sourceToOffsetPos(e),
          end: this.sourceToOffsetPos(r),
          comments: s,
          leadingNode: null,
          trailingNode: null,
          containingNode: null
        };
        this.state.commentStack.push(i);
      }
    }
    finishToken(e, s) {
      this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
      let r = this.state.type;
      this.state.type = e, this.state.value = s, this.isLookahead || this.updateContext(r);
    }
    replaceToken(e) {
      this.state.type = e, this.updateContext();
    }
    readToken_numberSign() {
      if (this.state.pos === 0 && this.readToken_interpreter())
        return;
      let e = this.state.pos + 1, s = this.codePointAtPos(e);
      if (s >= 48 && s <= 57)
        throw this.raise(G.UnexpectedDigitAfterHash, this.state.curPosition());
      if (s === 123 || s === 91 && this.hasPlugin("recordAndTuple")) {
        if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
          throw this.raise(s === 123 ? G.RecordExpressionHashIncorrectStartSyntaxType : G.TupleExpressionHashIncorrectStartSyntaxType, this.
          state.curPosition());
        this.state.pos += 2, s === 123 ? this.finishToken(7) : this.finishToken(1);
      } else Vl(s) ? (++this.state.pos, this.finishToken(139, this.readWord1(s))) : s === 92 ? (++this.state.pos, this.finishToken(139, this.
      readWord1())) : this.finishOp(27, 1);
    }
    readToken_dot() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      if (e >= 48 && e <= 57) {
        this.readNumber(!0);
        return;
      }
      e === 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 e = this.input.charCodeAt(this.state.pos + 1);
      if (e !== 33) return !1;
      let s = this.state.pos;
      for (this.state.pos += 1; !od(e) && ++this.state.pos < this.length; )
        e = this.input.charCodeAt(this.state.pos);
      let r = this.input.slice(s + 2, this.state.pos);
      return this.finishToken(28, r), !0;
    }
    readToken_mult_modulo(e) {
      let s = e === 42 ? 55 : 54, r = 1, i = this.input.charCodeAt(this.state.pos + 1);
      e === 42 && i === 42 && (r++, i = this.input.charCodeAt(this.state.pos + 2), s = 57), i === 61 && !this.state.inType && (r++, s = e ===
      37 ? 33 : 30), this.finishOp(s, r);
    }
    readToken_pipe_amp(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(e === 124 ? 41 : 42, 2);
        return;
      }
      if (e === 124) {
        if (s === 62) {
          this.finishOp(39, 2);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 125) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(G.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(9);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 93) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(G.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(4);
          return;
        }
      }
      if (s === 61) {
        this.finishOp(30, 2);
        return;
      }
      this.finishOp(e === 124 ? 43 : 45, 1);
    }
    readToken_caret() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      e === 61 && !this.state.inType ? this.finishOp(32, 2) : e === 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(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.finishOp(34, 2);
        return;
      }
      s === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
    }
    readToken_lt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 60) {
        if (this.input.charCodeAt(e + 2) === 61) {
          this.finishOp(30, 3);
          return;
        }
        this.finishOp(51, 2);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(47, 1);
    }
    readToken_gt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 62) {
        let r = this.input.charCodeAt(e + 2) === 62 ? 3 : 2;
        if (this.input.charCodeAt(e + r) === 61) {
          this.finishOp(30, r + 1);
          return;
        }
        this.finishOp(52, r);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(48, 1);
    }
    readToken_eq_excl(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === 61) {
        this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
        return;
      }
      if (e === 61 && s === 62) {
        this.state.pos += 2, this.finishToken(19);
        return;
      }
      this.finishOp(e === 61 ? 29 : 35, 1);
    }
    readToken_question() {
      let e = this.input.charCodeAt(this.state.pos + 1), s = this.input.charCodeAt(this.state.pos + 2);
      e === 63 ? s === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : e === 46 && !(s >= 48 && s <= 57) ? (this.state.pos += 2, this.finishToken(
      18)) : (++this.state.pos, this.finishToken(17));
    }
    getTokenFromCode(e) {
      switch (e) {
        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(G.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(G.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: {
          let s = this.input.charCodeAt(this.state.pos + 1);
          if (s === 120 || s === 88) {
            this.readRadixNumber(16);
            return;
          }
          if (s === 111 || s === 79) {
            this.readRadixNumber(8);
            return;
          }
          if (s === 98 || s === 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(e);
          return;
        case 47:
          this.readToken_slash();
          return;
        case 37:
        case 42:
          this.readToken_mult_modulo(e);
          return;
        case 124:
        case 38:
          this.readToken_pipe_amp(e);
          return;
        case 94:
          this.readToken_caret();
          return;
        case 43:
        case 45:
          this.readToken_plus_min(e);
          return;
        case 60:
          this.readToken_lt();
          return;
        case 62:
          this.readToken_gt();
          return;
        case 61:
        case 33:
          this.readToken_eq_excl(e);
          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 (Vl(e)) {
            this.readWord(e);
            return;
          }
      }
      throw this.raise(G.InvalidOrUnexpectedToken, this.state.curPosition(), {
        unexpected: String.fromCodePoint(e)
      });
    }
    finishOp(e, s) {
      let r = this.input.slice(this.state.pos, this.state.pos + s);
      this.state.pos += s, this.finishToken(e, r);
    }
    readRegexp() {
      let e = this.state.startLoc, s = this.state.start + 1, r, i, {
        pos: a
      } = this.state;
      for (; ; ++a) {
        if (a >= this.length)
          throw this.raise(G.UnterminatedRegExp, Tn(e, 1));
        let c = this.input.charCodeAt(a);
        if (od(c))
          throw this.raise(G.UnterminatedRegExp, Tn(e, 1));
        if (r)
          r = !1;
        else {
          if (c === 91)
            i = !0;
          else if (c === 93 && i)
            i = !1;
          else if (c === 47 && !i)
            break;
          r = c === 92;
        }
      }
      let o = this.input.slice(s, a);
      ++a;
      let l = "", u = /* @__PURE__ */ n(() => Tn(e, a + 2 - s), "nextPos");
      for (; a < this.length; ) {
        let c = this.codePointAtPos(a), p = String.fromCharCode(c);
        if (hMe.has(c))
          c === 118 ? l.includes("u") && this.raise(G.IncompatibleRegExpUVFlags, u()) : c === 117 && l.includes("v") && this.raise(G.IncompatibleRegExpUVFlags,
          u()), l.includes(p) && this.raise(G.DuplicateRegExpFlags, u());
        else if (ad(c) || c === 92)
          this.raise(G.MalformedRegExpFlags, u());
        else
          break;
        ++a, l += p;
      }
      this.state.pos = a, this.finishToken(138, {
        pattern: o,
        flags: l
      });
    }
    readInt(e, s, r = !1, i = !0) {
      let {
        n: a,
        pos: o
      } = RU(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, s, r, i, this.errorHandlers_readInt, !1);
      return this.state.pos = o, a;
    }
    readRadixNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1;
      this.state.pos += 2;
      let a = this.readInt(e);
      a == null && this.raise(G.InvalidDigit, Tn(r, 2), {
        radix: e
      });
      let o = this.input.charCodeAt(this.state.pos);
      if (o === 110)
        ++this.state.pos, i = !0;
      else if (o === 109)
        throw this.raise(G.InvalidDecimal, r);
      if (Vl(this.codePointAtPos(this.state.pos)))
        throw this.raise(G.NumberIdentifier, this.state.curPosition());
      if (i) {
        let l = this.input.slice(s, this.state.pos).replace(/[_n]/g, "");
        this.finishToken(136, l);
        return;
      }
      this.finishToken(135, a);
    }
    readNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1, a = !1, o = !1, l = !1;
      !e && this.readInt(10) === null && this.raise(G.InvalidNumber, this.state.curPosition());
      let u = this.state.pos - s >= 2 && this.input.charCodeAt(s) === 48;
      if (u) {
        let d = this.input.slice(s, this.state.pos);
        if (this.recordStrictModeErrors(G.StrictOctalLiteral, r), !this.state.strict) {
          let m = d.indexOf("_");
          m > 0 && this.raise(G.ZeroDigitNumericSeparator, Tn(r, m));
        }
        l = u && !/[89]/.test(d);
      }
      let c = this.input.charCodeAt(this.state.pos);
      if (c === 46 && !l && (++this.state.pos, this.readInt(10), i = !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(
      G.InvalidOrMissingExponent, r), i = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((i || u) && this.raise(G.InvalidBigIntLiteral,
      r), ++this.state.pos, a = !0), c === 109) {
        this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(G.InvalidDecimal, r), ++this.state.pos;
        var p = !0;
      }
      if (Vl(this.codePointAtPos(this.state.pos)))
        throw this.raise(G.NumberIdentifier, this.state.curPosition());
      let h = this.input.slice(s, this.state.pos).replace(/[_mn]/g, "");
      if (a) {
        this.finishToken(136, h);
        return;
      }
      if (p) {
        this.finishToken(137, h);
        return;
      }
      let f = l ? parseInt(h, 8) : parseFloat(h);
      this.finishToken(135, f);
    }
    readCodePoint(e) {
      let {
        code: s,
        pos: r
      } = qU(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, this.errorHandlers_readCodePoint);
      return this.state.pos = r, s;
    }
    readString(e) {
      let {
        str: s,
        pos: r,
        curLine: i,
        lineStart: a
      } = EU(e === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
      this.state.pos = r + 1, this.state.lineStart = a, this.state.curLine = i, this.finishToken(134, s);
    }
    readTemplateContinuation() {
      this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
    }
    readTemplateToken() {
      let e = this.input[this.state.pos], {
        str: s,
        firstInvalidLoc: r,
        pos: i,
        curLine: a,
        lineStart: o
      } = EU("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
      this.state.pos = i + 1, this.state.lineStart = o, this.state.curLine = a, r && (this.state.firstInvalidTemplateEscapePos = new Qo(r.curLine,
      r.pos - r.lineStart, this.sourceToOffsetPos(r.pos))), this.input.codePointAt(i) === 96 ? this.finishToken(24, r ? null : e + s + "`") :
      (this.state.pos++, this.finishToken(25, r ? null : e + s + "${"));
    }
    recordStrictModeErrors(e, s) {
      let r = s.index;
      this.state.strict && !this.state.strictErrors.has(r) ? this.raise(e, s) : this.state.strictErrors.set(r, [e, s]);
    }
    readWord1(e) {
      this.state.containsEsc = !1;
      let s = "", r = this.state.pos, i = this.state.pos;
      for (e !== void 0 && (this.state.pos += e <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
        let a = this.codePointAtPos(this.state.pos);
        if (ad(a))
          this.state.pos += a <= 65535 ? 1 : 2;
        else if (a === 92) {
          this.state.containsEsc = !0, s += this.input.slice(i, this.state.pos);
          let o = this.state.curPosition(), l = this.state.pos === r ? Vl : ad;
          if (this.input.charCodeAt(++this.state.pos) !== 117) {
            this.raise(G.MissingUnicodeEscape, this.state.curPosition()), i = this.state.pos - 1;
            continue;
          }
          ++this.state.pos;
          let u = this.readCodePoint(!0);
          u !== null && (l(u) || this.raise(G.EscapedCharNotAnIdentifier, o), s += String.fromCodePoint(u)), i = this.state.pos;
        } else
          break;
      }
      return s + this.input.slice(i, this.state.pos);
    }
    readWord(e) {
      let s = this.readWord1(e), r = YI.get(s);
      r !== void 0 ? this.finishToken(r, kc(r)) : this.finishToken(132, s);
    }
    checkKeywordEscapes() {
      let {
        type: e
      } = this.state;
      eN(e) && this.state.containsEsc && this.raise(G.InvalidEscapedReservedWord, this.state.startLoc, {
        reservedWord: kc(e)
      });
    }
    raise(e, s, r = {}) {
      let i = s instanceof Qo ? s : s.loc.start, a = e(i, r);
      if (!(this.optionFlags & 1024)) throw a;
      return this.isLookahead || this.state.errors.push(a), a;
    }
    raiseOverwrite(e, s, r = {}) {
      let i = s instanceof Qo ? s : s.loc.start, a = i.index, o = this.state.errors;
      for (let l = o.length - 1; l >= 0; l--) {
        let u = o[l];
        if (u.loc.index === a)
          return o[l] = e(i, r);
        if (u.loc.index < a) break;
      }
      return this.raise(e, s, r);
    }
    updateContext(e) {
    }
    unexpected(e, s) {
      throw this.raise(G.UnexpectedToken, e ?? this.state.startLoc, {
        expected: s ? kc(s) : null
      });
    }
    expectPlugin(e, s) {
      if (this.hasPlugin(e))
        return !0;
      throw this.raise(G.MissingPlugin, s ?? this.state.startLoc, {
        missingPlugin: [e]
      });
    }
    expectOnePlugin(e) {
      if (!e.some((s) => this.hasPlugin(s)))
        throw this.raise(G.MissingOneOfPlugins, this.state.startLoc, {
          missingPlugin: e
        });
    }
    errorBuilder(e) {
      return (s, r, i) => {
        this.raise(e, Gy(s, r, i));
      };
    }
  }, FI = class {
    static {
      n(this, "ClassScope");
    }
    constructor() {
      this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
    }
  }, jI = class {
    static {
      n(this, "ClassScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = e;
    }
    current() {
      return this.stack[this.stack.length - 1];
    }
    enter() {
      this.stack.push(new FI());
    }
    exit() {
      let e = this.stack.pop(), s = this.current();
      for (let [r, i] of Array.from(e.undefinedPrivateNames))
        s ? s.undefinedPrivateNames.has(r) || s.undefinedPrivateNames.set(r, i) : this.parser.raise(G.InvalidPrivateFieldResolution, i, {
          identifierName: r
        });
    }
    declarePrivateName(e, s, r) {
      let {
        privateNames: i,
        loneAccessors: a,
        undefinedPrivateNames: o
      } = this.current(), l = i.has(e);
      if (s & 3) {
        let u = l && a.get(e);
        if (u) {
          let c = u & 4, p = s & 4, h = u & 3, f = s & 3;
          l = h === f || c !== p, l || a.delete(e);
        } else l || a.set(e, s);
      }
      l && this.parser.raise(G.PrivateNameRedeclaration, r, {
        identifierName: e
      }), i.add(e), o.delete(e);
    }
    usePrivateName(e, s) {
      let r;
      for (r of this.stack)
        if (r.privateNames.has(e)) return;
      r ? r.undefinedPrivateNames.set(e, s) : this.parser.raise(G.InvalidPrivateFieldResolution, s, {
        identifierName: e
      });
    }
  }, cd = class {
    static {
      n(this, "ExpressionScope");
    }
    constructor(e = 0) {
      this.type = e;
    }
    canBeArrowParameterDeclaration() {
      return this.type === 2 || this.type === 1;
    }
    isCertainlyParameterDeclaration() {
      return this.type === 3;
    }
  }, Yb = class extends cd {
    static {
      n(this, "ArrowHeadParsingScope");
    }
    constructor(e) {
      super(e), this.declarationErrors = /* @__PURE__ */ new Map();
    }
    recordDeclarationError(e, s) {
      let r = s.index;
      this.declarationErrors.set(r, [e, s]);
    }
    clearDeclarationError(e) {
      this.declarationErrors.delete(e);
    }
    iterateErrors(e) {
      this.declarationErrors.forEach(e);
    }
  }, RI = class {
    static {
      n(this, "ExpressionScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [new cd()], this.parser = e;
    }
    enter(e) {
      this.stack.push(e);
    }
    exit() {
      this.stack.pop();
    }
    recordParameterInitializerError(e, s) {
      let r = s.loc.start, {
        stack: i
      } = this, a = i.length - 1, o = i[a];
      for (; !o.isCertainlyParameterDeclaration(); ) {
        if (o.canBeArrowParameterDeclaration())
          o.recordDeclarationError(e, r);
        else
          return;
        o = i[--a];
      }
      this.parser.raise(e, r);
    }
    recordArrowParameterBindingError(e, s) {
      let {
        stack: r
      } = this, i = r[r.length - 1], a = s.loc.start;
      if (i.isCertainlyParameterDeclaration())
        this.parser.raise(e, a);
      else if (i.canBeArrowParameterDeclaration())
        i.recordDeclarationError(e, a);
      else
        return;
    }
    recordAsyncArrowParametersError(e) {
      let {
        stack: s
      } = this, r = s.length - 1, i = s[r];
      for (; i.canBeArrowParameterDeclaration(); )
        i.type === 2 && i.recordDeclarationError(G.AwaitBindingIdentifier, e), i = s[--r];
    }
    validateAsPattern() {
      let {
        stack: e
      } = this, s = e[e.length - 1];
      s.canBeArrowParameterDeclaration() && s.iterateErrors(([r, i]) => {
        this.parser.raise(r, i);
        let a = e.length - 2, o = e[a];
        for (; o.canBeArrowParameterDeclaration(); )
          o.clearDeclarationError(i.index), o = e[--a];
      });
    }
  };
  function fMe() {
    return new cd(3);
  }
  n(fMe, "newParameterDeclarationScope");
  function dMe() {
    return new Yb(1);
  }
  n(dMe, "newArrowHeadScope");
  function mMe() {
    return new Yb(2);
  }
  n(mMe, "newAsyncArrowScope");
  function UU() {
    return new cd();
  }
  n(UU, "newExpressionScope");
  var qI = class {
    static {
      n(this, "ProductionParameterHandler");
    }
    constructor() {
      this.stacks = [];
    }
    enter(e) {
      this.stacks.push(e);
    }
    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 $b(t, e) {
    return (t ? 2 : 0) | (e ? 1 : 0);
  }
  n($b, "functionFlags");
  var UI = class extends MI {
    static {
      n(this, "UtilParser");
    }
    addExtra(e, s, r, i = !0) {
      if (!e) return;
      let {
        extra: a
      } = e;
      a == null && (a = {}, e.extra = a), i ? a[s] = r : Object.defineProperty(a, s, {
        enumerable: i,
        value: r
      });
    }
    isContextual(e) {
      return this.state.type === e && !this.state.containsEsc;
    }
    isUnparsedContextual(e, s) {
      let r = e + s.length;
      if (this.input.slice(e, r) === s) {
        let i = this.input.charCodeAt(r);
        return !(ad(i) || (i & 64512) === 55296);
      }
      return !1;
    }
    isLookaheadContextual(e) {
      let s = this.nextTokenStart();
      return this.isUnparsedContextual(s, e);
    }
    eatContextual(e) {
      return this.isContextual(e) ? (this.next(), !0) : !1;
    }
    expectContextual(e, s) {
      if (!this.eatContextual(e)) {
        if (s != null)
          throw this.raise(s, this.state.startLoc);
        this.unexpected(null, e);
      }
    }
    canInsertSemicolon() {
      return this.match(140) || this.match(8) || this.hasPrecedingLineBreak();
    }
    hasPrecedingLineBreak() {
      return SU(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start);
    }
    hasFollowingLineBreak() {
      return SU(this.input, this.state.end, this.nextTokenStart());
    }
    isLineTerminator() {
      return this.eat(13) || this.canInsertSemicolon();
    }
    semicolon(e = !0) {
      (e ? this.isLineTerminator() : this.eat(13)) || this.raise(G.MissingSemicolon, this.state.lastTokEndLoc);
    }
    expect(e, s) {
      this.eat(e) || this.unexpected(s, e);
    }
    tryParse(e, s = this.state.clone()) {
      let r = {
        node: null
      };
      try {
        let i = e((a = null) => {
          throw r.node = a, r;
        });
        if (this.state.errors.length > s.errors.length) {
          let a = this.state;
          return this.state = s, this.state.tokensLength = a.tokensLength, {
            node: i,
            error: a.errors[s.errors.length],
            thrown: !1,
            aborted: !1,
            failState: a
          };
        }
        return {
          node: i,
          error: null,
          thrown: !1,
          aborted: !1,
          failState: null
        };
      } catch (i) {
        let a = this.state;
        if (this.state = s, i instanceof SyntaxError)
          return {
            node: null,
            error: i,
            thrown: !0,
            aborted: !1,
            failState: a
          };
        if (i === r)
          return {
            node: r.node,
            error: null,
            thrown: !1,
            aborted: !0,
            failState: a
          };
        throw i;
      }
    }
    checkExpressionErrors(e, s) {
      if (!e) return !1;
      let {
        shorthandAssignLoc: r,
        doubleProtoLoc: i,
        privateKeyLoc: a,
        optionalParametersLoc: o
      } = e, l = !!r || !!i || !!o || !!a;
      if (!s)
        return l;
      r != null && this.raise(G.InvalidCoverInitializedName, r), i != null && this.raise(G.DuplicateProto, i), a != null && this.raise(G.UnexpectedPrivateField,
      a), o != null && this.unexpected(o);
    }
    isLiteralPropertyName() {
      return DU(this.state.type);
    }
    isPrivateName(e) {
      return e.type === "PrivateName";
    }
    getPrivateNameSV(e) {
      return e.id.name;
    }
    hasPropertyAsPrivateName(e) {
      return (e.type === "MemberExpression" || e.type === "OptionalMemberExpression") && this.isPrivateName(e.property);
    }
    isObjectProperty(e) {
      return e.type === "ObjectProperty";
    }
    isObjectMethod(e) {
      return e.type === "ObjectMethod";
    }
    initializeScopes(e = this.options.sourceType === "module") {
      let s = this.state.labels;
      this.state.labels = [];
      let r = this.exportedIdentifiers;
      this.exportedIdentifiers = /* @__PURE__ */ new Set();
      let i = this.inModule;
      this.inModule = e;
      let a = this.scope, o = this.getScopeHandler();
      this.scope = new o(this, e);
      let l = this.prodParam;
      this.prodParam = new qI();
      let u = this.classScope;
      this.classScope = new jI(this);
      let c = this.expressionScope;
      return this.expressionScope = new RI(this), () => {
        this.state.labels = s, this.exportedIdentifiers = r, this.inModule = i, this.scope = a, this.prodParam = l, this.classScope = u, this.
        expressionScope = c;
      };
    }
    enterInitialScopes() {
      let e = 0;
      this.inModule && (e |= 2), this.scope.enter(1), this.prodParam.enter(e);
    }
    checkDestructuringPrivate(e) {
      let {
        privateKeyLoc: s
      } = e;
      s !== null && this.expectPlugin("destructuringPrivate", s);
    }
  }, ld = class {
    static {
      n(this, "ExpressionErrors");
    }
    constructor() {
      this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
    }
  }, pd = class {
    static {
      n(this, "Node");
    }
    constructor(e, s, r) {
      this.type = "", this.start = s, this.end = 0, this.loc = new ud(r), e?.optionFlags & 64 && (this.range = [s, 0]), e != null && e.filename &&
      (this.loc.filename = e.filename);
    }
  }, rN = pd.prototype;
  rN.__clone = function() {
    let t = new pd(void 0, this.start, this.loc.start), e = Object.keys(this);
    for (let s = 0, r = e.length; s < r; s++) {
      let i = e[s];
      i !== "leadingComments" && i !== "trailingComments" && i !== "innerComments" && (t[i] = this[i]);
    }
    return t;
  };
  function yMe(t) {
    return $l(t);
  }
  n(yMe, "clonePlaceholder");
  function $l(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o,
      name: l
    } = t, u = Object.create(rN);
    return u.type = e, u.start = s, u.end = r, u.loc = i, u.range = a, u.extra = o, u.name = l, e === "Placeholder" && (u.expectedNode = t.expectedNode),
    u;
  }
  n($l, "cloneIdentifier");
  function gMe(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o
    } = t;
    if (e === "Placeholder")
      return yMe(t);
    let l = Object.create(rN);
    return l.type = e, l.start = s, l.end = r, l.loc = i, l.range = a, t.raw !== void 0 ? l.raw = t.raw : l.extra = o, l.value = t.value, l;
  }
  n(gMe, "cloneStringLiteral");
  var KI = class extends UI {
    static {
      n(this, "NodeUtils");
    }
    startNode() {
      let e = this.state.startLoc;
      return new pd(this, e.index, e);
    }
    startNodeAt(e) {
      return new pd(this, e.index, e);
    }
    startNodeAtNode(e) {
      return this.startNodeAt(e.loc.start);
    }
    finishNode(e, s) {
      return this.finishNodeAt(e, s, this.state.lastTokEndLoc);
    }
    finishNodeAt(e, s, r) {
      return e.type = s, e.end = r.index, e.loc.end = r, this.optionFlags & 64 && (e.range[1] = r.index), this.optionFlags & 2048 && this.processComment(
      e), e;
    }
    resetStartLocation(e, s) {
      e.start = s.index, e.loc.start = s, this.optionFlags & 64 && (e.range[0] = s.index);
    }
    resetEndLocation(e, s = this.state.lastTokEndLoc) {
      e.end = s.index, e.loc.end = s, this.optionFlags & 64 && (e.range[1] = s.index);
    }
    resetStartLocationFromNode(e, s) {
      this.resetStartLocation(e, s.loc.start);
    }
  }, TMe = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "sta\
tic", "string", "true", "typeof", "void"]), _t = Wl`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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Cannot overwrite reserved type ${t}.`, "AssignReservedType"),
    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: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Boolean enum members need to be initialized. Use either \`${t} = true,\` or \`${t} = false,\` in enum \`${e}\`.`, "EnumBooleanMem\
berNotInitialized"),
    EnumDuplicateMemberName: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Enum member names need to be unique, but the name \`${t}\` has already been used before in enum \`${e}\`.`, "EnumDuplicateMemberN\
ame"),
    EnumInconsistentMemberValues: /* @__PURE__ */ n(({
      enumName: t
    }) => `Enum \`${t}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, num\
bers, or strings) for all member initializers.`, "EnumInconsistentMemberValues"),
    EnumInvalidExplicitType: /* @__PURE__ */ n(({
      invalidEnumType: t,
      enumName: e
    }) => `Enum type \`${t}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${e}\`.`, "EnumInvalidEx\
plicitType"),
    EnumInvalidExplicitTypeUnknownSupplied: /* @__PURE__ */ n(({
      enumName: t
    }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`, "EnumInvalidEx\
plicitTypeUnknownSupplied"),
    EnumInvalidMemberInitializerPrimaryType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      explicitType: s
    }) => `Enum \`${t}\` has type \`${s}\`, so the initializer of \`${e}\` needs to be a ${s} literal.`, "EnumInvalidMemberInitializerPrimar\
yType"),
    EnumInvalidMemberInitializerSymbolType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Symbol enum members cannot be initialized. Use \`${e},\` in enum \`${t}\`.`, "EnumInvalidMemberInitializerSymbolType"),
    EnumInvalidMemberInitializerUnknownType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `The enum member initializer for \`${e}\` needs to be a literal (either a boolean, number, or string) in enum \`${t}\`.`, "EnumInv\
alidMemberInitializerUnknownType"),
    EnumInvalidMemberName: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      suggestion: s
    }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${e}\`, consider using \`${s}\`, in enum \`${t}\
\`.`, "EnumInvalidMemberName"),
    EnumNumberMemberNotInitialized: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Number enum members need to be initialized, e.g. \`${e} = 1\` in enum \`${t}\`.`, "EnumNumberMemberNotInitialized"),
    EnumStringMemberInconsistentlyInitialized: /* @__PURE__ */ n(({
      enumName: t
    }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${t}\`.`, "EnumStringMemb\
erInconsistentlyInitialized"),
    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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Unexpected reserved type ${t}.`, "UnexpectedReservedType"),
    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: /* @__PURE__ */ n(({
      unsupportedExportKind: t,
      suggestion: e
    }) => `\`declare export ${t}\` is not supported. Use \`${e}\` instead.`, "UnsupportedDeclareExportKind"),
    UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
    UnterminatedFlowComment: "Unterminated flow-comment."
  });
  function bMe(t) {
    return t.type === "DeclareExportAllDeclaration" || t.type === "DeclareExportDeclaration" && (!t.declaration || t.declaration.type !== "T\
ypeAlias" && t.declaration.type !== "InterfaceDeclaration");
  }
  n(bMe, "isEsModuleType");
  function AU(t) {
    return t.importKind === "type" || t.importKind === "typeof";
  }
  n(AU, "hasTypeImportKind");
  var xMe = {
    const: "declare export var",
    let: "declare export var",
    type: "export type",
    interface: "export interface"
  };
  function SMe(t, e) {
    let s = [], r = [];
    for (let i = 0; i < t.length; i++)
      (e(t[i], i, t) ? s : r).push(t[i]);
    return [s, r];
  }
  n(SMe, "partition");
  var PMe = /\*?\s*@((?:no)?flow)\b/, EMe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "FlowParserMixin");
    }
    constructor(...s) {
      super(...s), this.flowPragma = void 0;
    }
    getScopeHandler() {
      return DI;
    }
    shouldParseTypes() {
      return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
    }
    finishToken(s, r) {
      s !== 134 && s !== 13 && s !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(s, r);
    }
    addComment(s) {
      if (this.flowPragma === void 0) {
        let r = PMe.exec(s.value);
        if (r) if (r[1] === "flow")
          this.flowPragma = "flow";
        else if (r[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
      }
      super.addComment(s);
    }
    flowParseTypeInitialiser(s) {
      let r = this.state.inType;
      this.state.inType = !0, this.expect(s || 14);
      let i = this.flowParseType();
      return this.state.inType = r, i;
    }
    flowParsePredicate() {
      let s = this.startNode(), r = this.state.startLoc;
      return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > r.index + 1 && this.raise(_t.UnexpectedSpaceBetweenModuloChecks,
      r), this.eat(10) ? (s.value = super.parseExpression(), this.expect(11), this.finishNode(s, "DeclaredPredicate")) : this.finishNode(s, "\
InferredPredicate");
    }
    flowParseTypeAndPredicateInitialiser() {
      let s = this.state.inType;
      this.state.inType = !0, this.expect(14);
      let r = null, i = null;
      return this.match(54) ? (this.state.inType = s, i = this.flowParsePredicate()) : (r = this.flowParseType(), this.state.inType = s, this.
      match(54) && (i = this.flowParsePredicate())), [r, i];
    }
    flowParseDeclareClass(s) {
      return this.next(), this.flowParseInterfaceish(s, !0), this.finishNode(s, "DeclareClass");
    }
    flowParseDeclareFunction(s) {
      this.next();
      let r = s.id = this.parseIdentifier(), i = this.startNode(), a = this.startNode();
      this.match(47) ? i.typeParameters = this.flowParseTypeParameterDeclaration() : i.typeParameters = null, this.expect(10);
      let o = this.flowParseFunctionTypeParams();
      return i.params = o.params, i.rest = o.rest, i.this = o._this, this.expect(11), [i.returnType, s.predicate] = this.flowParseTypeAndPredicateInitialiser(),
      a.typeAnnotation = this.finishNode(i, "FunctionTypeAnnotation"), r.typeAnnotation = this.finishNode(a, "TypeAnnotation"), this.resetEndLocation(
      r), this.semicolon(), this.scope.declareName(s.id.name, 2048, s.id.loc.start), this.finishNode(s, "DeclareFunction");
    }
    flowParseDeclare(s, r) {
      if (this.match(80))
        return this.flowParseDeclareClass(s);
      if (this.match(68))
        return this.flowParseDeclareFunction(s);
      if (this.match(74))
        return this.flowParseDeclareVariable(s);
      if (this.eatContextual(127))
        return this.match(16) ? this.flowParseDeclareModuleExports(s) : (r && this.raise(_t.NestedDeclareModule, this.state.lastTokStartLoc),
        this.flowParseDeclareModule(s));
      if (this.isContextual(130))
        return this.flowParseDeclareTypeAlias(s);
      if (this.isContextual(131))
        return this.flowParseDeclareOpaqueType(s);
      if (this.isContextual(129))
        return this.flowParseDeclareInterface(s);
      if (this.match(82))
        return this.flowParseDeclareExportDeclaration(s, r);
      this.unexpected();
    }
    flowParseDeclareVariable(s) {
      return this.next(), s.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(s.id.name, 5, s.id.loc.start), this.semicolon(),
      this.finishNode(s, "DeclareVariable");
    }
    flowParseDeclareModule(s) {
      this.scope.enter(0), this.match(134) ? s.id = super.parseExprAtom() : s.id = this.parseIdentifier();
      let r = s.body = this.startNode(), i = r.body = [];
      for (this.expect(5); !this.match(8); ) {
        let l = this.startNode();
        this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(_t.InvalidNonTypeImportInDeclareModule, this.
        state.lastTokStartLoc), super.parseImport(l)) : (this.expectContextual(125, _t.UnsupportedStatementInDeclareModule), l = this.flowParseDeclare(
        l, !0)), i.push(l);
      }
      this.scope.exit(), this.expect(8), this.finishNode(r, "BlockStatement");
      let a = null, o = !1;
      return i.forEach((l) => {
        bMe(l) ? (a === "CommonJS" && this.raise(_t.AmbiguousDeclareModuleKind, l), a = "ES") : l.type === "DeclareModuleExports" && (o && this.
        raise(_t.DuplicateDeclareModuleExports, l), a === "ES" && this.raise(_t.AmbiguousDeclareModuleKind, l), a = "CommonJS", o = !0);
      }), s.kind = a || "CommonJS", this.finishNode(s, "DeclareModule");
    }
    flowParseDeclareExportDeclaration(s, r) {
      if (this.expect(82), this.eat(65))
        return this.match(68) || this.match(80) ? s.declaration = this.flowParseDeclare(this.startNode()) : (s.declaration = this.flowParseType(),
        this.semicolon()), s.default = !0, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !r) {
        let i = this.state.value;
        throw this.raise(_t.UnsupportedDeclareExportKind, this.state.startLoc, {
          unsupportedExportKind: i,
          suggestion: xMe[i]
        });
      }
      if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
        return s.declaration = this.flowParseDeclare(this.startNode()), s.default = !1, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
        return s = this.parseExport(s, null), s.type === "ExportNamedDeclaration" && (s.type = "ExportDeclaration", s.default = !1, delete s.
        exportKind), s.type = "Declare" + s.type, s;
      this.unexpected();
    }
    flowParseDeclareModuleExports(s) {
      return this.next(), this.expectContextual(111), s.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(s,
      "DeclareModuleExports");
    }
    flowParseDeclareTypeAlias(s) {
      this.next();
      let r = this.flowParseTypeAlias(s);
      return r.type = "DeclareTypeAlias", r;
    }
    flowParseDeclareOpaqueType(s) {
      this.next();
      let r = this.flowParseOpaqueType(s, !0);
      return r.type = "DeclareOpaqueType", r;
    }
    flowParseDeclareInterface(s) {
      return this.next(), this.flowParseInterfaceish(s, !1), this.finishNode(s, "DeclareInterface");
    }
    flowParseInterfaceish(s, r) {
      if (s.id = this.flowParseRestrictedIdentifier(!r, !0), this.scope.declareName(s.id.name, r ? 17 : 8201, s.id.loc.start), this.match(47) ?
      s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (!r && this.eat(12));
      if (r) {
        if (s.implements = [], s.mixins = [], this.eatContextual(117))
          do
            s.mixins.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
        if (this.eatContextual(113))
          do
            s.implements.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
      }
      s.body = this.flowParseObjectType({
        allowStatic: r,
        allowExact: !1,
        allowSpread: !1,
        allowProto: r,
        allowInexact: !1
      });
    }
    flowParseInterfaceExtends() {
      let s = this.startNode();
      return s.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? s.typeParameters = this.flowParseTypeParameterInstantiation() :
      s.typeParameters = null, this.finishNode(s, "InterfaceExtends");
    }
    flowParseInterface(s) {
      return this.flowParseInterfaceish(s, !1), this.finishNode(s, "InterfaceDeclaration");
    }
    checkNotUnderscore(s) {
      s === "_" && this.raise(_t.UnexpectedReservedUnderscore, this.state.startLoc);
    }
    checkReservedType(s, r, i) {
      TMe.has(s) && this.raise(i ? _t.AssignReservedType : _t.UnexpectedReservedType, r, {
        reservedType: s
      });
    }
    flowParseRestrictedIdentifier(s, r) {
      return this.checkReservedType(this.state.value, this.state.startLoc, r), this.parseIdentifier(s);
    }
    flowParseTypeAlias(s) {
      return s.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.start), this.match(47) ? s.
      typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.right = this.flowParseTypeInitialiser(29), this.
      semicolon(), this.finishNode(s, "TypeAlias");
    }
    flowParseOpaqueType(s, r) {
      return this.expectContextual(130), s.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.
      start), this.match(47) ? s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.supertype = null, this.
      match(14) && (s.supertype = this.flowParseTypeInitialiser(14)), s.impltype = null, r || (s.impltype = this.flowParseTypeInitialiser(29)),
      this.semicolon(), this.finishNode(s, "OpaqueType");
    }
    flowParseTypeParameter(s = !1) {
      let r = this.state.startLoc, i = this.startNode(), a = this.flowParseVariance(), o = this.flowParseTypeAnnotatableIdentifier();
      return i.name = o.name, i.variance = a, i.bound = o.typeAnnotation, this.match(29) ? (this.eat(29), i.default = this.flowParseType()) :
      s && this.raise(_t.MissingTypeParamDefault, r), this.finishNode(i, "TypeParameter");
    }
    flowParseTypeParameterDeclaration() {
      let s = this.state.inType, r = this.startNode();
      r.params = [], this.state.inType = !0, this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = !1;
      do {
        let a = this.flowParseTypeParameter(i);
        r.params.push(a), a.default && (i = !0), this.match(48) || this.expect(12);
      } while (!this.match(48));
      return this.expect(48), this.state.inType = s, this.finishNode(r, "TypeParameterDeclaration");
    }
    flowInTopLevelContext(s) {
      if (this.curContext() !== Ws.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    flowParseTypeParameterInstantiationInExpression() {
      if (this.reScan_lt() === 47)
        return this.flowParseTypeParameterInstantiation();
    }
    flowParseTypeParameterInstantiation() {
      let s = this.startNode(), r = this.state.inType;
      return this.state.inType = !0, s.params = [], this.flowInTopLevelContext(() => {
        this.expect(47);
        let i = this.state.noAnonFunctionType;
        for (this.state.noAnonFunctionType = !1; !this.match(48); )
          s.params.push(this.flowParseType()), this.match(48) || this.expect(12);
        this.state.noAnonFunctionType = i;
      }), this.state.inType = r, !this.state.inType && this.curContext() === Ws.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(
      s, "TypeParameterInstantiation");
    }
    flowParseTypeParameterInstantiationCallOrNew() {
      if (this.reScan_lt() !== 47) return;
      let s = this.startNode(), r = this.state.inType;
      for (s.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
        s.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
      return this.expect(48), this.state.inType = r, this.finishNode(s, "TypeParameterInstantiation");
    }
    flowParseInterfaceType() {
      let s = this.startNode();
      if (this.expectContextual(129), s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      return s.body = this.flowParseObjectType({
        allowStatic: !1,
        allowExact: !1,
        allowSpread: !1,
        allowProto: !1,
        allowInexact: !1
      }), this.finishNode(s, "InterfaceTypeAnnotation");
    }
    flowParseObjectPropertyKey() {
      return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(!0);
    }
    flowParseObjectTypeIndexer(s, r, i) {
      return s.static = r, this.lookahead().type === 14 ? (s.id = this.flowParseObjectPropertyKey(), s.key = this.flowParseTypeInitialiser()) :
      (s.id = null, s.key = this.flowParseType()), this.expect(3), s.value = this.flowParseTypeInitialiser(), s.variance = i, this.finishNode(
      s, "ObjectTypeIndexer");
    }
    flowParseObjectTypeInternalSlot(s, r) {
      return s.static = r, s.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (s.method =
      !0, s.optional = !1, s.value = this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start))) : (s.method = !1, this.eat(17) && (s.
      optional = !0), s.value = this.flowParseTypeInitialiser()), this.finishNode(s, "ObjectTypeInternalSlot");
    }
    flowParseObjectTypeMethodish(s) {
      for (s.params = [], s.rest = null, s.typeParameters = null, s.this = null, this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()),
      this.expect(10), this.match(78) && (s.this = this.flowParseFunctionTypeParam(!0), s.this.name = null, this.match(11) || this.expect(12)); !this.
      match(11) && !this.match(21); )
        s.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (s.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), s.returnType = this.flowParseTypeInitialiser(),
      this.finishNode(s, "FunctionTypeAnnotation");
    }
    flowParseObjectTypeCallProperty(s, r) {
      let i = this.startNode();
      return s.static = r, s.value = this.flowParseObjectTypeMethodish(i), this.finishNode(s, "ObjectTypeCallProperty");
    }
    flowParseObjectType({
      allowStatic: s,
      allowExact: r,
      allowSpread: i,
      allowProto: a,
      allowInexact: o
    }) {
      let l = this.state.inType;
      this.state.inType = !0;
      let u = this.startNode();
      u.callProperties = [], u.properties = [], u.indexers = [], u.internalSlots = [];
      let c, p, h = !1;
      for (r && this.match(6) ? (this.expect(6), c = 9, p = !0) : (this.expect(5), c = 8, p = !1), u.exact = p; !this.match(c); ) {
        let d = !1, m = null, y = null, T = this.startNode();
        if (a && this.isContextual(118)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), m = this.state.startLoc, s = !1);
        }
        if (s && this.isContextual(106)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), d = !0);
        }
        let b = this.flowParseVariance();
        if (this.eat(0))
          m != null && this.unexpected(m), this.eat(0) ? (b && this.unexpected(b.loc.start), u.internalSlots.push(this.flowParseObjectTypeInternalSlot(
          T, d))) : u.indexers.push(this.flowParseObjectTypeIndexer(T, d, b));
        else if (this.match(10) || this.match(47))
          m != null && this.unexpected(m), b && this.unexpected(b.loc.start), u.callProperties.push(this.flowParseObjectTypeCallProperty(T, d));
        else {
          let E = "init";
          if (this.isContextual(99) || this.isContextual(104)) {
            let W = this.lookahead();
            DU(W.type) && (E = this.state.value, this.next());
          }
          let V = this.flowParseObjectTypeProperty(T, d, m, b, E, i, o ?? !p);
          V === null ? (h = !0, y = this.state.lastTokStartLoc) : u.properties.push(V);
        }
        this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(_t.UnexpectedExplicitInexactInObject, y);
      }
      this.expect(c), i && (u.inexact = h);
      let f = this.finishNode(u, "ObjectTypeAnnotation");
      return this.state.inType = l, f;
    }
    flowParseObjectTypeProperty(s, r, i, a, o, l, u) {
      if (this.eat(21))
        return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (l ? u || this.raise(_t.InexactInsideExact, this.state.lastTokStartLoc) :
        this.raise(_t.InexactInsideNonObject, this.state.lastTokStartLoc), a && this.raise(_t.InexactVariance, a), null) : (l || this.raise(
        _t.UnexpectedSpreadType, this.state.lastTokStartLoc), i != null && this.unexpected(i), a && this.raise(_t.SpreadVariance, a), s.argument =
        this.flowParseType(), this.finishNode(s, "ObjectTypeSpreadProperty"));
      {
        s.key = this.flowParseObjectPropertyKey(), s.static = r, s.proto = i != null, s.kind = o;
        let c = !1;
        return this.match(47) || this.match(10) ? (s.method = !0, i != null && this.unexpected(i), a && this.unexpected(a.loc.start), s.value =
        this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start)), (o === "get" || o === "set") && this.flowCheckGetterSetterParams(s),
        !l && s.key.name === "constructor" && s.value.this && this.raise(_t.ThisParamBannedInConstructor, s.value.this)) : (o !== "init" && this.
        unexpected(), s.method = !1, this.eat(17) && (c = !0), s.value = this.flowParseTypeInitialiser(), s.variance = a), s.optional = c, this.
        finishNode(s, "ObjectTypeProperty");
      }
    }
    flowCheckGetterSetterParams(s) {
      let r = s.kind === "get" ? 0 : 1, i = s.value.params.length + (s.value.rest ? 1 : 0);
      s.value.this && this.raise(s.kind === "get" ? _t.GetterMayNotHaveThisParam : _t.SetterMayNotHaveThisParam, s.value.this), i !== r && this.
      raise(s.kind === "get" ? G.BadGetterArity : G.BadSetterArity, s), s.kind === "set" && s.value.rest && this.raise(G.BadSetterRestParameter,
      s);
    }
    flowObjectTypeSemicolon() {
      !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
    }
    flowParseQualifiedTypeIdentifier(s, r) {
      var i;
      (i = s) != null || (s = this.state.startLoc);
      let a = r || this.flowParseRestrictedIdentifier(!0);
      for (; this.eat(16); ) {
        let o = this.startNodeAt(s);
        o.qualification = a, o.id = this.flowParseRestrictedIdentifier(!0), a = this.finishNode(o, "QualifiedTypeIdentifier");
      }
      return a;
    }
    flowParseGenericType(s, r) {
      let i = this.startNodeAt(s);
      return i.typeParameters = null, i.id = this.flowParseQualifiedTypeIdentifier(s, r), this.match(47) && (i.typeParameters = this.flowParseTypeParameterInstantiation()),
      this.finishNode(i, "GenericTypeAnnotation");
    }
    flowParseTypeofType() {
      let s = this.startNode();
      return this.expect(87), s.argument = this.flowParsePrimaryType(), this.finishNode(s, "TypeofTypeAnnotation");
    }
    flowParseTupleType() {
      let s = this.startNode();
      for (s.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (s.types.push(this.flowParseType()), !this.match(
      3)); )
        this.expect(12);
      return this.expect(3), this.finishNode(s, "TupleTypeAnnotation");
    }
    flowParseFunctionTypeParam(s) {
      let r = null, i = !1, a = null, o = this.startNode(), l = this.lookahead(), u = this.state.type === 78;
      return l.type === 14 || l.type === 17 ? (u && !s && this.raise(_t.ThisParamMustBeFirst, o), r = this.parseIdentifier(u), this.eat(17) &&
      (i = !0, u && this.raise(_t.ThisParamMayNotBeOptional, o)), a = this.flowParseTypeInitialiser()) : a = this.flowParseType(), o.name = r,
      o.optional = i, o.typeAnnotation = a, this.finishNode(o, "FunctionTypeParam");
    }
    reinterpretTypeAsFunctionTypeParam(s) {
      let r = this.startNodeAt(s.loc.start);
      return r.name = null, r.optional = !1, r.typeAnnotation = s, this.finishNode(r, "FunctionTypeParam");
    }
    flowParseFunctionTypeParams(s = []) {
      let r = null, i = null;
      for (this.match(78) && (i = this.flowParseFunctionTypeParam(!0), i.name = null, this.match(11) || this.expect(12)); !this.match(11) &&
      !this.match(21); )
        s.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (r = this.flowParseFunctionTypeParam(!1)), {
        params: s,
        rest: r,
        _this: i
      };
    }
    flowIdentToTypeAnnotation(s, r, i) {
      switch (i.name) {
        case "any":
          return this.finishNode(r, "AnyTypeAnnotation");
        case "bool":
        case "boolean":
          return this.finishNode(r, "BooleanTypeAnnotation");
        case "mixed":
          return this.finishNode(r, "MixedTypeAnnotation");
        case "empty":
          return this.finishNode(r, "EmptyTypeAnnotation");
        case "number":
          return this.finishNode(r, "NumberTypeAnnotation");
        case "string":
          return this.finishNode(r, "StringTypeAnnotation");
        case "symbol":
          return this.finishNode(r, "SymbolTypeAnnotation");
        default:
          return this.checkNotUnderscore(i.name), this.flowParseGenericType(s, i);
      }
    }
    flowParsePrimaryType() {
      let s = this.state.startLoc, r = this.startNode(), i, a, o = !1, l = 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, a = this.flowParseTupleType(), this.state.noAnonFunctionType = l, a;
        case 47: {
          let u = this.startNode();
          return u.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), i = this.flowParseFunctionTypeParams(), u.params =
          i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), this.finishNode(
          u, "FunctionTypeAnnotation");
        }
        case 10: {
          let u = this.startNode();
          if (this.next(), !this.match(11) && !this.match(21))
            if ($s(this.state.type) || this.match(78)) {
              let c = this.lookahead().type;
              o = c !== 17 && c !== 14;
            } else
              o = !0;
          if (o) {
            if (this.state.noAnonFunctionType = !1, a = this.flowParseType(), this.state.noAnonFunctionType = l, this.state.noAnonFunctionType ||
            !(this.match(12) || this.match(11) && this.lookahead().type === 19))
              return this.expect(11), a;
            this.eat(12);
          }
          return a ? i = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]) : i = this.flowParseFunctionTypeParams(),
          u.params = i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), u.typeParameters =
          null, this.finishNode(u, "FunctionTypeAnnotation");
        }
        case 134:
          return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
        case 85:
        case 86:
          return r.value = this.match(85), this.next(), this.finishNode(r, "BooleanLiteralTypeAnnotation");
        case 53:
          if (this.state.value === "-") {
            if (this.next(), this.match(135))
              return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", r);
            if (this.match(136))
              return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", r);
            throw this.raise(_t.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(r, "VoidTypeAnnotation");
        case 84:
          return this.next(), this.finishNode(r, "NullLiteralTypeAnnotation");
        case 78:
          return this.next(), this.finishNode(r, "ThisTypeAnnotation");
        case 55:
          return this.next(), this.finishNode(r, "ExistsTypeAnnotation");
        case 87:
          return this.flowParseTypeofType();
        default:
          if (eN(this.state.type)) {
            let u = kc(this.state.type);
            return this.next(), super.createIdentifier(r, u);
          } else if ($s(this.state.type))
            return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(s, r, this.parseIdentifier());
      }
      this.unexpected();
    }
    flowParsePostfixType() {
      let s = this.state.startLoc, r = this.flowParsePrimaryType(), i = !1;
      for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
        let a = this.startNodeAt(s), o = this.eat(18);
        i = i || o, this.expect(0), !o && this.match(3) ? (a.elementType = r, this.next(), r = this.finishNode(a, "ArrayTypeAnnotation")) : (a.
        objectType = r, a.indexType = this.flowParseType(), this.expect(3), i ? (a.optional = o, r = this.finishNode(a, "OptionalIndexedAcce\
ssType")) : r = this.finishNode(a, "IndexedAccessType"));
      }
      return r;
    }
    flowParsePrefixType() {
      let s = this.startNode();
      return this.eat(17) ? (s.typeAnnotation = this.flowParsePrefixType(), this.finishNode(s, "NullableTypeAnnotation")) : this.flowParsePostfixType();
    }
    flowParseAnonFunctionWithoutParens() {
      let s = this.flowParsePrefixType();
      if (!this.state.noAnonFunctionType && this.eat(19)) {
        let r = this.startNodeAt(s.loc.start);
        return r.params = [this.reinterpretTypeAsFunctionTypeParam(s)], r.rest = null, r.this = null, r.returnType = this.flowParseType(), r.
        typeParameters = null, this.finishNode(r, "FunctionTypeAnnotation");
      }
      return s;
    }
    flowParseIntersectionType() {
      let s = this.startNode();
      this.eat(45);
      let r = this.flowParseAnonFunctionWithoutParens();
      for (s.types = [r]; this.eat(45); )
        s.types.push(this.flowParseAnonFunctionWithoutParens());
      return s.types.length === 1 ? r : this.finishNode(s, "IntersectionTypeAnnotation");
    }
    flowParseUnionType() {
      let s = this.startNode();
      this.eat(43);
      let r = this.flowParseIntersectionType();
      for (s.types = [r]; this.eat(43); )
        s.types.push(this.flowParseIntersectionType());
      return s.types.length === 1 ? r : this.finishNode(s, "UnionTypeAnnotation");
    }
    flowParseType() {
      let s = this.state.inType;
      this.state.inType = !0;
      let r = this.flowParseUnionType();
      return this.state.inType = s, r;
    }
    flowParseTypeOrImplicitInstantiation() {
      if (this.state.type === 132 && this.state.value === "_") {
        let s = this.state.startLoc, r = this.parseIdentifier();
        return this.flowParseGenericType(s, r);
      } else
        return this.flowParseType();
    }
    flowParseTypeAnnotation() {
      let s = this.startNode();
      return s.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(s, "TypeAnnotation");
    }
    flowParseTypeAnnotatableIdentifier(s) {
      let r = s ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
      return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r)), r;
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    flowParseVariance() {
      let s = null;
      return this.match(53) ? (s = this.startNode(), this.state.value === "+" ? s.kind = "plus" : s.kind = "minus", this.next(), this.finishNode(
      s, "Variance")) : s;
    }
    parseFunctionBody(s, r, i = !1) {
      if (r) {
        this.forwardNoArrowParamsConversionAt(s, () => super.parseFunctionBody(s, !0, i));
        return;
      }
      super.parseFunctionBody(s, !1, i);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      if (this.match(14)) {
        let a = this.startNode();
        [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.returnType = a.typeAnnotation ? this.finishNode(a, "\
TypeAnnotation") : null;
      }
      return super.parseFunctionBodyAndFinish(s, r, i);
    }
    parseStatementLike(s) {
      if (this.state.strict && this.isContextual(129)) {
        let i = this.lookahead();
        if (yo(i.type)) {
          let a = this.startNode();
          return this.next(), this.flowParseInterface(a);
        }
      } else if (this.isContextual(126)) {
        let i = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(i);
      }
      let r = super.parseStatementLike(s);
      return this.flowPragma === void 0 && !this.isValidDirective(r) && (this.flowPragma = null), r;
    }
    parseExpressionStatement(s, r, i) {
      if (r.type === "Identifier") {
        if (r.name === "declare") {
          if (this.match(80) || $s(this.state.type) || this.match(68) || this.match(74) || this.match(82))
            return this.flowParseDeclare(s);
        } else if ($s(this.state.type)) {
          if (r.name === "interface")
            return this.flowParseInterface(s);
          if (r.name === "type")
            return this.flowParseTypeAlias(s);
          if (r.name === "opaque")
            return this.flowParseOpaqueType(s, !1);
        }
      }
      return super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      let {
        type: s
      } = this.state;
      return s === 126 || xU(s) ? !this.state.containsEsc : super.shouldParseExportDeclaration();
    }
    isExportDefaultSpecifier() {
      let {
        type: s
      } = this.state;
      return s === 126 || xU(s) ? this.state.containsEsc : super.isExportDefaultSpecifier();
    }
    parseExportDefaultExpression() {
      if (this.isContextual(126)) {
        let s = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(s);
      }
      return super.parseExportDefaultExpression();
    }
    parseConditional(s, r, i) {
      if (!this.match(17)) return s;
      if (this.state.maybeInArrowParameters) {
        let f = this.lookaheadCharCode();
        if (f === 44 || f === 61 || f === 58 || f === 41)
          return this.setOptionalParametersError(i), s;
      }
      this.expect(17);
      let a = this.state.clone(), o = this.state.noArrowAt, l = this.startNodeAt(r), {
        consequent: u,
        failed: c
      } = this.tryParseConditionalConsequent(), [p, h] = this.getArrowLikeExpressions(u);
      if (c || h.length > 0) {
        let f = [...o];
        if (h.length > 0) {
          this.state = a, this.state.noArrowAt = f;
          for (let d = 0; d < h.length; d++)
            f.push(h[d].start);
          ({
            consequent: u,
            failed: c
          } = this.tryParseConditionalConsequent()), [p, h] = this.getArrowLikeExpressions(u);
        }
        c && p.length > 1 && this.raise(_t.AmbiguousConditionalArrow, a.startLoc), c && p.length === 1 && (this.state = a, f.push(p[0].start),
        this.state.noArrowAt = f, {
          consequent: u,
          failed: c
        } = this.tryParseConditionalConsequent());
      }
      return this.getArrowLikeExpressions(u, !0), this.state.noArrowAt = o, this.expect(14), l.test = s, l.consequent = u, l.alternate = this.
      forwardNoArrowParamsConversionAt(l, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(l, "ConditionalExpression");
    }
    tryParseConditionalConsequent() {
      this.state.noArrowParamsConversionAt.push(this.state.start);
      let s = this.parseMaybeAssignAllowIn(), r = !this.match(14);
      return this.state.noArrowParamsConversionAt.pop(), {
        consequent: s,
        failed: r
      };
    }
    getArrowLikeExpressions(s, r) {
      let i = [s], a = [];
      for (; i.length !== 0; ) {
        let o = i.pop();
        o.type === "ArrowFunctionExpression" && o.body.type !== "BlockStatement" ? (o.typeParameters || !o.returnType ? this.finishArrowValidation(
        o) : a.push(o), i.push(o.body)) : o.type === "ConditionalExpression" && (i.push(o.consequent), i.push(o.alternate));
      }
      return r ? (a.forEach((o) => this.finishArrowValidation(o)), [a, []]) : SMe(a, (o) => o.params.every((l) => this.isAssignable(l, !0)));
    }
    finishArrowValidation(s) {
      var r;
      this.toAssignableList(s.params, (r = s.extra) == null ? void 0 : r.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(s, !1,
      !0), this.scope.exit();
    }
    forwardNoArrowParamsConversionAt(s, r) {
      let i;
      return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? (this.state.noArrowParamsConversionAt.push(this.
      state.start), i = r(), this.state.noArrowParamsConversionAt.pop()) : i = r(), i;
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = i, a.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(a, "TypeCastExpression");
      }
      return i;
    }
    assertModuleNodeAllowed(s) {
      s.type === "ImportDeclaration" && (s.importKind === "type" || s.importKind === "typeof") || s.type === "ExportNamedDeclaration" && s.exportKind ===
      "type" || s.type === "ExportAllDeclaration" && s.exportKind === "type" || super.assertModuleNodeAllowed(s);
    }
    parseExportDeclaration(s) {
      if (this.isContextual(130)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.match(5) ? (s.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(s), null) : this.flowParseTypeAlias(
        r);
      } else if (this.isContextual(131)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseOpaqueType(r, !1);
      } else if (this.isContextual(129)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseInterface(r);
      } else if (this.isContextual(126)) {
        s.exportKind = "value";
        let r = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(r);
      } else
        return super.parseExportDeclaration(s);
    }
    eatExportStar(s) {
      return super.eatExportStar(s) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (s.exportKind = "type", this.next(), this.
      next(), !0) : !1;
    }
    maybeParseExportNamespaceSpecifier(s) {
      let {
        startLoc: r
      } = this.state, i = super.maybeParseExportNamespaceSpecifier(s);
      return i && s.exportKind === "type" && this.unexpected(r), i;
    }
    parseClassId(s, r, i) {
      super.parseClassId(s, r, i), this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration());
    }
    parseClassMember(s, r, i) {
      let {
        startLoc: a
      } = this.state;
      if (this.isContextual(125)) {
        if (super.parseClassMemberFromModifier(s, r))
          return;
        r.declare = !0;
      }
      super.parseClassMember(s, r, i), r.declare && (r.type !== "ClassProperty" && r.type !== "ClassPrivateProperty" && r.type !== "Property\
Definition" ? this.raise(_t.DeclareClassElement, a) : r.value && this.raise(_t.DeclareClassFieldInitializer, r.value));
    }
    isIterator(s) {
      return s === "iterator" || s === "asyncIterator";
    }
    readIterator() {
      let s = super.readWord1(), r = "@@" + s;
      (!this.isIterator(s) || !this.state.inType) && this.raise(G.InvalidIdentifier, this.state.curPosition(), {
        identifierName: r
      }), this.finishToken(132, r);
    }
    getTokenFromCode(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      s === 123 && r === 124 ? this.finishOp(6, 2) : this.state.inType && (s === 62 || s === 60) ? this.finishOp(s === 62 ? 48 : 47, 1) : this.
      state.inType && s === 63 ? r === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : rMe(s, r, this.input.charCodeAt(this.state.pos + 2)) ?
      (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(s);
    }
    isAssignable(s, r) {
      return s.type === "TypeCastExpression" ? this.isAssignable(s.expression, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      !r && s.type === "AssignmentExpression" && s.left.type === "TypeCastExpression" && (s.left = this.typeCastToParameter(s.left)), super.
      toAssignable(s, r);
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    toReferencedList(s, r) {
      for (let a = 0; a < s.length; a++) {
        var i;
        let o = s[a];
        o && o.type === "TypeCastExpression" && !((i = o.extra) != null && i.parenthesized) && (s.length > 1 || !r) && this.raise(_t.TypeCastInPattern,
        o.typeAnnotation);
      }
      return s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return r && !this.state.maybeInArrowParameters && this.toReferencedList(o.elements), o;
    }
    isValidLVal(s, r, i) {
      return s === "TypeCastExpression" || super.isValidLVal(s, r, i);
    }
    parseClassProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(14) || super.isClassProperty();
    }
    isNonstaticConstructor(s) {
      return !this.match(14) && super.isNonstaticConstructor(s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      if (r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassMethod(s, r, i, a, o, l), r.params && o) {
        let u = r.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(_t.ThisParamBannedInConstructor, r);
      } else if (r.type === "MethodDefinition" && o && r.value.params) {
        let u = r.value.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(_t.ThisParamBannedInConstructor, r);
      }
    }
    pushClassPrivateMethod(s, r, i, a) {
      r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassPrivateMethod(s, r, i, a);
    }
    parseClassSuper(s) {
      if (super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression()),
      this.isContextual(113)) {
        this.next();
        let r = s.implements = [];
        do {
          let i = this.startNode();
          i.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? i.typeParameters = this.flowParseTypeParameterInstantiation() : i.
          typeParameters = null, r.push(this.finishNode(i, "ClassImplements"));
        } while (this.eat(12));
      }
    }
    checkGetterSetterParams(s) {
      super.checkGetterSetterParams(s);
      let r = this.getObjectOrClassMethodParams(s);
      if (r.length > 0) {
        let i = r[0];
        this.isThisParam(i) && s.kind === "get" ? this.raise(_t.GetterMayNotHaveThisParam, i) : this.isThisParam(i) && this.raise(_t.SetterMayNotHaveThisParam,
        i);
      }
    }
    parsePropertyNamePrefixOperator(s) {
      s.variance = this.flowParseVariance();
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      s.variance && this.unexpected(s.variance.loc.start), delete s.variance;
      let c;
      this.match(47) && !l && (c = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
      let p = super.parseObjPropValue(s, r, i, a, o, l, u);
      return c && ((p.value || p).typeParameters = c), p;
    }
    parseFunctionParamType(s) {
      return this.eat(17) && (s.type !== "Identifier" && this.raise(_t.PatternIsOptional, s), this.isThisParam(s) && this.raise(_t.ThisParamMayNotBeOptional,
      s), s.optional = !0), this.match(14) ? s.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(s) && this.raise(_t.ThisParamAnnotationRequired,
      s), this.match(29) && this.isThisParam(s) && this.raise(_t.ThisParamNoDefault, s), this.resetEndLocation(s), s;
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(_t.TypeBeforeInitializer,
      i.typeAnnotation), i;
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(_t.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    parseImportSpecifierLocal(s, r, i) {
      r.local = AU(s) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), s.specifiers.push(this.finishImportSpecifier(r,
      i));
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        if (!s) return !0;
        let r = this.lookaheadCharCode();
        return r === 123 || r === 42;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      if (super.applyImportPhase(s, r, i, a), r) {
        if (!i && this.match(65))
          return;
        s.exportKind = i === "type" ? i : "value";
      } else
        i === "type" && this.match(55) && this.unexpected(), s.importKind = i === "type" || i === "typeof" ? i : "value";
    }
    parseImportSpecifier(s, r, i, a, o) {
      let l = s.imported, u = null;
      l.type === "Identifier" && (l.name === "type" ? u = "type" : l.name === "typeof" && (u = "typeof"));
      let c = !1;
      if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
        let h = this.parseIdentifier(!0);
        u !== null && !yo(this.state.type) ? (s.imported = h, s.importKind = u, s.local = $l(h)) : (s.imported = l, s.importKind = null, s.local =
        this.parseIdentifier());
      } else {
        if (u !== null && yo(this.state.type))
          s.imported = this.parseIdentifier(!0), s.importKind = u;
        else {
          if (r)
            throw this.raise(G.ImportBindingIsString, s, {
              importName: l.value
            });
          s.imported = l, s.importKind = null;
        }
        this.eatContextual(93) ? s.local = this.parseIdentifier() : (c = !0, s.local = $l(s.imported));
      }
      let p = AU(s);
      return i && p && this.raise(_t.ImportTypeShorthandOnlyInPureImport, s), (i || p) && this.checkReservedType(s.local.name, s.local.loc.start,
      !0), c && !i && !p && this.checkReservedWord(s.local.name, s.loc.start, !0, !0), this.finishImportSpecifier(s, "ImportSpecifier");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 78:
          return this.parseIdentifier(!0);
        default:
          return super.parseBindingAtom();
      }
    }
    parseFunctionParams(s, r) {
      let i = s.kind;
      i !== "get" && i !== "set" && this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(
      s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), this.match(14) && (s.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      if (this.match(14)) {
        let i = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0, s.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = i;
      }
      return super.parseAsyncArrowFromCallExpression(s, r);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    parseMaybeAssign(s, r) {
      var i;
      let a = null, o;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (a = this.state.clone(), o = this.tryParse(() => super.parseMaybeAssign(s, r), a), !o.error) return o.node;
        let {
          context: c
        } = this.state, p = c[c.length - 1];
        (p === Ws.j_oTag || p === Ws.j_expr) && c.pop();
      }
      if ((i = o) != null && i.error || this.match(47)) {
        var l, u;
        a = a || this.state.clone();
        let c, p = this.tryParse((f) => {
          var d;
          c = this.flowParseTypeParameterDeclaration();
          let m = this.forwardNoArrowParamsConversionAt(c, () => {
            let T = super.parseMaybeAssign(s, r);
            return this.resetStartLocationFromNode(T, c), T;
          });
          (d = m.extra) != null && d.parenthesized && f();
          let y = this.maybeUnwrapTypeCastExpression(m);
          return y.type !== "ArrowFunctionExpression" && f(), y.typeParameters = c, this.resetStartLocationFromNode(y, c), m;
        }, a), h = null;
        if (p.node && this.maybeUnwrapTypeCastExpression(p.node).type === "ArrowFunctionExpression") {
          if (!p.error && !p.aborted)
            return p.node.async && this.raise(_t.UnexpectedTypeParameterBeforeAsyncArrowFunction, c), p.node;
          h = p.node;
        }
        if ((l = o) != null && l.node)
          return this.state = o.failState, o.node;
        if (h)
          return this.state = p.failState, h;
        throw (u = o) != null && u.thrown ? o.error : p.thrown ? p.error : this.raise(_t.UnexpectedTokenAfterTypeParameter, c);
      }
      return super.parseMaybeAssign(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse(() => {
          let i = this.state.noAnonFunctionType;
          this.state.noAnonFunctionType = !0;
          let a = this.startNode();
          return [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = i, this.canInsertSemicolon() &&
          this.unexpected(), this.match(19) || this.unexpected(), a;
        });
        if (r.thrown) return null;
        r.error && (this.state = r.failState), s.returnType = r.node.typeAnnotation ? this.finishNode(r.node, "TypeAnnotation") : null;
      }
      return super.parseArrow(s);
    }
    shouldParseArrow(s) {
      return this.match(14) || super.shouldParseArrow(s);
    }
    setArrowFunctionParameters(s, r) {
      this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? s.params = r : super.setArrowFunctionParameters(s, r);
    }
    checkParams(s, r, i, a = !0) {
      if (!(i && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)))) {
        for (let o = 0; o < s.params.length; o++)
          this.isThisParam(s.params[o]) && o > 0 && this.raise(_t.ThisParamMustBeFirst, s.params[o]);
        super.checkParams(s, r, i, a);
      }
    }
    parseParenAndDistinguishExpression(s) {
      return super.parseParenAndDistinguishExpression(s && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)));
    }
    parseSubscripts(s, r, i) {
      if (s.type === "Identifier" && s.name === "async" && this.state.noArrowAt.includes(r.index)) {
        this.next();
        let a = this.startNodeAt(r);
        a.callee = s, a.arguments = super.parseCallExpressionArguments(11), s = this.finishNode(a, "CallExpression");
      } else if (s.type === "Identifier" && s.name === "async" && this.match(47)) {
        let a = this.state.clone(), o = this.tryParse((u) => this.parseAsyncArrowWithTypeParameters(r) || u(), a);
        if (!o.error && !o.aborted) return o.node;
        let l = this.tryParse(() => super.parseSubscripts(s, r, i), a);
        if (l.node && !l.error) return l.node;
        if (o.node)
          return this.state = o.failState, o.node;
        if (l.node)
          return this.state = l.failState, l.node;
        throw o.error || l.error;
      }
      return super.parseSubscripts(s, r, i);
    }
    parseSubscript(s, r, i, a) {
      if (this.match(18) && this.isLookaheadToken_lt()) {
        if (a.optionalChainMember = !0, i)
          return a.stop = !0, s;
        this.next();
        let o = this.startNodeAt(r);
        return o.callee = s, o.typeArguments = this.flowParseTypeParameterInstantiationInExpression(), this.expect(10), o.arguments = this.parseCallExpressionArguments(
        11), o.optional = !0, this.finishCallExpression(o, !0);
      } else if (!i && this.shouldParseTypes() && (this.match(47) || this.match(51))) {
        let o = this.startNodeAt(r);
        o.callee = s;
        let l = this.tryParse(() => (o.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), o.arguments = super.
        parseCallExpressionArguments(11), a.optionalChainMember && (o.optional = !1), this.finishCallExpression(o, a.optionalChainMember)));
        if (l.node)
          return l.error && (this.state = l.failState), l.node;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      super.parseNewCallee(s);
      let r = null;
      this.shouldParseTypes() && this.match(47) && (r = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), s.typeArguments =
      r;
    }
    parseAsyncArrowWithTypeParameters(s) {
      let r = this.startNodeAt(s);
      if (this.parseFunctionParams(r, !1), !!this.parseArrow(r))
        return super.parseArrowExpression(r, void 0, !0);
    }
    readToken_mult_modulo(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 42 && r === 47 && this.state.hasFlowComment) {
        this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
        return;
      }
      super.readToken_mult_modulo(s);
    }
    readToken_pipe_amp(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 124 && r === 125) {
        this.finishOp(9, 2);
        return;
      }
      super.readToken_pipe_amp(s);
    }
    parseTopLevel(s, r) {
      let i = super.parseTopLevel(s, r);
      return this.state.hasFlowComment && this.raise(_t.UnterminatedFlowComment, this.state.curPosition()), i;
    }
    skipBlockComment() {
      if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
        if (this.state.hasFlowComment)
          throw this.raise(_t.NestedFlowComment, this.state.startLoc);
        this.hasFlowCommentCompletion();
        let s = this.skipFlowComment();
        s && (this.state.pos += s, this.state.hasFlowComment = !0);
        return;
      }
      return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
    }
    skipFlowComment() {
      let {
        pos: s
      } = this.state, r = 2;
      for (; [32, 9].includes(this.input.charCodeAt(s + r)); )
        r++;
      let i = this.input.charCodeAt(r + s), a = this.input.charCodeAt(r + s + 1);
      return i === 58 && a === 58 ? r + 2 : this.input.slice(r + s, r + s + 12) === "flow-include" ? r + 12 : i === 58 && a !== 58 ? r : !1;
    }
    hasFlowCommentCompletion() {
      if (this.input.indexOf("*/", this.state.pos) === -1)
        throw this.raise(G.UnterminatedComment, this.state.curPosition());
    }
    flowEnumErrorBooleanMemberNotInitialized(s, {
      enumName: r,
      memberName: i
    }) {
      this.raise(_t.EnumBooleanMemberNotInitialized, s, {
        memberName: i,
        enumName: r
      });
    }
    flowEnumErrorInvalidMemberInitializer(s, r) {
      return this.raise(r.explicitType ? r.explicitType === "symbol" ? _t.EnumInvalidMemberInitializerSymbolType : _t.EnumInvalidMemberInitializerPrimaryType :
      _t.EnumInvalidMemberInitializerUnknownType, s, r);
    }
    flowEnumErrorNumberMemberNotInitialized(s, r) {
      this.raise(_t.EnumNumberMemberNotInitialized, s, r);
    }
    flowEnumErrorStringMemberInconsistentlyInitialized(s, r) {
      this.raise(_t.EnumStringMemberInconsistentlyInitialized, s, r);
    }
    flowEnumMemberInit() {
      let s = this.state.startLoc, r = /* @__PURE__ */ n(() => this.match(12) || this.match(8), "endOfInit");
      switch (this.state.type) {
        case 135: {
          let i = this.parseNumericLiteral(this.state.value);
          return r() ? {
            type: "number",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 134: {
          let i = this.parseStringLiteral(this.state.value);
          return r() ? {
            type: "string",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 85:
        case 86: {
          let i = this.parseBooleanLiteral(this.match(85));
          return r() ? {
            type: "boolean",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        default:
          return {
            type: "invalid",
            loc: s
          };
      }
    }
    flowEnumMemberRaw() {
      let s = this.state.startLoc, r = this.parseIdentifier(!0), i = this.eat(29) ? this.flowEnumMemberInit() : {
        type: "none",
        loc: s
      };
      return {
        id: r,
        init: i
      };
    }
    flowEnumCheckExplicitTypeMismatch(s, r, i) {
      let {
        explicitType: a
      } = r;
      a !== null && a !== i && this.flowEnumErrorInvalidMemberInitializer(s, r);
    }
    flowEnumMembers({
      enumName: s,
      explicitType: r
    }) {
      let i = /* @__PURE__ */ new Set(), a = {
        booleanMembers: [],
        numberMembers: [],
        stringMembers: [],
        defaultedMembers: []
      }, o = !1;
      for (; !this.match(8); ) {
        if (this.eat(21)) {
          o = !0;
          break;
        }
        let l = this.startNode(), {
          id: u,
          init: c
        } = this.flowEnumMemberRaw(), p = u.name;
        if (p === "")
          continue;
        /^[a-z]/.test(p) && this.raise(_t.EnumInvalidMemberName, u, {
          memberName: p,
          suggestion: p[0].toUpperCase() + p.slice(1),
          enumName: s
        }), i.has(p) && this.raise(_t.EnumDuplicateMemberName, u, {
          memberName: p,
          enumName: s
        }), i.add(p);
        let h = {
          enumName: s,
          explicitType: r,
          memberName: p
        };
        switch (l.id = u, c.type) {
          case "boolean": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "boolean"), l.init = c.value, a.booleanMembers.push(this.finishNode(l, "EnumBoo\
leanMember"));
            break;
          }
          case "number": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "number"), l.init = c.value, a.numberMembers.push(this.finishNode(l, "EnumNumbe\
rMember"));
            break;
          }
          case "string": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "string"), l.init = c.value, a.stringMembers.push(this.finishNode(l, "EnumStrin\
gMember"));
            break;
          }
          case "invalid":
            throw this.flowEnumErrorInvalidMemberInitializer(c.loc, h);
          case "none":
            switch (r) {
              case "boolean":
                this.flowEnumErrorBooleanMemberNotInitialized(c.loc, h);
                break;
              case "number":
                this.flowEnumErrorNumberMemberNotInitialized(c.loc, h);
                break;
              default:
                a.defaultedMembers.push(this.finishNode(l, "EnumDefaultedMember"));
            }
        }
        this.match(8) || this.expect(12);
      }
      return {
        members: a,
        hasUnknownMembers: o
      };
    }
    flowEnumStringMembers(s, r, {
      enumName: i
    }) {
      if (s.length === 0)
        return r;
      if (r.length === 0)
        return s;
      if (r.length > s.length) {
        for (let a of s)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return r;
      } else {
        for (let a of r)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return s;
      }
    }
    flowEnumParseExplicitType({
      enumName: s
    }) {
      if (!this.eatContextual(102)) return null;
      if (!$s(this.state.type))
        throw this.raise(_t.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
          enumName: s
        });
      let {
        value: r
      } = this.state;
      return this.next(), r !== "boolean" && r !== "number" && r !== "string" && r !== "symbol" && this.raise(_t.EnumInvalidExplicitType, this.
      state.startLoc, {
        enumName: s,
        invalidEnumType: r
      }), r;
    }
    flowEnumBody(s, r) {
      let i = r.name, a = r.loc.start, o = this.flowEnumParseExplicitType({
        enumName: i
      });
      this.expect(5);
      let {
        members: l,
        hasUnknownMembers: u
      } = this.flowEnumMembers({
        enumName: i,
        explicitType: o
      });
      switch (s.hasUnknownMembers = u, o) {
        case "boolean":
          return s.explicitType = !0, s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
        case "number":
          return s.explicitType = !0, s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
        case "string":
          return s.explicitType = !0, s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
            enumName: i
          }), this.expect(8), this.finishNode(s, "EnumStringBody");
        case "symbol":
          return s.members = l.defaultedMembers, this.expect(8), this.finishNode(s, "EnumSymbolBody");
        default: {
          let c = /* @__PURE__ */ n(() => (s.members = [], this.expect(8), this.finishNode(s, "EnumStringBody")), "empty");
          s.explicitType = !1;
          let p = l.booleanMembers.length, h = l.numberMembers.length, f = l.stringMembers.length, d = l.defaultedMembers.length;
          if (!p && !h && !f && !d)
            return c();
          if (!p && !h)
            return s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
              enumName: i
            }), this.expect(8), this.finishNode(s, "EnumStringBody");
          if (!h && !f && p >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorBooleanMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
          } else if (!p && !f && h >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorNumberMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
          } else
            return this.raise(_t.EnumInconsistentMemberValues, a, {
              enumName: i
            }), c();
        }
      }
    }
    flowParseEnumDeclaration(s) {
      let r = this.parseIdentifier();
      return s.id = r, s.body = this.flowEnumBody(this.startNode(), r), this.finishNode(s, "EnumDeclaration");
    }
    jsxParseOpeningElementAfterName(s) {
      return this.shouldParseTypes() && (this.match(47) || this.match(51)) && (s.typeArguments = this.flowParseTypeParameterInstantiationInExpression()),
      super.jsxParseOpeningElementAfterName(s);
    }
    isLookaheadToken_lt() {
      let s = this.nextTokenStart();
      if (this.input.charCodeAt(s) === 60) {
        let r = this.input.charCodeAt(s + 1);
        return r !== 60 && r !== 61;
      }
      return !1;
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    maybeUnwrapTypeCastExpression(s) {
      return s.type === "TypeCastExpression" ? s.expression : s;
    }
  }, "flow"), AMe = {
    __proto__: null,
    quot: '"',
    amp: "&",
    apos: "'",
    lt: "<",
    gt: ">",
    nbsp: "\xA0",
    iexcl: "\xA1",
    cent: "\xA2",
    pound: "\xA3",
    curren: "\xA4",
    yen: "\xA5",
    brvbar: "\xA6",
    sect: "\xA7",
    uml: "\xA8",
    copy: "\xA9",
    ordf: "\xAA",
    laquo: "\xAB",
    not: "\xAC",
    shy: "\xAD",
    reg: "\xAE",
    macr: "\xAF",
    deg: "\xB0",
    plusmn: "\xB1",
    sup2: "\xB2",
    sup3: "\xB3",
    acute: "\xB4",
    micro: "\xB5",
    para: "\xB6",
    middot: "\xB7",
    cedil: "\xB8",
    sup1: "\xB9",
    ordm: "\xBA",
    raquo: "\xBB",
    frac14: "\xBC",
    frac12: "\xBD",
    frac34: "\xBE",
    iquest: "\xBF",
    Agrave: "\xC0",
    Aacute: "\xC1",
    Acirc: "\xC2",
    Atilde: "\xC3",
    Auml: "\xC4",
    Aring: "\xC5",
    AElig: "\xC6",
    Ccedil: "\xC7",
    Egrave: "\xC8",
    Eacute: "\xC9",
    Ecirc: "\xCA",
    Euml: "\xCB",
    Igrave: "\xCC",
    Iacute: "\xCD",
    Icirc: "\xCE",
    Iuml: "\xCF",
    ETH: "\xD0",
    Ntilde: "\xD1",
    Ograve: "\xD2",
    Oacute: "\xD3",
    Ocirc: "\xD4",
    Otilde: "\xD5",
    Ouml: "\xD6",
    times: "\xD7",
    Oslash: "\xD8",
    Ugrave: "\xD9",
    Uacute: "\xDA",
    Ucirc: "\xDB",
    Uuml: "\xDC",
    Yacute: "\xDD",
    THORN: "\xDE",
    szlig: "\xDF",
    agrave: "\xE0",
    aacute: "\xE1",
    acirc: "\xE2",
    atilde: "\xE3",
    auml: "\xE4",
    aring: "\xE5",
    aelig: "\xE6",
    ccedil: "\xE7",
    egrave: "\xE8",
    eacute: "\xE9",
    ecirc: "\xEA",
    euml: "\xEB",
    igrave: "\xEC",
    iacute: "\xED",
    icirc: "\xEE",
    iuml: "\xEF",
    eth: "\xF0",
    ntilde: "\xF1",
    ograve: "\xF2",
    oacute: "\xF3",
    ocirc: "\xF4",
    otilde: "\xF5",
    ouml: "\xF6",
    divide: "\xF7",
    oslash: "\xF8",
    ugrave: "\xF9",
    uacute: "\xFA",
    ucirc: "\xFB",
    uuml: "\xFC",
    yacute: "\xFD",
    thorn: "\xFE",
    yuml: "\xFF",
    OElig: "\u0152",
    oelig: "\u0153",
    Scaron: "\u0160",
    scaron: "\u0161",
    Yuml: "\u0178",
    fnof: "\u0192",
    circ: "\u02C6",
    tilde: "\u02DC",
    Alpha: "\u0391",
    Beta: "\u0392",
    Gamma: "\u0393",
    Delta: "\u0394",
    Epsilon: "\u0395",
    Zeta: "\u0396",
    Eta: "\u0397",
    Theta: "\u0398",
    Iota: "\u0399",
    Kappa: "\u039A",
    Lambda: "\u039B",
    Mu: "\u039C",
    Nu: "\u039D",
    Xi: "\u039E",
    Omicron: "\u039F",
    Pi: "\u03A0",
    Rho: "\u03A1",
    Sigma: "\u03A3",
    Tau: "\u03A4",
    Upsilon: "\u03A5",
    Phi: "\u03A6",
    Chi: "\u03A7",
    Psi: "\u03A8",
    Omega: "\u03A9",
    alpha: "\u03B1",
    beta: "\u03B2",
    gamma: "\u03B3",
    delta: "\u03B4",
    epsilon: "\u03B5",
    zeta: "\u03B6",
    eta: "\u03B7",
    theta: "\u03B8",
    iota: "\u03B9",
    kappa: "\u03BA",
    lambda: "\u03BB",
    mu: "\u03BC",
    nu: "\u03BD",
    xi: "\u03BE",
    omicron: "\u03BF",
    pi: "\u03C0",
    rho: "\u03C1",
    sigmaf: "\u03C2",
    sigma: "\u03C3",
    tau: "\u03C4",
    upsilon: "\u03C5",
    phi: "\u03C6",
    chi: "\u03C7",
    psi: "\u03C8",
    omega: "\u03C9",
    thetasym: "\u03D1",
    upsih: "\u03D2",
    piv: "\u03D6",
    ensp: "\u2002",
    emsp: "\u2003",
    thinsp: "\u2009",
    zwnj: "\u200C",
    zwj: "\u200D",
    lrm: "\u200E",
    rlm: "\u200F",
    ndash: "\u2013",
    mdash: "\u2014",
    lsquo: "\u2018",
    rsquo: "\u2019",
    sbquo: "\u201A",
    ldquo: "\u201C",
    rdquo: "\u201D",
    bdquo: "\u201E",
    dagger: "\u2020",
    Dagger: "\u2021",
    bull: "\u2022",
    hellip: "\u2026",
    permil: "\u2030",
    prime: "\u2032",
    Prime: "\u2033",
    lsaquo: "\u2039",
    rsaquo: "\u203A",
    oline: "\u203E",
    frasl: "\u2044",
    euro: "\u20AC",
    image: "\u2111",
    weierp: "\u2118",
    real: "\u211C",
    trade: "\u2122",
    alefsym: "\u2135",
    larr: "\u2190",
    uarr: "\u2191",
    rarr: "\u2192",
    darr: "\u2193",
    harr: "\u2194",
    crarr: "\u21B5",
    lArr: "\u21D0",
    uArr: "\u21D1",
    rArr: "\u21D2",
    dArr: "\u21D3",
    hArr: "\u21D4",
    forall: "\u2200",
    part: "\u2202",
    exist: "\u2203",
    empty: "\u2205",
    nabla: "\u2207",
    isin: "\u2208",
    notin: "\u2209",
    ni: "\u220B",
    prod: "\u220F",
    sum: "\u2211",
    minus: "\u2212",
    lowast: "\u2217",
    radic: "\u221A",
    prop: "\u221D",
    infin: "\u221E",
    ang: "\u2220",
    and: "\u2227",
    or: "\u2228",
    cap: "\u2229",
    cup: "\u222A",
    int: "\u222B",
    there4: "\u2234",
    sim: "\u223C",
    cong: "\u2245",
    asymp: "\u2248",
    ne: "\u2260",
    equiv: "\u2261",
    le: "\u2264",
    ge: "\u2265",
    sub: "\u2282",
    sup: "\u2283",
    nsub: "\u2284",
    sube: "\u2286",
    supe: "\u2287",
    oplus: "\u2295",
    otimes: "\u2297",
    perp: "\u22A5",
    sdot: "\u22C5",
    lceil: "\u2308",
    rceil: "\u2309",
    lfloor: "\u230A",
    rfloor: "\u230B",
    lang: "\u2329",
    rang: "\u232A",
    loz: "\u25CA",
    spades: "\u2660",
    clubs: "\u2663",
    hearts: "\u2665",
    diams: "\u2666"
  }, nh = Wl`jsx`({
    AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
    MissingClosingTagElement: /* @__PURE__ */ n(({
      openingTagName: t
    }) => `Expected corresponding JSX closing tag for <${t}>.`, "MissingClosingTagElement"),
    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: /* @__PURE__ */ n(({
      unexpected: t,
      HTMLEntity: e
    }) => `Unexpected token \`${t}\`. Did you mean \`${e}\` or \`{'${t}'}\`?`, "UnexpectedToken"),
    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 Nc(t) {
    return t ? t.type === "JSXOpeningFragment" || t.type === "JSXClosingFragment" : !1;
  }
  n(Nc, "isFragment");
  function nd(t) {
    if (t.type === "JSXIdentifier")
      return t.name;
    if (t.type === "JSXNamespacedName")
      return t.namespace.name + ":" + t.name.name;
    if (t.type === "JSXMemberExpression")
      return nd(t.object) + "." + nd(t.property);
    throw new Error("Node had unexpected type: " + t.type);
  }
  n(nd, "getQualifiedJSXName");
  var vMe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "JSXParserMixin");
    }
    jsxReadToken() {
      let s = "", r = this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(nh.UnterminatedJsxContent, this.state.startLoc);
        let i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 60:
          case 123:
            if (this.state.pos === this.state.start) {
              i === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(143)) : super.getTokenFromCode(i);
              return;
            }
            s += this.input.slice(r, this.state.pos), this.finishToken(142, s);
            return;
          case 38:
            s += this.input.slice(r, this.state.pos), s += this.jsxReadEntity(), r = this.state.pos;
            break;
          case 62:
          case 125:
          default:
            od(i) ? (s += this.input.slice(r, this.state.pos), s += this.jsxReadNewLine(!0), r = this.state.pos) : ++this.state.pos;
        }
      }
    }
    jsxReadNewLine(s) {
      let r = this.input.charCodeAt(this.state.pos), i;
      return ++this.state.pos, r === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, i = s ? `
` : `\r
`) : i = String.fromCharCode(r), ++this.state.curLine, this.state.lineStart = this.state.pos, i;
    }
    jsxReadString(s) {
      let r = "", i = ++this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(G.UnterminatedString, this.state.startLoc);
        let a = this.input.charCodeAt(this.state.pos);
        if (a === s) break;
        a === 38 ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos) : od(a) ? (r += this.input.slice(
        i, this.state.pos), r += this.jsxReadNewLine(!1), i = this.state.pos) : ++this.state.pos;
      }
      r += this.input.slice(i, this.state.pos++), this.finishToken(134, r);
    }
    jsxReadEntity() {
      let s = ++this.state.pos;
      if (this.codePointAtPos(this.state.pos) === 35) {
        ++this.state.pos;
        let r = 10;
        this.codePointAtPos(this.state.pos) === 120 && (r = 16, ++this.state.pos);
        let i = this.readInt(r, void 0, !1, "bail");
        if (i !== null && this.codePointAtPos(this.state.pos) === 59)
          return ++this.state.pos, String.fromCodePoint(i);
      } else {
        let r = 0, i = !1;
        for (; r++ < 10 && this.state.pos < this.length && !(i = this.codePointAtPos(this.state.pos) === 59); )
          ++this.state.pos;
        if (i) {
          let a = this.input.slice(s, this.state.pos), o = AMe[a];
          if (++this.state.pos, o)
            return o;
        }
      }
      return this.state.pos = s, "&";
    }
    jsxReadWord() {
      let s, r = this.state.pos;
      do
        s = this.input.charCodeAt(++this.state.pos);
      while (ad(s) || s === 45);
      this.finishToken(141, this.input.slice(r, this.state.pos));
    }
    jsxParseIdentifier() {
      let s = this.startNode();
      return this.match(141) ? s.name = this.state.value : eN(this.state.type) ? s.name = kc(this.state.type) : this.unexpected(), this.next(),
      this.finishNode(s, "JSXIdentifier");
    }
    jsxParseNamespacedName() {
      let s = this.state.startLoc, r = this.jsxParseIdentifier();
      if (!this.eat(14)) return r;
      let i = this.startNodeAt(s);
      return i.namespace = r, i.name = this.jsxParseIdentifier(), this.finishNode(i, "JSXNamespacedName");
    }
    jsxParseElementName() {
      let s = this.state.startLoc, r = this.jsxParseNamespacedName();
      if (r.type === "JSXNamespacedName")
        return r;
      for (; this.eat(16); ) {
        let i = this.startNodeAt(s);
        i.object = r, i.property = this.jsxParseIdentifier(), r = this.finishNode(i, "JSXMemberExpression");
      }
      return r;
    }
    jsxParseAttributeValue() {
      let s;
      switch (this.state.type) {
        case 5:
          return s = this.startNode(), this.setContext(Ws.brace), this.next(), s = this.jsxParseExpressionContainer(s, Ws.j_oTag), s.expression.
          type === "JSXEmptyExpression" && this.raise(nh.AttributeIsEmpty, s), s;
        case 143:
        case 134:
          return this.parseExprAtom();
        default:
          throw this.raise(nh.UnsupportedJsxValue, this.state.startLoc);
      }
    }
    jsxParseEmptyExpression() {
      let s = this.startNodeAt(this.state.lastTokEndLoc);
      return this.finishNodeAt(s, "JSXEmptyExpression", this.state.startLoc);
    }
    jsxParseSpreadChild(s) {
      return this.next(), s.expression = this.parseExpression(), this.setContext(Ws.j_expr), this.state.canStartJSXElement = !0, this.expect(
      8), this.finishNode(s, "JSXSpreadChild");
    }
    jsxParseExpressionContainer(s, r) {
      if (this.match(8))
        s.expression = this.jsxParseEmptyExpression();
      else {
        let i = this.parseExpression();
        s.expression = i;
      }
      return this.setContext(r), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXExpressionContainer");
    }
    jsxParseAttribute() {
      let s = this.startNode();
      return this.match(5) ? (this.setContext(Ws.brace), this.next(), this.expect(21), s.argument = this.parseMaybeAssignAllowIn(), this.setContext(
      Ws.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXSpreadAttribute")) : (s.name = this.jsxParseNamespacedName(),
      s.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(s, "JSXAttribute"));
    }
    jsxParseOpeningElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXOpeningFragment") : (r.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(
      r));
    }
    jsxParseOpeningElementAfterName(s) {
      let r = [];
      for (; !this.match(56) && !this.match(144); )
        r.push(this.jsxParseAttribute());
      return s.attributes = r, s.selfClosing = this.eat(56), this.expect(144), this.finishNode(s, "JSXOpeningElement");
    }
    jsxParseClosingElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXClosingFragment") : (r.name = this.jsxParseElementName(), this.expect(144), this.finishNode(
      r, "JSXClosingElement"));
    }
    jsxParseElementAt(s) {
      let r = this.startNodeAt(s), i = [], a = this.jsxParseOpeningElementAt(s), o = null;
      if (!a.selfClosing) {
        e: for (; ; )
          switch (this.state.type) {
            case 143:
              if (s = this.state.startLoc, this.next(), this.eat(56)) {
                o = this.jsxParseClosingElementAt(s);
                break e;
              }
              i.push(this.jsxParseElementAt(s));
              break;
            case 142:
              i.push(this.parseLiteral(this.state.value, "JSXText"));
              break;
            case 5: {
              let l = this.startNode();
              this.setContext(Ws.brace), this.next(), this.match(21) ? i.push(this.jsxParseSpreadChild(l)) : i.push(this.jsxParseExpressionContainer(
              l, Ws.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
        Nc(a) && !Nc(o) && o !== null ? this.raise(nh.MissingClosingTagFragment, o) : !Nc(a) && Nc(o) ? this.raise(nh.MissingClosingTagElement,
        o, {
          openingTagName: nd(a.name)
        }) : !Nc(a) && !Nc(o) && nd(o.name) !== nd(a.name) && this.raise(nh.MissingClosingTagElement, o, {
          openingTagName: nd(a.name)
        });
      }
      if (Nc(a) ? (r.openingFragment = a, r.closingFragment = o) : (r.openingElement = a, r.closingElement = o), r.children = i, this.match(
      47))
        throw this.raise(nh.UnwrappedAdjacentJSXElements, this.state.startLoc);
      return Nc(a) ? this.finishNode(r, "JSXFragment") : this.finishNode(r, "JSXElement");
    }
    jsxParseElement() {
      let s = this.state.startLoc;
      return this.next(), this.jsxParseElementAt(s);
    }
    setContext(s) {
      let {
        context: r
      } = this.state;
      r[r.length - 1] = s;
    }
    parseExprAtom(s) {
      return this.match(143) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(
      143), this.jsxParseElement()) : super.parseExprAtom(s);
    }
    skipSpace() {
      this.curContext().preserveSpace || super.skipSpace();
    }
    getTokenFromCode(s) {
      let r = this.curContext();
      if (r === Ws.j_expr) {
        this.jsxReadToken();
        return;
      }
      if (r === Ws.j_oTag || r === Ws.j_cTag) {
        if (Vl(s)) {
          this.jsxReadWord();
          return;
        }
        if (s === 62) {
          ++this.state.pos, this.finishToken(144);
          return;
        }
        if ((s === 34 || s === 39) && r === Ws.j_oTag) {
          this.jsxReadString(s);
          return;
        }
      }
      if (s === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
        ++this.state.pos, this.finishToken(143);
        return;
      }
      super.getTokenFromCode(s);
    }
    updateContext(s) {
      let {
        context: r,
        type: i
      } = this.state;
      if (i === 56 && s === 143)
        r.splice(-2, 2, Ws.j_cTag), this.state.canStartJSXElement = !1;
      else if (i === 143)
        r.push(Ws.j_oTag);
      else if (i === 144) {
        let a = r[r.length - 1];
        a === Ws.j_oTag && s === 56 || a === Ws.j_cTag ? (r.pop(), this.state.canStartJSXElement = r[r.length - 1] === Ws.j_expr) : (this.setContext(
        Ws.j_expr), this.state.canStartJSXElement = !0);
      } else
        this.state.canStartJSXElement = UBe(i);
    }
  }, "jsx"), VI = class extends eg {
    static {
      n(this, "TypeScriptScope");
    }
    constructor(...e) {
      super(...e), this.tsNames = /* @__PURE__ */ new Map();
    }
  }, WI = class extends tg {
    static {
      n(this, "TypeScriptScopeHandler");
    }
    constructor(...e) {
      super(...e), this.importsStack = [];
    }
    createScope(e) {
      return this.importsStack.push(/* @__PURE__ */ new Set()), new VI(e);
    }
    enter(e) {
      e === 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(e);
    }
    exit() {
      let e = super.exit();
      return e === 256 && this.importsStack.pop(), e;
    }
    hasImport(e, s) {
      let r = this.importsStack.length;
      if (this.importsStack[r - 1].has(e))
        return !0;
      if (!s && r > 1) {
        for (let i = 0; i < r - 1; i++)
          if (this.importsStack[i].has(e)) return !0;
      }
      return !1;
    }
    declareName(e, s, r) {
      if (s & 4096) {
        this.hasImport(e, !0) && this.parser.raise(G.VarRedeclaration, r, {
          identifierName: e
        }), this.importsStack[this.importsStack.length - 1].add(e);
        return;
      }
      let i = this.currentScope(), a = i.tsNames.get(e) || 0;
      if (s & 1024) {
        this.maybeExportDefined(i, e), i.tsNames.set(e, a | 16);
        return;
      }
      super.declareName(e, s, r), s & 2 && (s & 1 || (this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e)), a = a | 1),
      s & 256 && (a = a | 2), s & 512 && (a = a | 4), s & 128 && (a = a | 8), a && i.tsNames.set(e, a);
    }
    isRedeclaredInScope(e, s, r) {
      let i = e.tsNames.get(s);
      if ((i & 2) > 0) {
        if (r & 256) {
          let a = !!(r & 512), o = (i & 4) > 0;
          return a !== o;
        }
        return !0;
      }
      return r & 128 && (i & 8) > 0 ? e.names.get(s) & 2 ? !!(r & 1) : !1 : r & 2 && (i & 1) > 0 ? !0 : super.isRedeclaredInScope(e, s, r);
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      if (this.hasImport(s)) return;
      let r = this.scopeStack.length;
      for (let i = r - 1; i >= 0; i--) {
        let o = this.scopeStack[i].tsNames.get(s);
        if ((o & 1) > 0 || (o & 16) > 0)
          return;
      }
      super.checkLocalExport(e);
    }
  }, KU = /* @__PURE__ */ n((t) => t.type === "ParenthesizedExpression" ? KU(t.expression) : t, "unwrapParenthesizedExpression"), $I = class extends KI {
    static {
      n(this, "LValParser");
    }
    toAssignable(e, s = !1) {
      var r, i;
      let a;
      switch ((e.type === "ParenthesizedExpression" || (r = e.extra) != null && r.parenthesized) && (a = KU(e), s ? a.type === "Identifier" ?
      this.expressionScope.recordArrowParameterBindingError(G.InvalidParenthesizedAssignment, e) : a.type !== "MemberExpression" && !this.isOptionalMemberExpression(
      a) && this.raise(G.InvalidParenthesizedAssignment, e) : this.raise(G.InvalidParenthesizedAssignment, e)), e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          break;
        case "ObjectExpression":
          e.type = "ObjectPattern";
          for (let l = 0, u = e.properties.length, c = u - 1; l < u; l++) {
            var o;
            let p = e.properties[l], h = l === c;
            this.toAssignableObjectExpressionProp(p, h, s), h && p.type === "RestElement" && (o = e.extra) != null && o.trailingCommaLoc && this.
            raise(G.RestTrailingComma, e.extra.trailingCommaLoc);
          }
          break;
        case "ObjectProperty": {
          let {
            key: l,
            value: u
          } = e;
          this.isPrivateName(l) && this.classScope.usePrivateName(this.getPrivateNameSV(l), l.loc.start), this.toAssignable(u, s);
          break;
        }
        case "SpreadElement":
          throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignabl\
e's caller.");
        case "ArrayExpression":
          e.type = "ArrayPattern", this.toAssignableList(e.elements, (i = e.extra) == null ? void 0 : i.trailingCommaLoc, s);
          break;
        case "AssignmentExpression":
          e.operator !== "=" && this.raise(G.MissingEqInAssignment, e.left.loc.end), e.type = "AssignmentPattern", delete e.operator, this.toAssignable(
          e.left, s);
          break;
        case "ParenthesizedExpression":
          this.toAssignable(a, s);
          break;
      }
    }
    toAssignableObjectExpressionProp(e, s, r) {
      if (e.type === "ObjectMethod")
        this.raise(e.kind === "get" || e.kind === "set" ? G.PatternHasAccessor : G.PatternHasMethod, e.key);
      else if (e.type === "SpreadElement") {
        e.type = "RestElement";
        let i = e.argument;
        this.checkToRestConversion(i, !1), this.toAssignable(i, r), s || this.raise(G.RestTrailingComma, e);
      } else
        this.toAssignable(e, r);
    }
    toAssignableList(e, s, r) {
      let i = e.length - 1;
      for (let a = 0; a <= i; a++) {
        let o = e[a];
        if (o) {
          if (o.type === "SpreadElement") {
            o.type = "RestElement";
            let l = o.argument;
            this.checkToRestConversion(l, !0), this.toAssignable(l, r);
          } else
            this.toAssignable(o, r);
          o.type === "RestElement" && (a < i ? this.raise(G.RestTrailingComma, o) : s && this.raise(G.RestTrailingComma, s));
        }
      }
    }
    isAssignable(e, s) {
      switch (e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          return !0;
        case "ObjectExpression": {
          let r = e.properties.length - 1;
          return e.properties.every((i, a) => i.type !== "ObjectMethod" && (a === r || i.type !== "SpreadElement") && this.isAssignable(i));
        }
        case "ObjectProperty":
          return this.isAssignable(e.value);
        case "SpreadElement":
          return this.isAssignable(e.argument);
        case "ArrayExpression":
          return e.elements.every((r) => r === null || this.isAssignable(r));
        case "AssignmentExpression":
          return e.operator === "=";
        case "ParenthesizedExpression":
          return this.isAssignable(e.expression);
        case "MemberExpression":
        case "OptionalMemberExpression":
          return !s;
        default:
          return !1;
      }
    }
    toReferencedList(e, s) {
      return e;
    }
    toReferencedListDeep(e, s) {
      this.toReferencedList(e, s);
      for (let r of e)
        r?.type === "ArrayExpression" && this.toReferencedListDeep(r.elements);
    }
    parseSpread(e) {
      let s = this.startNode();
      return this.next(), s.argument = this.parseMaybeAssignAllowIn(e, void 0), this.finishNode(s, "SpreadElement");
    }
    parseRestBinding() {
      let e = this.startNode();
      return this.next(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 0: {
          let e = this.startNode();
          return this.next(), e.elements = this.parseBindingList(3, 93, 1), this.finishNode(e, "ArrayPattern");
        }
        case 5:
          return this.parseObjectLike(8, !0);
      }
      return this.parseIdentifier();
    }
    parseBindingList(e, s, r) {
      let i = r & 1, a = [], o = !0;
      for (; !this.eat(e); )
        if (o ? o = !1 : this.expect(12), i && this.match(12))
          a.push(null);
        else {
          if (this.eat(e))
            break;
          if (this.match(21)) {
            let l = this.parseRestBinding();
            if ((this.hasPlugin("flow") || r & 2) && (l = this.parseFunctionParamType(l)), a.push(l), !this.checkCommaAfterRest(s)) {
              this.expect(e);
              break;
            }
          } else {
            let l = [];
            for (this.match(26) && this.hasPlugin("decorators") && this.raise(G.UnsupportedParameterDecorator, this.state.startLoc); this.match(
            26); )
              l.push(this.parseDecorator());
            a.push(this.parseAssignableListItem(r, l));
          }
        }
      return a;
    }
    parseBindingRestProperty(e) {
      return this.next(), e.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(e, "RestElement");
    }
    parseBindingProperty() {
      let {
        type: e,
        startLoc: s
      } = this.state;
      if (e === 21)
        return this.parseBindingRestProperty(this.startNode());
      let r = this.startNode();
      return e === 139 ? (this.expectPlugin("destructuringPrivate", s), this.classScope.usePrivateName(this.state.value, s), r.key = this.parsePrivateName()) :
      this.parsePropertyName(r), r.method = !1, this.parseObjPropValue(r, s, !1, !1, !0, !1);
    }
    parseAssignableListItem(e, s) {
      let r = this.parseMaybeDefault();
      (this.hasPlugin("flow") || e & 2) && this.parseFunctionParamType(r);
      let i = this.parseMaybeDefault(r.loc.start, r);
      return s.length && (r.decorators = s), i;
    }
    parseFunctionParamType(e) {
      return e;
    }
    parseMaybeDefault(e, s) {
      var r, i;
      if ((r = e) != null || (e = this.state.startLoc), s = (i = s) != null ? i : this.parseBindingAtom(), !this.eat(29)) return s;
      let a = this.startNodeAt(e);
      return a.left = s, a.right = this.parseMaybeAssignAllowIn(), this.finishNode(a, "AssignmentPattern");
    }
    isValidLVal(e, s, r) {
      switch (e) {
        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(e) {
      return e.type === "OptionalMemberExpression";
    }
    checkLVal(e, s, r = 64, i = !1, a = !1, o = !1) {
      var l;
      let u = e.type;
      if (this.isObjectMethod(e)) return;
      let c = this.isOptionalMemberExpression(e);
      if (c || u === "MemberExpression") {
        c && (this.expectPlugin("optionalChainingAssign", e.loc.start), s.type !== "AssignmentExpression" && this.raise(G.InvalidLhsOptionalChaining,
        e, {
          ancestor: s
        })), r !== 64 && this.raise(G.InvalidPropertyBindingPattern, e);
        return;
      }
      if (u === "Identifier") {
        this.checkIdentifier(e, r, a);
        let {
          name: y
        } = e;
        i && (i.has(y) ? this.raise(G.ParamDupe, e) : i.add(y));
        return;
      }
      let p = this.isValidLVal(u, !(o || (l = e.extra) != null && l.parenthesized) && s.type === "AssignmentExpression", r);
      if (p === !0) return;
      if (p === !1) {
        let y = r === 64 ? G.InvalidLhs : G.InvalidLhsBinding;
        this.raise(y, e, {
          ancestor: s
        });
        return;
      }
      let h, f;
      typeof p == "string" ? (h = p, f = u === "ParenthesizedExpression") : [h, f] = p;
      let d = u === "ArrayPattern" || u === "ObjectPattern" ? {
        type: u
      } : s, m = e[h];
      if (Array.isArray(m))
        for (let y of m)
          y && this.checkLVal(y, d, r, i, a, f);
      else m && this.checkLVal(m, d, r, i, a, f);
    }
    checkIdentifier(e, s, r = !1) {
      this.state.strict && (r ? FU(e.name, this.inModule) : MU(e.name)) && (s === 64 ? this.raise(G.StrictEvalArguments, e, {
        referenceName: e.name
      }) : this.raise(G.StrictEvalArgumentsBinding, e, {
        bindingName: e.name
      })), s & 8192 && e.name === "let" && this.raise(G.LetInLexicalBinding, e), s & 64 || this.declareNameFromIdentifier(e, s);
    }
    declareNameFromIdentifier(e, s) {
      this.scope.declareName(e.name, s, e.loc.start);
    }
    checkToRestConversion(e, s) {
      switch (e.type) {
        case "ParenthesizedExpression":
          this.checkToRestConversion(e.expression, s);
          break;
        case "Identifier":
        case "MemberExpression":
          break;
        case "ArrayExpression":
        case "ObjectExpression":
          if (s) break;
        default:
          this.raise(G.InvalidRestAssignmentPattern, e);
      }
    }
    checkCommaAfterRest(e) {
      return this.match(12) ? (this.raise(this.lookaheadCharCode() === e ? G.RestTrailingComma : G.ElementAfterRest, this.state.startLoc), !0) :
      !1;
    }
  };
  function CMe(t) {
    if (t == null)
      throw new Error(`Unexpected ${t} value.`);
    return t;
  }
  n(CMe, "nonNull");
  function vU(t) {
    if (!t)
      throw new Error("Assert fail");
  }
  n(vU, "assert");
  var pt = Wl`typescript`({
    AbstractMethodHasImplementation: /* @__PURE__ */ n(({
      methodName: t
    }) => `Method '${t}' cannot have an implementation because it is marked abstract.`, "AbstractMethodHasImplementation"),
    AbstractPropertyHasInitializer: /* @__PURE__ */ n(({
      propertyName: t
    }) => `Property '${t}' cannot have an initializer because it is marked abstract.`, "AbstractPropertyHasInitializer"),
    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 num\
eric literal or literal enum reference.",
    ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
    DeclareAccessor: /* @__PURE__ */ n(({
      kind: t
    }) => `'declare' is not allowed in ${t}ters.`, "DeclareAccessor"),
    DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
    DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
    DuplicateAccessibilityModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => "Accessibility modifier already seen.", "DuplicateAccessibilityModifier"),
    DuplicateModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => `Duplicate modifier: '${t}'.`, "DuplicateModifier"),
    EmptyHeritageClauseType: /* @__PURE__ */ n(({
      token: t
    }) => `'${t}' list cannot be empty.`, "EmptyHeritageClauseType"),
    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: /* @__PURE__ */ n(({
      modifiers: t
    }) => `'${t[0]}' modifier cannot be used with '${t[1]}' modifier.`, "IncompatibleModifiers"),
    IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
    IndexSignatureHasAccessibility: /* @__PURE__ */ n(({
      modifier: t
    }) => `Index signatures cannot have an accessibility modifier ('${t}').`, "IndexSignatureHasAccessibility"),
    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: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type member.`, "InvalidModifierOnTypeMember"),
    InvalidModifierOnTypeParameter: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type parameter.`, "InvalidModifierOnTypeParameter"),
    InvalidModifierOnTypeParameterPositions: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier can only appear on a type parameter of a class, interface or type alias.`, "InvalidModifierOnTypeParameterPositio\
ns"),
    InvalidModifiersOrder: /* @__PURE__ */ n(({
      orderedModifiers: t
    }) => `'${t[0]}' modifier must precede '${t[1]}' modifier.`, "InvalidModifiersOrder"),
    InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the i\
nstantiation 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: /* @__PURE__ */ n(({
      modifier: t
    }) => `Private elements cannot have an accessibility modifier ('${t}').`, "PrivateElementHasAccessibility"),
    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: /* @__PURE__ */ n(({
      typeParameterName: t
    }) => `Single type parameter ${t} should have a trailing comma. Example usage: <${t},>.`, "SingleTypeParameterWithoutTrailingComma"),
    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 (`n\
ame?: 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 statemen\
t.",
    TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statemen\
t.",
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${t}.`, "UnsupportedSignatureParameterKind")
  });
  function wMe(t) {
    switch (t) {
      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;
    }
  }
  n(wMe, "keywordTypeFromName");
  function CU(t) {
    return t === "private" || t === "public" || t === "protected";
  }
  n(CU, "tsIsAccessModifier");
  function IMe(t) {
    return t === "in" || t === "out";
  }
  n(IMe, "tsIsVarianceAnnotations");
  var NMe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "TypeScriptParserMixin");
    }
    constructor(...s) {
      super(...s), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out"],
        disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: pt.InvalidModifierOnTypeParameter
      }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["const"],
        disallowedModifiers: ["in", "out"],
        errorTemplate: pt.InvalidModifierOnTypeParameterPositions
      }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out", "const"],
        disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: pt.InvalidModifierOnTypeParameter
      });
    }
    getScopeHandler() {
      return WI;
    }
    tsIsIdentifier() {
      return $s(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(s, r) {
      if (!$s(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
        return;
      let i = this.state.value;
      if (s.includes(i)) {
        if (r && this.tsIsStartOfStaticBlocks())
          return;
        if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
          return i;
      }
    }
    tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: r,
      stopOnStartOfClassStaticBlock: i,
      errorTemplate: a = pt.InvalidModifierOnTypeMember
    }, o) {
      let l = /* @__PURE__ */ n((c, p, h, f) => {
        p === h && o[f] && this.raise(pt.InvalidModifiersOrder, c, {
          orderedModifiers: [h, f]
        });
      }, "enforceOrder"), u = /* @__PURE__ */ n((c, p, h, f) => {
        (o[h] && p === f || o[f] && p === h) && this.raise(pt.IncompatibleModifiers, c, {
          modifiers: [h, f]
        });
      }, "incompatible");
      for (; ; ) {
        let {
          startLoc: c
        } = this.state, p = this.tsParseModifier(s.concat(r ?? []), i);
        if (!p) break;
        CU(p) ? o.accessibility ? this.raise(pt.DuplicateAccessibilityModifier, c, {
          modifier: p
        }) : (l(c, p, p, "override"), l(c, p, p, "static"), l(c, p, p, "readonly"), o.accessibility = p) : IMe(p) ? (o[p] && this.raise(pt.DuplicateModifier,
        c, {
          modifier: p
        }), o[p] = !0, l(c, p, "in", "out")) : (hasOwnProperty.call(o, p) ? this.raise(pt.DuplicateModifier, c, {
          modifier: p
        }) : (l(c, p, "static", "readonly"), l(c, p, "static", "override"), l(c, p, "override", "readonly"), l(c, p, "abstract", "override"),
        u(c, p, "declare", "override"), u(c, p, "static", "abstract")), o[p] = !0), r != null && r.includes(p) && this.raise(a, c, {
          modifier: p
        });
      }
    }
    tsIsListTerminator(s) {
      switch (s) {
        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(s, r) {
      let i = [];
      for (; !this.tsIsListTerminator(s); )
        i.push(r());
      return i;
    }
    tsParseDelimitedList(s, r, i) {
      return CMe(this.tsParseDelimitedListWorker(s, r, !0, i));
    }
    tsParseDelimitedListWorker(s, r, i, a) {
      let o = [], l = -1;
      for (; !this.tsIsListTerminator(s); ) {
        l = -1;
        let u = r();
        if (u == null)
          return;
        if (o.push(u), this.eat(12)) {
          l = this.state.lastTokStartLoc.index;
          continue;
        }
        if (this.tsIsListTerminator(s))
          break;
        i && this.expect(12);
        return;
      }
      return a && (a.value = l), o;
    }
    tsParseBracketedList(s, r, i, a, o) {
      a || (i ? this.expect(0) : this.expect(47));
      let l = this.tsParseDelimitedList(s, r, o);
      return i ? this.expect(3) : this.expect(48), l;
    }
    tsParseImportType() {
      let s = this.startNode();
      return this.expect(83), this.expect(10), this.match(134) ? s.argument = this.parseStringLiteral(this.state.value) : (this.raise(pt.UnsupportedImportTypeArgument,
      this.state.startLoc), s.argument = super.parseExprAtom()), this.eat(12) && !this.match(11) ? (s.options = super.parseMaybeAssignAllowIn(),
      this.eat(12)) : s.options = null, this.expect(11), this.eat(16) && (s.qualifier = this.tsParseEntityName(3)), this.match(47) && (s.typeParameters =
      this.tsParseTypeArguments()), this.finishNode(s, "TSImportType");
    }
    tsParseEntityName(s) {
      let r;
      if (s & 1 && this.match(78))
        if (s & 2)
          r = this.parseIdentifier(!0);
        else {
          let i = this.startNode();
          this.next(), r = this.finishNode(i, "ThisExpression");
        }
      else
        r = this.parseIdentifier(!!(s & 1));
      for (; this.eat(16); ) {
        let i = this.startNodeAtNode(r);
        i.left = r, i.right = this.parseIdentifier(!!(s & 1)), r = this.finishNode(i, "TSQualifiedName");
      }
      return r;
    }
    tsParseTypeReference() {
      let s = this.startNode();
      return s.typeName = this.tsParseEntityName(1), !this.hasPrecedingLineBreak() && this.match(47) && (s.typeParameters = this.tsParseTypeArguments()),
      this.finishNode(s, "TSTypeReference");
    }
    tsParseThisTypePredicate(s) {
      this.next();
      let r = this.startNodeAtNode(s);
      return r.parameterName = s, r.typeAnnotation = this.tsParseTypeAnnotation(!1), r.asserts = !1, this.finishNode(r, "TSTypePredicate");
    }
    tsParseThisTypeNode() {
      let s = this.startNode();
      return this.next(), this.finishNode(s, "TSThisType");
    }
    tsParseTypeQuery() {
      let s = this.startNode();
      return this.expect(87), this.match(83) ? s.exprName = this.tsParseImportType() : s.exprName = this.tsParseEntityName(3), !this.hasPrecedingLineBreak() &&
      this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSTypeQuery");
    }
    tsParseTypeParameter(s) {
      let r = this.startNode();
      return s(r), r.name = this.tsParseTypeParameterName(), r.constraint = this.tsEatThenParseType(81), r.default = this.tsEatThenParseType(
      29), this.finishNode(r, "TSTypeParameter");
    }
    tsTryParseTypeParameters(s) {
      if (this.match(47))
        return this.tsParseTypeParameters(s);
    }
    tsParseTypeParameters(s) {
      let r = this.startNode();
      this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = {
        value: -1
      };
      return r.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, s), !1, !0, i), r.params.
      length === 0 && this.raise(pt.EmptyTypeParameters, r), i.value !== -1 && this.addExtra(r, "trailingComma", i.value), this.finishNode(r,
      "TSTypeParameterDeclaration");
    }
    tsFillSignature(s, r) {
      let i = s === 19, a = "parameters", o = "typeAnnotation";
      r.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), r[a] = this.tsParseBindingListForSignature(),
      i ? r[o] = this.tsParseTypeOrTypePredicateAnnotation(s) : this.match(s) && (r[o] = this.tsParseTypeOrTypePredicateAnnotation(s));
    }
    tsParseBindingListForSignature() {
      let s = super.parseBindingList(11, 41, 2);
      for (let r of s) {
        let {
          type: i
        } = r;
        (i === "AssignmentPattern" || i === "TSParameterProperty") && this.raise(pt.UnsupportedSignatureParameterKind, r, {
          type: i
        });
      }
      return s;
    }
    tsParseTypeMemberSemicolon() {
      !this.eat(12) && !this.isLineTerminator() && this.expect(13);
    }
    tsParseSignatureMember(s, r) {
      return this.tsFillSignature(14, r), this.tsParseTypeMemberSemicolon(), this.finishNode(r, s);
    }
    tsIsUnambiguouslyIndexSignature() {
      return this.next(), $s(this.state.type) ? (this.next(), this.match(14)) : !1;
    }
    tsTryParseIndexSignature(s) {
      if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
        return;
      this.expect(0);
      let r = this.parseIdentifier();
      r.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(r), this.expect(3), s.parameters = [r];
      let i = this.tsTryParseTypeAnnotation();
      return i && (s.typeAnnotation = i), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSIndexSignature");
    }
    tsParsePropertyOrMethodSignature(s, r) {
      this.eat(17) && (s.optional = !0);
      let i = s;
      if (this.match(10) || this.match(47)) {
        r && this.raise(pt.ReadonlyForMethodSignature, s);
        let a = i;
        a.kind && this.match(47) && this.raise(pt.AccessorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, a), this.
        tsParseTypeMemberSemicolon();
        let o = "parameters", l = "typeAnnotation";
        if (a.kind === "get")
          a[o].length > 0 && (this.raise(G.BadGetterArity, this.state.curPosition()), this.isThisParam(a[o][0]) && this.raise(pt.AccessorCannotDeclareThisParameter,
          this.state.curPosition()));
        else if (a.kind === "set") {
          if (a[o].length !== 1)
            this.raise(G.BadSetterArity, this.state.curPosition());
          else {
            let u = a[o][0];
            this.isThisParam(u) && this.raise(pt.AccessorCannotDeclareThisParameter, this.state.curPosition()), u.type === "Identifier" && u.
            optional && this.raise(pt.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()), u.type === "RestElement" && this.raise(
            pt.SetAccessorCannotHaveRestParameter, this.state.curPosition());
          }
          a[l] && this.raise(pt.SetAccessorCannotHaveReturnType, a[l]);
        } else
          a.kind = "method";
        return this.finishNode(a, "TSMethodSignature");
      } else {
        let a = i;
        r && (a.readonly = !0);
        let o = this.tsTryParseTypeAnnotation();
        return o && (a.typeAnnotation = o), this.tsParseTypeMemberSemicolon(), this.finishNode(a, "TSPropertySignature");
      }
    }
    tsParseTypeMember() {
      let s = this.startNode();
      if (this.match(10) || this.match(47))
        return this.tsParseSignatureMember("TSCallSignatureDeclaration", s);
      if (this.match(77)) {
        let i = this.startNode();
        return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", s) : (s.key = this.
        createIdentifier(i, "new"), this.tsParsePropertyOrMethodSignature(s, !1));
      }
      this.tsParseModifiers({
        allowedModifiers: ["readonly"],
        disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
      }, s);
      let r = this.tsTryParseIndexSignature(s);
      return r || (super.parsePropertyName(s), !s.computed && s.key.type === "Identifier" && (s.key.name === "get" || s.key.name === "set") &&
      this.tsTokenCanFollowModifier() && (s.kind = s.key.name, super.parsePropertyName(s)), this.tsParsePropertyOrMethodSignature(s, !!s.readonly));
    }
    tsParseTypeLiteral() {
      let s = this.startNode();
      return s.members = this.tsParseObjectTypeMembers(), this.finishNode(s, "TSTypeLiteral");
    }
    tsParseObjectTypeMembers() {
      this.expect(5);
      let s = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
      return this.expect(8), s;
    }
    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() {
      let s = this.startNode();
      this.expect(5), this.match(53) ? (s.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) &&
      (s.readonly = !0), this.expect(0);
      {
        let r = this.startNode();
        r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), s.typeParameter = this.finishNode(r, "TSTyp\
eParameter");
      }
      return s.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (s.optional = this.state.value,
      this.next(), this.expect(17)) : this.eat(17) && (s.optional = !0), s.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(
      8), this.finishNode(s, "TSMappedType");
    }
    tsParseTupleType() {
      let s = this.startNode();
      s.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
      let r = !1;
      return s.elementTypes.forEach((i) => {
        let {
          type: a
        } = i;
        r && a !== "TSRestType" && a !== "TSOptionalType" && !(a === "TSNamedTupleMember" && i.optional) && this.raise(pt.OptionalTypeBeforeRequired,
        i), r || (r = a === "TSNamedTupleMember" && i.optional || a === "TSOptionalType");
      }), this.finishNode(s, "TSTupleType");
    }
    tsParseTupleElementType() {
      let s = this.state.startLoc, r = this.eat(21), {
        startLoc: i
      } = this.state, a, o, l, u, p = yo(this.state.type) ? this.lookaheadCharCode() : null;
      if (p === 58)
        a = !0, l = !1, o = this.parseIdentifier(!0), this.expect(14), u = this.tsParseType();
      else if (p === 63) {
        l = !0;
        let h = this.state.value, f = this.tsParseNonArrayType();
        this.lookaheadCharCode() === 58 ? (a = !0, o = this.createIdentifier(this.startNodeAt(i), h), this.expect(17), this.expect(14), u = this.
        tsParseType()) : (a = !1, u = f, this.expect(17));
      } else
        u = this.tsParseType(), l = this.eat(17), a = this.eat(14);
      if (a) {
        let h;
        o ? (h = this.startNodeAt(i), h.optional = l, h.label = o, h.elementType = u, this.eat(17) && (h.optional = !0, this.raise(pt.TupleOptionalAfterType,
        this.state.lastTokStartLoc))) : (h = this.startNodeAt(i), h.optional = l, this.raise(pt.InvalidTupleMemberLabel, u), h.label = u, h.
        elementType = this.tsParseType()), u = this.finishNode(h, "TSNamedTupleMember");
      } else if (l) {
        let h = this.startNodeAt(i);
        h.typeAnnotation = u, u = this.finishNode(h, "TSOptionalType");
      }
      if (r) {
        let h = this.startNodeAt(s);
        h.typeAnnotation = u, u = this.finishNode(h, "TSRestType");
      }
      return u;
    }
    tsParseParenthesizedType() {
      let s = this.startNode();
      return this.expect(10), s.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(s, "TSParenthesizedType");
    }
    tsParseFunctionOrConstructorType(s, r) {
      let i = this.startNode();
      return s === "TSConstructorType" && (i.abstract = !!r, r && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.
      tsFillSignature(19, i)), this.finishNode(i, s);
    }
    tsParseLiteralTypeNode() {
      let s = this.startNode();
      switch (this.state.type) {
        case 135:
        case 136:
        case 134:
        case 85:
        case 86:
          s.literal = super.parseExprAtom();
          break;
        default:
          this.unexpected();
      }
      return this.finishNode(s, "TSLiteralType");
    }
    tsParseTemplateLiteralType() {
      {
        let s = this.startNode();
        return s.literal = super.parseTemplate(!1), this.finishNode(s, "TSLiteralType");
      }
    }
    parseTemplateSubstitution() {
      return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
    }
    tsParseThisTypeOrThisTypePredicate() {
      let s = this.tsParseThisTypeNode();
      return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(s) : s;
    }
    tsParseNonArrayType() {
      switch (this.state.type) {
        case 134:
        case 135:
        case 136:
        case 85:
        case 86:
          return this.tsParseLiteralTypeNode();
        case 53:
          if (this.state.value === "-") {
            let s = this.startNode(), r = this.lookahead();
            return r.type !== 135 && r.type !== 136 && this.unexpected(), s.literal = this.parseMaybeUnary(), this.finishNode(s, "TSLiteralT\
ype");
          }
          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: {
          let {
            type: s
          } = this.state;
          if ($s(s) || s === 88 || s === 84) {
            let r = s === 88 ? "TSVoidKeyword" : s === 84 ? "TSNullKeyword" : wMe(this.state.value);
            if (r !== void 0 && this.lookaheadCharCode() !== 46) {
              let i = this.startNode();
              return this.next(), this.finishNode(i, r);
            }
            return this.tsParseTypeReference();
          }
        }
      }
      this.unexpected();
    }
    tsParseArrayTypeOrHigher() {
      let {
        startLoc: s
      } = this.state, r = this.tsParseNonArrayType();
      for (; !this.hasPrecedingLineBreak() && this.eat(0); )
        if (this.match(3)) {
          let i = this.startNodeAt(s);
          i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
        } else {
          let i = this.startNodeAt(s);
          i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
        }
      return r;
    }
    tsParseTypeOperator() {
      let s = this.startNode(), r = this.state.value;
      return this.next(), s.operator = r, s.typeAnnotation = this.tsParseTypeOperatorOrHigher(), r === "readonly" && this.tsCheckTypeAnnotationForReadOnly(
      s), this.finishNode(s, "TSTypeOperator");
    }
    tsCheckTypeAnnotationForReadOnly(s) {
      switch (s.typeAnnotation.type) {
        case "TSTupleType":
        case "TSArrayType":
          return;
        default:
          this.raise(pt.UnexpectedReadonly, s);
      }
    }
    tsParseInferType() {
      let s = this.startNode();
      this.expectContextual(115);
      let r = this.startNode();
      return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), s.typeParameter =
      this.finishNode(r, "TSTypeParameter"), this.finishNode(s, "TSInferType");
    }
    tsParseConstraintForInferType() {
      if (this.eat(81)) {
        let s = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
        if (this.state.inDisallowConditionalTypesContext || !this.match(17))
          return s;
      }
    }
    tsParseTypeOperatorOrHigher() {
      return JBe(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() :
      this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
    }
    tsParseUnionOrIntersectionType(s, r, i) {
      let a = this.startNode(), o = this.eat(i), l = [];
      do
        l.push(r());
      while (this.eat(i));
      return l.length === 1 && !o ? l[0] : (a.types = l, this.finishNode(a, s));
    }
    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 ($s(this.state.type) || this.match(78))
        return this.next(), !0;
      if (this.match(5)) {
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return this.parseObjectLike(8, !0), s.length === r;
        } catch {
          return !1;
        }
      }
      if (this.match(0)) {
        this.next();
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return super.parseBindingList(3, 93, 1), s.length === r;
        } 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(s) {
      return this.tsInType(() => {
        let r = this.startNode();
        this.expect(s);
        let i = this.startNode(), a = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
        if (a && this.match(78)) {
          let u = this.tsParseThisTypeOrThisTypePredicate();
          return u.type === "TSThisType" ? (i.parameterName = u, i.asserts = !0, i.typeAnnotation = null, u = this.finishNode(i, "TSTypePred\
icate")) : (this.resetStartLocationFromNode(u, i), u.asserts = !0), r.typeAnnotation = u, this.finishNode(r, "TSTypeAnnotation");
        }
        let o = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
        if (!o)
          return a ? (i.parameterName = this.parseIdentifier(), i.asserts = a, i.typeAnnotation = null, r.typeAnnotation = this.finishNode(i,
          "TSTypePredicate"), this.finishNode(r, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, r);
        let l = this.tsParseTypeAnnotation(!1);
        return i.parameterName = o, i.typeAnnotation = l, i.asserts = a, r.typeAnnotation = this.finishNode(i, "TSTypePredicate"), this.finishNode(
        r, "TSTypeAnnotation");
      });
    }
    tsTryParseTypeOrTypePredicateAnnotation() {
      if (this.match(14))
        return this.tsParseTypeOrTypePredicateAnnotation(14);
    }
    tsTryParseTypeAnnotation() {
      if (this.match(14))
        return this.tsParseTypeAnnotation();
    }
    tsTryParseType() {
      return this.tsEatThenParseType(14);
    }
    tsParseTypePredicatePrefix() {
      let s = this.parseIdentifier();
      if (this.isContextual(116) && !this.hasPrecedingLineBreak())
        return this.next(), s;
    }
    tsParseTypePredicateAsserts() {
      if (this.state.type !== 109)
        return !1;
      let s = this.state.containsEsc;
      return this.next(), !$s(this.state.type) && !this.match(78) ? !1 : (s && this.raise(G.InvalidEscapedReservedWord, this.state.lastTokStartLoc,
      {
        reservedWord: "asserts"
      }), !0);
    }
    tsParseTypeAnnotation(s = !0, r = this.startNode()) {
      return this.tsInType(() => {
        s && this.expect(14), r.typeAnnotation = this.tsParseType();
      }), this.finishNode(r, "TSTypeAnnotation");
    }
    tsParseType() {
      vU(this.state.inType);
      let s = this.tsParseNonConditionalType();
      if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
        return s;
      let r = this.startNodeAtNode(s);
      return r.checkType = s, r.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(
      17), r.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), r.falseType = this.tsInAllowConditionalTypesContext(
      () => this.tsParseType()), this.finishNode(r, "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(pt.ReservedTypeAssertion, this.state.startLoc);
      let s = this.startNode();
      return s.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.
      expect(48), s.expression = this.parseMaybeUnary(), this.finishNode(s, "TSTypeAssertion");
    }
    tsParseHeritageClause(s) {
      let r = this.state.startLoc, i = this.tsParseDelimitedList("HeritageClauseElement", () => {
        let a = this.startNode();
        return a.expression = this.tsParseEntityName(3), this.match(47) && (a.typeParameters = this.tsParseTypeArguments()), this.finishNode(
        a, "TSExpressionWithTypeArguments");
      });
      return i.length || this.raise(pt.EmptyHeritageClauseType, r, {
        token: s
      }), i;
    }
    tsParseInterfaceDeclaration(s, r = {}) {
      if (this.hasFollowingLineBreak()) return null;
      this.expectContextual(129), r.declare && (s.declare = !0), $s(this.state.type) ? (s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, 130)) : (s.id = null, this.raise(pt.MissingInterfaceName, this.state.startLoc)), s.typeParameters = this.tsTryParseTypeParameters(
      this.tsParseInOutConstModifiers), this.eat(81) && (s.extends = this.tsParseHeritageClause("extends"));
      let i = this.startNode();
      return i.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), s.body = this.finishNode(i, "TSInterfaceBody"), this.finishNode(
      s, "TSInterfaceDeclaration");
    }
    tsParseTypeAliasDeclaration(s) {
      return s.id = this.parseIdentifier(), this.checkIdentifier(s.id, 2), s.typeAnnotation = this.tsInType(() => {
        if (s.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().
        type !== 16) {
          let r = this.startNode();
          return this.next(), this.finishNode(r, "TSIntrinsicKeyword");
        }
        return this.tsParseType();
      }), this.semicolon(), this.finishNode(s, "TSTypeAliasDeclaration");
    }
    tsInTopLevelContext(s) {
      if (this.curContext() !== Ws.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    tsInType(s) {
      let r = this.state.inType;
      this.state.inType = !0;
      try {
        return s();
      } finally {
        this.state.inType = r;
      }
    }
    tsInDisallowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !0;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsInAllowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !1;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsEatThenParseType(s) {
      if (this.match(s))
        return this.tsNextThenParseType();
    }
    tsExpectThenParseType(s) {
      return this.tsInType(() => (this.expect(s), this.tsParseType()));
    }
    tsNextThenParseType() {
      return this.tsInType(() => (this.next(), this.tsParseType()));
    }
    tsParseEnumMember() {
      let s = this.startNode();
      return s.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (s.initializer =
      super.parseMaybeAssignAllowIn()), this.finishNode(s, "TSEnumMember");
    }
    tsParseEnumDeclaration(s, r = {}) {
      return r.const && (s.const = !0), r.declare && (s.declare = !0), this.expectContextual(126), s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, s.const ? 8971 : 8459), this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)),
      this.expect(8), this.finishNode(s, "TSEnumDeclaration");
    }
    tsParseEnumBody() {
      let s = this.startNode();
      return this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(
      s, "TSEnumBody");
    }
    tsParseModuleBlock() {
      let s = this.startNode();
      return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(s.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(
      s, "TSModuleBlock");
    }
    tsParseModuleOrNamespaceDeclaration(s, r = !1) {
      if (s.id = this.parseIdentifier(), r || this.checkIdentifier(s.id, 1024), this.eat(16)) {
        let i = this.startNode();
        this.tsParseModuleOrNamespaceDeclaration(i, !0), s.body = i;
      } else
        this.scope.enter(256), this.prodParam.enter(0), s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
      return this.finishNode(s, "TSModuleDeclaration");
    }
    tsParseAmbientExternalModuleDeclaration(s) {
      return this.isContextual(112) ? (s.kind = "global", s.global = !0, s.id = this.parseIdentifier()) : this.match(134) ? (s.kind = "modul\
e", s.id = super.parseStringLiteral(this.state.value)) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0),
      s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(s, "TSModuleDeclarat\
ion");
    }
    tsParseImportEqualsDeclaration(s, r, i) {
      s.isExport = i || !1, s.id = r || this.parseIdentifier(), this.checkIdentifier(s.id, 4096), this.expect(29);
      let a = this.tsParseModuleReference();
      return s.importKind === "type" && a.type !== "TSExternalModuleReference" && this.raise(pt.ImportAliasHasImportType, a), s.moduleReference =
      a, this.semicolon(), this.finishNode(s, "TSImportEqualsDeclaration");
    }
    tsIsExternalModuleReference() {
      return this.isContextual(119) && this.lookaheadCharCode() === 40;
    }
    tsParseModuleReference() {
      return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0);
    }
    tsParseExternalModuleReference() {
      let s = this.startNode();
      return this.expectContextual(119), this.expect(10), this.match(134) || this.unexpected(), s.expression = super.parseExprAtom(), this.expect(
      11), this.sawUnambiguousESM = !0, this.finishNode(s, "TSExternalModuleReference");
    }
    tsLookAhead(s) {
      let r = this.state.clone(), i = s();
      return this.state = r, i;
    }
    tsTryParseAndCatch(s) {
      let r = this.tryParse((i) => s() || i());
      if (!(r.aborted || !r.node))
        return r.error && (this.state = r.failState), r.node;
    }
    tsTryParse(s) {
      let r = this.state.clone(), i = s();
      if (i !== void 0 && i !== !1)
        return i;
      this.state = r;
    }
    tsTryParseDeclare(s) {
      if (this.isLineTerminator())
        return;
      let r = this.state.type, i;
      return this.isContextual(100) && (r = 74, i = "let"), this.tsInAmbientContext(() => {
        switch (r) {
          case 68:
            return s.declare = !0, super.parseFunctionStatement(s, !1, !1);
          case 80:
            return s.declare = !0, this.parseClass(s, !0, !1);
          case 126:
            return this.tsParseEnumDeclaration(s, {
              declare: !0
            });
          case 112:
            return this.tsParseAmbientExternalModuleDeclaration(s);
          case 75:
          case 74:
            return !this.match(75) || !this.isLookaheadContextual("enum") ? (s.declare = !0, this.parseVarStatement(s, i || this.state.value,
            !0)) : (this.expect(75), this.tsParseEnumDeclaration(s, {
              const: !0,
              declare: !0
            }));
          case 129: {
            let a = this.tsParseInterfaceDeclaration(s, {
              declare: !0
            });
            if (a) return a;
          }
          default:
            if ($s(r))
              return this.tsParseDeclaration(s, this.state.value, !0, null);
        }
      });
    }
    tsTryParseExportDeclaration() {
      return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
    }
    tsParseExpressionStatement(s, r, i) {
      switch (r.name) {
        case "declare": {
          let a = this.tsTryParseDeclare(s);
          return a && (a.declare = !0), a;
        }
        case "global":
          if (this.match(5)) {
            this.scope.enter(256), this.prodParam.enter(0);
            let a = s;
            return a.kind = "global", s.global = !0, a.id = r, a.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(),
            this.finishNode(a, "TSModuleDeclaration");
          }
          break;
        default:
          return this.tsParseDeclaration(s, r.name, !1, i);
      }
    }
    tsParseDeclaration(s, r, i, a) {
      switch (r) {
        case "abstract":
          if (this.tsCheckLineTerminator(i) && (this.match(80) || $s(this.state.type)))
            return this.tsParseAbstractDeclaration(s, a);
          break;
        case "module":
          if (this.tsCheckLineTerminator(i)) {
            if (this.match(134))
              return this.tsParseAmbientExternalModuleDeclaration(s);
            if ($s(this.state.type))
              return s.kind = "module", this.tsParseModuleOrNamespaceDeclaration(s);
          }
          break;
        case "namespace":
          if (this.tsCheckLineTerminator(i) && $s(this.state.type))
            return s.kind = "namespace", this.tsParseModuleOrNamespaceDeclaration(s);
          break;
        case "type":
          if (this.tsCheckLineTerminator(i) && $s(this.state.type))
            return this.tsParseTypeAliasDeclaration(s);
          break;
      }
    }
    tsCheckLineTerminator(s) {
      return s ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
    }
    tsTryParseGenericAsyncArrowFunction(s) {
      if (!this.match(47)) return;
      let r = this.state.maybeInArrowParameters;
      this.state.maybeInArrowParameters = !0;
      let i = this.tsTryParseAndCatch(() => {
        let a = this.startNodeAt(s);
        return a.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(a), a.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(),
        this.expect(19), a;
      });
      if (this.state.maybeInArrowParameters = r, !!i)
        return super.parseArrowExpression(i, null, !0);
    }
    tsParseTypeArgumentsInExpression() {
      if (this.reScan_lt() === 47)
        return this.tsParseTypeArguments();
    }
    tsParseTypeArguments() {
      let s = this.startNode();
      return s.params = this.tsInType(() => this.tsInTopLevelContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArgu\
ments", this.tsParseType.bind(this))))), s.params.length === 0 ? this.raise(pt.EmptyTypeArguments, s) : !this.state.inType && this.curContext() ===
      Ws.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(s, "TSTypeParameterInstantiation");
    }
    tsIsDeclarationStart() {
      return YBe(this.state.type);
    }
    isExportDefaultSpecifier() {
      return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
    }
    parseAssignableListItem(s, r) {
      let i = this.state.startLoc, a = {};
      this.tsParseModifiers({
        allowedModifiers: ["public", "private", "protected", "override", "readonly"]
      }, a);
      let o = a.accessibility, l = a.override, u = a.readonly;
      !(s & 4) && (o || u || l) && this.raise(pt.UnexpectedParameterModifier, i);
      let c = this.parseMaybeDefault();
      s & 2 && this.parseFunctionParamType(c);
      let p = this.parseMaybeDefault(c.loc.start, c);
      if (o || u || l) {
        let h = this.startNodeAt(i);
        return r.length && (h.decorators = r), o && (h.accessibility = o), u && (h.readonly = u), l && (h.override = l), p.type !== "Identif\
ier" && p.type !== "AssignmentPattern" && this.raise(pt.UnsupportedParameterPropertyKind, h), h.parameter = p, this.finishNode(h, "TSParamet\
erProperty");
      }
      return r.length && (c.decorators = r), p;
    }
    isSimpleParameter(s) {
      return s.type === "TSParameterProperty" && super.isSimpleParameter(s.parameter) || super.isSimpleParameter(s);
    }
    tsDisallowOptionalPattern(s) {
      for (let r of s.params)
        r.type !== "Identifier" && r.optional && !this.state.isAmbientContext && this.raise(pt.PatternIsOptional, r);
    }
    setArrowFunctionParameters(s, r, i) {
      super.setArrowFunctionParameters(s, r, i), this.tsDisallowOptionalPattern(s);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      this.match(14) && (s.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
      let a = r === "FunctionDeclaration" ? "TSDeclareFunction" : r === "ClassMethod" || r === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
      return a && !this.match(5) && this.isLineTerminator() ? this.finishNode(s, a) : a === "TSDeclareFunction" && this.state.isAmbientContext &&
      (this.raise(pt.DeclareFunctionHasImplementation, s), s.declare) ? super.parseFunctionBodyAndFinish(s, a, i) : (this.tsDisallowOptionalPattern(
      s), super.parseFunctionBodyAndFinish(s, r, i));
    }
    registerFunctionStatementId(s) {
      !s.body && s.id ? this.checkIdentifier(s.id, 1024) : super.registerFunctionStatementId(s);
    }
    tsCheckForInvalidTypeCasts(s) {
      s.forEach((r) => {
        r?.type === "TSTypeCastExpression" && this.raise(pt.UnexpectedTypeAnnotation, r.typeAnnotation);
      });
    }
    toReferencedList(s, r) {
      return this.tsCheckForInvalidTypeCasts(s), s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return o.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(o.elements), o;
    }
    parseSubscript(s, r, i, a) {
      if (!this.hasPrecedingLineBreak() && this.match(35)) {
        this.state.canStartJSXElement = !1, this.next();
        let l = this.startNodeAt(r);
        return l.expression = s, this.finishNode(l, "TSNonNullExpression");
      }
      let o = !1;
      if (this.match(18) && this.lookaheadCharCode() === 60) {
        if (i)
          return a.stop = !0, s;
        a.optionalChainMember = o = !0, this.next();
      }
      if (this.match(47) || this.match(51)) {
        let l, u = this.tsTryParseAndCatch(() => {
          if (!i && this.atPossibleAsyncArrow(s)) {
            let f = this.tsTryParseGenericAsyncArrowFunction(r);
            if (f)
              return f;
          }
          let c = this.tsParseTypeArgumentsInExpression();
          if (!c) return;
          if (o && !this.match(10)) {
            l = this.state.curPosition();
            return;
          }
          if (Jb(this.state.type)) {
            let f = super.parseTaggedTemplateExpression(s, r, a);
            return f.typeParameters = c, f;
          }
          if (!i && this.eat(10)) {
            let f = this.startNodeAt(r);
            return f.callee = s, f.arguments = this.parseCallExpressionArguments(11), this.tsCheckForInvalidTypeCasts(f.arguments), f.typeParameters =
            c, a.optionalChainMember && (f.optional = o), this.finishCallExpression(f, a.optionalChainMember);
          }
          let p = this.state.type;
          if (p === 48 || p === 52 || p !== 10 && II(p) && !this.hasPrecedingLineBreak())
            return;
          let h = this.startNodeAt(r);
          return h.expression = s, h.typeParameters = c, this.finishNode(h, "TSInstantiationExpression");
        });
        if (l && this.unexpected(l, 10), u)
          return u.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(
          pt.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), u;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      var r;
      super.parseNewCallee(s);
      let {
        callee: i
      } = s;
      i.type === "TSInstantiationExpression" && !((r = i.extra) != null && r.parenthesized) && (s.typeParameters = i.typeParameters, s.callee =
      i.expression);
    }
    parseExprOp(s, r, i) {
      let a;
      if (Wb(58) > i && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (a = this.isContextual(120)))) {
        let o = this.startNodeAt(r);
        return o.expression = s, o.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (a && this.raise(G.UnexpectedKeyword,
        this.state.startLoc, {
          keyword: "const"
        }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(o, a ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(),
        this.parseExprOp(o, r, i);
      }
      return super.parseExprOp(s, r, i);
    }
    checkReservedWord(s, r, i, a) {
      this.state.isAmbientContext || super.checkReservedWord(s, r, i, a);
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(pt.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    checkDuplicateExports() {
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        let r = this.lookaheadCharCode();
        return s ? r === 123 || r === 42 : r !== 61;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      super.applyImportPhase(s, r, i, a), r ? s.exportKind = i === "type" ? "type" : "value" : s.importKind = i === "type" || i === "typeof" ?
      i : "value";
    }
    parseImport(s) {
      if (this.match(134))
        return s.importKind = "value", super.parseImport(s);
      let r;
      if ($s(this.state.type) && this.lookaheadCharCode() === 61)
        return s.importKind = "value", this.tsParseImportEqualsDeclaration(s);
      if (this.isContextual(130)) {
        let i = this.parseMaybeImportPhase(s, !1);
        if (this.lookaheadCharCode() === 61)
          return this.tsParseImportEqualsDeclaration(s, i);
        r = super.parseImportSpecifiersAndAfter(s, i);
      } else
        r = super.parseImport(s);
      return r.importKind === "type" && r.specifiers.length > 1 && r.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(pt.TypeImportCannotSpecifyDefaultAndNamed,
      r), r;
    }
    parseExport(s, r) {
      if (this.match(83)) {
        let i = s;
        this.next();
        let a = null;
        return this.isContextual(130) && this.isPotentialImportPhase(!1) ? a = this.parseMaybeImportPhase(i, !1) : i.importKind = "value", this.
        tsParseImportEqualsDeclaration(i, a, !0);
      } else if (this.eat(29)) {
        let i = s;
        return i.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(i, "TSExportAssignment");
      } else if (this.eatContextual(93)) {
        let i = s;
        return this.expectContextual(128), i.id = this.parseIdentifier(), this.semicolon(), this.finishNode(i, "TSNamespaceExportDeclaration");
      } else
        return super.parseExport(s, r);
    }
    isAbstractClass() {
      return this.isContextual(124) && this.lookahead().type === 80;
    }
    parseExportDefaultExpression() {
      if (this.isAbstractClass()) {
        let s = this.startNode();
        return this.next(), s.abstract = !0, this.parseClass(s, !0, !0);
      }
      if (this.match(129)) {
        let s = this.tsParseInterfaceDeclaration(this.startNode());
        if (s) return s;
      }
      return super.parseExportDefaultExpression();
    }
    parseVarStatement(s, r, i = !1) {
      let {
        isAmbientContext: a
      } = this.state, o = super.parseVarStatement(s, r, i || a);
      if (!a) return o;
      for (let {
        id: l,
        init: u
      } of o.declarations)
        u && (r !== "const" || l.typeAnnotation ? this.raise(pt.InitializerNotAllowedInAmbientContext, u) : DMe(u, this.hasPlugin("estree")) ||
        this.raise(pt.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, u));
      return o;
    }
    parseStatementContent(s, r) {
      if (this.match(75) && this.isLookaheadContextual("enum")) {
        let i = this.startNode();
        return this.expect(75), this.tsParseEnumDeclaration(i, {
          const: !0
        });
      }
      if (this.isContextual(126))
        return this.tsParseEnumDeclaration(this.startNode());
      if (this.isContextual(129)) {
        let i = this.tsParseInterfaceDeclaration(this.startNode());
        if (i) return i;
      }
      return super.parseStatementContent(s, r);
    }
    parseAccessModifier() {
      return this.tsParseModifier(["public", "protected", "private"]);
    }
    tsHasSomeModifiers(s, r) {
      return r.some((i) => CU(i) ? s.accessibility === i : !!s[i]);
    }
    tsIsStartOfStaticBlocks() {
      return this.isContextual(106) && this.lookaheadCharCode() === 123;
    }
    parseClassMember(s, r, i) {
      let a = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
      this.tsParseModifiers({
        allowedModifiers: a,
        disallowedModifiers: ["in", "out"],
        stopOnStartOfClassStaticBlock: !0,
        errorTemplate: pt.InvalidModifierOnTypeParameterPositions
      }, r);
      let o = /* @__PURE__ */ n(() => {
        this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(r, a) && this.raise(pt.StaticBlockCannotHaveModifier,
        this.state.curPosition()), super.parseClassStaticBlock(s, r)) : this.parseClassMemberWithIsStatic(s, r, i, !!r.static);
      }, "callParseClassMemberWithIsStatic");
      r.declare ? this.tsInAmbientContext(o) : o();
    }
    parseClassMemberWithIsStatic(s, r, i, a) {
      let o = this.tsTryParseIndexSignature(r);
      if (o) {
        s.body.push(o), r.abstract && this.raise(pt.IndexSignatureHasAbstract, r), r.accessibility && this.raise(pt.IndexSignatureHasAccessibility,
        r, {
          modifier: r.accessibility
        }), r.declare && this.raise(pt.IndexSignatureHasDeclare, r), r.override && this.raise(pt.IndexSignatureHasOverride, r);
        return;
      }
      !this.state.inAbstractClass && r.abstract && this.raise(pt.NonAbstractClassHasAbstractMethod, r), r.override && (i.hadSuperClass || this.
      raise(pt.OverrideNotInSubClass, r)), super.parseClassMemberWithIsStatic(s, r, i, a);
    }
    parsePostMemberNameModifiers(s) {
      this.eat(17) && (s.optional = !0), s.readonly && this.match(10) && this.raise(pt.ClassMethodHasReadonly, s), s.declare && this.match(10) &&
      this.raise(pt.ClassMethodHasDeclare, s);
    }
    parseExpressionStatement(s, r, i) {
      return (r.type === "Identifier" ? this.tsParseExpressionStatement(s, r, i) : void 0) || super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
    }
    parseConditional(s, r, i) {
      if (!this.state.maybeInArrowParameters || !this.match(17))
        return super.parseConditional(s, r, i);
      let a = this.tryParse(() => super.parseConditional(s, r));
      return a.node ? (a.error && (this.state = a.failState), a.node) : (a.error && super.setOptionalParametersError(i, a.error), s);
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = s, a.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(a, "TSTypeCastExpression");
      }
      return s;
    }
    parseExportDeclaration(s) {
      if (!this.state.isAmbientContext && this.isContextual(125))
        return this.tsInAmbientContext(() => this.parseExportDeclaration(s));
      let r = this.state.startLoc, i = this.eatContextual(125);
      if (i && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
        throw this.raise(pt.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
      let o = $s(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(s);
      return o ? ((o.type === "TSInterfaceDeclaration" || o.type === "TSTypeAliasDeclaration" || i) && (s.exportKind = "type"), i && o.type !==
      "TSImportEqualsDeclaration" && (this.resetStartLocation(o, r), o.declare = !0), o) : null;
    }
    parseClassId(s, r, i, a) {
      if ((!r || i) && this.isContextual(113))
        return;
      super.parseClassId(s, r, i, s.declare ? 1024 : 8331);
      let o = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
      o && (s.typeParameters = o);
    }
    parseClassPropertyAnnotation(s) {
      s.optional || (this.eat(35) ? s.definite = !0 : this.eat(17) && (s.optional = !0));
      let r = this.tsTryParseTypeAnnotation();
      r && (s.typeAnnotation = r);
    }
    parseClassProperty(s) {
      if (this.parseClassPropertyAnnotation(s), this.state.isAmbientContext && !(s.readonly && !s.typeAnnotation) && this.match(29) && this.
      raise(pt.DeclareClassFieldHasInitializer, this.state.startLoc), s.abstract && this.match(29)) {
        let {
          key: r
        } = s;
        this.raise(pt.AbstractPropertyHasInitializer, this.state.startLoc, {
          propertyName: r.type === "Identifier" && !s.computed ? r.name : `[${this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(
          r.end))}]`
        });
      }
      return super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return s.abstract && this.raise(pt.PrivateElementHasAbstract, s), s.accessibility && this.raise(pt.PrivateElementHasAccessibility, s, {
        modifier: s.accessibility
      }), this.parseClassPropertyAnnotation(s), super.parseClassPrivateProperty(s);
    }
    parseClassAccessorProperty(s) {
      return this.parseClassPropertyAnnotation(s), s.optional && this.raise(pt.AccessorCannotBeOptional, s), super.parseClassAccessorProperty(
      s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      let u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      u && o && this.raise(pt.ConstructorHasTypeParameters, u);
      let {
        declare: c = !1,
        kind: p
      } = r;
      c && (p === "get" || p === "set") && this.raise(pt.DeclareAccessor, r, {
        kind: p
      }), u && (r.typeParameters = u), super.pushClassMethod(s, r, i, a, o, l);
    }
    pushClassPrivateMethod(s, r, i, a) {
      let o = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      o && (r.typeParameters = o), super.pushClassPrivateMethod(s, r, i, a);
    }
    declareClassPrivateMethodInScope(s, r) {
      s.type !== "TSDeclareMethod" && (s.type === "MethodDefinition" && !hasOwnProperty.call(s.value, "body") || super.declareClassPrivateMethodInScope(
      s, r));
    }
    parseClassSuper(s) {
      super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.tsParseTypeArgumentsInExpression()),
      this.eatContextual(113) && (s.implements = this.tsParseHeritageClause("implements"));
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      let c = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      return c && (s.typeParameters = c), super.parseObjPropValue(s, r, i, a, o, l, u);
    }
    parseFunctionParams(s, r) {
      let i = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      i && (s.typeParameters = i), super.parseFunctionParams(s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), s.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (s.definite = !0);
      let i = this.tsTryParseTypeAnnotation();
      i && (s.id.typeAnnotation = i, this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      return this.match(14) && (s.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(s, r);
    }
    parseMaybeAssign(s, r) {
      var i, a, o, l, u;
      let c, p, h;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (c = this.state.clone(), p = this.tryParse(() => super.parseMaybeAssign(s, r), c), !p.error) return p.node;
        let {
          context: m
        } = this.state, y = m[m.length - 1];
        (y === Ws.j_oTag || y === Ws.j_expr) && m.pop();
      }
      if (!((i = p) != null && i.error) && !this.match(47))
        return super.parseMaybeAssign(s, r);
      (!c || c === this.state) && (c = this.state.clone());
      let f, d = this.tryParse((m) => {
        var y, T;
        f = this.tsParseTypeParameters(this.tsParseConstModifier);
        let b = super.parseMaybeAssign(s, r);
        return (b.type !== "ArrowFunctionExpression" || (y = b.extra) != null && y.parenthesized) && m(), ((T = f) == null ? void 0 : T.params.
        length) !== 0 && this.resetStartLocationFromNode(b, f), b.typeParameters = f, b;
      }, c);
      if (!d.error && !d.aborted)
        return f && this.reportReservedArrowTypeParam(f), d.node;
      if (!p && (vU(!this.hasPlugin("jsx")), h = this.tryParse(() => super.parseMaybeAssign(s, r), c), !h.error))
        return h.node;
      if ((a = p) != null && a.node)
        return this.state = p.failState, p.node;
      if (d.node)
        return this.state = d.failState, f && this.reportReservedArrowTypeParam(f), d.node;
      if ((o = h) != null && o.node)
        return this.state = h.failState, h.node;
      throw ((l = p) == null ? void 0 : l.error) || d.error || ((u = h) == null ? void 0 : u.error);
    }
    reportReservedArrowTypeParam(s) {
      var r;
      s.params.length === 1 && !s.params[0].constraint && !((r = s.extra) != null && r.trailingComma) && this.getPluginOption("typescript", "\
disallowAmbiguousJSXLike") && this.raise(pt.ReservedArrowTypeParam, s);
    }
    parseMaybeUnary(s, r) {
      return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse((i) => {
          let a = this.tsParseTypeOrTypePredicateAnnotation(14);
          return (this.canInsertSemicolon() || !this.match(19)) && i(), a;
        });
        if (r.aborted) return;
        r.thrown || (r.error && (this.state = r.failState), s.returnType = r.node);
      }
      return super.parseArrow(s);
    }
    parseFunctionParamType(s) {
      this.eat(17) && (s.optional = !0);
      let r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r), this.resetEndLocation(s), s;
    }
    isAssignable(s, r) {
      switch (s.type) {
        case "TSTypeCastExpression":
          return this.isAssignable(s.expression, r);
        case "TSParameterProperty":
          return !0;
        default:
          return super.isAssignable(s, r);
      }
    }
    toAssignable(s, r = !1) {
      switch (s.type) {
        case "ParenthesizedExpression":
          this.toAssignableParenthesizedExpression(s, r);
          break;
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
          r ? this.expressionScope.recordArrowParameterBindingError(pt.UnexpectedTypeCastInParameter, s) : this.raise(pt.UnexpectedTypeCastInParameter,
          s), this.toAssignable(s.expression, r);
          break;
        case "AssignmentExpression":
          !r && s.left.type === "TSTypeCastExpression" && (s.left = this.typeCastToParameter(s.left));
        default:
          super.toAssignable(s, r);
      }
    }
    toAssignableParenthesizedExpression(s, r) {
      switch (s.expression.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
        case "ParenthesizedExpression":
          this.toAssignable(s.expression, r);
          break;
        default:
          super.toAssignable(s, r);
      }
    }
    checkToRestConversion(s, r) {
      switch (s.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
        case "TSNonNullExpression":
          this.checkToRestConversion(s.expression, !1);
          break;
        default:
          super.checkToRestConversion(s, r);
      }
    }
    isValidLVal(s, r, i) {
      switch (s) {
        case "TSTypeCastExpression":
          return !0;
        case "TSParameterProperty":
          return "parameter";
        case "TSNonNullExpression":
        case "TSInstantiationExpression":
          return "expression";
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
          return (i !== 64 || !r) && ["expression", !0];
        default:
          return super.isValidLVal(s, r, i);
      }
    }
    parseBindingAtom() {
      return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
    }
    parseMaybeDecoratorArguments(s, r) {
      if (this.match(47) || this.match(51)) {
        let i = this.tsParseTypeArgumentsInExpression();
        if (this.match(10)) {
          let a = super.parseMaybeDecoratorArguments(s, r);
          return a.typeParameters = i, a;
        }
        this.unexpected(null, 10);
      }
      return super.parseMaybeDecoratorArguments(s, r);
    }
    checkCommaAfterRest(s) {
      return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === s ? (this.next(), !1) : super.checkCommaAfterRest(
      s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(35) || this.match(14) || super.isClassProperty();
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(pt.TypeAnnotationAfterAssign,
      i.typeAnnotation), i;
    }
    getTokenFromCode(s) {
      if (this.state.inType) {
        if (s === 62) {
          this.finishOp(48, 1);
          return;
        }
        if (s === 60) {
          this.finishOp(47, 1);
          return;
        }
      }
      super.getTokenFromCode(s);
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TSTypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    shouldParseArrow(s) {
      return this.match(14) ? s.every((r) => this.isAssignable(r, !0)) : super.shouldParseArrow(s);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    canHaveLeadingDecorator() {
      return super.canHaveLeadingDecorator() || this.isAbstractClass();
    }
    jsxParseOpeningElementAfterName(s) {
      if (this.match(47) || this.match(51)) {
        let r = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
        r && (s.typeParameters = r);
      }
      return super.jsxParseOpeningElementAfterName(s);
    }
    getGetterSetterExpectedParamCount(s) {
      let r = super.getGetterSetterExpectedParamCount(s), a = this.getObjectOrClassMethodParams(s)[0];
      return a && this.isThisParam(a) ? r + 1 : r;
    }
    parseCatchClauseParam() {
      let s = super.parseCatchClauseParam(), r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r, this.resetEndLocation(s)), s;
    }
    tsInAmbientContext(s) {
      let {
        isAmbientContext: r,
        strict: i
      } = this.state;
      this.state.isAmbientContext = !0, this.state.strict = !1;
      try {
        return s();
      } finally {
        this.state.isAmbientContext = r, this.state.strict = i;
      }
    }
    parseClass(s, r, i) {
      let a = this.state.inAbstractClass;
      this.state.inAbstractClass = !!s.abstract;
      try {
        return super.parseClass(s, r, i);
      } finally {
        this.state.inAbstractClass = a;
      }
    }
    tsParseAbstractDeclaration(s, r) {
      if (this.match(80))
        return s.abstract = !0, this.maybeTakeDecorators(r, this.parseClass(s, !0, !1));
      if (this.isContextual(129)) {
        if (!this.hasFollowingLineBreak())
          return s.abstract = !0, this.raise(pt.NonClassMethodPropertyHasAbstractModifer, s), this.tsParseInterfaceDeclaration(s);
      } else
        this.unexpected(null, 80);
    }
    parseMethod(s, r, i, a, o, l, u) {
      let c = super.parseMethod(s, r, i, a, o, l, u);
      if (c.abstract && (this.hasPlugin("estree") ? c.value : c).body) {
        let {
          key: f
        } = c;
        this.raise(pt.AbstractMethodHasImplementation, c, {
          methodName: f.type === "Identifier" && !c.computed ? f.name : `[${this.input.slice(this.offsetToSourcePos(f.start), this.offsetToSourcePos(
          f.end))}]`
        });
      }
      return c;
    }
    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(s, r, i, a) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !1, i), this.finishNode(s, "ExportSpecifier")) : (s.exportKind = "value",
      super.parseExportSpecifier(s, r, i, a));
    }
    parseImportSpecifier(s, r, i, a, o) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !0, i), this.finishNode(s, "ImportSpecifier")) : (s.importKind = "value",
      super.parseImportSpecifier(s, r, i, a, i ? 4098 : 4096));
    }
    parseTypeOnlyImportExportSpecifier(s, r, i) {
      let a = r ? "imported" : "local", o = r ? "local" : "exported", l = s[a], u, c = !1, p = !0, h = l.loc.start;
      if (this.isContextual(93)) {
        let d = this.parseIdentifier();
        if (this.isContextual(93)) {
          let m = this.parseIdentifier();
          yo(this.state.type) ? (c = !0, l = d, u = r ? this.parseIdentifier() : this.parseModuleExportName(), p = !1) : (u = m, p = !1);
        } else yo(this.state.type) ? (p = !1, u = r ? this.parseIdentifier() : this.parseModuleExportName()) : (c = !0, l = d);
      } else yo(this.state.type) && (c = !0, r ? (l = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(l.name, l.loc.
      start, !0, !0)) : l = this.parseModuleExportName());
      c && i && this.raise(r ? pt.TypeModifierIsUsedInTypeImports : pt.TypeModifierIsUsedInTypeExports, h), s[a] = l, s[o] = u;
      let f = r ? "importKind" : "exportKind";
      s[f] = c ? "type" : "value", p && this.eatContextual(93) && (s[o] = r ? this.parseIdentifier() : this.parseModuleExportName()), s[o] ||
      (s[o] = $l(s[a])), r && this.checkIdentifier(s[o], c ? 4098 : 4096);
    }
  }, "typescript");
  function kMe(t) {
    if (t.type !== "MemberExpression") return !1;
    let {
      computed: e,
      property: s
    } = t;
    return e && s.type !== "StringLiteral" && (s.type !== "TemplateLiteral" || s.expressions.length > 0) ? !1 : WU(t.object);
  }
  n(kMe, "isPossiblyLiteralEnum");
  function DMe(t, e) {
    var s;
    let {
      type: r
    } = t;
    if ((s = t.extra) != null && s.parenthesized)
      return !1;
    if (e) {
      if (r === "Literal") {
        let {
          value: i
        } = t;
        if (typeof i == "string" || typeof i == "boolean")
          return !0;
      }
    } else if (r === "StringLiteral" || r === "BooleanLiteral")
      return !0;
    return !!(VU(t, e) || OMe(t, e) || r === "TemplateLiteral" && t.expressions.length === 0 || kMe(t));
  }
  n(DMe, "isValidAmbientConstInitializer");
  function VU(t, e) {
    return e ? t.type === "Literal" && (typeof t.value == "number" || "bigint" in t) : t.type === "NumericLiteral" || t.type === "BigIntLite\
ral";
  }
  n(VU, "isNumber");
  function OMe(t, e) {
    if (t.type === "UnaryExpression") {
      let {
        operator: s,
        argument: r
      } = t;
      if (s === "-" && VU(r, e))
        return !0;
    }
    return !1;
  }
  n(OMe, "isNegativeNumber");
  function WU(t) {
    return t.type === "Identifier" ? !0 : t.type !== "MemberExpression" || t.computed ? !1 : WU(t.object);
  }
  n(WU, "isUncomputedMemberExpressionChain");
  var wU = Wl`placeholders`({
    ClassNameIsRequired: "A class name is required.",
    UnexpectedSpace: "Unexpected space in placeholder."
  }), _Me = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "PlaceholdersParserMixin");
    }
    parsePlaceholder(s) {
      if (this.match(133)) {
        let r = this.startNode();
        return this.next(), this.assertNoSpace(), r.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(133), this.finishPlaceholder(
        r, s);
      }
    }
    finishPlaceholder(s, r) {
      let i = s;
      return (!i.expectedNode || !i.type) && (i = this.finishNode(i, "Placeholder")), i.expectedNode = r, i;
    }
    getTokenFromCode(s) {
      s === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(133, 2) : super.getTokenFromCode(s);
    }
    parseExprAtom(s) {
      return this.parsePlaceholder("Expression") || super.parseExprAtom(s);
    }
    parseIdentifier(s) {
      return this.parsePlaceholder("Identifier") || super.parseIdentifier(s);
    }
    checkReservedWord(s, r, i, a) {
      s !== void 0 && super.checkReservedWord(s, r, i, a);
    }
    parseBindingAtom() {
      return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
    }
    isValidLVal(s, r, i) {
      return s === "Placeholder" || super.isValidLVal(s, r, i);
    }
    toAssignable(s, r) {
      s && s.type === "Placeholder" && s.expectedNode === "Expression" ? s.expectedNode = "Pattern" : super.toAssignable(s, r);
    }
    chStartsBindingIdentifier(s, r) {
      return !!(super.chStartsBindingIdentifier(s, r) || this.lookahead().type === 133);
    }
    verifyBreakContinue(s, r) {
      s.label && s.label.type === "Placeholder" || super.verifyBreakContinue(s, r);
    }
    parseExpressionStatement(s, r) {
      var i;
      if (r.type !== "Placeholder" || (i = r.extra) != null && i.parenthesized)
        return super.parseExpressionStatement(s, r);
      if (this.match(14)) {
        let o = s;
        return o.label = this.finishPlaceholder(r, "Identifier"), this.next(), o.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(),
        this.finishNode(o, "LabeledStatement");
      }
      this.semicolon();
      let a = s;
      return a.name = r.name, this.finishPlaceholder(a, "Statement");
    }
    parseBlock(s, r, i) {
      return this.parsePlaceholder("BlockStatement") || super.parseBlock(s, r, i);
    }
    parseFunctionId(s) {
      return this.parsePlaceholder("Identifier") || super.parseFunctionId(s);
    }
    parseClass(s, r, i) {
      let a = r ? "ClassDeclaration" : "ClassExpression";
      this.next();
      let o = this.state.strict, l = this.parsePlaceholder("Identifier");
      if (l)
        if (this.match(81) || this.match(133) || this.match(5))
          s.id = l;
        else {
          if (i || !r)
            return s.id = null, s.body = this.finishPlaceholder(l, "ClassBody"), this.finishNode(s, a);
          throw this.raise(wU.ClassNameIsRequired, this.state.startLoc);
        }
      else
        this.parseClassId(s, r, i);
      return super.parseClassSuper(s), s.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!s.superClass, o), this.finishNode(
      s, a);
    }
    parseExport(s, r) {
      let i = this.parsePlaceholder("Identifier");
      if (!i) return super.parseExport(s, r);
      let a = s;
      if (!this.isContextual(98) && !this.match(12))
        return a.specifiers = [], a.source = null, a.declaration = this.finishPlaceholder(i, "Declaration"), this.finishNode(a, "ExportNamed\
Declaration");
      this.expectPlugin("exportDefaultFrom");
      let o = this.startNode();
      return o.exported = i, a.specifiers = [this.finishNode(o, "ExportDefaultSpecifier")], super.parseExport(a, r);
    }
    isExportDefaultSpecifier() {
      if (this.match(65)) {
        let s = this.nextTokenStart();
        if (this.isUnparsedContextual(s, "from") && this.input.startsWith(kc(133), this.nextTokenStartSince(s + 4)))
          return !0;
      }
      return super.isExportDefaultSpecifier();
    }
    maybeParseExportDefaultSpecifier(s, r) {
      var i;
      return (i = s.specifiers) != null && i.length ? !0 : super.maybeParseExportDefaultSpecifier(s, r);
    }
    checkExport(s) {
      let {
        specifiers: r
      } = s;
      r != null && r.length && (s.specifiers = r.filter((i) => i.exported.type === "Placeholder")), super.checkExport(s), s.specifiers = r;
    }
    parseImport(s) {
      let r = this.parsePlaceholder("Identifier");
      if (!r) return super.parseImport(s);
      if (s.specifiers = [], !this.isContextual(98) && !this.match(12))
        return s.source = this.finishPlaceholder(r, "StringLiteral"), this.semicolon(), this.finishNode(s, "ImportDeclaration");
      let i = this.startNodeAtNode(r);
      return i.local = r, s.specifiers.push(this.finishNode(i, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(
      s) || this.parseNamedImportSpecifiers(s)), this.expectContextual(98), s.source = this.parseImportSource(), this.semicolon(), this.finishNode(
      s, "ImportDeclaration");
    }
    parseImportSource() {
      return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
    }
    assertNoSpace() {
      this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index) && this.raise(wU.UnexpectedSpace, this.state.lastTokEndLoc);
    }
  }, "placeholders"), LMe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "V8IntrinsicMixin");
    }
    parseV8Intrinsic() {
      if (this.match(54)) {
        let s = this.state.startLoc, r = this.startNode();
        if (this.next(), $s(this.state.type)) {
          let i = this.parseIdentifierName(), a = this.createIdentifier(r, i);
          if (a.type = "V8IntrinsicIdentifier", this.match(10))
            return a;
        }
        this.unexpected(s);
      }
    }
    parseExprAtom(s) {
      return this.parseV8Intrinsic() || super.parseExprAtom(s);
    }
  }, "v8intrinsic"), IU = ["minimal", "fsharp", "hack", "smart"], NU = ["^^", "@@", "^", "%", "#"];
  function BMe(t) {
    if (t.has("decorators")) {
      if (t.has("decorators-legacy"))
        throw new Error("Cannot use the decorators and decorators-legacy plugin together");
      let s = t.get("decorators").decoratorsBeforeExport;
      if (s != null && typeof s != "boolean")
        throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
      let r = t.get("decorators").allowCallParenthesized;
      if (r != null && typeof r != "boolean")
        throw new Error("'allowCallParenthesized' must be a boolean.");
    }
    if (t.has("flow") && t.has("typescript"))
      throw new Error("Cannot combine flow and typescript plugins.");
    if (t.has("placeholders") && t.has("v8intrinsic"))
      throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
    if (t.has("pipelineOperator")) {
      var e;
      let s = t.get("pipelineOperator").proposal;
      if (!IU.includes(s)) {
        let i = IU.map((a) => `"${a}"`).join(", ");
        throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${i}.`);
      }
      let r = ((e = t.get("recordAndTuple")) == null ? void 0 : e.syntaxType) === "hash";
      if (s === "hack") {
        if (t.has("placeholders"))
          throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
        if (t.has("v8intrinsic"))
          throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
        let i = t.get("pipelineOperator").topicToken;
        if (!NU.includes(i)) {
          let a = NU.map((o) => `"${o}"`).join(", ");
          throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${a}\
.`);
        }
        if (i === "#" && r)
          throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["\
recordAndTuple", t.get("recordAndTuple")])}\`.`);
      } else if (s === "smart" && r)
        throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", t.
        get("recordAndTuple")])}\`.`);
    }
    if (t.has("moduleAttributes")) {
      if (t.has("deprecatedImportAssert") || t.has("importAssertions"))
        throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");
      if (t.get("moduleAttributes").version !== "may-2020")
        throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the on\
ly supported value is 'may-2020'.");
    }
    if (t.has("importAssertions") && t.has("deprecatedImportAssert"))
      throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");
    if (!t.has("deprecatedImportAssert") && t.has("importAttributes") && t.get("importAttributes").deprecatedAssertSyntax && t.set("deprecat\
edImportAssert", {}), t.has("recordAndTuple")) {
      let s = t.get("recordAndTuple").syntaxType;
      if (s != null) {
        let r = ["hash", "bar"];
        if (!r.includes(s))
          throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + r.map((i) => `'${i}'`).join(", "));
      }
    }
    if (t.has("asyncDoExpressions") && !t.has("doExpressions")) {
      let s = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
      throw s.missingPlugins = "doExpressions", s;
    }
    if (t.has("optionalChainingAssign") && t.get("optionalChainingAssign").version !== "2023-07")
      throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, th\
e only supported value is '2023-07'.");
  }
  n(BMe, "validatePlugins");
  var $U = {
    estree: FBe,
    jsx: vMe,
    flow: EMe,
    typescript: NMe,
    v8intrinsic: LMe,
    placeholders: _Me
  }, MMe = Object.keys($U), HI = class extends $I {
    static {
      n(this, "ExpressionParser");
    }
    checkProto(e, s, r, i) {
      if (e.type === "SpreadElement" || this.isObjectMethod(e) || e.computed || e.shorthand)
        return;
      let a = e.key;
      if ((a.type === "Identifier" ? a.name : a.value) === "__proto__") {
        if (s) {
          this.raise(G.RecordNoProto, a);
          return;
        }
        r.used && (i ? i.doubleProtoLoc === null && (i.doubleProtoLoc = a.loc.start) : this.raise(G.DuplicateProto, a)), r.used = !0;
      }
    }
    shouldExitDescending(e, s) {
      return e.type === "ArrowFunctionExpression" && this.offsetToSourcePos(e.start) === s;
    }
    getExpression() {
      this.enterInitialScopes(), this.nextToken();
      let e = this.parseExpression();
      return this.match(140) || this.unexpected(), this.finalizeRemainingComments(), e.comments = this.comments, e.errors = this.state.errors,
      this.optionFlags & 128 && (e.tokens = this.tokens), e;
    }
    parseExpression(e, s) {
      return e ? this.disallowInAnd(() => this.parseExpressionBase(s)) : this.allowInAnd(() => this.parseExpressionBase(s));
    }
    parseExpressionBase(e) {
      let s = this.state.startLoc, r = this.parseMaybeAssign(e);
      if (this.match(12)) {
        let i = this.startNodeAt(s);
        for (i.expressions = [r]; this.eat(12); )
          i.expressions.push(this.parseMaybeAssign(e));
        return this.toReferencedList(i.expressions), this.finishNode(i, "SequenceExpression");
      }
      return r;
    }
    parseMaybeAssignDisallowIn(e, s) {
      return this.disallowInAnd(() => this.parseMaybeAssign(e, s));
    }
    parseMaybeAssignAllowIn(e, s) {
      return this.allowInAnd(() => this.parseMaybeAssign(e, s));
    }
    setOptionalParametersError(e, s) {
      var r;
      e.optionalParametersLoc = (r = s?.loc) != null ? r : this.state.startLoc;
    }
    parseMaybeAssign(e, s) {
      let r = this.state.startLoc;
      if (this.isContextual(108) && this.prodParam.hasYield) {
        let l = this.parseYield();
        return s && (l = s.call(this, l, r)), l;
      }
      let i;
      e ? i = !1 : (e = new ld(), i = !0);
      let {
        type: a
      } = this.state;
      (a === 10 || $s(a)) && (this.state.potentialArrowAt = this.state.start);
      let o = this.parseMaybeConditional(e);
      if (s && (o = s.call(this, o, r)), KBe(this.state.type)) {
        let l = this.startNodeAt(r), u = this.state.value;
        if (l.operator = u, this.match(29)) {
          this.toAssignable(o, !0), l.left = o;
          let c = r.index;
          e.doubleProtoLoc != null && e.doubleProtoLoc.index >= c && (e.doubleProtoLoc = null), e.shorthandAssignLoc != null && e.shorthandAssignLoc.
          index >= c && (e.shorthandAssignLoc = null), e.privateKeyLoc != null && e.privateKeyLoc.index >= c && (this.checkDestructuringPrivate(
          e), e.privateKeyLoc = null);
        } else
          l.left = o;
        return this.next(), l.right = this.parseMaybeAssign(), this.checkLVal(o, this.finishNode(l, "AssignmentExpression")), l;
      } else i && this.checkExpressionErrors(e, !0);
      return o;
    }
    parseMaybeConditional(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprOps(e);
      return this.shouldExitDescending(i, r) ? i : this.parseConditional(i, s, e);
    }
    parseConditional(e, s, r) {
      if (this.eat(17)) {
        let i = this.startNodeAt(s);
        return i.test = e, i.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), i.alternate = this.parseMaybeAssign(), this.finishNode(
        i, "ConditionalExpression");
      }
      return e;
    }
    parseMaybeUnaryOrPrivate(e) {
      return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(e);
    }
    parseExprOps(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseMaybeUnaryOrPrivate(e);
      return this.shouldExitDescending(i, r) ? i : this.parseExprOp(i, s, -1);
    }
    parseExprOp(e, s, r) {
      if (this.isPrivateName(e)) {
        let a = this.getPrivateNameSV(e);
        (r >= Wb(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(G.PrivateInExpectedIn, e, {
          identifierName: a
        }), this.classScope.usePrivateName(a, e.loc.start);
      }
      let i = this.state.type;
      if (WBe(i) && (this.prodParam.hasIn || !this.match(58))) {
        let a = Wb(i);
        if (a > r) {
          if (i === 39) {
            if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
              return e;
            this.checkPipelineAtInfixOperator(e, s);
          }
          let o = this.startNodeAt(s);
          o.left = e, o.operator = this.state.value;
          let l = i === 41 || i === 42, u = i === 40;
          if (u && (a = Wb(42)), this.next(), i === 39 && this.hasPlugin(["pipelineOperator", {
            proposal: "minimal"
          }]) && this.state.type === 96 && this.prodParam.hasAwait)
            throw this.raise(G.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
          o.right = this.parseExprOpRightExpr(i, a);
          let c = this.finishNode(o, l || u ? "LogicalExpression" : "BinaryExpression"), p = this.state.type;
          if (u && (p === 41 || p === 42) || l && p === 40)
            throw this.raise(G.MixingCoalesceWithLogical, this.state.startLoc);
          return this.parseExprOp(c, s, r);
        }
      }
      return e;
    }
    parseExprOpRightExpr(e, s) {
      let r = this.state.startLoc;
      switch (e) {
        case 39:
          switch (this.getPluginOption("pipelineOperator", "proposal")) {
            case "hack":
              return this.withTopicBindingContext(() => this.parseHackPipeBody());
            case "fsharp":
              return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(s));
          }
          if (this.getPluginOption("pipelineOperator", "proposal") === "smart")
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(108))
                throw this.raise(G.PipeBodyIsTighter, this.state.startLoc);
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(e, s), r);
            });
        default:
          return this.parseExprOpBaseRightExpr(e, s);
      }
    }
    parseExprOpBaseRightExpr(e, s) {
      let r = this.state.startLoc;
      return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, XBe(e) ? s - 1 : s);
    }
    parseHackPipeBody() {
      var e;
      let {
        startLoc: s
      } = this.state, r = this.parseMaybeAssign();
      return kBe.has(r.type) && !((e = r.extra) != null && e.parenthesized) && this.raise(G.PipeUnparenthesizedBody, s, {
        type: r.type
      }), this.topicReferenceWasUsedInCurrentContext() || this.raise(G.PipeTopicUnused, s), r;
    }
    checkExponentialAfterUnary(e) {
      this.match(57) && this.raise(G.UnexpectedTokenUnaryExponentiation, e.argument);
    }
    parseMaybeUnary(e, s) {
      let r = this.state.startLoc, i = this.isContextual(96);
      if (i && this.recordAwaitIfAllowed()) {
        this.next();
        let u = this.parseAwait(r);
        return s || this.checkExponentialAfterUnary(u), u;
      }
      let a = this.match(34), o = this.startNode();
      if (HBe(this.state.type)) {
        o.operator = this.state.value, o.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
        let u = this.match(89);
        if (this.next(), o.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(e, !0), this.state.strict && u) {
          let c = o.argument;
          c.type === "Identifier" ? this.raise(G.StrictDelete, o) : this.hasPropertyAsPrivateName(c) && this.raise(G.DeletePrivateField, o);
        }
        if (!a)
          return s || this.checkExponentialAfterUnary(o), this.finishNode(o, "UnaryExpression");
      }
      let l = this.parseUpdate(o, a, e);
      if (i) {
        let {
          type: u
        } = this.state;
        if ((this.hasPlugin("v8intrinsic") ? II(u) : II(u) && !this.match(54)) && !this.isAmbiguousAwait())
          return this.raiseOverwrite(G.AwaitNotInAsyncContext, r), this.parseAwait(r);
      }
      return l;
    }
    parseUpdate(e, s, r) {
      if (s) {
        let o = e;
        return this.checkLVal(o.argument, this.finishNode(o, "UpdateExpression")), e;
      }
      let i = this.state.startLoc, a = this.parseExprSubscripts(r);
      if (this.checkExpressionErrors(r, !1)) return a;
      for (; $Be(this.state.type) && !this.canInsertSemicolon(); ) {
        let o = this.startNodeAt(i);
        o.operator = this.state.value, o.prefix = !1, o.argument = a, this.next(), this.checkLVal(a, a = this.finishNode(o, "UpdateExpressio\
n"));
      }
      return a;
    }
    parseExprSubscripts(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprAtom(e);
      return this.shouldExitDescending(i, r) ? i : this.parseSubscripts(i, s);
    }
    parseSubscripts(e, s, r) {
      let i = {
        optionalChainMember: !1,
        maybeAsyncArrow: this.atPossibleAsyncArrow(e),
        stop: !1
      };
      do
        e = this.parseSubscript(e, s, r, i), i.maybeAsyncArrow = !1;
      while (!i.stop);
      return e;
    }
    parseSubscript(e, s, r, i) {
      let {
        type: a
      } = this.state;
      if (!r && a === 15)
        return this.parseBind(e, s, r, i);
      if (Jb(a))
        return this.parseTaggedTemplateExpression(e, s, i);
      let o = !1;
      if (a === 18) {
        if (r && (this.raise(G.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
          return i.stop = !0, e;
        i.optionalChainMember = o = !0, this.next();
      }
      if (!r && this.match(10))
        return this.parseCoverCallAndAsyncArrowHead(e, s, i, o);
      {
        let l = this.eat(0);
        return l || o || this.eat(16) ? this.parseMember(e, s, i, l, o) : (i.stop = !0, e);
      }
    }
    parseMember(e, s, r, i, a) {
      let o = this.startNodeAt(s);
      return o.object = e, o.computed = i, i ? (o.property = this.parseExpression(), this.expect(3)) : this.match(139) ? (e.type === "Super" &&
      this.raise(G.SuperPrivateField, s), this.classScope.usePrivateName(this.state.value, this.state.startLoc), o.property = this.parsePrivateName()) :
      o.property = this.parseIdentifier(!0), r.optionalChainMember ? (o.optional = a, this.finishNode(o, "OptionalMemberExpression")) : this.
      finishNode(o, "MemberExpression");
    }
    parseBind(e, s, r, i) {
      let a = this.startNodeAt(s);
      return a.object = e, this.next(), a.callee = this.parseNoCallExpr(), i.stop = !0, this.parseSubscripts(this.finishNode(a, "BindExpress\
ion"), s, r);
    }
    parseCoverCallAndAsyncArrowHead(e, s, r, i) {
      let a = this.state.maybeInArrowParameters, o = null;
      this.state.maybeInArrowParameters = !0, this.next();
      let l = this.startNodeAt(s);
      l.callee = e;
      let {
        maybeAsyncArrow: u,
        optionalChainMember: c
      } = r;
      u && (this.expressionScope.enter(mMe()), o = new ld()), c && (l.optional = i), i ? l.arguments = this.parseCallExpressionArguments(11) :
      l.arguments = this.parseCallExpressionArguments(11, e.type !== "Super", l, o);
      let p = this.finishCallExpression(l, c);
      return u && this.shouldParseAsyncArrow() && !i ? (r.stop = !0, this.checkDestructuringPrivate(o), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), p = this.parseAsyncArrowFromCallExpression(this.startNodeAt(s), p)) : (u && (this.checkExpressionErrors(o,
      !0), this.expressionScope.exit()), this.toReferencedArguments(p)), this.state.maybeInArrowParameters = a, p;
    }
    toReferencedArguments(e, s) {
      this.toReferencedListDeep(e.arguments, s);
    }
    parseTaggedTemplateExpression(e, s, r) {
      let i = this.startNodeAt(s);
      return i.tag = e, i.quasi = this.parseTemplate(!0), r.optionalChainMember && this.raise(G.OptionalChainingNoTemplate, s), this.finishNode(
      i, "TaggedTemplateExpression");
    }
    atPossibleAsyncArrow(e) {
      return e.type === "Identifier" && e.name === "async" && this.state.lastTokEndLoc.index === e.end && !this.canInsertSemicolon() && e.end -
      e.start === 5 && this.offsetToSourcePos(e.start) === this.state.potentialArrowAt;
    }
    finishCallExpression(e, s) {
      if (e.callee.type === "Import")
        if (e.arguments.length === 0 || e.arguments.length > 2)
          this.raise(G.ImportCallArity, e);
        else
          for (let r of e.arguments)
            r.type === "SpreadElement" && this.raise(G.ImportCallSpreadArgument, r);
      return this.finishNode(e, s ? "OptionalCallExpression" : "CallExpression");
    }
    parseCallExpressionArguments(e, s, r, i) {
      let a = [], o = !0, l = this.state.inFSharpPipelineDirectBody;
      for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          r && this.addTrailingCommaExtraToNode(r), this.next();
          break;
        }
        a.push(this.parseExprListItem(!1, i, s));
      }
      return this.state.inFSharpPipelineDirectBody = l, a;
    }
    shouldParseAsyncArrow() {
      return this.match(19) && !this.canInsertSemicolon();
    }
    parseAsyncArrowFromCallExpression(e, s) {
      var r;
      return this.resetPreviousNodeTrailingComments(s), this.expect(19), this.parseArrowExpression(e, s.arguments, !0, (r = s.extra) == null ?
      void 0 : r.trailingCommaLoc), s.innerComments && sg(e, s.innerComments), s.callee.trailingComments && sg(e, s.callee.trailingComments),
      e;
    }
    parseNoCallExpr() {
      let e = this.state.startLoc;
      return this.parseSubscripts(this.parseExprAtom(), e, !0);
    }
    parseExprAtom(e) {
      let s, r = null, {
        type: i
      } = this.state;
      switch (i) {
        case 79:
          return this.parseSuper();
        case 83:
          return s = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(s) : this.match(10) ? this.optionFlags & 256 ?
          this.parseImportCall(s) : this.finishNode(s, "Import") : (this.raise(G.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(
          s, "Import"));
        case 78:
          return s = this.startNode(), this.next(), this.finishNode(s, "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: {
          let a = this.state.potentialArrowAt === this.state.start;
          return this.parseParenAndDistinguishExpression(a);
        }
        case 2:
        case 1:
          return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
        case 0:
          return this.parseArrayLike(3, !0, !1, e);
        case 6:
        case 7:
          return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
        case 5:
          return this.parseObjectLike(8, !1, !1, e);
        case 68:
          return this.parseFunctionOrFunctionSent();
        case 26:
          r = this.parseDecorators();
        case 80:
          return this.parseClass(this.maybeTakeDecorators(r, this.startNode()), !1);
        case 77:
          return this.parseNewOrNewTarget();
        case 25:
        case 24:
          return this.parseTemplate(!1);
        case 15: {
          s = this.startNode(), this.next(), s.object = null;
          let a = s.callee = this.parseNoCallExpr();
          if (a.type === "MemberExpression")
            return this.finishNode(s, "BindExpression");
          throw this.raise(G.UnsupportedBind, a);
        }
        case 139:
          return this.raise(G.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: {
          let a = this.getPluginOption("pipelineOperator", "proposal");
          if (a)
            return this.parseTopicReference(a);
          this.unexpected();
          break;
        }
        case 47: {
          let a = this.input.codePointAt(this.nextTokenStart());
          Vl(a) || a === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
          break;
        }
        default:
          if (i === 137)
            return this.parseDecimalLiteral(this.state.value);
          if ($s(i)) {
            if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
              return this.parseModuleExpression();
            let a = this.state.potentialArrowAt === this.state.start, o = this.state.containsEsc, l = this.parseIdentifier();
            if (!o && l.name === "async" && !this.canInsertSemicolon()) {
              let {
                type: u
              } = this.state;
              if (u === 68)
                return this.resetPreviousNodeTrailingComments(l), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(l));
              if ($s(u))
                return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(l)) : l;
              if (u === 90)
                return this.resetPreviousNodeTrailingComments(l), this.parseDo(this.startNodeAtNode(l), !0);
            }
            return a && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(l), [l],
            !1)) : l;
          } else
            this.unexpected();
      }
    }
    parseTopicReferenceThenEqualsSign(e, s) {
      let r = this.getPluginOption("pipelineOperator", "proposal");
      if (r)
        return this.state.type = e, this.state.value = s, this.state.pos--, this.state.end--, this.state.endLoc = Tn(this.state.endLoc, -1),
        this.parseTopicReference(r);
      this.unexpected();
    }
    parseTopicReference(e) {
      let s = this.startNode(), r = this.state.startLoc, i = this.state.type;
      return this.next(), this.finishTopicReference(s, r, e, i);
    }
    finishTopicReference(e, s, r, i) {
      if (this.testTopicReferenceConfiguration(r, s, i))
        return r === "hack" ? (this.topicReferenceIsAllowedInCurrentContext() || this.raise(G.PipeTopicUnbound, s), this.registerTopicReference(),
        this.finishNode(e, "TopicReference")) : (this.topicReferenceIsAllowedInCurrentContext() || this.raise(G.PrimaryTopicNotAllowed, s), this.
        registerTopicReference(), this.finishNode(e, "PipelinePrimaryTopicReference"));
      throw this.raise(G.PipeTopicUnconfiguredToken, s, {
        token: kc(i)
      });
    }
    testTopicReferenceConfiguration(e, s, r) {
      switch (e) {
        case "hack":
          return this.hasPlugin(["pipelineOperator", {
            topicToken: kc(r)
          }]);
        case "smart":
          return r === 27;
        default:
          throw this.raise(G.PipeTopicRequiresHackPipes, s);
      }
    }
    parseAsyncArrowUnaryFunction(e) {
      this.prodParam.enter($b(!0, this.prodParam.hasYield));
      let s = [this.parseIdentifier()];
      return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(G.LineTerminatorBeforeArrow, this.state.curPosition()), this.
      expect(19), this.parseArrowExpression(e, s, !0);
    }
    parseDo(e, s) {
      this.expectPlugin("doExpressions"), s && this.expectPlugin("asyncDoExpressions"), e.async = s, this.next();
      let r = this.state.labels;
      return this.state.labels = [], s ? (this.prodParam.enter(2), e.body = this.parseBlock(), this.prodParam.exit()) : e.body = this.parseBlock(),
      this.state.labels = r, this.finishNode(e, "DoExpression");
    }
    parseSuper() {
      let e = this.startNode();
      return this.next(), this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16) ? this.raise(G.SuperNotAllowed, e) : !this.
      scope.allowSuper && !(this.optionFlags & 16) && this.raise(G.UnexpectedSuper, e), !this.match(10) && !this.match(0) && !this.match(16) &&
      this.raise(G.UnsupportedSuper, e), this.finishNode(e, "Super");
    }
    parsePrivateName() {
      let e = this.startNode(), s = this.startNodeAt(Tn(this.state.startLoc, 1)), r = this.state.value;
      return this.next(), e.id = this.createIdentifier(s, r), this.finishNode(e, "PrivateName");
    }
    parseFunctionOrFunctionSent() {
      let e = this.startNode();
      if (this.next(), this.prodParam.hasYield && this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "function");
        return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.
        parseMetaProperty(e, s, "sent");
      }
      return this.parseFunction(e);
    }
    parseMetaProperty(e, s, r) {
      e.meta = s;
      let i = this.state.containsEsc;
      return e.property = this.parseIdentifier(!0), (e.property.name !== r || i) && this.raise(G.UnsupportedMetaProperty, e.property, {
        target: s.name,
        onlyValidPropertyName: r
      }), this.finishNode(e, "MetaProperty");
    }
    parseImportMetaProperty(e) {
      let s = this.createIdentifier(this.startNodeAtNode(e), "import");
      if (this.next(), this.isContextual(101))
        this.inModule || this.raise(G.ImportMetaOutsideModule, s), this.sawUnambiguousESM = !0;
      else if (this.isContextual(105) || this.isContextual(97)) {
        let r = this.isContextual(105);
        if (this.expectPlugin(r ? "sourcePhaseImports" : "deferredImportEvaluation"), !(this.optionFlags & 256))
          throw this.raise(G.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
            phase: this.state.value
          });
        return this.next(), e.phase = r ? "source" : "defer", this.parseImportCall(e);
      }
      return this.parseMetaProperty(e, s, "meta");
    }
    parseLiteralAtNode(e, s, r) {
      return this.addExtra(r, "rawValue", e), this.addExtra(r, "raw", this.input.slice(this.offsetToSourcePos(r.start), this.state.end)), r.
      value = e, this.next(), this.finishNode(r, s);
    }
    parseLiteral(e, s) {
      let r = this.startNode();
      return this.parseLiteralAtNode(e, s, r);
    }
    parseStringLiteral(e) {
      return this.parseLiteral(e, "StringLiteral");
    }
    parseNumericLiteral(e) {
      return this.parseLiteral(e, "NumericLiteral");
    }
    parseBigIntLiteral(e) {
      return this.parseLiteral(e, "BigIntLiteral");
    }
    parseDecimalLiteral(e) {
      return this.parseLiteral(e, "DecimalLiteral");
    }
    parseRegExpLiteral(e) {
      let s = this.startNode();
      return this.addExtra(s, "raw", this.input.slice(this.offsetToSourcePos(s.start), this.state.end)), s.pattern = e.pattern, s.flags = e.
      flags, this.next(), this.finishNode(s, "RegExpLiteral");
    }
    parseBooleanLiteral(e) {
      let s = this.startNode();
      return s.value = e, this.next(), this.finishNode(s, "BooleanLiteral");
    }
    parseNullLiteral() {
      let e = this.startNode();
      return this.next(), this.finishNode(e, "NullLiteral");
    }
    parseParenAndDistinguishExpression(e) {
      let s = this.state.startLoc, r;
      this.next(), this.expressionScope.enter(dMe());
      let i = this.state.maybeInArrowParameters, a = this.state.inFSharpPipelineDirectBody;
      this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
      let o = this.state.startLoc, l = [], u = new ld(), c = !0, p, h;
      for (; !this.match(11); ) {
        if (c)
          c = !1;
        else if (this.expect(12, u.optionalParametersLoc === null ? null : u.optionalParametersLoc), this.match(11)) {
          h = this.state.startLoc;
          break;
        }
        if (this.match(21)) {
          let m = this.state.startLoc;
          if (p = this.state.startLoc, l.push(this.parseParenItem(this.parseRestBinding(), m)), !this.checkCommaAfterRest(41))
            break;
        } else
          l.push(this.parseMaybeAssignAllowIn(u, this.parseParenItem));
      }
      let f = this.state.lastTokEndLoc;
      this.expect(11), this.state.maybeInArrowParameters = i, this.state.inFSharpPipelineDirectBody = a;
      let d = this.startNodeAt(s);
      return e && this.shouldParseArrow(l) && (d = this.parseArrow(d)) ? (this.checkDestructuringPrivate(u), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), this.parseArrowExpression(d, l, !1), d) : (this.expressionScope.exit(), l.length || this.unexpected(this.
      state.lastTokStartLoc), h && this.unexpected(h), p && this.unexpected(p), this.checkExpressionErrors(u, !0), this.toReferencedListDeep(
      l, !0), l.length > 1 ? (r = this.startNodeAt(o), r.expressions = l, this.finishNode(r, "SequenceExpression"), this.resetEndLocation(r,
      f)) : r = l[0], this.wrapParenthesis(s, r));
    }
    wrapParenthesis(e, s) {
      if (!(this.optionFlags & 512))
        return this.addExtra(s, "parenthesized", !0), this.addExtra(s, "parenStart", e.index), this.takeSurroundingComments(s, e.index, this.
        state.lastTokEndLoc.index), s;
      let r = this.startNodeAt(e);
      return r.expression = s, this.finishNode(r, "ParenthesizedExpression");
    }
    shouldParseArrow(e) {
      return !this.canInsertSemicolon();
    }
    parseArrow(e) {
      if (this.eat(19))
        return e;
    }
    parseParenItem(e, s) {
      return e;
    }
    parseNewOrNewTarget() {
      let e = this.startNode();
      if (this.next(), this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "new");
        this.next();
        let r = this.parseMetaProperty(e, s, "target");
        return !this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4) && this.raise(G.UnexpectedNewTarget, r), r;
      }
      return this.parseNew(e);
    }
    parseNew(e) {
      if (this.parseNewCallee(e), this.eat(10)) {
        let s = this.parseExprList(11);
        this.toReferencedList(s), e.arguments = s;
      } else
        e.arguments = [];
      return this.finishNode(e, "NewExpression");
    }
    parseNewCallee(e) {
      let s = this.match(83), r = this.parseNoCallExpr();
      e.callee = r, s && (r.type === "Import" || r.type === "ImportExpression") && this.raise(G.ImportCallNotNewExpression, r);
    }
    parseTemplateElement(e) {
      let {
        start: s,
        startLoc: r,
        end: i,
        value: a
      } = this.state, o = s + 1, l = this.startNodeAt(Tn(r, 1));
      a === null && (e || this.raise(G.InvalidEscapeSequenceTemplate, Tn(this.state.firstInvalidTemplateEscapePos, 1)));
      let u = this.match(24), c = u ? -1 : -2, p = i + c;
      l.value = {
        raw: this.input.slice(o, p).replace(/\r\n?/g, `
`),
        cooked: a === null ? null : a.slice(1, c)
      }, l.tail = u, this.next();
      let h = this.finishNode(l, "TemplateElement");
      return this.resetEndLocation(h, Tn(this.state.lastTokEndLoc, c)), h;
    }
    parseTemplate(e) {
      let s = this.startNode(), r = this.parseTemplateElement(e), i = [r], a = [];
      for (; !r.tail; )
        a.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), i.push(r = this.parseTemplateElement(e));
      return s.expressions = a, s.quasis = i, this.finishNode(s, "TemplateLiteral");
    }
    parseTemplateSubstitution() {
      return this.parseExpression();
    }
    parseObjectLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = /* @__PURE__ */ Object.create(null), l = !0, u = this.startNode();
      for (u.properties = [], this.next(); !this.match(e); ) {
        if (l)
          l = !1;
        else if (this.expect(12), this.match(e)) {
          this.addTrailingCommaExtraToNode(u);
          break;
        }
        let p;
        s ? p = this.parseBindingProperty() : (p = this.parsePropertyDefinition(i), this.checkProto(p, r, o, i)), r && !this.isObjectProperty(
        p) && p.type !== "SpreadElement" && this.raise(G.InvalidRecordProperty, p), p.shorthand && this.addExtra(p, "shorthand", !0), u.properties.
        push(p);
      }
      this.next(), this.state.inFSharpPipelineDirectBody = a;
      let c = "ObjectExpression";
      return s ? c = "ObjectPattern" : r && (c = "RecordExpression"), this.finishNode(u, c);
    }
    addTrailingCommaExtraToNode(e) {
      this.addExtra(e, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(e, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
    }
    maybeAsyncOrAccessorProp(e) {
      return !e.computed && e.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
    }
    parsePropertyDefinition(e) {
      let s = [];
      if (this.match(26))
        for (this.hasPlugin("decorators") && this.raise(G.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
          s.push(this.parseDecorator());
      let r = this.startNode(), i = !1, a = !1, o;
      if (this.match(21))
        return s.length && this.unexpected(), this.parseSpread();
      s.length && (r.decorators = s, s = []), r.method = !1, e && (o = this.state.startLoc);
      let l = this.eat(55);
      this.parsePropertyNamePrefixOperator(r);
      let u = this.state.containsEsc;
      if (this.parsePropertyName(r, e), !l && !u && this.maybeAsyncOrAccessorProp(r)) {
        let {
          key: c
        } = r, p = c.name;
        p === "async" && !this.hasPrecedingLineBreak() && (i = !0, this.resetPreviousNodeTrailingComments(c), l = this.eat(55), this.parsePropertyName(
        r)), (p === "get" || p === "set") && (a = !0, this.resetPreviousNodeTrailingComments(c), r.kind = p, this.match(55) && (l = !0, this.
        raise(G.AccessorIsGenerator, this.state.curPosition(), {
          kind: p
        }), this.next()), this.parsePropertyName(r));
      }
      return this.parseObjPropValue(r, o, l, i, !1, a, e);
    }
    getGetterSetterExpectedParamCount(e) {
      return e.kind === "get" ? 0 : 1;
    }
    getObjectOrClassMethodParams(e) {
      return e.params;
    }
    checkGetterSetterParams(e) {
      var s;
      let r = this.getGetterSetterExpectedParamCount(e), i = this.getObjectOrClassMethodParams(e);
      i.length !== r && this.raise(e.kind === "get" ? G.BadGetterArity : G.BadSetterArity, e), e.kind === "set" && ((s = i[i.length - 1]) ==
      null ? void 0 : s.type) === "RestElement" && this.raise(G.BadSetterRestParameter, e);
    }
    parseObjectMethod(e, s, r, i, a) {
      if (a) {
        let o = this.parseMethod(e, s, !1, !1, !1, "ObjectMethod");
        return this.checkGetterSetterParams(o), o;
      }
      if (r || s || this.match(10))
        return i && this.unexpected(), e.kind = "method", e.method = !0, this.parseMethod(e, s, r, !1, !1, "ObjectMethod");
    }
    parseObjectProperty(e, s, r, i) {
      if (e.shorthand = !1, this.eat(14))
        return e.value = r ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(i), this.finishNode(e, "ObjectProper\
ty");
      if (!e.computed && e.key.type === "Identifier") {
        if (this.checkReservedWord(e.key.name, e.key.loc.start, !0, !1), r)
          e.value = this.parseMaybeDefault(s, $l(e.key));
        else if (this.match(29)) {
          let a = this.state.startLoc;
          i != null ? i.shorthandAssignLoc === null && (i.shorthandAssignLoc = a) : this.raise(G.InvalidCoverInitializedName, a), e.value = this.
          parseMaybeDefault(s, $l(e.key));
        } else
          e.value = $l(e.key);
        return e.shorthand = !0, this.finishNode(e, "ObjectProperty");
      }
    }
    parseObjPropValue(e, s, r, i, a, o, l) {
      let u = this.parseObjectMethod(e, r, i, a, o) || this.parseObjectProperty(e, s, a, l);
      return u || this.unexpected(), u;
    }
    parsePropertyName(e, s) {
      if (this.eat(0))
        e.computed = !0, e.key = this.parseMaybeAssignAllowIn(), this.expect(3);
      else {
        let {
          type: r,
          value: i
        } = this.state, a;
        if (yo(r))
          a = this.parseIdentifier(!0);
        else
          switch (r) {
            case 135:
              a = this.parseNumericLiteral(i);
              break;
            case 134:
              a = this.parseStringLiteral(i);
              break;
            case 136:
              a = this.parseBigIntLiteral(i);
              break;
            case 139: {
              let o = this.state.startLoc;
              s != null ? s.privateKeyLoc === null && (s.privateKeyLoc = o) : this.raise(G.UnexpectedPrivateField, o), a = this.parsePrivateName();
              break;
            }
            default:
              if (r === 137) {
                a = this.parseDecimalLiteral(i);
                break;
              }
              this.unexpected();
          }
        e.key = a, r !== 139 && (e.computed = !1);
      }
    }
    initFunction(e, s) {
      e.id = null, e.generator = !1, e.async = s;
    }
    parseMethod(e, s, r, i, a, o, l = !1) {
      this.initFunction(e, r), e.generator = s, this.scope.enter(18 | (l ? 64 : 0) | (a ? 32 : 0)), this.prodParam.enter($b(r, e.generator)),
      this.parseFunctionParams(e, i);
      let u = this.parseFunctionBodyAndFinish(e, o, !0);
      return this.prodParam.exit(), this.scope.exit(), u;
    }
    parseArrayLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = this.startNode();
      return this.next(), o.elements = this.parseExprList(e, !r, i, o), this.state.inFSharpPipelineDirectBody = a, this.finishNode(o, r ? "T\
upleExpression" : "ArrayExpression");
    }
    parseArrowExpression(e, s, r, i) {
      this.scope.enter(6);
      let a = $b(r, !1);
      !this.match(5) && this.prodParam.hasIn && (a |= 8), this.prodParam.enter(a), this.initFunction(e, r);
      let o = this.state.maybeInArrowParameters;
      return s && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(e, s, i)), this.state.maybeInArrowParameters = !1,
      this.parseFunctionBody(e, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = o, this.finishNode(e, "Ar\
rowFunctionExpression");
    }
    setArrowFunctionParameters(e, s, r) {
      this.toAssignableList(s, r, !1), e.params = s;
    }
    parseFunctionBodyAndFinish(e, s, r = !1) {
      return this.parseFunctionBody(e, !1, r), this.finishNode(e, s);
    }
    parseFunctionBody(e, s, r = !1) {
      let i = s && !this.match(5);
      if (this.expressionScope.enter(UU()), i)
        e.body = this.parseMaybeAssign(), this.checkParams(e, !1, s, !1);
      else {
        let a = this.state.strict, o = this.state.labels;
        this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), e.body = this.parseBlock(!0, !1, (l) => {
          let u = !this.isSimpleParamList(e.params);
          l && u && this.raise(G.IllegalLanguageModeDirective, (e.kind === "method" || e.kind === "constructor") && e.key ? e.key.loc.end : e);
          let c = !a && this.state.strict;
          this.checkParams(e, !this.state.strict && !s && !r && !u, s, c), this.state.strict && e.id && this.checkIdentifier(e.id, 65, c);
        }), this.prodParam.exit(), this.state.labels = o;
      }
      this.expressionScope.exit();
    }
    isSimpleParameter(e) {
      return e.type === "Identifier";
    }
    isSimpleParamList(e) {
      for (let s = 0, r = e.length; s < r; s++)
        if (!this.isSimpleParameter(e[s])) return !1;
      return !0;
    }
    checkParams(e, s, r, i = !0) {
      let a = !s && /* @__PURE__ */ new Set(), o = {
        type: "FormalParameters"
      };
      for (let l of e.params)
        this.checkLVal(l, o, 5, a, i);
    }
    parseExprList(e, s, r, i) {
      let a = [], o = !0;
      for (; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          i && this.addTrailingCommaExtraToNode(i), this.next();
          break;
        }
        a.push(this.parseExprListItem(s, r));
      }
      return a;
    }
    parseExprListItem(e, s, r) {
      let i;
      if (this.match(12))
        e || this.raise(G.UnexpectedToken, this.state.curPosition(), {
          unexpected: ","
        }), i = null;
      else if (this.match(21)) {
        let a = this.state.startLoc;
        i = this.parseParenItem(this.parseSpread(s), a);
      } else if (this.match(17)) {
        this.expectPlugin("partialApplication"), r || this.raise(G.UnexpectedArgumentPlaceholder, this.state.startLoc);
        let a = this.startNode();
        this.next(), i = this.finishNode(a, "ArgumentPlaceholder");
      } else
        i = this.parseMaybeAssignAllowIn(s, this.parseParenItem);
      return i;
    }
    parseIdentifier(e) {
      let s = this.startNode(), r = this.parseIdentifierName(e);
      return this.createIdentifier(s, r);
    }
    createIdentifier(e, s) {
      return e.name = s, e.loc.identifierName = s, this.finishNode(e, "Identifier");
    }
    parseIdentifierName(e) {
      let s, {
        startLoc: r,
        type: i
      } = this.state;
      yo(i) ? s = this.state.value : this.unexpected();
      let a = qBe(i);
      return e ? a && this.replaceToken(132) : this.checkReservedWord(s, r, a, !1), this.next(), s;
    }
    checkReservedWord(e, s, r, i) {
      if (e.length > 10 || !nMe(e))
        return;
      if (r && sMe(e)) {
        this.raise(G.UnexpectedKeyword, s, {
          keyword: e
        });
        return;
      }
      if ((this.state.strict ? i ? FU : BU : LU)(e, this.inModule)) {
        this.raise(G.UnexpectedReservedWord, s, {
          reservedWord: e
        });
        return;
      } else if (e === "yield") {
        if (this.prodParam.hasYield) {
          this.raise(G.YieldBindingIdentifier, s);
          return;
        }
      } else if (e === "await") {
        if (this.prodParam.hasAwait) {
          this.raise(G.AwaitBindingIdentifier, s);
          return;
        }
        if (this.scope.inStaticBlock) {
          this.raise(G.AwaitBindingIdentifierInStaticBlock, s);
          return;
        }
        this.expressionScope.recordAsyncArrowParametersError(s);
      } else if (e === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
        this.raise(G.ArgumentsInClass, s);
        return;
      }
    }
    recordAwaitIfAllowed() {
      let e = this.prodParam.hasAwait || this.optionFlags & 1 && !this.scope.inFunction;
      return e && !this.scope.inFunction && (this.state.hasTopLevelAwait = !0), e;
    }
    parseAwait(e) {
      let s = this.startNodeAt(e);
      return this.expressionScope.recordParameterInitializerError(G.AwaitExpressionFormalParameter, s), this.eat(55) && this.raise(G.ObsoleteAwaitStar,
      s), !this.scope.inFunction && !(this.optionFlags & 1) && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM =
      !0), this.state.soloAwait || (s.argument = this.parseMaybeUnary(null, !0)), this.finishNode(s, "AwaitExpression");
    }
    isAmbiguousAwait() {
      if (this.hasPrecedingLineBreak()) return !0;
      let {
        type: e
      } = this.state;
      return e === 53 || e === 10 || e === 0 || Jb(e) || e === 102 && !this.state.containsEsc || e === 138 || e === 56 || this.hasPlugin("v8\
intrinsic") && e === 54;
    }
    parseYield() {
      let e = this.startNode();
      this.expressionScope.recordParameterInitializerError(G.YieldInParameter, e), this.next();
      let s = !1, r = null;
      if (!this.hasPrecedingLineBreak())
        switch (s = this.eat(55), this.state.type) {
          case 13:
          case 140:
          case 8:
          case 11:
          case 3:
          case 9:
          case 14:
          case 12:
            if (!s) break;
          default:
            r = this.parseMaybeAssign();
        }
      return e.delegate = s, e.argument = r, this.finishNode(e, "YieldExpression");
    }
    parseImportCall(e) {
      if (this.next(), e.source = this.parseMaybeAssignAllowIn(), e.options = null, this.eat(12) && !this.match(11) && (e.options = this.parseMaybeAssignAllowIn(),
      this.eat(12) && !this.match(11))) {
        do
          this.parseMaybeAssignAllowIn();
        while (this.eat(12) && !this.match(11));
        this.raise(G.ImportCallArity, e);
      }
      return this.expect(11), this.finishNode(e, "ImportExpression");
    }
    checkPipelineAtInfixOperator(e, s) {
      this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }]) && e.type === "SequenceExpression" && this.raise(G.PipelineHeadSequenceExpression, s);
    }
    parseSmartPipelineBodyInStyle(e, s) {
      if (this.isSimpleReference(e)) {
        let r = this.startNodeAt(s);
        return r.callee = e, this.finishNode(r, "PipelineBareFunction");
      } else {
        let r = this.startNodeAt(s);
        return this.checkSmartPipeTopicBodyEarlyErrors(s), r.expression = e, this.finishNode(r, "PipelineTopicExpression");
      }
    }
    isSimpleReference(e) {
      switch (e.type) {
        case "MemberExpression":
          return !e.computed && this.isSimpleReference(e.object);
        case "Identifier":
          return !0;
        default:
          return !1;
      }
    }
    checkSmartPipeTopicBodyEarlyErrors(e) {
      if (this.match(19))
        throw this.raise(G.PipelineBodyNoArrow, this.state.startLoc);
      this.topicReferenceWasUsedInCurrentContext() || this.raise(G.PipelineTopicUnused, e);
    }
    withTopicBindingContext(e) {
      let s = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 1,
        maxTopicIndex: null
      };
      try {
        return e();
      } finally {
        this.state.topicContext = s;
      }
    }
    withSmartMixTopicForbiddingContext(e) {
      if (this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }])) {
        let s = this.state.topicContext;
        this.state.topicContext = {
          maxNumOfResolvableTopics: 0,
          maxTopicIndex: null
        };
        try {
          return e();
        } finally {
          this.state.topicContext = s;
        }
      } else
        return e();
    }
    withSoloAwaitPermittingContext(e) {
      let s = this.state.soloAwait;
      this.state.soloAwait = !0;
      try {
        return e();
      } finally {
        this.state.soloAwait = s;
      }
    }
    allowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & ~s) {
        this.prodParam.enter(s | 8);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    disallowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & s) {
        this.prodParam.enter(s & -9);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    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(e) {
      let s = this.state.startLoc;
      this.state.potentialArrowAt = this.state.start;
      let r = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !0;
      let i = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), s, e);
      return this.state.inFSharpPipelineDirectBody = r, i;
    }
    parseModuleExpression() {
      this.expectPlugin("moduleBlocks");
      let e = this.startNode();
      this.next(), this.match(5) || this.unexpected(null, 5);
      let s = this.startNodeAt(this.state.endLoc);
      this.next();
      let r = this.initializeScopes(!0);
      this.enterInitialScopes();
      try {
        e.body = this.parseProgram(s, 8, "module");
      } finally {
        r();
      }
      return this.finishNode(e, "ModuleExpression");
    }
    parsePropertyNamePrefixOperator(e) {
    }
  }, CI = {
    kind: 1
  }, FMe = {
    kind: 2
  }, jMe = /[\uD800-\uDFFF]/u, wI = /in(?:stanceof)?/y;
  function RMe(t, e, s) {
    for (let r = 0; r < t.length; r++) {
      let i = t[r], {
        type: a
      } = i;
      if (typeof a == "number") {
        {
          if (a === 139) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Tn(o.start, 1);
            t.splice(r, 1, new Go({
              type: Ul(27),
              value: "#",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }), new Go({
              type: Ul(132),
              value: u,
              start: p,
              end: c,
              startLoc: h,
              endLoc: o.end
            })), r++;
            continue;
          }
          if (Jb(a)) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Tn(o.start, 1), f;
            e.charCodeAt(l - s) === 96 ? f = new Go({
              type: Ul(22),
              value: "`",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }) : f = new Go({
              type: Ul(8),
              value: "}",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            });
            let d, m, y, T;
            a === 24 ? (m = c - 1, y = Tn(o.end, -1), d = u === null ? null : u.slice(1, -1), T = new Go({
              type: Ul(22),
              value: "`",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })) : (m = c - 2, y = Tn(o.end, -2), d = u === null ? null : u.slice(1, -2), T = new Go({
              type: Ul(23),
              value: "${",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })), t.splice(r, 1, f, new Go({
              type: Ul(20),
              value: d,
              start: p,
              end: m,
              startLoc: h,
              endLoc: y
            }), T), r += 2;
            continue;
          }
        }
        i.type = Ul(a);
      }
    }
    return t;
  }
  n(RMe, "babel7CompatTokens");
  var JI = class extends HI {
    static {
      n(this, "StatementParser");
    }
    parseTopLevel(e, s) {
      return e.program = this.parseProgram(s), e.comments = this.comments, this.optionFlags & 128 && (e.tokens = RMe(this.tokens, this.input,
      this.startIndex)), this.finishNode(e, "File");
    }
    parseProgram(e, s = 140, r = this.options.sourceType) {
      if (e.sourceType = r, e.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(e, !0, !0, s), this.inModule) {
        if (!(this.optionFlags & 32) && this.scope.undefinedExports.size > 0)
          for (let [a, o] of Array.from(this.scope.undefinedExports))
            this.raise(G.ModuleExportUndefined, o, {
              localName: a
            });
        this.addExtra(e, "topLevelAwait", this.state.hasTopLevelAwait);
      }
      let i;
      return s === 140 ? i = this.finishNode(e, "Program") : i = this.finishNodeAt(e, "Program", Tn(this.state.startLoc, -1)), i;
    }
    stmtToDirective(e) {
      let s = e;
      s.type = "Directive", s.value = s.expression, delete s.expression;
      let r = s.value, i = r.value, a = this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(r.end)), o = r.value = a.slice(
      1, -1);
      return this.addExtra(r, "raw", a), this.addExtra(r, "rawValue", o), this.addExtra(r, "expressionValue", i), r.type = "DirectiveLiteral",
      s;
    }
    parseInterpreterDirective() {
      if (!this.match(28))
        return null;
      let e = this.startNode();
      return e.value = this.state.value, this.next(), this.finishNode(e, "InterpreterDirective");
    }
    isLet() {
      return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
    }
    chStartsBindingIdentifier(e, s) {
      if (Vl(e)) {
        if (wI.lastIndex = s, wI.test(this.input)) {
          let r = this.codePointAtPos(wI.lastIndex);
          if (!ad(r) && r !== 92)
            return !1;
        }
        return !0;
      } else return e === 92;
    }
    chStartsBindingPattern(e) {
      return e === 91 || e === 123;
    }
    hasFollowingBindingAtom() {
      let e = this.nextTokenStart(), s = this.codePointAtPos(e);
      return this.chStartsBindingPattern(s) || this.chStartsBindingIdentifier(s, e);
    }
    hasInLineFollowingBindingIdentifierOrBrace() {
      let e = this.nextTokenInLineStart(), s = this.codePointAtPos(e);
      return s === 123 || this.chStartsBindingIdentifier(s, e);
    }
    startsUsingForOf() {
      let {
        type: e,
        containsEsc: s
      } = this.lookahead();
      if (e === 102 && !s)
        return !1;
      if ($s(e) && !this.hasFollowingLineBreak())
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    startsAwaitUsing() {
      let e = this.nextTokenInLineStart();
      if (this.isUnparsedContextual(e, "using")) {
        e = this.nextTokenInLineStartSince(e + 5);
        let s = this.codePointAtPos(e);
        if (this.chStartsBindingIdentifier(s, e))
          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(e = !1) {
      let s = 0;
      return this.options.annexB && !this.state.strict && (s |= 4, e && (s |= 8)), this.parseStatementLike(s);
    }
    parseStatement() {
      return this.parseStatementLike(0);
    }
    parseStatementLike(e) {
      let s = null;
      return this.match(26) && (s = this.parseDecorators(!0)), this.parseStatementContent(e, s);
    }
    parseStatementContent(e, s) {
      let r = this.state.type, i = this.startNode(), a = !!(e & 2), o = !!(e & 4), l = e & 1;
      switch (r) {
        case 60:
          return this.parseBreakContinueStatement(i, !0);
        case 63:
          return this.parseBreakContinueStatement(i, !1);
        case 64:
          return this.parseDebuggerStatement(i);
        case 90:
          return this.parseDoWhileStatement(i);
        case 91:
          return this.parseForStatement(i);
        case 68:
          if (this.lookaheadCharCode() === 46) break;
          return o || this.raise(this.state.strict ? G.StrictFunction : this.options.annexB ? G.SloppyFunctionAnnexB : G.SloppyFunction, this.
          state.startLoc), this.parseFunctionStatement(i, !1, !a && o);
        case 80:
          return a || this.unexpected(), this.parseClass(this.maybeTakeDecorators(s, i), !0);
        case 69:
          return this.parseIfStatement(i);
        case 70:
          return this.parseReturnStatement(i);
        case 71:
          return this.parseSwitchStatement(i);
        case 72:
          return this.parseThrowStatement(i);
        case 73:
          return this.parseTryStatement(i);
        case 96:
          if (!this.state.containsEsc && this.startsAwaitUsing())
            return this.recordAwaitIfAllowed() ? a || this.raise(G.UnexpectedLexicalDeclaration, i) : this.raise(G.AwaitUsingNotInAsyncContext,
            i), this.next(), this.parseVarStatement(i, "await using");
          break;
        case 107:
          if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace())
            break;
          return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(G.UnexpectedUsingDeclaration,
          this.state.startLoc) : a || this.raise(G.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(i, "using");
        case 100: {
          if (this.state.containsEsc)
            break;
          let p = this.nextTokenStart(), h = this.codePointAtPos(p);
          if (h !== 91 && (!a && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(h, p) && h !== 123))
            break;
        }
        case 75:
          a || this.raise(G.UnexpectedLexicalDeclaration, this.state.startLoc);
        case 74: {
          let p = this.state.value;
          return this.parseVarStatement(i, p);
        }
        case 92:
          return this.parseWhileStatement(i);
        case 76:
          return this.parseWithStatement(i);
        case 5:
          return this.parseBlock();
        case 13:
          return this.parseEmptyStatement(i);
        case 83: {
          let p = this.lookaheadCharCode();
          if (p === 40 || p === 46)
            break;
        }
        case 82: {
          !(this.optionFlags & 8) && !l && this.raise(G.UnexpectedImportExport, this.state.startLoc), this.next();
          let p;
          return r === 83 ? (p = this.parseImport(i), p.type === "ImportDeclaration" && (!p.importKind || p.importKind === "value") && (this.
          sawUnambiguousESM = !0)) : (p = this.parseExport(i, s), (p.type === "ExportNamedDeclaration" && (!p.exportKind || p.exportKind ===
          "value") || p.type === "ExportAllDeclaration" && (!p.exportKind || p.exportKind === "value") || p.type === "ExportDefaultDeclarati\
on") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(p), p;
        }
        default:
          if (this.isAsyncFunction())
            return a || this.raise(G.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(i,
            !0, !a && o);
      }
      let u = this.state.value, c = this.parseExpression();
      return $s(r) && c.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(i, u, c, e) : this.parseExpressionStatement(i, c,
      s);
    }
    assertModuleNodeAllowed(e) {
      !(this.optionFlags & 8) && !this.inModule && this.raise(G.ImportOutsideModule, e);
    }
    decoratorsEnabledBeforeExport() {
      return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBefore\
Export") !== !1;
    }
    maybeTakeDecorators(e, s, r) {
      if (e) {
        var i;
        (i = s.decorators) != null && i.length ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(
        G.DecoratorsBeforeAfterExport, s.decorators[0]), s.decorators.unshift(...e)) : s.decorators = e, this.resetStartLocationFromNode(s, e[0]),
        r && this.resetStartLocationFromNode(r, s);
      }
      return s;
    }
    canHaveLeadingDecorator() {
      return this.match(80);
    }
    parseDecorators(e) {
      let s = [];
      do
        s.push(this.parseDecorator());
      while (this.match(26));
      if (this.match(82))
        e || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(G.DecoratorExportClass, this.state.startLoc);
      else if (!this.canHaveLeadingDecorator())
        throw this.raise(G.UnexpectedLeadingDecorator, this.state.startLoc);
      return s;
    }
    parseDecorator() {
      this.expectOnePlugin(["decorators", "decorators-legacy"]);
      let e = this.startNode();
      if (this.next(), this.hasPlugin("decorators")) {
        let s = this.state.startLoc, r;
        if (this.match(10)) {
          let i = this.state.startLoc;
          this.next(), r = this.parseExpression(), this.expect(11), r = this.wrapParenthesis(i, r);
          let a = this.state.startLoc;
          e.expression = this.parseMaybeDecoratorArguments(r, i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && e.expression !==
          r && this.raise(G.DecoratorArgumentsOutsideParentheses, a);
        } else {
          for (r = this.parseIdentifier(!1); this.eat(16); ) {
            let i = this.startNodeAt(s);
            i.object = r, this.match(139) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), i.property = this.parsePrivateName()) :
            i.property = this.parseIdentifier(!0), i.computed = !1, r = this.finishNode(i, "MemberExpression");
          }
          e.expression = this.parseMaybeDecoratorArguments(r, s);
        }
      } else
        e.expression = this.parseExprSubscripts();
      return this.finishNode(e, "Decorator");
    }
    parseMaybeDecoratorArguments(e, s) {
      if (this.eat(10)) {
        let r = this.startNodeAt(s);
        return r.callee = e, r.arguments = this.parseCallExpressionArguments(11), this.toReferencedList(r.arguments), this.finishNode(r, "Ca\
llExpression");
      }
      return e;
    }
    parseBreakContinueStatement(e, s) {
      return this.next(), this.isLineTerminator() ? e.label = null : (e.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(
      e, s), this.finishNode(e, s ? "BreakStatement" : "ContinueStatement");
    }
    verifyBreakContinue(e, s) {
      let r;
      for (r = 0; r < this.state.labels.length; ++r) {
        let i = this.state.labels[r];
        if ((e.label == null || i.name === e.label.name) && (i.kind != null && (s || i.kind === 1) || e.label && s))
          break;
      }
      if (r === this.state.labels.length) {
        let i = s ? "BreakStatement" : "ContinueStatement";
        this.raise(G.IllegalBreakContinue, e, {
          type: i
        });
      }
    }
    parseDebuggerStatement(e) {
      return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
    }
    parseHeaderExpression() {
      this.expect(10);
      let e = this.parseExpression();
      return this.expect(11), e;
    }
    parseDoWhileStatement(e) {
      return this.next(), this.state.labels.push(CI), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.
      labels.pop(), this.expect(92), e.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(e, "DoWhileStatement");
    }
    parseForStatement(e) {
      this.next(), this.state.labels.push(CI);
      let s = null;
      if (this.isContextual(96) && this.recordAwaitIfAllowed() && (s = this.state.startLoc, this.next()), this.scope.enter(0), this.expect(10),
      this.match(13))
        return s !== null && this.unexpected(s), this.parseFor(e, null);
      let r = this.isContextual(100);
      {
        let u = this.isContextual(96) && this.startsAwaitUsing(), c = u || this.isContextual(107) && this.startsUsingForOf(), p = r && this.
        hasFollowingBindingAtom() || c;
        if (this.match(74) || this.match(75) || p) {
          let h = this.startNode(), f;
          u ? (f = "await using", this.recordAwaitIfAllowed() || this.raise(G.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) :
          f = this.state.value, this.next(), this.parseVar(h, !0, f);
          let d = this.finishNode(h, "VariableDeclaration"), m = this.match(58);
          return m && c && this.raise(G.ForInUsing, d), (m || this.isContextual(102)) && d.declarations.length === 1 ? this.parseForIn(e, d,
          s) : (s !== null && this.unexpected(s), this.parseFor(e, d));
        }
      }
      let i = this.isContextual(95), a = new ld(), o = this.parseExpression(!0, a), l = this.isContextual(102);
      if (l && (r && this.raise(G.ForOfLet, o), s === null && i && o.type === "Identifier" && this.raise(G.ForOfAsync, o)), l || this.match(
      58)) {
        this.checkDestructuringPrivate(a), this.toAssignable(o, !0);
        let u = l ? "ForOfStatement" : "ForInStatement";
        return this.checkLVal(o, {
          type: u
        }), this.parseForIn(e, o, s);
      } else
        this.checkExpressionErrors(a, !0);
      return s !== null && this.unexpected(s), this.parseFor(e, o);
    }
    parseFunctionStatement(e, s, r) {
      return this.next(), this.parseFunction(e, 1 | (r ? 2 : 0) | (s ? 8 : 0));
    }
    parseIfStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), e.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), e.alternate =
      this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(e, "IfStatement");
    }
    parseReturnStatement(e) {
      return !this.prodParam.hasReturn && !(this.optionFlags & 2) && this.raise(G.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ?
      e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
    }
    parseSwitchStatement(e) {
      this.next(), e.discriminant = this.parseHeaderExpression();
      let s = e.cases = [];
      this.expect(5), this.state.labels.push(FMe), this.scope.enter(0);
      let r;
      for (let i; !this.match(8); )
        if (this.match(61) || this.match(65)) {
          let a = this.match(61);
          r && this.finishNode(r, "SwitchCase"), s.push(r = this.startNode()), r.consequent = [], this.next(), a ? r.test = this.parseExpression() :
          (i && this.raise(G.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), i = !0, r.test = null), this.expect(14);
        } else
          r ? r.consequent.push(this.parseStatementListItem()) : this.unexpected();
      return this.scope.exit(), r && this.finishNode(r, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(e, "SwitchState\
ment");
    }
    parseThrowStatement(e) {
      return this.next(), this.hasPrecedingLineBreak() && this.raise(G.NewlineAfterThrow, this.state.lastTokEndLoc), e.argument = this.parseExpression(),
      this.semicolon(), this.finishNode(e, "ThrowStatement");
    }
    parseCatchClauseParam() {
      let e = this.parseBindingAtom();
      return this.scope.enter(this.options.annexB && e.type === "Identifier" ? 8 : 0), this.checkLVal(e, {
        type: "CatchClause"
      }, 9), e;
    }
    parseTryStatement(e) {
      if (this.next(), e.block = this.parseBlock(), e.handler = null, this.match(62)) {
        let s = this.startNode();
        this.next(), this.match(10) ? (this.expect(10), s.param = this.parseCatchClauseParam(), this.expect(11)) : (s.param = null, this.scope.
        enter(0)), s.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), e.handler = this.finishNode(
        s, "CatchClause");
      }
      return e.finalizer = this.eat(67) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(G.NoCatchOrFinally, e), this.finishNode(
      e, "TryStatement");
    }
    parseVarStatement(e, s, r = !1) {
      return this.next(), this.parseVar(e, !1, s, r), this.semicolon(), this.finishNode(e, "VariableDeclaration");
    }
    parseWhileStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), this.state.labels.push(CI), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.state.labels.pop(), this.finishNode(e, "WhileStatement");
    }
    parseWithStatement(e) {
      return this.state.strict && this.raise(G.StrictWith, this.state.startLoc), this.next(), e.object = this.parseHeaderExpression(), e.body =
      this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(e, "WithStatement");
    }
    parseEmptyStatement(e) {
      return this.next(), this.finishNode(e, "EmptyStatement");
    }
    parseLabeledStatement(e, s, r, i) {
      for (let o of this.state.labels)
        o.name === s && this.raise(G.LabelRedeclaration, r, {
          labelName: s
        });
      let a = VBe(this.state.type) ? 1 : this.match(71) ? 2 : null;
      for (let o = this.state.labels.length - 1; o >= 0; o--) {
        let l = this.state.labels[o];
        if (l.statementStart === e.start)
          l.statementStart = this.sourceToOffsetPos(this.state.start), l.kind = a;
        else
          break;
      }
      return this.state.labels.push({
        name: s,
        kind: a,
        statementStart: this.sourceToOffsetPos(this.state.start)
      }), e.body = i & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), e.label =
      r, this.finishNode(e, "LabeledStatement");
    }
    parseExpressionStatement(e, s, r) {
      return e.expression = s, this.semicolon(), this.finishNode(e, "ExpressionStatement");
    }
    parseBlock(e = !1, s = !0, r) {
      let i = this.startNode();
      return e && this.state.strictErrors.clear(), this.expect(5), s && this.scope.enter(0), this.parseBlockBody(i, e, !1, 8, r), s && this.
      scope.exit(), this.finishNode(i, "BlockStatement");
    }
    isValidDirective(e) {
      return e.type === "ExpressionStatement" && e.expression.type === "StringLiteral" && !e.expression.extra.parenthesized;
    }
    parseBlockBody(e, s, r, i, a) {
      let o = e.body = [], l = e.directives = [];
      this.parseBlockOrModuleBlockBody(o, s ? l : void 0, r, i, a);
    }
    parseBlockOrModuleBlockBody(e, s, r, i, a) {
      let o = this.state.strict, l = !1, u = !1;
      for (; !this.match(i); ) {
        let c = r ? this.parseModuleItem() : this.parseStatementListItem();
        if (s && !u) {
          if (this.isValidDirective(c)) {
            let p = this.stmtToDirective(c);
            s.push(p), !l && p.value.value === "use strict" && (l = !0, this.setStrict(!0));
            continue;
          }
          u = !0, this.state.strictErrors.clear();
        }
        e.push(c);
      }
      a?.call(this, l), o || this.setStrict(!1), this.next();
    }
    parseFor(e, s) {
      return e.init = s, this.semicolon(!1), e.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), e.update = this.match(
      11) ? null : this.parseExpression(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.
      scope.exit(), this.state.labels.pop(), this.finishNode(e, "ForStatement");
    }
    parseForIn(e, s, r) {
      let i = this.match(58);
      return this.next(), i ? r !== null && this.unexpected(r) : e.await = r !== null, s.type === "VariableDeclaration" && s.declarations[0].
      init != null && (!i || !this.options.annexB || this.state.strict || s.kind !== "var" || s.declarations[0].id.type !== "Identifier") &&
      this.raise(G.ForInOfLoopInitializer, s, {
        type: i ? "ForInStatement" : "ForOfStatement"
      }), s.type === "AssignmentPattern" && this.raise(G.InvalidLhs, s, {
        ancestor: {
          type: "ForStatement"
        }
      }), e.left = s, e.right = i ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement");
    }
    parseVar(e, s, r, i = !1) {
      let a = e.declarations = [];
      for (e.kind = r; ; ) {
        let o = this.startNode();
        if (this.parseVarId(o, r), o.init = this.eat(29) ? s ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, o.
        init === null && !i && (o.id.type !== "Identifier" && !(s && (this.match(58) || this.isContextual(102))) ? this.raise(G.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: "destructuring"
        }) : (r === "const" || r === "using" || r === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(G.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: r
        })), a.push(this.finishNode(o, "VariableDeclarator")), !this.eat(12)) break;
      }
      return e;
    }
    parseVarId(e, s) {
      let r = this.parseBindingAtom();
      (s === "using" || s === "await using") && (r.type === "ArrayPattern" || r.type === "ObjectPattern") && this.raise(G.UsingDeclarationHasBindingPattern,
      r.loc.start), this.checkLVal(r, {
        type: "VariableDeclarator"
      }, s === "var" ? 5 : 8201), e.id = r;
    }
    parseAsyncFunctionExpression(e) {
      return this.parseFunction(e, 8);
    }
    parseFunction(e, s = 0) {
      let r = s & 2, i = !!(s & 1), a = i && !(s & 4), o = !!(s & 8);
      this.initFunction(e, o), this.match(55) && (r && this.raise(G.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), e.
      generator = !0), i && (e.id = this.parseFunctionId(a));
      let l = this.state.maybeInArrowParameters;
      return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter($b(o, e.generator)), i || (e.id = this.parseFunctionId()),
      this.parseFunctionParams(e, !1), this.withSmartMixTopicForbiddingContext(() => {
        this.parseFunctionBodyAndFinish(e, i ? "FunctionDeclaration" : "FunctionExpression");
      }), this.prodParam.exit(), this.scope.exit(), i && !r && this.registerFunctionStatementId(e), this.state.maybeInArrowParameters = l, e;
    }
    parseFunctionId(e) {
      return e || $s(this.state.type) ? this.parseIdentifier() : null;
    }
    parseFunctionParams(e, s) {
      this.expect(10), this.expressionScope.enter(fMe()), e.params = this.parseBindingList(11, 41, 2 | (s ? 4 : 0)), this.expressionScope.exit();
    }
    registerFunctionStatementId(e) {
      e.id && this.scope.declareName(e.id.name, !this.options.annexB || this.state.strict || e.generator || e.async ? this.scope.treatFunctionsAsVar ?
      5 : 8201 : 17, e.id.loc.start);
    }
    parseClass(e, s, r) {
      this.next();
      let i = this.state.strict;
      return this.state.strict = !0, this.parseClassId(e, s, r), this.parseClassSuper(e), e.body = this.parseClassBody(!!e.superClass, i), this.
      finishNode(e, s ? "ClassDeclaration" : "ClassExpression");
    }
    isClassProperty() {
      return this.match(29) || this.match(13) || this.match(8);
    }
    isClassMethod() {
      return this.match(10);
    }
    nameIsConstructor(e) {
      return e.type === "Identifier" && e.name === "constructor" || e.type === "StringLiteral" && e.value === "constructor";
    }
    isNonstaticConstructor(e) {
      return !e.computed && !e.static && this.nameIsConstructor(e.key);
    }
    parseClassBody(e, s) {
      this.classScope.enter();
      let r = {
        hadConstructor: !1,
        hadSuperClass: e
      }, i = [], a = this.startNode();
      if (a.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
        for (; !this.match(8); ) {
          if (this.eat(13)) {
            if (i.length > 0)
              throw this.raise(G.DecoratorSemicolon, this.state.lastTokEndLoc);
            continue;
          }
          if (this.match(26)) {
            i.push(this.parseDecorator());
            continue;
          }
          let o = this.startNode();
          i.length && (o.decorators = i, this.resetStartLocationFromNode(o, i[0]), i = []), this.parseClassMember(a, o, r), o.kind === "cons\
tructor" && o.decorators && o.decorators.length > 0 && this.raise(G.DecoratorConstructor, o);
        }
      }), this.state.strict = s, this.next(), i.length)
        throw this.raise(G.TrailingDecorator, this.state.startLoc);
      return this.classScope.exit(), this.finishNode(a, "ClassBody");
    }
    parseClassMemberFromModifier(e, s) {
      let r = this.parseIdentifier(!0);
      if (this.isClassMethod()) {
        let i = s;
        return i.kind = "method", i.computed = !1, i.key = r, i.static = !1, this.pushClassMethod(e, i, !1, !1, !1, !1), !0;
      } else if (this.isClassProperty()) {
        let i = s;
        return i.computed = !1, i.key = r, i.static = !1, e.body.push(this.parseClassProperty(i)), !0;
      }
      return this.resetPreviousNodeTrailingComments(r), !1;
    }
    parseClassMember(e, s, r) {
      let i = this.isContextual(106);
      if (i) {
        if (this.parseClassMemberFromModifier(e, s))
          return;
        if (this.eat(5)) {
          this.parseClassStaticBlock(e, s);
          return;
        }
      }
      this.parseClassMemberWithIsStatic(e, s, r, i);
    }
    parseClassMemberWithIsStatic(e, s, r, i) {
      let a = s, o = s, l = s, u = s, c = s, p = a, h = a;
      if (s.static = i, this.parsePropertyNamePrefixOperator(s), this.eat(55)) {
        p.kind = "method";
        let b = this.match(139);
        if (this.parseClassElementName(p), b) {
          this.pushClassPrivateMethod(e, o, !0, !1);
          return;
        }
        this.isNonstaticConstructor(a) && this.raise(G.ConstructorIsGenerator, a.key), this.pushClassMethod(e, a, !0, !1, !1, !1);
        return;
      }
      let f = !this.state.containsEsc && $s(this.state.type), d = this.parseClassElementName(s), m = f ? d.name : null, y = this.isPrivateName(
      d), T = this.state.startLoc;
      if (this.parsePostMemberNameModifiers(h), this.isClassMethod()) {
        if (p.kind = "method", y) {
          this.pushClassPrivateMethod(e, o, !1, !1);
          return;
        }
        let b = this.isNonstaticConstructor(a), E = !1;
        b && (a.kind = "constructor", r.hadConstructor && !this.hasPlugin("typescript") && this.raise(G.DuplicateConstructor, d), b && this.
        hasPlugin("typescript") && s.override && this.raise(G.OverrideOnConstructor, d), r.hadConstructor = !0, E = r.hadSuperClass), this.pushClassMethod(
        e, a, !1, !1, b, E);
      } else if (this.isClassProperty())
        y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l);
      else if (m === "async" && !this.isLineTerminator()) {
        this.resetPreviousNodeTrailingComments(d);
        let b = this.eat(55);
        h.optional && this.unexpected(T), p.kind = "method";
        let E = this.match(139);
        this.parseClassElementName(p), this.parsePostMemberNameModifiers(h), E ? this.pushClassPrivateMethod(e, o, b, !0) : (this.isNonstaticConstructor(
        a) && this.raise(G.ConstructorIsAsync, a.key), this.pushClassMethod(e, a, b, !0, !1, !1));
      } else if ((m === "get" || m === "set") && !(this.match(55) && this.isLineTerminator())) {
        this.resetPreviousNodeTrailingComments(d), p.kind = m;
        let b = this.match(139);
        this.parseClassElementName(a), b ? this.pushClassPrivateMethod(e, o, !1, !1) : (this.isNonstaticConstructor(a) && this.raise(G.ConstructorIsAccessor,
        a.key), this.pushClassMethod(e, a, !1, !1, !1, !1)), this.checkGetterSetterParams(a);
      } else if (m === "accessor" && !this.isLineTerminator()) {
        this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(d);
        let b = this.match(139);
        this.parseClassElementName(l), this.pushClassAccessorProperty(e, c, b);
      } else this.isLineTerminator() ? y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l) : this.unexpected();
    }
    parseClassElementName(e) {
      let {
        type: s,
        value: r
      } = this.state;
      if ((s === 132 || s === 134) && e.static && r === "prototype" && this.raise(G.StaticPrototype, this.state.startLoc), s === 139) {
        r === "constructor" && this.raise(G.ConstructorClassPrivateField, this.state.startLoc);
        let i = this.parsePrivateName();
        return e.key = i, i;
      }
      return this.parsePropertyName(e), e.key;
    }
    parseClassStaticBlock(e, s) {
      var r;
      this.scope.enter(208);
      let i = this.state.labels;
      this.state.labels = [], this.prodParam.enter(0);
      let a = s.body = [];
      this.parseBlockOrModuleBlockBody(a, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = i, e.body.push(this.
      finishNode(s, "StaticBlock")), (r = s.decorators) != null && r.length && this.raise(G.DecoratorStaticBlock, s);
    }
    pushClassProperty(e, s) {
      !s.computed && this.nameIsConstructor(s.key) && this.raise(G.ConstructorClassField, s.key), e.body.push(this.parseClassProperty(s));
    }
    pushClassPrivateProperty(e, s) {
      let r = this.parseClassPrivateProperty(s);
      e.body.push(r), this.classScope.declarePrivateName(this.getPrivateNameSV(r.key), 0, r.key.loc.start);
    }
    pushClassAccessorProperty(e, s, r) {
      !r && !s.computed && this.nameIsConstructor(s.key) && this.raise(G.ConstructorClassField, s.key);
      let i = this.parseClassAccessorProperty(s);
      e.body.push(i), r && this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
    }
    pushClassMethod(e, s, r, i, a, o) {
      e.body.push(this.parseMethod(s, r, i, a, o, "ClassMethod", !0));
    }
    pushClassPrivateMethod(e, s, r, i) {
      let a = this.parseMethod(s, r, i, !1, !1, "ClassPrivateMethod", !0);
      e.body.push(a);
      let o = a.kind === "get" ? a.static ? 6 : 2 : a.kind === "set" ? a.static ? 5 : 1 : 0;
      this.declareClassPrivateMethodInScope(a, o);
    }
    declareClassPrivateMethodInScope(e, s) {
      this.classScope.declarePrivateName(this.getPrivateNameSV(e.key), s, e.key.loc.start);
    }
    parsePostMemberNameModifiers(e) {
    }
    parseClassPrivateProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassPrivateProperty");
    }
    parseClassProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassProperty");
    }
    parseClassAccessorProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassAccessorProperty");
    }
    parseInitializer(e) {
      this.scope.enter(80), this.expressionScope.enter(UU()), this.prodParam.enter(0), e.value = this.eat(29) ? this.parseMaybeAssignAllowIn() :
      null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
    }
    parseClassId(e, s, r, i = 8331) {
      if ($s(this.state.type))
        e.id = this.parseIdentifier(), s && this.declareNameFromIdentifier(e.id, i);
      else if (r || !s)
        e.id = null;
      else
        throw this.raise(G.MissingClassName, this.state.startLoc);
    }
    parseClassSuper(e) {
      e.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
    }
    parseExport(e, s) {
      let r = this.parseMaybeImportPhase(e, !0), i = this.maybeParseExportDefaultSpecifier(e, r), a = !i || this.eat(12), o = a && this.eatExportStar(
      e), l = o && this.maybeParseExportNamespaceSpecifier(e), u = a && (!l || this.eat(12)), c = i || o;
      if (o && !l) {
        if (i && this.unexpected(), s)
          throw this.raise(G.UnsupportedDecoratorExport, e);
        return this.parseExportFrom(e, !0), this.finishNode(e, "ExportAllDeclaration");
      }
      let p = this.maybeParseExportNamedSpecifiers(e);
      i && a && !o && !p && this.unexpected(null, 5), l && u && this.unexpected(null, 98);
      let h;
      if (c || p) {
        if (h = !1, s)
          throw this.raise(G.UnsupportedDecoratorExport, e);
        this.parseExportFrom(e, c);
      } else
        h = this.maybeParseExportDeclaration(e);
      if (c || p || h) {
        var f;
        let d = e;
        if (this.checkExport(d, !0, !1, !!d.source), ((f = d.declaration) == null ? void 0 : f.type) === "ClassDeclaration")
          this.maybeTakeDecorators(s, d.declaration, d);
        else if (s)
          throw this.raise(G.UnsupportedDecoratorExport, e);
        return this.finishNode(d, "ExportNamedDeclaration");
      }
      if (this.eat(65)) {
        let d = e, m = this.parseExportDefaultExpression();
        if (d.declaration = m, m.type === "ClassDeclaration")
          this.maybeTakeDecorators(s, m, d);
        else if (s)
          throw this.raise(G.UnsupportedDecoratorExport, e);
        return this.checkExport(d, !0, !0), this.finishNode(d, "ExportDefaultDeclaration");
      }
      this.unexpected(null, 5);
    }
    eatExportStar(e) {
      return this.eat(55);
    }
    maybeParseExportDefaultSpecifier(e, s) {
      if (s || this.isExportDefaultSpecifier()) {
        this.expectPlugin("exportDefaultFrom", s?.loc.start);
        let r = s || this.parseIdentifier(!0), i = this.startNodeAtNode(r);
        return i.exported = r, e.specifiers = [this.finishNode(i, "ExportDefaultSpecifier")], !0;
      }
      return !1;
    }
    maybeParseExportNamespaceSpecifier(e) {
      if (this.isContextual(93)) {
        var s, r;
        (r = (s = e).specifiers) != null || (s.specifiers = []);
        let i = this.startNodeAt(this.state.lastTokStartLoc);
        return this.next(), i.exported = this.parseModuleExportName(), e.specifiers.push(this.finishNode(i, "ExportNamespaceSpecifier")), !0;
      }
      return !1;
    }
    maybeParseExportNamedSpecifiers(e) {
      if (this.match(5)) {
        let s = e;
        s.specifiers || (s.specifiers = []);
        let r = s.exportKind === "type";
        return s.specifiers.push(...this.parseExportSpecifiers(r)), s.source = null, s.declaration = null, this.hasPlugin("importAssertions") &&
        (s.assertions = []), !0;
      }
      return !1;
    }
    maybeParseExportDeclaration(e) {
      return this.shouldParseExportDeclaration() ? (e.specifiers = [], e.source = null, this.hasPlugin("importAssertions") && (e.assertions =
      []), e.declaration = this.parseExportDeclaration(e), !0) : !1;
    }
    isAsyncFunction() {
      if (!this.isContextual(95)) return !1;
      let e = this.nextTokenInLineStart();
      return this.isUnparsedContextual(e, "function");
    }
    parseExportDefaultExpression() {
      let e = this.startNode();
      if (this.match(68))
        return this.next(), this.parseFunction(e, 5);
      if (this.isAsyncFunction())
        return this.next(), this.next(), this.parseFunction(e, 13);
      if (this.match(80))
        return this.parseClass(e, !0, !0);
      if (this.match(26))
        return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(G.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(G.UnsupportedDefaultExport, this.state.startLoc);
      let s = this.parseMaybeAssignAllowIn();
      return this.semicolon(), s;
    }
    parseExportDeclaration(e) {
      return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
    }
    isExportDefaultSpecifier() {
      let {
        type: e
      } = this.state;
      if ($s(e)) {
        if (e === 95 && !this.state.containsEsc || e === 100)
          return !1;
        if ((e === 130 || e === 129) && !this.state.containsEsc) {
          let {
            type: i
          } = this.lookahead();
          if ($s(i) && i !== 98 || i === 5)
            return this.expectOnePlugin(["flow", "typescript"]), !1;
        }
      } else if (!this.match(65))
        return !1;
      let s = this.nextTokenStart(), r = this.isUnparsedContextual(s, "from");
      if (this.input.charCodeAt(s) === 44 || $s(this.state.type) && r)
        return !0;
      if (this.match(65) && r) {
        let i = this.input.charCodeAt(this.nextTokenStartSince(s + 4));
        return i === 34 || i === 39;
      }
      return !1;
    }
    parseExportFrom(e, s) {
      this.eatContextual(98) ? (e.source = this.parseImportSource(), this.checkExport(e), this.maybeParseImportAttributes(e), this.checkJSONModuleImport(
      e)) : s && this.unexpected(), this.semicolon();
    }
    shouldParseExportDeclaration() {
      let {
        type: e
      } = this.state;
      return e === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("\
decorators", "decoratorsBeforeExport") === !0 && this.raise(G.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.
      raise(G.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(G.UsingDeclarationExport,
      this.state.startLoc), !0) : e === 74 || e === 75 || e === 68 || e === 80 || this.isLet() || this.isAsyncFunction();
    }
    checkExport(e, s, r, i) {
      if (s) {
        var a;
        if (r) {
          if (this.checkDuplicateExports(e, "default"), this.hasPlugin("exportDefaultFrom")) {
            var o;
            let l = e.declaration;
            l.type === "Identifier" && l.name === "from" && l.end - l.start === 4 && !((o = l.extra) != null && o.parenthesized) && this.raise(
            G.ExportDefaultFromAsIdentifier, l);
          }
        } else if ((a = e.specifiers) != null && a.length)
          for (let l of e.specifiers) {
            let {
              exported: u
            } = l, c = u.type === "Identifier" ? u.name : u.value;
            if (this.checkDuplicateExports(l, c), !i && l.local) {
              let {
                local: p
              } = l;
              p.type !== "Identifier" ? this.raise(G.ExportBindingIsString, l, {
                localName: p.value,
                exportName: c
              }) : (this.checkReservedWord(p.name, p.loc.start, !0, !1), this.scope.checkLocalExport(p));
            }
          }
        else if (e.declaration) {
          let l = e.declaration;
          if (l.type === "FunctionDeclaration" || l.type === "ClassDeclaration") {
            let {
              id: u
            } = l;
            if (!u) throw new Error("Assertion failure");
            this.checkDuplicateExports(e, u.name);
          } else if (l.type === "VariableDeclaration")
            for (let u of l.declarations)
              this.checkDeclaration(u.id);
        }
      }
    }
    checkDeclaration(e) {
      if (e.type === "Identifier")
        this.checkDuplicateExports(e, e.name);
      else if (e.type === "ObjectPattern")
        for (let s of e.properties)
          this.checkDeclaration(s);
      else if (e.type === "ArrayPattern")
        for (let s of e.elements)
          s && this.checkDeclaration(s);
      else e.type === "ObjectProperty" ? this.checkDeclaration(e.value) : e.type === "RestElement" ? this.checkDeclaration(e.argument) : e.type ===
      "AssignmentPattern" && this.checkDeclaration(e.left);
    }
    checkDuplicateExports(e, s) {
      this.exportedIdentifiers.has(s) && (s === "default" ? this.raise(G.DuplicateDefaultExport, e) : this.raise(G.DuplicateExport, e, {
        exportName: s
      })), this.exportedIdentifiers.add(s);
    }
    parseExportSpecifiers(e) {
      let s = [], r = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (r)
          r = !1;
        else if (this.expect(12), this.eat(8)) break;
        let i = this.isContextual(130), a = this.match(134), o = this.startNode();
        o.local = this.parseModuleExportName(), s.push(this.parseExportSpecifier(o, a, e, i));
      }
      return s;
    }
    parseExportSpecifier(e, s, r, i) {
      return this.eatContextual(93) ? e.exported = this.parseModuleExportName() : s ? e.exported = gMe(e.local) : e.exported || (e.exported =
      $l(e.local)), this.finishNode(e, "ExportSpecifier");
    }
    parseModuleExportName() {
      if (this.match(134)) {
        let e = this.parseStringLiteral(this.state.value), s = jMe.exec(e.value);
        return s && this.raise(G.ModuleExportNameHasLoneSurrogate, e, {
          surrogateCharCode: s[0].charCodeAt(0)
        }), e;
      }
      return this.parseIdentifier(!0);
    }
    isJSONModuleImport(e) {
      return e.assertions != null ? e.assertions.some(({
        key: s,
        value: r
      }) => r.value === "json" && (s.type === "Identifier" ? s.name === "type" : s.value === "type")) : !1;
    }
    checkImportReflection(e) {
      let {
        specifiers: s
      } = e, r = s.length === 1 ? s[0].type : null;
      if (e.phase === "source")
        r !== "ImportDefaultSpecifier" && this.raise(G.SourcePhaseImportRequiresDefault, s[0].loc.start);
      else if (e.phase === "defer")
        r !== "ImportNamespaceSpecifier" && this.raise(G.DeferImportRequiresNamespace, s[0].loc.start);
      else if (e.module) {
        var i;
        r !== "ImportDefaultSpecifier" && this.raise(G.ImportReflectionNotBinding, s[0].loc.start), ((i = e.assertions) == null ? void 0 : i.
        length) > 0 && this.raise(G.ImportReflectionHasAssertion, s[0].loc.start);
      }
    }
    checkJSONModuleImport(e) {
      if (this.isJSONModuleImport(e) && e.type !== "ExportAllDeclaration") {
        let {
          specifiers: s
        } = e;
        if (s != null) {
          let r = s.find((i) => {
            let a;
            if (i.type === "ExportSpecifier" ? a = i.local : i.type === "ImportSpecifier" && (a = i.imported), a !== void 0)
              return a.type === "Identifier" ? a.name !== "default" : a.value !== "default";
          });
          r !== void 0 && this.raise(G.ImportJSONBindingNotDefault, r.loc.start);
        }
      }
    }
    isPotentialImportPhase(e) {
      return e ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
    }
    applyImportPhase(e, s, r, i) {
      s || (r === "module" ? (this.expectPlugin("importReflection", i), e.module = !0) : this.hasPlugin("importReflection") && (e.module = !1),
      r === "source" ? (this.expectPlugin("sourcePhaseImports", i), e.phase = "source") : r === "defer" ? (this.expectPlugin("deferredImport\
Evaluation", i), e.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (e.phase = null));
    }
    parseMaybeImportPhase(e, s) {
      if (!this.isPotentialImportPhase(s))
        return this.applyImportPhase(e, s, null), null;
      let r = this.parseIdentifier(!0), {
        type: i
      } = this.state;
      return (yo(i) ? i !== 98 || this.lookaheadCharCode() === 102 : i !== 12) ? (this.resetPreviousIdentifierLeadingComments(r), this.applyImportPhase(
      e, s, r.name, r.loc.start), null) : (this.applyImportPhase(e, s, null), r);
    }
    isPrecedingIdImportPhase(e) {
      let {
        type: s
      } = this.state;
      return $s(s) ? s !== 98 || this.lookaheadCharCode() === 102 : s !== 12;
    }
    parseImport(e) {
      return this.match(134) ? this.parseImportSourceAndAttributes(e) : this.parseImportSpecifiersAndAfter(e, this.parseMaybeImportPhase(e, !1));
    }
    parseImportSpecifiersAndAfter(e, s) {
      e.specifiers = [];
      let i = !this.maybeParseDefaultImportSpecifier(e, s) || this.eat(12), a = i && this.maybeParseStarImportSpecifier(e);
      return i && !a && this.parseNamedImportSpecifiers(e), this.expectContextual(98), this.parseImportSourceAndAttributes(e);
    }
    parseImportSourceAndAttributes(e) {
      var s;
      return (s = e.specifiers) != null || (e.specifiers = []), e.source = this.parseImportSource(), this.maybeParseImportAttributes(e), this.
      checkImportReflection(e), this.checkJSONModuleImport(e), this.semicolon(), this.finishNode(e, "ImportDeclaration");
    }
    parseImportSource() {
      return this.match(134) || this.unexpected(), this.parseExprAtom();
    }
    parseImportSpecifierLocal(e, s, r) {
      s.local = this.parseIdentifier(), e.specifiers.push(this.finishImportSpecifier(s, r));
    }
    finishImportSpecifier(e, s, r = 8201) {
      return this.checkLVal(e.local, {
        type: s
      }, r), this.finishNode(e, s);
    }
    parseImportAttributes() {
      this.expect(5);
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        if (this.match(8))
          break;
        let r = this.startNode(), i = this.state.value;
        if (s.has(i) && this.raise(G.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
          key: i
        }), s.add(i), this.match(134) ? r.key = this.parseStringLiteral(i) : r.key = this.parseIdentifier(!0), this.expect(14), !this.match(
        134))
          throw this.raise(G.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return this.expect(8), e;
    }
    parseModuleAttributes() {
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        let r = this.startNode();
        if (r.key = this.parseIdentifier(!0), r.key.name !== "type" && this.raise(G.ModuleAttributeDifferentFromType, r.key), s.has(r.key.name) &&
        this.raise(G.ModuleAttributesWithDuplicateKeys, r.key, {
          key: r.key.name
        }), s.add(r.key.name), this.expect(14), !this.match(134))
          throw this.raise(G.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return e;
    }
    maybeParseImportAttributes(e) {
      let s;
      var r = !1;
      if (this.match(76)) {
        if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
          return;
        this.next(), this.hasPlugin("moduleAttributes") ? s = this.parseModuleAttributes() : s = this.parseImportAttributes(), r = !0;
      } else this.isContextual(94) && !this.hasPrecedingLineBreak() ? (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importA\
ssertions") && this.raise(G.ImportAttributesUseAssert, this.state.startLoc), this.hasPlugin("importAssertions") || this.addExtra(e, "depreca\
tedAssertSyntax", !0), this.next(), s = this.parseImportAttributes()) : s = [];
      !r && this.hasPlugin("importAssertions") ? e.assertions = s : e.attributes = s;
    }
    maybeParseDefaultImportSpecifier(e, s) {
      if (s) {
        let r = this.startNodeAtNode(s);
        return r.local = s, e.specifiers.push(this.finishImportSpecifier(r, "ImportDefaultSpecifier")), !0;
      } else if (yo(this.state.type))
        return this.parseImportSpecifierLocal(e, this.startNode(), "ImportDefaultSpecifier"), !0;
      return !1;
    }
    maybeParseStarImportSpecifier(e) {
      if (this.match(55)) {
        let s = this.startNode();
        return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(e, s, "ImportNamespaceSpecifier"), !0;
      }
      return !1;
    }
    parseNamedImportSpecifiers(e) {
      let s = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (s)
          s = !1;
        else {
          if (this.eat(14))
            throw this.raise(G.DestructureNamedImport, this.state.startLoc);
          if (this.expect(12), this.eat(8)) break;
        }
        let r = this.startNode(), i = this.match(134), a = this.isContextual(130);
        r.imported = this.parseModuleExportName();
        let o = this.parseImportSpecifier(r, i, e.importKind === "type" || e.importKind === "typeof", a, void 0);
        e.specifiers.push(o);
      }
    }
    parseImportSpecifier(e, s, r, i, a) {
      if (this.eatContextual(93))
        e.local = this.parseIdentifier();
      else {
        let {
          imported: o
        } = e;
        if (s)
          throw this.raise(G.ImportBindingIsString, e, {
            importName: o.value
          });
        this.checkReservedWord(o.name, e.loc.start, !0, !0), e.local || (e.local = $l(o));
      }
      return this.finishImportSpecifier(e, "ImportSpecifier", a);
    }
    isThisParam(e) {
      return e.type === "Identifier" && e.name === "this";
    }
  }, Xb = class extends JI {
    static {
      n(this, "Parser");
    }
    constructor(e, s, r) {
      e = BBe(e), super(e, s), this.options = e, this.initializeScopes(), this.plugins = r, this.filename = e.sourceFilename, this.startIndex =
      e.startIndex;
      let i = 0;
      e.allowAwaitOutsideFunction && (i |= 1), e.allowReturnOutsideFunction && (i |= 2), e.allowImportExportEverywhere && (i |= 8), e.allowSuperOutsideMethod &&
      (i |= 16), e.allowUndeclaredExports && (i |= 32), e.allowNewTargetOutsideFunction && (i |= 4), e.ranges && (i |= 64), e.tokens && (i |=
      128), e.createImportExpressions && (i |= 256), e.createParenthesizedExpressions && (i |= 512), e.errorRecovery && (i |= 1024), e.attachComment &&
      (i |= 2048), e.annexB && (i |= 4096), this.optionFlags = i;
    }
    getScopeHandler() {
      return tg;
    }
    parse() {
      this.enterInitialScopes();
      let e = this.startNode(), s = this.startNode();
      return this.nextToken(), e.errors = null, this.parseTopLevel(e, s), e.errors = this.state.errors, e.comments.length = this.state.commentsLen,
      e;
    }
  };
  function qMe(t, e) {
    var s;
    if (((s = e) == null ? void 0 : s.sourceType) === "unambiguous") {
      e = Object.assign({}, e);
      try {
        e.sourceType = "module";
        let r = Qy(e, t), i = r.parse();
        if (r.sawUnambiguousESM)
          return i;
        if (r.ambiguousScriptDifferentAst)
          try {
            return e.sourceType = "script", Qy(e, t).parse();
          } catch {
          }
        else
          i.program.sourceType = "script";
        return i;
      } catch (r) {
        try {
          return e.sourceType = "script", Qy(e, t).parse();
        } catch {
        }
        throw r;
      }
    } else
      return Qy(e, t).parse();
  }
  n(qMe, "parse");
  function UMe(t, e) {
    let s = Qy(e, t);
    return s.options.strictMode && (s.state.strict = !0), s.getExpression();
  }
  n(UMe, "parseExpression");
  function KMe(t) {
    let e = {};
    for (let s of Object.keys(t))
      e[s] = Ul(t[s]);
    return e;
  }
  n(KMe, "generateExportedTokenTypes");
  var VMe = KMe(RBe);
  function Qy(t, e) {
    let s = Xb, r = /* @__PURE__ */ new Map();
    if (t != null && t.plugins) {
      for (let i of t.plugins) {
        let a, o;
        typeof i == "string" ? a = i : [a, o] = i, r.has(a) || r.set(a, o || {});
      }
      BMe(r), s = WMe(r);
    }
    return new s(t, e, r);
  }
  n(Qy, "getParser");
  var kU = /* @__PURE__ */ new Map();
  function WMe(t) {
    let e = [];
    for (let i of MMe)
      t.has(i) && e.push(i);
    let s = e.join("|"), r = kU.get(s);
    if (!r) {
      r = Xb;
      for (let i of e)
        r = $U[i](r);
      kU.set(s, r);
    }
    return r;
  }
  n(WMe, "getParserClass");
  rg.parse = qMe;
  rg.parseExpression = UMe;
  rg.tokTypes = VMe;
});

// ../node_modules/picocolors/picocolors.js
var XU = g((vRs, iN) => {
  var JU = process.argv || [], zb = process.env, $Me = !("NO_COLOR" in zb || JU.includes("--no-color")) && ("FORCE_COLOR" in zb || JU.includes(
  "--color") || process.platform === "win32" || Je != null && Je("tty").isatty(1) && zb.TERM !== "dumb" || "CI" in zb), HMe = /* @__PURE__ */ n(
  (t, e, s = t) => (r) => {
    let i = "" + r, a = i.indexOf(e, t.length);
    return ~a ? t + JMe(i, e, s, a) + e : t + i + e;
  }, "formatter"), JMe = /* @__PURE__ */ n((t, e, s, r) => {
    let i = "", a = 0;
    do
      i += t.substring(a, r) + s, a = r + e.length, r = t.indexOf(e, a);
    while (~r);
    return i + t.substring(a);
  }, "replaceClose"), YU = /* @__PURE__ */ n((t = $Me) => {
    let e = t ? HMe : () => String;
    return {
      isColorSupported: t,
      reset: e("\x1B[0m", "\x1B[0m"),
      bold: e("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"),
      dim: e("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"),
      italic: e("\x1B[3m", "\x1B[23m"),
      underline: e("\x1B[4m", "\x1B[24m"),
      inverse: e("\x1B[7m", "\x1B[27m"),
      hidden: e("\x1B[8m", "\x1B[28m"),
      strikethrough: e("\x1B[9m", "\x1B[29m"),
      black: e("\x1B[30m", "\x1B[39m"),
      red: e("\x1B[31m", "\x1B[39m"),
      green: e("\x1B[32m", "\x1B[39m"),
      yellow: e("\x1B[33m", "\x1B[39m"),
      blue: e("\x1B[34m", "\x1B[39m"),
      magenta: e("\x1B[35m", "\x1B[39m"),
      cyan: e("\x1B[36m", "\x1B[39m"),
      white: e("\x1B[37m", "\x1B[39m"),
      gray: e("\x1B[90m", "\x1B[39m"),
      bgBlack: e("\x1B[40m", "\x1B[49m"),
      bgRed: e("\x1B[41m", "\x1B[49m"),
      bgGreen: e("\x1B[42m", "\x1B[49m"),
      bgYellow: e("\x1B[43m", "\x1B[49m"),
      bgBlue: e("\x1B[44m", "\x1B[49m"),
      bgMagenta: e("\x1B[45m", "\x1B[49m"),
      bgCyan: e("\x1B[46m", "\x1B[49m"),
      bgWhite: e("\x1B[47m", "\x1B[49m"),
      blackBright: e("\x1B[90m", "\x1B[39m"),
      redBright: e("\x1B[91m", "\x1B[39m"),
      greenBright: e("\x1B[92m", "\x1B[39m"),
      yellowBright: e("\x1B[93m", "\x1B[39m"),
      blueBright: e("\x1B[94m", "\x1B[39m"),
      magentaBright: e("\x1B[95m", "\x1B[39m"),
      cyanBright: e("\x1B[96m", "\x1B[39m"),
      whiteBright: e("\x1B[97m", "\x1B[39m"),
      bgBlackBright: e("\x1B[100m", "\x1B[49m"),
      bgRedBright: e("\x1B[101m", "\x1B[49m"),
      bgGreenBright: e("\x1B[102m", "\x1B[49m"),
      bgYellowBright: e("\x1B[103m", "\x1B[49m"),
      bgBlueBright: e("\x1B[104m", "\x1B[49m"),
      bgMagentaBright: e("\x1B[105m", "\x1B[49m"),
      bgCyanBright: e("\x1B[106m", "\x1B[49m"),
      bgWhiteBright: e("\x1B[107m", "\x1B[49m")
    };
  }, "createColors");
  iN.exports = YU();
  iN.exports.createColors = YU;
});

// ../node_modules/js-tokens/index.js
var zU = g((Gb) => {
  Object.defineProperty(Gb, "__esModule", {
    value: !0
  });
  Gb.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;
  Gb.matchToToken = function(t) {
    var e = { type: "invalid", value: t[0], closed: void 0 };
    return t[1] ? (e.type = "string", e.closed = !!(t[3] || t[4])) : t[5] ? e.type = "comment" : t[6] ? (e.type = "comment", e.closed = !!t[7]) :
    t[8] ? e.type = "regex" : t[9] ? e.type = "number" : t[10] ? e.type = "name" : t[11] ? e.type = "punctuator" : t[12] && (e.type = "white\
space"), e;
  };
});

// ../node_modules/@babel/code-frame/lib/index.js
var Hl = g((ig) => {
  "use strict";
  Object.defineProperty(ig, "__esModule", { value: !0 });
  var nN = XU(), GU = zU(), QU = xa();
  function YMe() {
    return typeof process == "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? !1 : nN.isColorSupported;
  }
  n(YMe, "isColorSupported");
  var Qb = /* @__PURE__ */ n((t, e) => (s) => t(e(s)), "compose");
  function tK(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: Qb(Qb(t.white, t.bgRed), t.bold),
      gutter: t.gray,
      marker: Qb(t.red, t.bold),
      message: Qb(t.red, t.bold),
      reset: t.reset
    };
  }
  n(tK, "buildDefs");
  var XMe = tK(nN.createColors(!0)), zMe = tK(nN.createColors(!1));
  function sK(t) {
    return t ? XMe : zMe;
  }
  n(sK, "getDefs");
  var GMe = /* @__PURE__ */ new Set(["as", "async", "from", "get", "of", "set"]), QMe = /\r\n|[\n\r\u2028\u2029]/, ZMe = /^[()[\]{}]$/, rK;
  {
    let t = /^[a-z][\w-]*$/i, e = /* @__PURE__ */ n(function(s, r, i) {
      if (s.type === "name") {
        if (QU.isKeyword(s.value) || QU.isStrictReservedWord(s.value, !0) || GMe.has(s.value))
          return "keyword";
        if (t.test(s.value) && (i[r - 1] === "<" || i.slice(r - 2, r) === "</"))
          return "jsxIdentifier";
        if (s.value[0] !== s.value[0].toLowerCase())
          return "capitalized";
      }
      return s.type === "punctuator" && ZMe.test(s.value) ? "bracket" : s.type === "invalid" && (s.value === "@" || s.value === "#") ? "punc\
tuator" : s.type;
    }, "getTokenType");
    rK = /* @__PURE__ */ n(function* (s) {
      let r;
      for (; r = GU.default.exec(s); ) {
        let i = GU.matchToToken(r);
        yield {
          type: e(i, r.index, s),
          value: i.value
        };
      }
    }, "tokenize");
  }
  function iK(t) {
    if (t === "") return "";
    let e = sK(!0), s = "";
    for (let {
      type: r,
      value: i
    } of rK(t))
      r in e ? s += i.split(QMe).map((a) => e[r](a)).join(`
`) : s += i;
    return s;
  }
  n(iK, "highlight");
  var ZU = !1, eK = /\r\n|[\n\r\u2028\u2029]/;
  function eFe(t, e, s) {
    let r = Object.assign({
      column: 0,
      line: -1
    }, t.start), i = Object.assign({}, r, t.end), {
      linesAbove: a = 2,
      linesBelow: o = 3
    } = s || {}, l = r.line, u = r.column, c = i.line, p = i.column, h = Math.max(l - (a + 1), 0), f = Math.min(e.length, c + o);
    l === -1 && (h = 0), c === -1 && (f = e.length);
    let d = c - l, m = {};
    if (d)
      for (let y = 0; y <= d; y++) {
        let T = y + l;
        if (!u)
          m[T] = !0;
        else if (y === 0) {
          let b = e[T - 1].length;
          m[T] = [u, b - u + 1];
        } else if (y === d)
          m[T] = [0, p];
        else {
          let b = e[T - y].length;
          m[T] = [0, b];
        }
      }
    else
      u === p ? u ? m[l] = [u, 0] : m[l] = !0 : m[l] = [u, p - u];
    return {
      start: h,
      end: f,
      markerLines: m
    };
  }
  n(eFe, "getMarkerLines");
  function nK(t, e, s = {}) {
    let r = s.forceColor || YMe() && s.highlightCode, i = sK(r), a = t.split(eK), {
      start: o,
      end: l,
      markerLines: u
    } = eFe(e, a, s), c = e.start && typeof e.start.column == "number", p = String(l).length, f = (r ? iK(t) : t).split(eK, l).slice(o, l).map(
    (d, m) => {
      let y = o + 1 + m, b = ` ${` ${y}`.slice(-p)} |`, E = u[y], V = !u[y + 1];
      if (E) {
        let W = "";
        if (Array.isArray(E)) {
          let oe = d.slice(0, Math.max(E[0] - 1, 0)).replace(/[^\t]/g, " "), de = E[1] || 1;
          W = [`
 `, i.gutter(b.replace(/\d/g, " ")), " ", oe, i.marker("^").repeat(de)].join(""), V && s.message && (W += " " + i.message(s.message));
        }
        return [i.marker(">"), i.gutter(b), d.length > 0 ? ` ${d}` : "", W].join("");
      } else
        return ` ${i.gutter(b)}${d.length > 0 ? ` ${d}` : ""}`;
    }).join(`
`);
    return s.message && !c && (f = `${" ".repeat(p + 1)}${s.message}
${f}`), r ? i.reset(f) : f;
  }
  n(nK, "codeFrameColumns");
  function tFe(t, e, s, r = {}) {
    if (!ZU) {
      ZU = !0;
      let a = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
      if (process.emitWarning)
        process.emitWarning(a, "DeprecationWarning");
      else {
        let o = new Error(a);
        o.name = "DeprecationWarning", console.warn(new Error(a));
      }
    }
    return s = Math.max(s, 0), nK(t, {
      start: {
        column: s,
        line: e
      }
    }, r);
  }
  n(tFe, "index");
  ig.codeFrameColumns = nK;
  ig.default = tFe;
  ig.highlight = iK;
});

// ../node_modules/@babel/template/lib/parse.js
var oN = g((aN) => {
  "use strict";
  Object.defineProperty(aN, "__esModule", {
    value: !0
  });
  aN.default = mFe;
  var sFe = fe(), rFe = HU(), iFe = Hl(), {
    isCallExpression: nFe,
    isExpressionStatement: aFe,
    isFunction: oFe,
    isIdentifier: lFe,
    isJSXIdentifier: uFe,
    isNewExpression: cFe,
    isPlaceholder: Zb,
    isStatement: pFe,
    isStringLiteral: aK,
    removePropertiesDeep: hFe,
    traverse: fFe
  } = sFe, dFe = /^[_$A-Z0-9]+$/;
  function mFe(t, e, s) {
    let {
      placeholderWhitelist: r,
      placeholderPattern: i,
      preserveComments: a,
      syntacticPlaceholders: o
    } = s, l = TFe(e, s.parser, o);
    hFe(l, {
      preserveComments: a
    }), t.validate(l);
    let u = {
      syntactic: {
        placeholders: [],
        placeholderNames: /* @__PURE__ */ new Set()
      },
      legacy: {
        placeholders: [],
        placeholderNames: /* @__PURE__ */ new Set()
      },
      placeholderWhitelist: r,
      placeholderPattern: i,
      syntacticPlaceholders: o
    };
    return fFe(l, yFe, u), Object.assign({
      ast: l
    }, u.syntactic.placeholders.length ? u.syntactic : u.legacy);
  }
  n(mFe, "parseAndBuildMetadata");
  function yFe(t, e, s) {
    var r;
    let i, a = s.syntactic.placeholders.length > 0;
    if (Zb(t)) {
      if (s.syntacticPlaceholders === !1)
        throw new Error("%%foo%%-style placeholders can't be used when '.syntacticPlaceholders' is false.");
      i = t.name.name, a = !0;
    } else {
      if (a || s.syntacticPlaceholders)
        return;
      if (lFe(t) || uFe(t))
        i = t.name;
      else if (aK(t))
        i = t.value;
      else
        return;
    }
    if (a && (s.placeholderPattern != null || s.placeholderWhitelist != null))
      throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");
    if (!a && (s.placeholderPattern === !1 || !(s.placeholderPattern || dFe).test(i)) && !((r = s.placeholderWhitelist) != null && r.has(i)))
      return;
    e = e.slice();
    let {
      node: o,
      key: l
    } = e[e.length - 1], u;
    aK(t) || Zb(t, {
      expectedNode: "StringLiteral"
    }) ? u = "string" : cFe(o) && l === "arguments" || nFe(o) && l === "arguments" || oFe(o) && l === "params" ? u = "param" : aFe(o) && !Zb(
    t) ? (u = "statement", e = e.slice(0, -1)) : pFe(t) && Zb(t) ? u = "statement" : u = "other";
    let {
      placeholders: c,
      placeholderNames: p
    } = a ? s.syntactic : s.legacy;
    c.push({
      name: i,
      type: u,
      resolve: /* @__PURE__ */ n((h) => gFe(h, e), "resolve"),
      isDuplicate: p.has(i)
    }), p.add(i);
  }
  n(yFe, "placeholderVisitorHandler");
  function gFe(t, e) {
    let s = t;
    for (let a = 0; a < e.length - 1; a++) {
      let {
        key: o,
        index: l
      } = e[a];
      l === void 0 ? s = s[o] : s = s[o][l];
    }
    let {
      key: r,
      index: i
    } = e[e.length - 1];
    return {
      parent: s,
      key: r,
      index: i
    };
  }
  n(gFe, "resolveAncestors");
  function TFe(t, e, s) {
    let r = (e.plugins || []).slice();
    s !== !1 && r.push("placeholders"), e = Object.assign({
      allowReturnOutsideFunction: !0,
      allowSuperOutsideMethod: !0,
      sourceType: "module"
    }, e, {
      plugins: r
    });
    try {
      return (0, rFe.parse)(t, e);
    } catch (i) {
      let a = i.loc;
      throw a && (i.message += `
` + (0, iFe.codeFrameColumns)(t, {
        start: a
      }), i.code = "BABEL_TEMPLATE_PARSE_ERROR"), i;
    }
  }
  n(TFe, "parseWithCodeFrame");
});

// ../node_modules/@babel/template/lib/populate.js
var pN = g((cN) => {
  "use strict";
  Object.defineProperty(cN, "__esModule", {
    value: !0
  });
  cN.default = AFe;
  var bFe = fe(), {
    blockStatement: xFe,
    cloneNode: uN,
    emptyStatement: SFe,
    expressionStatement: lN,
    identifier: ex,
    isStatement: oK,
    isStringLiteral: PFe,
    stringLiteral: EFe,
    validate: lK
  } = bFe;
  function AFe(t, e) {
    let s = uN(t.ast);
    return e && (t.placeholders.forEach((r) => {
      if (!hasOwnProperty.call(e, r.name)) {
        let i = r.name;
        throw new Error(`Error: No substitution given for "${i}". If this is not meant to be a
            placeholder you may want to consider passing one of the following options to @babel/template:
            - { placeholderPattern: false, placeholderWhitelist: new Set(['${i}'])}
            - { placeholderPattern: /^${i}$/ }`);
      }
    }), Object.keys(e).forEach((r) => {
      if (!t.placeholderNames.has(r))
        throw new Error(`Unknown substitution "${r}" given`);
    })), t.placeholders.slice().reverse().forEach((r) => {
      try {
        vFe(r, s, e && e[r.name] || null);
      } catch (i) {
        throw i.message = `@babel/template placeholder "${r.name}": ${i.message}`, i;
      }
    }), s;
  }
  n(AFe, "populatePlaceholders");
  function vFe(t, e, s) {
    t.isDuplicate && (Array.isArray(s) ? s = s.map((l) => uN(l)) : typeof s == "object" && (s = uN(s)));
    let {
      parent: r,
      key: i,
      index: a
    } = t.resolve(e);
    if (t.type === "string") {
      if (typeof s == "string" && (s = EFe(s)), !s || !PFe(s))
        throw new Error("Expected string substitution");
    } else if (t.type === "statement")
      a === void 0 ? s ? Array.isArray(s) ? s = xFe(s) : typeof s == "string" ? s = lN(ex(s)) : oK(s) || (s = lN(s)) : s = SFe() : s && !Array.
      isArray(s) && (typeof s == "string" && (s = ex(s)), oK(s) || (s = lN(s)));
    else if (t.type === "param") {
      if (typeof s == "string" && (s = ex(s)), a === void 0) throw new Error("Assertion failure.");
    } else if (typeof s == "string" && (s = ex(s)), Array.isArray(s))
      throw new Error("Cannot replace single expression with an array.");
    function o(l, u, c) {
      let p = l[u];
      l[u] = c, (p.type === "Identifier" || p.type === "Placeholder") && (p.typeAnnotation && (c.typeAnnotation = p.typeAnnotation), p.optional &&
      (c.optional = p.optional), p.decorators && (c.decorators = p.decorators));
    }
    if (n(o, "set"), a === void 0)
      lK(r, i, s), o(r, i, s);
    else {
      let l = r[i].slice();
      t.type === "statement" || t.type === "param" ? s == null ? l.splice(a, 1) : Array.isArray(s) ? l.splice(a, 1, ...s) : o(l, a, s) : o(l,
      a, s), lK(r, i, l), r[i] = l;
    }
  }
  n(vFe, "applyReplacement");
});

// ../node_modules/@babel/template/lib/string.js
var uK = g((hN) => {
  "use strict";
  Object.defineProperty(hN, "__esModule", {
    value: !0
  });
  hN.default = NFe;
  var CFe = qb(), wFe = oN(), IFe = pN();
  function NFe(t, e, s) {
    e = t.code(e);
    let r;
    return (i) => {
      let a = (0, CFe.normalizeReplacements)(i);
      return r || (r = (0, wFe.default)(t, e, s)), t.unwrap((0, IFe.default)(r, a));
    };
  }
  n(NFe, "stringTemplate");
});

// ../node_modules/@babel/template/lib/literal.js
var cK = g((fN) => {
  "use strict";
  Object.defineProperty(fN, "__esModule", {
    value: !0
  });
  fN.default = _Fe;
  var kFe = qb(), DFe = oN(), OFe = pN();
  function _Fe(t, e, s) {
    let {
      metadata: r,
      names: i
    } = LFe(t, e, s);
    return (a) => {
      let o = {};
      return a.forEach((l, u) => {
        o[i[u]] = l;
      }), (l) => {
        let u = (0, kFe.normalizeReplacements)(l);
        return u && Object.keys(u).forEach((c) => {
          if (hasOwnProperty.call(o, c))
            throw new Error("Unexpected replacement overlap.");
        }), t.unwrap((0, OFe.default)(r, u ? Object.assign(u, o) : o));
      };
    };
  }
  n(_Fe, "literalTemplate");
  function LFe(t, e, s) {
    let r = "BABEL_TPL$", i = e.join("");
    do
      r = "$$" + r;
    while (i.includes(r));
    let {
      names: a,
      code: o
    } = BFe(e, r);
    return {
      metadata: (0, DFe.default)(t, t.code(o), {
        parser: s.parser,
        placeholderWhitelist: new Set(a.concat(s.placeholderWhitelist ? Array.from(s.placeholderWhitelist) : [])),
        placeholderPattern: s.placeholderPattern,
        preserveComments: s.preserveComments,
        syntacticPlaceholders: s.syntacticPlaceholders
      }),
      names: a
    };
  }
  n(LFe, "buildLiteralData");
  function BFe(t, e) {
    let s = [], r = t[0];
    for (let i = 1; i < t.length; i++) {
      let a = `${e}${i - 1}`;
      s.push(a), r += a + t[i];
    }
    return {
      names: s,
      code: r
    };
  }
  n(BFe, "buildTemplateCode");
});

// ../node_modules/@babel/template/lib/builder.js
var yK = g((dN) => {
  "use strict";
  Object.defineProperty(dN, "__esModule", {
    value: !0
  });
  dN.default = mK;
  var Zo = qb(), pK = uK(), hK = cK(), fK = (0, Zo.validate)({
    placeholderPattern: !1
  });
  function mK(t, e) {
    let s = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new WeakMap(), i = e || (0, Zo.validate)(null);
    return Object.assign((a, ...o) => {
      if (typeof a == "string") {
        if (o.length > 1) throw new Error("Unexpected extra params.");
        return dK((0, pK.default)(t, a, (0, Zo.merge)(i, (0, Zo.validate)(o[0]))));
      } else if (Array.isArray(a)) {
        let l = s.get(a);
        return l || (l = (0, hK.default)(t, a, i), s.set(a, l)), dK(l(o));
      } else if (typeof a == "object" && a) {
        if (o.length > 0) throw new Error("Unexpected extra params.");
        return mK(t, (0, Zo.merge)(i, (0, Zo.validate)(a)));
      }
      throw new Error(`Unexpected template param ${typeof a}`);
    }, {
      ast: /* @__PURE__ */ n((a, ...o) => {
        if (typeof a == "string") {
          if (o.length > 1) throw new Error("Unexpected extra params.");
          return (0, pK.default)(t, a, (0, Zo.merge)((0, Zo.merge)(i, (0, Zo.validate)(o[0])), fK))();
        } else if (Array.isArray(a)) {
          let l = r.get(a);
          return l || (l = (0, hK.default)(t, a, (0, Zo.merge)(i, fK)), r.set(a, l)), l(o)();
        }
        throw new Error(`Unexpected template param ${typeof a}`);
      }, "ast")
    });
  }
  n(mK, "createTemplateBuilder");
  function dK(t) {
    let e = "";
    try {
      throw new Error();
    } catch (s) {
      s.stack && (e = s.stack.split(`
`).slice(3).join(`
`));
    }
    return (s) => {
      try {
        return t(s);
      } catch (r) {
        throw r.stack += `
    =============
${e}`, r;
      }
    };
  }
  n(dK, "extendedTrace");
});

// ../node_modules/@babel/template/lib/index.js
var Jl = g((ra) => {
  "use strict";
  Object.defineProperty(ra, "__esModule", {
    value: !0
  });
  ra.statements = ra.statement = ra.smart = ra.program = ra.expression = ra.default = void 0;
  var ng = mU(), ag = yK(), mN = ra.smart = (0, ag.default)(ng.smart), MFe = ra.statement = (0, ag.default)(ng.statement), FFe = ra.statements =
  (0, ag.default)(ng.statements), jFe = ra.expression = (0, ag.default)(ng.expression), RFe = ra.program = (0, ag.default)(ng.program), qRs = ra.
  default = Object.assign(mN.bind(void 0), {
    smart: mN,
    statement: MFe,
    statements: FFe,
    expression: jFe,
    program: RFe,
    ast: mN.ast
  });
});

// ../node_modules/@babel/helpers/lib/helpers-generated.js
var gK = g((tx) => {
  "use strict";
  Object.defineProperty(tx, "__esModule", {
    value: !0
  });
  tx.default = void 0;
  var qFe = Jl();
  function Ee(t, e, s) {
    return Object.freeze({
      minVersion: t,
      ast: /* @__PURE__ */ n(() => qFe.default.program.ast(e, {
        preserveComments: !0
      }), "ast"),
      metadata: s
    });
  }
  n(Ee, "helper");
  var UFe = tx.default = {
    __proto__: null,
    OverloadYield: Ee("7.18.14", "function _OverloadYield(e,d){this.v=e,this.k=d}", {
      globals: [],
      locals: {
        _OverloadYield: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_OverloadYield",
      dependencies: {}
    }),
    applyDecoratedDescriptor: Ee("7.0.0-beta.0", 'function _applyDecoratedDescriptor(i,e,r,n,l){var a={};return Object.keys(n).forEach((func\
tion(i){a[i]=n[i]})),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=r.slice().r\
everse().reduce((function(r,n){return n(i,e,r)||r}),a),l&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(l):void 0,a.init\
ializer=void 0),void 0===a.initializer?(Object.defineProperty(i,e,a),null):a}', {
      globals: ["Object"],
      locals: {
        _applyDecoratedDescriptor: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_applyDecoratedDescriptor",
      dependencies: {}
    }),
    applyDecs2311: Ee("7.24.0", 'function applyDecs2311(e,t,n,r,o,i){var a,c,u,s,f,l,p,d=Symbol.metadata||Symbol.for("Symbol.metadata"),m=Ob\
ject.defineProperty,h=Object.create,y=[h(null),h(null)],v=t.length;function g(t,n,r){return function(o,i){n&&(i=o,o=e);for(var a=0;a<t.lengt\
h;a++)i=t[a].apply(o,r?[i]:[]);return r?i:o}}function b(e,t,n,r){if("function"!=typeof e&&(r||void 0!==e))throw new TypeError(t+" must "+(n|\
|"be")+" a function"+(r?"":" or undefined"));return e}function applyDec(e,t,n,r,o,i,u,s,f,l,p){function d(e){if(!p(e))throw new TypeError("A\
ttempted to access private element on non-instance")}var h=[].concat(t[0]),v=t[3],w=!u,D=1===o,S=3===o,j=4===o,E=2===o;function I(t,n,r){ret\
urn function(o,i){return n&&(i=o,o=e),r&&r(o),P[t].call(o,i)}}if(!w){var P={},k=[],F=S?"get":j||D?"set":"value";if(f?(l||D?P={get:setFunctio\
nName((function(){return v(this)}),r,"get"),set:function(e){t[4](this,e)}}:P[F]=v,l||setFunctionName(P[F],r,E?"":F)):l||(P=Object.getOwnProp\
ertyDescriptor(e,r)),!l&&!f){if((c=y[+s][r])&&7!=(c^o))throw Error("Decorating two elements with the same name ("+P[F].name+") is not suppor\
ted yet");y[+s][r]=o<3?1:o}}for(var N=e,O=h.length-1;O>=0;O-=n?2:1){var T=b(h[O],"A decorator","be",!0),z=n?h[O-1]:void 0,A={},H={kind:["fie\
ld","accessor","method","getter","setter","class"][o],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted t\
o call addInitializer after decoration was finished");b(t,"An initializer","be",!0),i.push(t)}.bind(null,A)};if(w)c=T.call(z,N,H),A.v=1,b(c,\
"class decorators","return")&&(N=c);else if(H.static=s,H.private=f,c=H.access={has:f?p.bind():function(e){return r in e}},j||(c.get=f?E?func\
tion(e){return d(e),P.value}:I("get",0,d):function(e){return e[r]}),E||S||(c.set=f?I("set",0,d):function(e,t){e[r]=t}),N=T.call(z,D?{get:P.g\
et,set:P.set}:P[F],H),A.v=1,D){if("object"==typeof N&&N)(c=b(N.get,"accessor.get"))&&(P.get=c),(c=b(N.set,"accessor.set"))&&(P.set=c),(c=b(N\
.init,"accessor.init"))&&k.unshift(c);else if(void 0!==N)throw new TypeError("accessor decorators must return an object with get, set, or in\
it properties or undefined")}else b(N,(l?"field":"method")+" decorators","return")&&(l?k.unshift(N):P[F]=N)}return o<2&&u.push(g(k,s,1),g(i,\
s,0)),l||w||(f?D?u.splice(-1,0,I("get",s),I("set",s)):u.push(E?P[F]:b.call.bind(P[F])):m(e,r,P)),N}function w(e){return m(e,d,{configurable:\
!0,enumerable:!0,value:a})}return void 0!==i&&(a=i[d]),a=h(null==a?null:a),f=[],l=function(e){e&&f.push(g(e))},p=function(t,r){for(var i=0;i\
<n.length;i++){var a=n[i],c=a[1],l=7&c;if((8&c)==t&&!l==r){var p=a[2],d=!!a[3],m=16&c;applyDec(t?e:e.prototype,a,m,d?"#"+p:toPropertyKey(p),\
l,l<2?[]:t?s=s||[]:u=u||[],f,!!t,d,r,t&&d?function(t){return checkInRHS(t)===e}:o)}}},p(8,0),p(0,0),p(8,1),p(0,1),l(u),l(s),c=f,v||w(e),{e:c\
,get c(){var n=[];return v&&[w(e=applyDec(e,[t],r,e.name,5,n)),g(n,1)]}}}', {
      globals: ["Symbol", "Object", "TypeError", "Error"],
      locals: {
        applyDecs2311: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "applyDecs2311",
      dependencies: {
        checkInRHS: ["body.0.body.body.5.argument.expressions.4.right.body.body.0.body.body.1.consequent.body.1.expression.arguments.10.cons\
equent.body.body.0.argument.left.callee"],
        setFunctionName: ["body.0.body.body.3.body.body.3.consequent.body.1.test.expressions.0.consequent.expressions.0.consequent.right.pro\
perties.0.value.callee", "body.0.body.body.3.body.body.3.consequent.body.1.test.expressions.0.consequent.expressions.1.right.callee"],
        toPropertyKey: ["body.0.body.body.5.argument.expressions.4.right.body.body.0.body.body.1.consequent.body.1.expression.arguments.3.al\
ternate.callee"]
      }
    }),
    arrayLikeToArray: Ee("7.9.0", "function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r\
[e];return n}", {
      globals: ["Array"],
      locals: {
        _arrayLikeToArray: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_arrayLikeToArray",
      dependencies: {}
    }),
    arrayWithHoles: Ee("7.0.0-beta.0", "function _arrayWithHoles(r){if(Array.isArray(r))return r}", {
      globals: ["Array"],
      locals: {
        _arrayWithHoles: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_arrayWithHoles",
      dependencies: {}
    }),
    arrayWithoutHoles: Ee("7.0.0-beta.0", "function _arrayWithoutHoles(r){if(Array.isArray(r))return arrayLikeToArray(r)}", {
      globals: ["Array"],
      locals: {
        _arrayWithoutHoles: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_arrayWithoutHoles",
      dependencies: {
        arrayLikeToArray: ["body.0.body.body.0.consequent.argument.callee"]
      }
    }),
    assertClassBrand: Ee("7.24.0", 'function _assertClassBrand(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;t\
hrow new TypeError("Private element is not present on this object")}', {
      globals: ["TypeError"],
      locals: {
        _assertClassBrand: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_assertClassBrand",
      dependencies: {}
    }),
    assertThisInitialized: Ee("7.0.0-beta.0", `function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been i\
nitialised - super() hasn't been called");return e}`, {
      globals: ["ReferenceError"],
      locals: {
        _assertThisInitialized: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_assertThisInitialized",
      dependencies: {}
    }),
    asyncGeneratorDelegate: Ee("7.0.0-beta.0", 'function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promi\
se((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=fun\
ction(){return this},e.next=function(t){return n?(n=!1,t):pump("next",t)},"function"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t\
;return pump("throw",t)}),"function"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump("return",t)}),e}', {
      globals: ["Promise", "Symbol"],
      locals: {
        _asyncGeneratorDelegate: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_asyncGeneratorDelegate",
      dependencies: {
        OverloadYield: ["body.0.body.body.1.body.body.0.argument.expressions.2.properties.1.value.callee"]
      }
    }),
    asyncIterator: Ee("7.15.9", 'function _asyncIterator(r){var n,t,o,e=2;for("undefined"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.i\
terator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t="@@asyncIterator",o=\
"@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuatio\
n(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var n=r.done;return Promise.resolve(r.value).then((functi\
on(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:n\
ull,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return \
void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.r\
eturn;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}', {
      globals: ["Symbol", "TypeError", "Object", "Promise"],
      locals: {
        _asyncIterator: ["body.0.id"],
        AsyncFromSyncIterator: ["body.1.id", "body.0.body.body.1.body.body.1.consequent.argument.callee", "body.1.body.body.1.argument.expre\
ssions.1.left.object", "body.1.body.body.1.argument.expressions.2.callee", "body.1.body.body.1.argument.expressions.0.left"]
      },
      exportBindingAssignments: [],
      exportName: "_asyncIterator",
      dependencies: {}
    }),
    asyncToGenerator: Ee("7.0.0-beta.0", 'function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value}catch(n){return void e(n)}i\
.done?t(u):Promise.resolve(u).then(r,o)}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise((function(\
r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n)}function _throw(n){asyncGeneratorStep(a,r,o,_next,\
_throw,"throw",n)}_next(void 0)}))}}', {
      globals: ["Promise"],
      locals: {
        asyncGeneratorStep: ["body.0.id", "body.1.body.body.0.argument.body.body.1.argument.arguments.0.body.body.1.body.body.0.expression.c\
allee", "body.1.body.body.0.argument.body.body.1.argument.arguments.0.body.body.2.body.body.0.expression.callee"],
        _asyncToGenerator: ["body.1.id"]
      },
      exportBindingAssignments: [],
      exportName: "_asyncToGenerator",
      dependencies: {}
    }),
    awaitAsyncGenerator: Ee("7.0.0-beta.0", "function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}", {
      globals: [],
      locals: {
        _awaitAsyncGenerator: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_awaitAsyncGenerator",
      dependencies: {
        OverloadYield: ["body.0.body.body.0.argument.callee"]
      }
    }),
    callSuper: Ee("7.23.8", "function _callSuper(t,o,e){return o=getPrototypeOf(o),possibleConstructorReturn(t,isNativeReflectConstruct()?Re\
flect.construct(o,e||[],getPrototypeOf(t).constructor):o.apply(t,e))}", {
      globals: ["Reflect"],
      locals: {
        _callSuper: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_callSuper",
      dependencies: {
        getPrototypeOf: ["body.0.body.body.0.argument.expressions.0.right.callee", "body.0.body.body.0.argument.expressions.1.arguments.1.co\
nsequent.arguments.2.object.callee"],
        isNativeReflectConstruct: ["body.0.body.body.0.argument.expressions.1.arguments.1.test.callee"],
        possibleConstructorReturn: ["body.0.body.body.0.argument.expressions.1.callee"]
      }
    }),
    checkInRHS: Ee("7.20.5", `function _checkInRHS(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(\
null!==e?typeof e:"null"));return e}`, {
      globals: ["Object", "TypeError"],
      locals: {
        _checkInRHS: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_checkInRHS",
      dependencies: {}
    }),
    checkPrivateRedeclaration: Ee("7.14.1", 'function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the\
 same private elements twice on an object")}', {
      globals: ["TypeError"],
      locals: {
        _checkPrivateRedeclaration: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_checkPrivateRedeclaration",
      dependencies: {}
    }),
    classCallCheck: Ee("7.0.0-beta.0", 'function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a fun\
ction")}', {
      globals: ["TypeError"],
      locals: {
        _classCallCheck: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classCallCheck",
      dependencies: {}
    }),
    classNameTDZError: Ee("7.0.0-beta.0", `function _classNameTDZError(e){throw new ReferenceError('Class "'+e+'" cannot be referenced in co\
mputed property keys.')}`, {
      globals: ["ReferenceError"],
      locals: {
        _classNameTDZError: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classNameTDZError",
      dependencies: {}
    }),
    classPrivateFieldGet2: Ee("7.24.0", "function _classPrivateFieldGet2(s,a){return s.get(assertClassBrand(s,a))}", {
      globals: [],
      locals: {
        _classPrivateFieldGet2: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateFieldGet2",
      dependencies: {
        assertClassBrand: ["body.0.body.body.0.argument.arguments.0.callee"]
      }
    }),
    classPrivateFieldInitSpec: Ee("7.14.1", "function _classPrivateFieldInitSpec(e,t,a){checkPrivateRedeclaration(e,t),t.set(e,a)}", {
      globals: [],
      locals: {
        _classPrivateFieldInitSpec: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateFieldInitSpec",
      dependencies: {
        checkPrivateRedeclaration: ["body.0.body.body.0.expression.expressions.0.callee"]
      }
    }),
    classPrivateFieldLooseBase: Ee("7.0.0-beta.0", 'function _classPrivateFieldBase(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError\
("attempted to use private field on non-instance");return e}', {
      globals: ["TypeError"],
      locals: {
        _classPrivateFieldBase: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateFieldBase",
      dependencies: {}
    }),
    classPrivateFieldLooseKey: Ee("7.0.0-beta.0", 'var id=0;function _classPrivateFieldKey(e){return"__private_"+id+++"_"+e}', {
      globals: [],
      locals: {
        id: ["body.0.declarations.0.id", "body.1.body.body.0.argument.left.left.right.argument", "body.1.body.body.0.argument.left.left.righ\
t.argument"],
        _classPrivateFieldKey: ["body.1.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateFieldKey",
      dependencies: {}
    }),
    classPrivateFieldSet2: Ee("7.24.0", "function _classPrivateFieldSet2(s,a,r){return s.set(assertClassBrand(s,a),r),r}", {
      globals: [],
      locals: {
        _classPrivateFieldSet2: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateFieldSet2",
      dependencies: {
        assertClassBrand: ["body.0.body.body.0.argument.expressions.0.arguments.0.callee"]
      }
    }),
    classPrivateGetter: Ee("7.24.0", "function _classPrivateGetter(s,r,a){return a(assertClassBrand(s,r))}", {
      globals: [],
      locals: {
        _classPrivateGetter: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateGetter",
      dependencies: {
        assertClassBrand: ["body.0.body.body.0.argument.arguments.0.callee"]
      }
    }),
    classPrivateMethodInitSpec: Ee("7.14.1", "function _classPrivateMethodInitSpec(e,a){checkPrivateRedeclaration(e,a),a.add(e)}", {
      globals: [],
      locals: {
        _classPrivateMethodInitSpec: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateMethodInitSpec",
      dependencies: {
        checkPrivateRedeclaration: ["body.0.body.body.0.expression.expressions.0.callee"]
      }
    }),
    classPrivateSetter: Ee("7.24.0", "function _classPrivateSetter(s,r,a,t){return r(assertClassBrand(s,a),t),t}", {
      globals: [],
      locals: {
        _classPrivateSetter: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateSetter",
      dependencies: {
        assertClassBrand: ["body.0.body.body.0.argument.expressions.0.arguments.0.callee"]
      }
    }),
    classStaticPrivateMethodGet: Ee("7.3.2", "function _classStaticPrivateMethodGet(s,a,t){return assertClassBrand(a,s),t}", {
      globals: [],
      locals: {
        _classStaticPrivateMethodGet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classStaticPrivateMethodGet",
      dependencies: {
        assertClassBrand: ["body.0.body.body.0.argument.expressions.0.callee"]
      }
    }),
    construct: Ee("7.0.0-beta.0", "function _construct(t,e,r){if(isNativeReflectConstruct())return Reflect.construct.apply(null,arguments);v\
ar o=[null];o.push.apply(o,e);var p=new(t.bind.apply(t,o));return r&&setPrototypeOf(p,r.prototype),p}", {
      globals: ["Reflect"],
      locals: {
        _construct: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_construct",
      dependencies: {
        isNativeReflectConstruct: ["body.0.body.body.0.test.callee"],
        setPrototypeOf: ["body.0.body.body.4.argument.expressions.0.right.callee"]
      }
    }),
    createClass: Ee("7.0.0-beta.0", 'function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.\
configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_define\
Properties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}', {
      globals: ["Object"],
      locals: {
        _defineProperties: ["body.0.id", "body.1.body.body.0.argument.expressions.0.right.callee", "body.1.body.body.0.argument.expressions.\
1.right.callee"],
        _createClass: ["body.1.id"]
      },
      exportBindingAssignments: [],
      exportName: "_createClass",
      dependencies: {
        toPropertyKey: ["body.0.body.body.0.body.body.1.expression.expressions.3.arguments.1.callee"]
      }
    }),
    createForOfIteratorHelper: Ee("7.9.0", 'function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r\
["@@iterator"];if(!t){if(Array.isArray(r)||(t=unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,F=function()\
{};return{s:F,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:F}}throw new TypeError("Invalid att\
empt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1\
;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return|\
|t.return()}finally{if(u)throw o}}}}', {
      globals: ["Symbol", "Array", "TypeError"],
      locals: {
        _createForOfIteratorHelper: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_createForOfIteratorHelper",
      dependencies: {
        unsupportedIterableToArray: ["body.0.body.body.1.consequent.body.0.test.left.right.right.callee"]
      }
    }),
    createForOfIteratorHelperLoose: Ee("7.9.0", 'function _createForOfIteratorHelperLoose(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.it\
erator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=unsupportedIterableToArray(r))||e&&r&&"number"==typeo\
f r.length){t&&(r=t);var o=0;return function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to \
iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}', {
      globals: ["Symbol", "Array", "TypeError"],
      locals: {
        _createForOfIteratorHelperLoose: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_createForOfIteratorHelperLoose",
      dependencies: {
        unsupportedIterableToArray: ["body.0.body.body.2.test.left.right.right.callee"]
      }
    }),
    createSuper: Ee("7.9.0", "function _createSuper(t){var r=isNativeReflectConstruct();return function(){var e,o=getPrototypeOf(t);if(r){va\
r s=getPrototypeOf(this).constructor;e=Reflect.construct(o,arguments,s)}else e=o.apply(this,arguments);return possibleConstructorReturn(this\
,e)}}", {
      globals: ["Reflect"],
      locals: {
        _createSuper: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_createSuper",
      dependencies: {
        getPrototypeOf: ["body.0.body.body.1.argument.body.body.0.declarations.1.init.callee", "body.0.body.body.1.argument.body.body.1.cons\
equent.body.0.declarations.0.init.object.callee"],
        isNativeReflectConstruct: ["body.0.body.body.0.declarations.0.init.callee"],
        possibleConstructorReturn: ["body.0.body.body.1.argument.body.body.2.argument.callee"]
      }
    }),
    decorate: Ee("7.1.5", `function _decorate(e,r,t,i){var o=_getDecoratorsApi();if(i)for(var n=0;n<i.length;n++)o=i[n](o);var s=r((function\
(e){o.initializeInstanceElements(e,a.elements)}),t),a=o.decorateClass(_coalesceClassElements(s.d.map(_createElementDescriptor)),e);return o.\
initializeClassElements(s.F,a.elements),o.runClassFinishers(s.F,a.finishers)}function _getDecoratorsApi(){_getDecoratorsApi=function(){retur\
n e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,r){["method","field"].forEach((function(t){\
r.forEach((function(r){r.kind===t&&"own"===r.placement&&this.defineClassElement(e,r)}),this)}),this)},initializeClassElements:function(e,r){\
var t=e.prototype;["method","field"].forEach((function(i){r.forEach((function(r){var o=r.placement;if(r.kind===i&&("static"===o||"prototype"\
===o)){var n="static"===o?e:t;this.defineClassElement(n,r)}}),this)}),this)},defineClassElement:function(e,r){var t=r.descriptor;if("field"=\
==r.kind){var i=r.initializer;t={enumerable:t.enumerable,writable:t.writable,configurable:t.configurable,value:void 0===i?void 0:i.call(e)}}\
Object.defineProperty(e,r.key,t)},decorateClass:function(e,r){var t=[],i=[],o={static:[],prototype:[],own:[]};if(e.forEach((function(e){this\
.addElementPlacement(e,o)}),this),e.forEach((function(e){if(!_hasDecorators(e))return t.push(e);var r=this.decorateElement(e,o);t.push(r.ele\
ment),t.push.apply(t,r.extras),i.push.apply(i,r.finishers)}),this),!r)return{elements:t,finishers:i};var n=this.decorateConstructor(t,r);ret\
urn i.push.apply(i,n.finishers),n.finishers=i,n},addElementPlacement:function(e,r,t){var i=r[e.placement];if(!t&&-1!==i.indexOf(e.key))throw\
 new TypeError("Duplicated element ("+e.key+")");i.push(e.key)},decorateElement:function(e,r){for(var t=[],i=[],o=e.decorators,n=o.length-1;\
n>=0;n--){var s=r[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),l=this.toElementFinisherExtras((0,o[n])(a)||\
a);e=l.element,this.addElementPlacement(e,r),l.finisher&&i.push(l.finisher);var c=l.extras;if(c){for(var p=0;p<c.length;p++)this.addElementP\
lacement(c[p],r);t.push.apply(t,c)}}return{element:e,finishers:i,extras:t}},decorateConstructor:function(e,r){for(var t=[],i=r.length-1;i>=0\
;i--){var o=this.fromClassDescriptor(e),n=this.toClassDescriptor((0,r[i])(o)||o);if(void 0!==n.finisher&&t.push(n.finisher),void 0!==n.eleme\
nts){e=n.elements;for(var s=0;s<e.length-1;s++)for(var a=s+1;a<e.length;a++)if(e[s].key===e[a].key&&e[s].placement===e[a].placement)throw ne\
w TypeError("Duplicated element ("+e[s].key+")")}}return{elements:e,finishers:t}},fromElementDescriptor:function(e){var r={kind:e.kind,key:e\
.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(r,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),\
"field"===e.kind&&(r.initializer=e.initializer),r},toElementDescriptors:function(e){if(void 0!==e)return toArray(e).map((function(e){var r=t\
his.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element d\
escriptor"),r}),this)},toElementDescriptor:function(e){var r=e.kind+"";if("method"!==r&&"field"!==r)throw new TypeError('An element descript\
or\\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+r+'"');var t=toProperty\
Key(e.key),i=e.placement+"";if("static"!==i&&"prototype"!==i&&"own"!==i)throw new TypeError('An element descriptor\\'s .placement property mu\
st be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+i+'"');var o=e.descriptor;this\
.disallowProperty(e,"elements","An element descriptor");var n={kind:r,key:t,placement:i,descriptor:Object.assign({},o)};return"field"!==r?th\
is.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(o,"get","The property descriptor of a field descriptor"),t\
his.disallowProperty(o,"set","The property descriptor of a field descriptor"),this.disallowProperty(o,"value","The property descriptor of a \
field descriptor"),n.initializer=e.initializer),n},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:_\
optionalCallableProperty(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var r={kind:"class",elem\
ents:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(r,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),r},toCl\
assDescriptor:function(e){var r=e.kind+"";if("class"!==r)throw new TypeError('A class descriptor\\'s .kind property must be "class", but a de\
corator created a class descriptor with .kind "'+r+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placeme\
nt","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descript\
or"),this.disallowProperty(e,"extras","A class descriptor");var t=_optionalCallableProperty(e,"finisher");return{elements:this.toElementDesc\
riptors(e.elements),finisher:t}},runClassFinishers:function(e,r){for(var t=0;t<r.length;t++){var i=(0,r[t])(e);if(void 0!==i){if("function"!\
=typeof i)throw new TypeError("Finishers must return a constructor.");e=i}}return e},disallowProperty:function(e,r,t){if(void 0!==e[r])throw\
 new TypeError(t+" can't have a ."+r+" property.")}};return e}function _createElementDescriptor(e){var r,t=toPropertyKey(e.key);"method"===e\
.kind?r={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?r={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kin\
d?r={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(r={configurable:!0,writable:!0,enumerable:!0});var i={kind:"field"===e.ki\
nd?"field":"method",key:t,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:r};return e.decorators&&(i.decorators=e.\
decorators),"field"===e.kind&&(i.initializer=e.value),i}function _coalesceGetterSetter(e,r){void 0!==e.descriptor.get?r.descriptor.get=e.des\
criptor.get:r.descriptor.set=e.descriptor.set}function _coalesceClassElements(e){for(var r=[],isSameElement=function(e){return"method"===e.k\
ind&&e.key===o.key&&e.placement===o.placement},t=0;t<e.length;t++){var i,o=e[t];if("method"===o.kind&&(i=r.find(isSameElement)))if(_isDataDe\
scriptor(o.descriptor)||_isDataDescriptor(i.descriptor)){if(_hasDecorators(o)||_hasDecorators(i))throw new ReferenceError("Duplicated method\
s ("+o.key+") can't be decorated.");i.descriptor=o.descriptor}else{if(_hasDecorators(o)){if(_hasDecorators(i))throw new ReferenceError("Deco\
rators can't be placed on different accessors with for the same property ("+o.key+").");i.decorators=o.decorators}_coalesceGetterSetter(o,i)\
}else r.push(o)}return r}function _hasDecorators(e){return e.decorators&&e.decorators.length}function _isDataDescriptor(e){return void 0!==e\
&&!(void 0===e.value&&void 0===e.writable)}function _optionalCallableProperty(e,r){var t=e[r];if(void 0!==t&&"function"!=typeof t)throw new \
TypeError("Expected '"+r+"' to be a function");return t}`, {
      globals: ["Object", "TypeError", "Symbol", "ReferenceError"],
      locals: {
        _decorate: ["body.0.id"],
        _getDecoratorsApi: ["body.1.id", "body.0.body.body.0.declarations.0.init.callee", "body.1.body.body.0.expression.left"],
        _createElementDescriptor: ["body.2.id", "body.0.body.body.2.declarations.1.init.arguments.0.arguments.0.arguments.0"],
        _coalesceGetterSetter: ["body.3.id", "body.4.body.body.0.body.body.1.consequent.alternate.body.1.expression.callee"],
        _coalesceClassElements: ["body.4.id", "body.0.body.body.2.declarations.1.init.arguments.0.callee"],
        _hasDecorators: ["body.5.id", "body.1.body.body.1.declarations.0.init.properties.4.value.body.body.1.test.expressions.1.arguments.0.\
body.body.0.test.argument.callee", "body.4.body.body.0.body.body.1.consequent.consequent.body.0.test.left.callee", "body.4.body.body.0.body.\
body.1.consequent.consequent.body.0.test.right.callee", "body.4.body.body.0.body.body.1.consequent.alternate.body.0.test.callee", "body.4.bo\
dy.body.0.body.body.1.consequent.alternate.body.0.consequent.body.0.test.callee"],
        _isDataDescriptor: ["body.6.id", "body.4.body.body.0.body.body.1.consequent.test.left.callee", "body.4.body.body.0.body.body.1.conse\
quent.test.right.callee"],
        _optionalCallableProperty: ["body.7.id", "body.1.body.body.1.declarations.0.init.properties.11.value.body.body.0.argument.properties\
.1.value.callee", "body.1.body.body.1.declarations.0.init.properties.13.value.body.body.3.declarations.0.init.callee"]
      },
      exportBindingAssignments: [],
      exportName: "_decorate",
      dependencies: {
        toArray: ["body.1.body.body.1.declarations.0.init.properties.9.value.body.body.0.consequent.argument.callee.object.callee"],
        toPropertyKey: ["body.1.body.body.1.declarations.0.init.properties.10.value.body.body.2.declarations.0.init.callee", "body.2.body.bo\
dy.0.declarations.1.init.callee"]
      }
    }),
    defaults: Ee("7.0.0-beta.0", "function _defaults(e,r){for(var t=Object.getOwnPropertyNames(r),o=0;o<t.length;o++){var n=t[o],a=Object.ge\
tOwnPropertyDescriptor(r,n);a&&a.configurable&&void 0===e[n]&&Object.defineProperty(e,n,a)}return e}", {
      globals: ["Object"],
      locals: {
        _defaults: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_defaults",
      dependencies: {}
    }),
    defineAccessor: Ee("7.20.7", "function _defineAccessor(e,r,n,t){var c={configurable:!0,enumerable:!0};return c[e]=t,Object.definePropert\
y(r,n,c)}", {
      globals: ["Object"],
      locals: {
        _defineAccessor: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_defineAccessor",
      dependencies: {}
    }),
    defineProperty: Ee("7.0.0-beta.0", "function _defineProperty(e,r,t){return(r=toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,en\
umerable:!0,configurable:!0,writable:!0}):e[r]=t,e}", {
      globals: ["Object"],
      locals: {
        _defineProperty: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_defineProperty",
      dependencies: {
        toPropertyKey: ["body.0.body.body.0.argument.expressions.0.test.left.right.callee"]
      }
    }),
    extends: Ee("7.0.0-beta.0", "function _extends(){return _extends=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.\
length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},_extends.apply(null,arguments)}", {
      globals: ["Object"],
      locals: {
        _extends: ["body.0.id", "body.0.body.body.0.argument.expressions.1.callee.object", "body.0.body.body.0.argument.expressions.0.left"]
      },
      exportBindingAssignments: ["body.0.body.body.0.argument.expressions.0"],
      exportName: "_extends",
      dependencies: {}
    }),
    get: Ee("7.0.0-beta.0", 'function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=s\
uperPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},_get.apply(null\
,arguments)}', {
      globals: ["Reflect", "Object"],
      locals: {
        _get: ["body.0.id", "body.0.body.body.0.argument.expressions.1.callee.object", "body.0.body.body.0.argument.expressions.0.left"]
      },
      exportBindingAssignments: ["body.0.body.body.0.argument.expressions.0"],
      exportName: "_get",
      dependencies: {
        superPropBase: ["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.0.declarations.0.init.callee"]
      }
    }),
    getPrototypeOf: Ee("7.0.0-beta.0", "function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind(\
):function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}", {
      globals: ["Object"],
      locals: {
        _getPrototypeOf: ["body.0.id", "body.0.body.body.0.argument.expressions.1.callee", "body.0.body.body.0.argument.expressions.0.left"]
      },
      exportBindingAssignments: ["body.0.body.body.0.argument.expressions.0"],
      exportName: "_getPrototypeOf",
      dependencies: {}
    }),
    identity: Ee("7.17.0", "function _identity(t){return t}", {
      globals: [],
      locals: {
        _identity: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_identity",
      dependencies: {}
    }),
    importDeferProxy: Ee("7.23.0", "function _importDeferProxy(e){var t=null,constValue=function(e){return function(){return e}},proxy=funct\
ion(r){return function(n,o,f){return null===t&&(t=e()),r(t,o,f)}};return new Proxy({},{defineProperty:constValue(!1),deleteProperty:constVal\
ue(!1),get:proxy(Reflect.get),getOwnPropertyDescriptor:proxy(Reflect.getOwnPropertyDescriptor),getPrototypeOf:constValue(null),isExtensible:\
constValue(!1),has:proxy(Reflect.has),ownKeys:proxy(Reflect.ownKeys),preventExtensions:constValue(!0),set:constValue(!1),setPrototypeOf:cons\
tValue(!1)})}", {
      globals: ["Proxy", "Reflect"],
      locals: {
        _importDeferProxy: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_importDeferProxy",
      dependencies: {}
    }),
    inherits: Ee("7.0.0-beta.0", 'function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must eithe\
r be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.definePropert\
y(t,"prototype",{writable:!1}),e&&setPrototypeOf(t,e)}', {
      globals: ["TypeError", "Object"],
      locals: {
        _inherits: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_inherits",
      dependencies: {
        setPrototypeOf: ["body.0.body.body.1.expression.expressions.2.right.callee"]
      }
    }),
    inheritsLoose: Ee("7.0.0-beta.0", "function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,setProt\
otypeOf(t,o)}", {
      globals: ["Object"],
      locals: {
        _inheritsLoose: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_inheritsLoose",
      dependencies: {
        setPrototypeOf: ["body.0.body.body.0.expression.expressions.2.callee"]
      }
    }),
    initializerDefineProperty: Ee("7.0.0-beta.0", "function _initializerDefineProperty(e,i,r,l){r&&Object.defineProperty(e,i,{enumerable:r.e\
numerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}", {
      globals: ["Object"],
      locals: {
        _initializerDefineProperty: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_initializerDefineProperty",
      dependencies: {}
    }),
    initializerWarningHelper: Ee("7.0.0-beta.0", 'function _initializerWarningHelper(r,e){throw Error("Decorating class property failed. Ple\
ase ensure that transform-class-properties is enabled and runs after the decorators transform.")}', {
      globals: ["Error"],
      locals: {
        _initializerWarningHelper: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_initializerWarningHelper",
      dependencies: {}
    }),
    instanceof: Ee("7.0.0-beta.0", 'function _instanceof(n,e){return null!=e&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?!!e[Symbol.h\
asInstance](n):n instanceof e}', {
      globals: ["Symbol"],
      locals: {
        _instanceof: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_instanceof",
      dependencies: {}
    }),
    interopRequireDefault: Ee("7.0.0-beta.0", "function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}", {
      globals: [],
      locals: {
        _interopRequireDefault: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_interopRequireDefault",
      dependencies: {}
    }),
    interopRequireWildcard: Ee("7.14.0", 'function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t\
=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)retu\
rn e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e\
);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,\
u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e\
,n),n}', {
      globals: ["WeakMap", "Object"],
      locals: {
        _getRequireWildcardCache: ["body.0.id", "body.1.body.body.2.declarations.0.init.callee", "body.0.body.body.2.argument.callee.left"],
        _interopRequireWildcard: ["body.1.id"]
      },
      exportBindingAssignments: [],
      exportName: "_interopRequireWildcard",
      dependencies: {}
    }),
    isNativeFunction: Ee("7.0.0-beta.0", 'function _isNativeFunction(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}ca\
tch(n){return"function"==typeof t}}', {
      globals: ["Function"],
      locals: {
        _isNativeFunction: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_isNativeFunction",
      dependencies: {}
    }),
    isNativeReflectConstruct: Ee("7.9.0", "function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(\
Boolean,[],(function(){})))}catch(t){}return(_isNativeReflectConstruct=function(){return!!t})()}", {
      globals: ["Boolean", "Reflect"],
      locals: {
        _isNativeReflectConstruct: ["body.0.id", "body.0.body.body.1.argument.callee.left"]
      },
      exportBindingAssignments: ["body.0.body.body.1.argument.callee"],
      exportName: "_isNativeReflectConstruct",
      dependencies: {}
    }),
    iterableToArray: Ee("7.0.0-beta.0", 'function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@it\
erator"])return Array.from(r)}', {
      globals: ["Symbol", "Array"],
      locals: {
        _iterableToArray: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_iterableToArray",
      dependencies: {}
    }),
    iterableToArrayLimit: Ee("7.0.0-beta.0", 'function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.it\
erator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(\
f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==\
u))return}finally{if(o)throw n}}return a}}', {
      globals: ["Symbol", "Object"],
      locals: {
        _iterableToArrayLimit: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_iterableToArrayLimit",
      dependencies: {}
    }),
    jsx: Ee("7.0.0-beta.0", 'var REACT_ELEMENT_TYPE;function _createRawReactElement(e,r,E,l){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE="functi\
on"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103);var o=e&&e.defaultProps,n=arguments.length-3;if(r||0===n||(r={children:v\
oid 0}),1===n)r.children=l;else if(n>1){for(var t=Array(n),f=0;f<n;f++)t[f]=arguments[f+3];r.children=t}if(r&&o)for(var i in o)void 0===r[i]\
&&(r[i]=o[i]);else r||(r=o||{});return{$$typeof:REACT_ELEMENT_TYPE,type:e,key:void 0===E?null:""+E,ref:null,props:r,_owner:null}}', {
      globals: ["Symbol", "Array"],
      locals: {
        REACT_ELEMENT_TYPE: ["body.0.declarations.0.id", "body.1.body.body.0.expression.left", "body.1.body.body.4.argument.properties.0.val\
ue", "body.1.body.body.0.expression.right.left"],
        _createRawReactElement: ["body.1.id"]
      },
      exportBindingAssignments: [],
      exportName: "_createRawReactElement",
      dependencies: {}
    }),
    maybeArrayLike: Ee("7.9.0", 'function _maybeArrayLike(r,a,e){if(a&&!Array.isArray(a)&&"number"==typeof a.length){var y=a.length;return a\
rrayLikeToArray(a,void 0!==e&&e<y?e:y)}return r(a,e)}', {
      globals: ["Array"],
      locals: {
        _maybeArrayLike: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_maybeArrayLike",
      dependencies: {
        arrayLikeToArray: ["body.0.body.body.0.consequent.body.1.argument.callee"]
      }
    }),
    newArrowCheck: Ee("7.0.0-beta.0", 'function _newArrowCheck(n,r){if(n!==r)throw new TypeError("Cannot instantiate an arrow function")}', {
      globals: ["TypeError"],
      locals: {
        _newArrowCheck: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_newArrowCheck",
      dependencies: {}
    }),
    nonIterableRest: Ee("7.0.0-beta.0", 'function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instan\
ce.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}', {
      globals: ["TypeError"],
      locals: {
        _nonIterableRest: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_nonIterableRest",
      dependencies: {}
    }),
    nonIterableSpread: Ee("7.0.0-beta.0", 'function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instanc\
e.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}', {
      globals: ["TypeError"],
      locals: {
        _nonIterableSpread: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_nonIterableSpread",
      dependencies: {}
    }),
    nullishReceiverError: Ee("7.22.6", 'function _nullishReceiverError(r){throw new TypeError("Cannot set property of null or undefined.")}',
    {
      globals: ["TypeError"],
      locals: {
        _nullishReceiverError: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_nullishReceiverError",
      dependencies: {}
    }),
    objectDestructuringEmpty: Ee("7.0.0-beta.0", 'function _objectDestructuringEmpty(t){if(null==t)throw new TypeError("Cannot destructure "\
+t)}', {
      globals: ["TypeError"],
      locals: {
        _objectDestructuringEmpty: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_objectDestructuringEmpty",
      dependencies: {}
    }),
    objectSpread2: Ee("7.5.0", "function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbo\
ls(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpre\
ad2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){definePro\
perty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEac\
h((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}", {
      globals: ["Object"],
      locals: {
        ownKeys: ["body.0.id", "body.1.body.body.0.body.body.1.expression.consequent.callee.object.callee", "body.1.body.body.0.body.body.1.\
expression.alternate.alternate.callee.object.callee"],
        _objectSpread2: ["body.1.id"]
      },
      exportBindingAssignments: [],
      exportName: "_objectSpread2",
      dependencies: {
        defineProperty: ["body.1.body.body.0.body.body.1.expression.consequent.arguments.0.body.body.0.expression.callee"]
      }
    }),
    objectWithoutProperties: Ee("7.0.0-beta.0", "function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=objectWithoutPropertie\
sLoose(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)o=n[r],-1===t.indexOf(o)&&{}.prope\
rtyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}", {
      globals: ["Object"],
      locals: {
        _objectWithoutProperties: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_objectWithoutProperties",
      dependencies: {
        objectWithoutPropertiesLoose: ["body.0.body.body.1.declarations.2.init.callee"]
      }
    }),
    objectWithoutPropertiesLoose: Ee("7.0.0-beta.0", "function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in \
r)if({}.hasOwnProperty.call(r,n)){if(-1!==e.indexOf(n))continue;t[n]=r[n]}return t}", {
      globals: [],
      locals: {
        _objectWithoutPropertiesLoose: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_objectWithoutPropertiesLoose",
      dependencies: {}
    }),
    possibleConstructorReturn: Ee("7.0.0-beta.0", 'function _possibleConstructorReturn(t,e){if(e&&("object"==typeof e||"function"==typeof e)\
)return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return assertThisInitialized(t)}', {
      globals: ["TypeError"],
      locals: {
        _possibleConstructorReturn: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_possibleConstructorReturn",
      dependencies: {
        assertThisInitialized: ["body.0.body.body.2.argument.callee"]
      }
    }),
    readOnlyError: Ee("7.0.0-beta.0", `function _readOnlyError(r){throw new TypeError('"'+r+'" is read-only')}`, {
      globals: ["TypeError"],
      locals: {
        _readOnlyError: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_readOnlyError",
      dependencies: {}
    }),
    regeneratorRuntime: Ee("7.18.0", `function _regeneratorRuntime(){"use strict";
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LI\
CENSE */_regeneratorRuntime=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t\
[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStr\
ingTag";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},"")}\
catch(t){define=function(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(\
i.prototype),c=new Context(n||[]);return o(a,"_invoke",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:"normal",\
arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=wrap;var h="suspendedStart",l="suspendedYield",f="executing",s="completed",y={}\
;function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,(function(){return this}));v\
ar d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype\
=Object.create(p);function defineIteratorMethods(t){["next","throw","return"].forEach((function(e){define(t,e,(function(t){return this._invo\
ke(e,t)}))}))}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;retur\
n h&&"object"==typeof h&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){invoke("next",t,i,a)}),(function(t){invoke("throw",t,i,a\
)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return invoke("throw",t,i,a)}))}a(c.arg)}var r;o(this,"_invoke",{value:fun\
ction(t,n){function callInvokeWithMethodAndArg(){return new e((function(e,r){invoke(t,n,e,r)}))}return r=r?r.then(callInvokeWithMethodAndArg\
,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw Er\
ror("Generator is already running");if(o===s){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c\
){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(\
o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var p=tryCatch(e,r,n);if("normal"===p\
.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}"throw"===p.type&&(o=s,n.method="throw",n.arg=p.arg)}}}function ma\
ybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.a\
rg=t,maybeInvokeDelegate(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n\
+"' method")),y;var i=tryCatch(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;ret\
urn a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw"\
,r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc\
=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type="normal",\
delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function value\
s(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){fo\
r(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new T\
ypeError(typeof e+" is not iterable")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,"constructor",{value:GeneratorFuncti\
onPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displa\
yName=define(GeneratorFunctionPrototype,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;r\
eturn!!e&&(e===GeneratorFunction||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.set\
PrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,"GeneratorFunction")),t.prototype=Object.create\
(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,(function(){re\
turn this})),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);retu\
rn e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},defineIteratorMethods(g),define(g,u,"Generator")\
,define(g,a,(function(){return this})),define(g,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[]\
;for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}r\
eturn next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this\
._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)"t"===r.c\
harAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.\
type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type="throw",\
a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("r\
oot"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.cat\
chLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.\
catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abru\
pt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.\
prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.\
type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;retu\
rn"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"n\
ormal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLo\
c===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var \
r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw Error("illegal ca\
tch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.ar\
g=t),y}},e}`, {
      globals: ["Object", "Symbol", "Error", "TypeError", "isNaN", "Promise"],
      locals: {
        _regeneratorRuntime: ["body.0.id", "body.0.body.body.0.expression.left"]
      },
      exportBindingAssignments: ["body.0.body.body.0.expression"],
      exportName: "_regeneratorRuntime",
      dependencies: {}
    }),
    set: Ee("7.0.0-beta.0", 'function set(e,r,t,o){return set="undefined"!=typeof Reflect&&Reflect.set?Reflect.set:function(e,r,t,o){var f,i\
=superPropBase(e,r);if(i){if((f=Object.getOwnPropertyDescriptor(i,r)).set)return f.set.call(o,t),!0;if(!f.writable)return!1}if(f=Object.getO\
wnPropertyDescriptor(o,r)){if(!f.writable)return!1;f.value=t,Object.defineProperty(o,r,f)}else defineProperty(o,r,t);return!0},set(e,r,t,o)}\
function _set(e,r,t,o,f){if(!set(e,r,t,o||e)&&f)throw new TypeError("failed to set property");return t}', {
      globals: ["Reflect", "Object", "TypeError"],
      locals: {
        set: ["body.0.id", "body.0.body.body.0.argument.expressions.1.callee", "body.1.body.body.0.test.left.argument.callee", "body.0.body.\
body.0.argument.expressions.0.left"],
        _set: ["body.1.id"]
      },
      exportBindingAssignments: [],
      exportName: "_set",
      dependencies: {
        superPropBase: ["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.0.declarations.1.init.callee"],
        defineProperty: ["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.2.alternate.expression.callee"]
      }
    }),
    setFunctionName: Ee("7.23.6", 'function setFunctionName(e,t,n){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineP\
roperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch(e){}return e}', {
      globals: ["Object"],
      locals: {
        setFunctionName: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "setFunctionName",
      dependencies: {}
    }),
    setPrototypeOf: Ee("7.0.0-beta.0", "function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bin\
d():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}", {
      globals: ["Object"],
      locals: {
        _setPrototypeOf: ["body.0.id", "body.0.body.body.0.argument.expressions.1.callee", "body.0.body.body.0.argument.expressions.0.left"]
      },
      exportBindingAssignments: ["body.0.body.body.0.argument.expressions.0"],
      exportName: "_setPrototypeOf",
      dependencies: {}
    }),
    skipFirstGeneratorNext: Ee("7.0.0-beta.0", "function _skipFirstGeneratorNext(t){return function(){var r=t.apply(this,arguments);return r\
.next(),r}}", {
      globals: [],
      locals: {
        _skipFirstGeneratorNext: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_skipFirstGeneratorNext",
      dependencies: {}
    }),
    slicedToArray: Ee("7.0.0-beta.0", "function _slicedToArray(r,e){return arrayWithHoles(r)||iterableToArrayLimit(r,e)||unsupportedIterable\
ToArray(r,e)||nonIterableRest()}", {
      globals: [],
      locals: {
        _slicedToArray: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_slicedToArray",
      dependencies: {
        arrayWithHoles: ["body.0.body.body.0.argument.left.left.left.callee"],
        iterableToArrayLimit: ["body.0.body.body.0.argument.left.left.right.callee"],
        unsupportedIterableToArray: ["body.0.body.body.0.argument.left.right.callee"],
        nonIterableRest: ["body.0.body.body.0.argument.right.callee"]
      }
    }),
    superPropBase: Ee("7.0.0-beta.0", "function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=getPrototypeOf(t)););return\
 t}", {
      globals: [],
      locals: {
        _superPropBase: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_superPropBase",
      dependencies: {
        getPrototypeOf: ["body.0.body.body.0.test.right.right.right.callee"]
      }
    }),
    superPropGet: Ee("7.25.0", 'function _superPropGet(t,o,e,r){var p=get(getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typ\
eof p?function(t){return p.apply(e,t)}:p}', {
      globals: [],
      locals: {
        _superPropGet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_superPropGet",
      dependencies: {
        get: ["body.0.body.body.0.declarations.0.init.callee"],
        getPrototypeOf: ["body.0.body.body.0.declarations.0.init.arguments.0.callee"]
      }
    }),
    superPropSet: Ee("7.25.0", "function _superPropSet(t,e,o,r,p,f){return set(getPrototypeOf(f?t.prototype:t),e,o,r,p)}", {
      globals: [],
      locals: {
        _superPropSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_superPropSet",
      dependencies: {
        set: ["body.0.body.body.0.argument.callee"],
        getPrototypeOf: ["body.0.body.body.0.argument.arguments.0.callee"]
      }
    }),
    taggedTemplateLiteral: Ee("7.0.0-beta.0", "function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProp\
erties(e,{raw:{value:Object.freeze(t)}}))}", {
      globals: ["Object"],
      locals: {
        _taggedTemplateLiteral: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_taggedTemplateLiteral",
      dependencies: {}
    }),
    taggedTemplateLiteralLoose: Ee("7.0.0-beta.0", "function _taggedTemplateLiteralLoose(e,t){return t||(t=e.slice(0)),e.raw=t,e}", {
      globals: [],
      locals: {
        _taggedTemplateLiteralLoose: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_taggedTemplateLiteralLoose",
      dependencies: {}
    }),
    tdz: Ee("7.5.5", 'function _tdzError(e){throw new ReferenceError(e+" is not defined - temporal dead zone")}', {
      globals: ["ReferenceError"],
      locals: {
        _tdzError: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_tdzError",
      dependencies: {}
    }),
    temporalRef: Ee("7.0.0-beta.0", "function _temporalRef(r,e){return r===undef?err(e):r}", {
      globals: [],
      locals: {
        _temporalRef: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_temporalRef",
      dependencies: {
        temporalUndefined: ["body.0.body.body.0.argument.test.right"],
        tdz: ["body.0.body.body.0.argument.consequent.callee"]
      }
    }),
    temporalUndefined: Ee("7.0.0-beta.0", "function _temporalUndefined(){}", {
      globals: [],
      locals: {
        _temporalUndefined: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_temporalUndefined",
      dependencies: {}
    }),
    toArray: Ee("7.0.0-beta.0", "function _toArray(r){return arrayWithHoles(r)||iterableToArray(r)||unsupportedIterableToArray(r)||nonIterab\
leRest()}", {
      globals: [],
      locals: {
        _toArray: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_toArray",
      dependencies: {
        arrayWithHoles: ["body.0.body.body.0.argument.left.left.left.callee"],
        iterableToArray: ["body.0.body.body.0.argument.left.left.right.callee"],
        unsupportedIterableToArray: ["body.0.body.body.0.argument.left.right.callee"],
        nonIterableRest: ["body.0.body.body.0.argument.right.callee"]
      }
    }),
    toConsumableArray: Ee("7.0.0-beta.0", "function _toConsumableArray(r){return arrayWithoutHoles(r)||iterableToArray(r)||unsupportedIterab\
leToArray(r)||nonIterableSpread()}", {
      globals: [],
      locals: {
        _toConsumableArray: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_toConsumableArray",
      dependencies: {
        arrayWithoutHoles: ["body.0.body.body.0.argument.left.left.left.callee"],
        iterableToArray: ["body.0.body.body.0.argument.left.left.right.callee"],
        unsupportedIterableToArray: ["body.0.body.body.0.argument.left.right.callee"],
        nonIterableSpread: ["body.0.body.body.0.argument.right.callee"]
      }
    }),
    toPrimitive: Ee("7.1.5", 'function toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=\
e.call(t,r||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===\
r?String:Number)(t)}', {
      globals: ["Symbol", "TypeError", "String", "Number"],
      locals: {
        toPrimitive: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "toPrimitive",
      dependencies: {}
    }),
    toPropertyKey: Ee("7.1.5", 'function toPropertyKey(t){var i=toPrimitive(t,"string");return"symbol"==typeof i?i:i+""}', {
      globals: [],
      locals: {
        toPropertyKey: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "toPropertyKey",
      dependencies: {
        toPrimitive: ["body.0.body.body.0.declarations.0.init.callee"]
      }
    }),
    toSetter: Ee("7.24.0", 'function _toSetter(t,e,n){e||(e=[]);var r=e.length++;return Object.defineProperty({},"_",{set:function(o){e[r]=o\
,t.apply(n,e)}})}', {
      globals: ["Object"],
      locals: {
        _toSetter: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_toSetter",
      dependencies: {}
    }),
    typeof: Ee("7.0.0-beta.0", 'function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Sym\
bol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"sym\
bol":typeof o},_typeof(o)}', {
      globals: ["Symbol"],
      locals: {
        _typeof: ["body.0.id", "body.0.body.body.0.argument.expressions.1.callee", "body.0.body.body.0.argument.expressions.0.left"]
      },
      exportBindingAssignments: ["body.0.body.body.0.argument.expressions.0"],
      exportName: "_typeof",
      dependencies: {}
    }),
    unsupportedIterableToArray: Ee("7.9.0", 'function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return arrayLikeToArray(r\
,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Argu\
ments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?arrayLikeToArray(r,a):void 0}}', {
      globals: ["Array"],
      locals: {
        _unsupportedIterableToArray: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_unsupportedIterableToArray",
      dependencies: {
        arrayLikeToArray: ["body.0.body.body.0.consequent.body.0.consequent.argument.callee", "body.0.body.body.0.consequent.body.2.argument\
.expressions.1.alternate.consequent.callee"]
      }
    }),
    usingCtx: Ee("7.23.9", 'function _usingCtx(){var r="function"==typeof SuppressedError?SuppressedError:function(r,e){var n=Error();return\
 n.name="SuppressedError",n.error=r,n.suppressed=e,n},e={},n=[];function using(r,e){if(null!=e){if(Object(e)!==e)throw new TypeError("using \
declarations can only be used with objects, functions, null, or undefined.");if(r)var o=e[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispo\
se")];if(void 0===o&&(o=e[Symbol.dispose||Symbol.for("Symbol.dispose")],r))var t=o;if("function"!=typeof o)throw new TypeError("Object is no\
t disposable.");t&&(o=function(){try{t.call(e)}catch(r){return Promise.reject(r)}}),n.push({v:e,d:o,a:r})}else r&&n.push({d:e,a:r});return e\
}return{e:e,u:using.bind(null,!1),a:using.bind(null,!0),d:function(){var o,t=this.e,s=0;function next(){for(;o=n.pop();)try{if(!o.a&&1===s)r\
eturn s=0,n.push(o),Promise.resolve().then(next);if(o.d){var r=o.d.call(o.v);if(o.a)return s|=2,Promise.resolve(r).then(next,err)}else s|=1}\
catch(r){return err(r)}if(1===s)return t!==e?Promise.reject(t):Promise.resolve();if(t!==e)throw t}function err(n){return t=t!==e?new r(n,t):\
n,next()}return next()}}}', {
      globals: ["SuppressedError", "Error", "Object", "TypeError", "Symbol", "Promise"],
      locals: {
        _usingCtx: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_usingCtx",
      dependencies: {}
    }),
    wrapAsyncGenerator: Ee("7.0.0-beta.0", 'function _wrapAsyncGenerator(e){return function(){return new AsyncGenerator(e.apply(this,argumen\
ts))}}function AsyncGenerator(e){var r,t;function resume(r,t){try{var n=e[r](t),o=n.value,u=o instanceof OverloadYield;Promise.resolve(u?o.v\
:o).then((function(t){if(u){var i="return"===r?"return":"next";if(!o.k||t.done)return resume(i,t);t=e[i](t).value}settle(n.done?"return":"no\
rmal",t)}),(function(e){resume("throw",e)}))}catch(e){settle("throw",e)}}function settle(e,n){switch(e){case"return":r.resolve({value:n,done\
:!0});break;case"throw":r.reject(n);break;default:r.resolve({value:n,done:!1})}(r=r.next)?resume(r.key,r.arg):t=null}this._invoke=function(e\
,n){return new Promise((function(o,u){var i={key:e,arg:n,resolve:o,reject:u,next:null};t?t=t.next=i:(r=t=i,resume(e,n))}))},"function"!=type\
of e.return&&(this.return=void 0)}AsyncGenerator.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){re\
turn this},AsyncGenerator.prototype.next=function(e){return this._invoke("next",e)},AsyncGenerator.prototype.throw=function(e){return this._\
invoke("throw",e)},AsyncGenerator.prototype.return=function(e){return this._invoke("return",e)};', {
      globals: ["Promise", "Symbol"],
      locals: {
        _wrapAsyncGenerator: ["body.0.id"],
        AsyncGenerator: ["body.1.id", "body.0.body.body.0.argument.body.body.0.argument.callee", "body.2.expression.expressions.0.left.objec\
t.object", "body.2.expression.expressions.1.left.object.object", "body.2.expression.expressions.2.left.object.object", "body.2.expression.ex\
pressions.3.left.object.object"]
      },
      exportBindingAssignments: [],
      exportName: "_wrapAsyncGenerator",
      dependencies: {
        OverloadYield: ["body.1.body.body.1.body.body.0.block.body.0.declarations.2.init.right"]
      }
    }),
    wrapNativeSuper: Ee("7.0.0-beta.0", 'function _wrapNativeSuper(t){var r="function"==typeof Map?new Map:void 0;return _wrapNativeSuper=fu\
nction(t){if(null===t||!isNativeFunction(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a \
function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,Wrapper)}function Wrapper(){return construct(t,arguments,getPrototypeOf(this).\
constructor)}return Wrapper.prototype=Object.create(t.prototype,{constructor:{value:Wrapper,enumerable:!1,writable:!0,configurable:!0}}),set\
PrototypeOf(Wrapper,t)},_wrapNativeSuper(t)}', {
      globals: ["Map", "TypeError", "Object"],
      locals: {
        _wrapNativeSuper: ["body.0.id", "body.0.body.body.1.argument.expressions.1.callee", "body.0.body.body.1.argument.expressions.0.left"]
      },
      exportBindingAssignments: ["body.0.body.body.1.argument.expressions.0"],
      exportName: "_wrapNativeSuper",
      dependencies: {
        getPrototypeOf: ["body.0.body.body.1.argument.expressions.0.right.body.body.3.body.body.0.argument.arguments.2.object.callee"],
        setPrototypeOf: ["body.0.body.body.1.argument.expressions.0.right.body.body.4.argument.expressions.1.callee"],
        isNativeFunction: ["body.0.body.body.1.argument.expressions.0.right.body.body.0.test.right.argument.callee"],
        construct: ["body.0.body.body.1.argument.expressions.0.right.body.body.3.body.body.0.argument.callee"]
      }
    }),
    wrapRegExp: Ee("7.19.0", 'function _wrapRegExp(){_wrapRegExp=function(e,r){return new BabelRegExp(e,void 0,r)};var e=RegExp.prototype,r=\
new WeakMap;function BabelRegExp(e,t,p){var o=RegExp(e,t);return r.set(o,p||r.get(e)),setPrototypeOf(o,BabelRegExp.prototype)}function build\
Groups(e,t){var p=r.get(t);return Object.keys(p).reduce((function(r,t){var o=p[t];if("number"==typeof o)r[t]=e[o];else{for(var i=0;void 0===\
e[o[i]]&&i+1<o.length;)i++;r[t]=e[o[i]]}return r}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=funct\
ion(r){var t=e.exec.call(this,r);if(t){t.groups=buildGroups(t,this);var p=t.indices;p&&(p.groups=buildGroups(p,this))}return t},BabelRegExp.\
prototype[Symbol.replace]=function(t,p){if("string"==typeof p){var o=r.get(this);return e[Symbol.replace].call(this,t,p.replace(/\\$<([^>]+)>\
/g,(function(e,r){var t=o[r];return"$"+(Array.isArray(t)?t.join("$"):t)})))}if("function"==typeof p){var i=this;return e[Symbol.replace].cal\
l(this,t,(function(){var e=arguments;return"object"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e)}))}re\
turn e[Symbol.replace].call(this,t,p)},_wrapRegExp.apply(this,arguments)}', {
      globals: ["RegExp", "WeakMap", "Object", "Symbol", "Array"],
      locals: {
        _wrapRegExp: ["body.0.id", "body.0.body.body.4.argument.expressions.3.callee.object", "body.0.body.body.0.expression.left"]
      },
      exportBindingAssignments: ["body.0.body.body.0.expression"],
      exportName: "_wrapRegExp",
      dependencies: {
        setPrototypeOf: ["body.0.body.body.2.body.body.1.argument.expressions.1.callee"],
        inherits: ["body.0.body.body.4.argument.expressions.0.callee"]
      }
    }),
    writeOnlyError: Ee("7.12.13", `function _writeOnlyError(r){throw new TypeError('"'+r+'" is write-only')}`, {
      globals: ["TypeError"],
      locals: {
        _writeOnlyError: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_writeOnlyError",
      dependencies: {}
    })
  };
  Object.assign(UFe, {
    AwaitValue: Ee("7.0.0-beta.0", "function _AwaitValue(t){this.wrapped=t}", {
      globals: [],
      locals: {
        _AwaitValue: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_AwaitValue",
      dependencies: {}
    }),
    applyDecs: Ee("7.17.8", 'function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,"\
getMetadata"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.pr\
ivate;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,"constructor"))return i.constructor},setMetadata:function(o,i){old_\
assertNotFinished(r,"setMetadata"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.pub\
lic={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataM\
apToFinal(e,t){var a=e[Symbol.metadata||Symbol.for("Symbol.metadata")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.le\
ngth;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.fr\
om(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metada\
ta||Symbol.for("Symbol.metadata")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,"addInitialize\
r"),old_assertCallable(a,"An initializer"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c="accessor";break;ca\
se 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var d,u,f={kind:c,name:l?"#"+t:toPropertyKey(t),isSt\
atic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get\
,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=functio\
n(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.\
v=!0}}function old_assertNotFinished(e,t){if(e.v)throw Error("attempted to call "+t+" after decoration was finished")}function old_assertMet\
adataKey(e){if("symbol"!=typeof e)throw new TypeError("Metadata keys must be symbols, received: "+e)}function old_assertCallable(e,t){if("fu\
nction"!=typeof e)throw new TypeError(t+" must be a function")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if("object"\
!==a||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&\
old_assertCallable(t.get,"accessor.get"),void 0!==t.set&&old_assertCallable(t.set,"accessor.set"),void 0!==t.init&&old_assertCallable(t.init\
,"accessor.init"),void 0!==t.initializer&&old_assertCallable(t.initializer,"accessor.initializer")}else if("function"!==a)throw new TypeErro\
r((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function old_getInit(e){var t;return null==(t=e.in\
it)&&(t=e.initializer)&&void 0!==console&&console.warn(".initializer has been renamed to .init as of March 2022"),t}function old_applyMember\
Dec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,y,h=a[0];if(n?(0===o||1===o?(c={get:a[3],set:a[4]},u="get"):3===o?(c={get:a[3]},u="get"):4===o?(c={se\
t:a[3]},u="set"):c={value:a[3]},0!==o&&(1===o&&setFunctionName(a[4],"#"+r,"set"),setFunctionName(a[3],"#"+r,u))):0!==o&&(c=Object.getOwnProp\
ertyDescriptor(t,r)),1===o?f={get:c.get,set:c.set}:2===o?f=c.value:3===o?f=c.get:4===o&&(f=c.set),"function"==typeof h)void 0!==(p=old_membe\
rDec(h,r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?d=p:1===o?(d=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):\
f=p);else for(var m=h.length-1;m>=0;m--){var b;void 0!==(p=old_memberDec(h[m],r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?b=p:\
1===o?(b=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p,void 0!==b&&(void 0===d?d=b:"function"==typeof d?d=[d,b]:d.push(b\
)))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if("function"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.lengt\
h;r++)a=g[r].call(e,a);return a}}else{var _=d;d=function(e,t){return _.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=f.get,c.set=f.set):2===o?c.\
value=f:3===o?c.get=f:4===o&&(c.set=f),n?1===o?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)\
}))):2===o?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(v\
ar i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],y=d[2],h=d.length>3,m=v>=5;if(m?(u=t,f=r,0!=\
(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!h){var b=m?s:l,g=b.get(y)||0;if(!0===g||3===g&&4!==v||4===g&&3!==v)throw\
 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: "+y);!g&&v>2?b.set(y,v):b.set(y,!0)}old_applyMemberDec(e,u,d,y,v,m,h,f,p)}}\
old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push((function(e){for(var a=0;a<t.length;a++)t[a\
].call(e);return e}))}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{\
var c=Object.assign({kind:"class",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),\
d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,(function(){for(var e=0;e<o.length;e++)o[e].call(i)})\
)}}function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_apply\
ClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}', {
      globals: ["Object", "Map", "Symbol", "Array", "Error", "TypeError", "console"],
      locals: {
        old_createMetadataMethodsForProperty: ["body.0.id", "body.3.body.body.4.block.body.0.argument.arguments.1.arguments.1.callee", "body\
.12.body.body.0.consequent.body.0.body.body.1.block.body.0.declarations.0.init.arguments.1.callee"],
        old_convertMetadataMapToFinal: ["body.1.id", "body.13.body.body.1.argument.expressions.1.callee", "body.13.body.body.1.argument.expr\
essions.3.callee"],
        old_createAddInitializerMethod: ["body.2.id", "body.3.body.body.3.test.expressions.0.right.right.callee", "body.12.body.body.0.conse\
quent.body.0.body.body.1.block.body.0.declarations.0.init.arguments.0.properties.2.value.callee"],
        old_memberDec: ["body.3.id", "body.9.body.body.1.consequent.expression.left.right.right.callee", "body.9.body.body.1.alternate.body.\
body.1.expression.left.right.right.callee"],
        old_assertNotFinished: ["body.4.id", "body.0.body.body.0.argument.properties.0.value.body.body.0.expression.expressions.0.callee", "\
body.0.body.body.0.argument.properties.1.value.body.body.0.expression.expressions.0.callee", "body.2.body.body.0.argument.body.body.0.expres\
sion.expressions.0.callee"],
        old_assertMetadataKey: ["body.5.id", "body.0.body.body.0.argument.properties.0.value.body.body.0.expression.expressions.1.callee", "\
body.0.body.body.0.argument.properties.1.value.body.body.0.expression.expressions.1.callee"],
        old_assertCallable: ["body.6.id", "body.2.body.body.0.argument.body.body.0.expression.expressions.1.callee", "body.7.body.body.1.con\
sequent.body.1.expression.expressions.0.right.callee", "body.7.body.body.1.consequent.body.1.expression.expressions.1.right.callee", "body.7\
.body.body.1.consequent.body.1.expression.expressions.2.right.callee", "body.7.body.body.1.consequent.body.1.expression.expressions.3.right.\
callee"],
        old_assertValidReturnValue: ["body.7.id", "body.9.body.body.1.consequent.expression.right.expressions.0.callee", "body.9.body.body.1\
.alternate.body.body.1.expression.right.expressions.0.callee", "body.12.body.body.0.consequent.body.0.body.body.2.expression.right.expressio\
ns.0.callee"],
        old_getInit: ["body.8.id", "body.9.body.body.1.consequent.expression.right.expressions.1.alternate.consequent.expressions.0.right.ca\
llee", "body.9.body.body.1.alternate.body.body.1.expression.right.expressions.1.alternate.consequent.expressions.0.right.callee"],
        old_applyMemberDec: ["body.9.id", "body.10.body.body.0.body.body.1.consequent.body.2.expression.callee"],
        old_applyMemberDecs: ["body.10.id", "body.13.body.body.1.argument.expressions.0.callee"],
        old_pushInitializers: ["body.11.id", "body.10.body.body.1.expression.expressions.0.callee", "body.10.body.body.1.expression.expressi\
ons.1.callee"],
        old_applyClassDecs: ["body.12.id", "body.13.body.body.1.argument.expressions.2.callee"],
        applyDecs: ["body.13.id"]
      },
      exportBindingAssignments: [],
      exportName: "applyDecs",
      dependencies: {
        setFunctionName: ["body.9.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee", "body.9.body.bo\
dy.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],
        toPropertyKey: ["body.3.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]
      }
    }),
    applyDecs2203: Ee("7.19.0", 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){\
if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}funct\
ion memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";b\
reak;default:c="field"}var l,u,f={kind:c,name:s?"#"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p\
)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=fu\
nction(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{retu\
rn e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertV\
alidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with \
get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor\
.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"met\
hod")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{g\
et:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.se\
t}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),"function"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f)\
,0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;void 0!==(f=memberD\
ec(h[v],a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==\
g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g)))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if("function"!=typ\
eof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.\
push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.c\
all(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProper\
ty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){\
var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=\
c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g\
&&4!==f||4===g&&3!==f)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public me\
thod/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberD\
ec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length\
-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:"class",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&\
(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;functio\
n applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}', {
      globals: ["Error", "TypeError", "Object", "Map", "Array"],
      locals: {
        applyDecs2203Factory: ["body.0.id", "body.2.body.body.0.argument.callee.right.right.callee"],
        applyDecs2203Impl: ["body.1.declarations.0.id", "body.2.body.body.0.argument.callee.right.left", "body.2.body.body.0.argument.callee\
.left"],
        applyDecs2203: ["body.2.id"]
      },
      exportBindingAssignments: [],
      exportName: "applyDecs2203",
      dependencies: {}
    }),
    applyDecs2203R: Ee("7.20.0", 'function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t\
){if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}fun\
ction memberDec(e,t,r,n,a,i,o,s){var c;switch(a){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter"\
;break;default:c="field"}var l,u,f={kind:c,name:o?"#"+t:toPropertyKey(t),static:i,private:o},p={v:!1};0!==a&&(f.addInitializer=createAddInit\
ializerMethod(n,p)),0===a?o?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!\
==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}\
:{set:u};try{return e(s,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")\
}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must retur\
n an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallabl\
e(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10\
===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,n,a,i,o,s){var c,l,u,f,p,d,h,v=r[0];if(\
o?(0===a||1===a?(c={get:r[3],set:r[4]},u="get"):3===a?(c={get:r[3]},u="get"):4===a?(c={set:r[3]},u="set"):c={value:r[3]},0!==a&&(1===a&&setF\
unctionName(r[4],"#"+n,"set"),setFunctionName(r[3],"#"+n,u))):0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:c.get,set:c.set}:\
2===a?f=c.value:3===a?f=c.get:4===a&&(f=c.set),"function"==typeof v)void 0!==(p=memberDec(v,n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0=\
==a?l=p:1===a?(l=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p);else for(var g=v.length-1;g>=0;g--){var y;void 0!==(p=memberDec(\
v[g],n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?y=p:1===a?(y=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p,void 0!==y&&\
(void 0===l?l=y:"function"==typeof l?l=[l,y]:l.push(y)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof\
 l){var m=l;l=function(e,t){for(var r=t,n=0;n<m.length;n++)r=m[n].call(e,r);return r}}else{var b=l;l=function(e,t){return b.call(e,t)}}e.pus\
h(l)}0!==a&&(1===a?(c.get=f.get,c.set=f.set):2===a?c.value=f:3===a?c.get=f:4===a&&(c.set=f),o?1===a?(e.push((function(e,t){return f.get.call\
(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(\
t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,o=new Map,s=0;s<t.length;s++){var c=t[s];if(Array.isArray(c)){var l,u,f=c[1\
],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!=(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?o:i,g=v.get(p)||0;if(!0\
===g||3===g&&4!==f||4===g&&3!==f)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorate\
d public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}a\
pplyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){f\
or(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.le\
ngth>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var o={v:!1};try{var s=t[i](n,{kind:"class",name:a,addInitializer:createAddInitiali\
zerMethod(r,o)})}finally{o.v=!0}void 0!==s&&(assertValidReturnValue(10,s),n=s)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]\
}}(e,r)}}}}function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}', {
      globals: ["Error", "TypeError", "Object", "Map", "Array"],
      locals: {
        applyDecs2203RFactory: ["body.0.id", "body.1.body.body.0.argument.callee.right.callee"],
        applyDecs2203R: ["body.1.id", "body.1.body.body.0.argument.callee.left"]
      },
      exportBindingAssignments: ["body.1.body.body.0.argument.callee"],
      exportName: "applyDecs2203R",
      dependencies: {
        setFunctionName: ["body.0.body.body.4.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee", "bo\
dy.0.body.body.4.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],
        toPropertyKey: ["body.0.body.body.1.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]
      }
    }),
    applyDecs2301: Ee("7.21.0", 'function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){\
if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}funct\
ion assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function memberDec(e,t,\
r,n,a,i,s,o,c){var u;switch(a){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="\
field"}var l,f,p={kind:u,name:s?"#"+t:toPropertyKey(t),static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n\
,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e\
){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPriva\
te(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():f\
unction(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertC\
allable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1==\
=e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");v\
oid 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.i\
nit,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function \
or void 0")}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,y,g=r[0];if(s?\
(0===a||1===a?(u={get:(d=r[3],function(){return d(this)}),set:curryThis2(r[4])},f="get"):3===a?(u={get:r[3]},f="get"):4===a?(u={set:r[3]},f=\
"set"):u={value:r[3]},0!==a&&(1===a&&setFunctionName(u.set,"#"+n,"set"),setFunctionName(u[f||"value"],"#"+n,f))):0!==a&&(u=Object.getOwnProp\
ertyDescriptor(t,n)),1===a?p={get:u.get,set:u.set}:2===a?p=u.value:3===a?p=u.get:4===a&&(p=u.set),"function"==typeof g)void 0!==(h=memberDec\
(g,n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?l=h:1===a?(l=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h);else for(va\
r m=g.length-1;m>=0;m--){var b;void 0!==(h=memberDec(g[m],n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?b=h:1===a?(b=h.init,v=h.get|\
|p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==b&&(void 0===l?l=b:"function"==typeof l?l=[l,b]:l.push(b)))}if(0===a||1===a){if(void 0==\
=l)l=function(e,t){return t};else if("function"!=typeof l){var I=l;l=function(e,t){for(var r=t,n=0;n<I.length;n++)r=I[n].call(e,r);return r}\
}else{var w=l;l=function(e,t){return w.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=p.get,u.set=p.set):2===a?u.value=p:3===a?u.get=p:4===a&&(u.\
set=p),s?1===a?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===a?e.push(p):e.push((fun\
ction(e,t){return p.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<\
t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,y=d>=5,g=r;if(y?(f=e,0!=(d-=5)&&(p=a=a||[]),v&&!i&&(i=funct\
ion(t){return checkInRHS(t)===e}),g=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=y?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===\
b&&3!==d)throw 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: "+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,\
y,v,p,g)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;\
r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=\
[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}f\
inally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}functio\
n applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}', {
      globals: ["Error", "TypeError", "Object", "Map", "Array"],
      locals: {
        applyDecs2301Factory: ["body.0.id", "body.1.body.body.0.argument.callee.right.callee"],
        applyDecs2301: ["body.1.id", "body.1.body.body.0.argument.callee.left"]
      },
      exportBindingAssignments: ["body.1.body.body.0.argument.callee"],
      exportName: "applyDecs2301",
      dependencies: {
        checkInRHS: ["body.0.body.body.7.body.body.0.body.body.1.consequent.body.1.test.expressions.0.consequent.expressions.2.right.right.b\
ody.body.0.argument.left.callee"],
        setFunctionName: ["body.0.body.body.6.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee", "bo\
dy.0.body.body.6.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],
        toPropertyKey: ["body.0.body.body.2.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]
      }
    }),
    applyDecs2305: Ee("7.21.0", 'function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}f\
unction c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeE\
rror(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e)\
)throw new TypeError("Attempted to access private element on non-instance")}var y,v=t[0],g=t[3],b=!u;if(!b){r||Array.isArray(v)||(v=[v]);var\
 w={},S=[],A=3===o?"get":4===o||d?"set":"value";f?(p||d?w={get:setFunctionName((function(){return g(this)}),n,"get"),set:function(e){t[4](th\
is,e)}}:w[A]=g,p||setFunctionName(w[A],n,2===o?"":A)):p||(w=Object.getOwnPropertyDescriptor(e,n))}for(var P=e,j=v.length-1;j>=0;j-=r?2:1){va\
r D=v[j],E=r?v[j-1]:void 0,I={},O={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:a,addInitializer:function\
(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished");s(t,"An initializer","be",!0),c.push(t)}.bind(nul\
l,I)};try{if(b)(y=s(D.call(E,P,O),"class decorators","return"))&&(P=y);else{var k,F;O.static=l,O.private=f,f?2===o?k=function(e){return m(e)\
,w.value}:(o<4&&(k=i(w,"get",m)),3!==o&&(F=i(w,"set",m))):(k=function(e){return e[n]},(o<2||4===o)&&(F=function(e,t){e[n]=t}));var N=O.acces\
s={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),P=D.call(E,d?{get:w.get,set:w.set}:w[A],O),d){if("object"==typeof\
 P&&P)(y=s(P.get,"accessor.get"))&&(w.get=y),(y=s(P.set,"accessor.set"))&&(w.set=y),(y=s(P.init,"accessor.init"))&&S.push(y);else if(void 0!\
==P)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else s(P,(p?"field":"method\
")+" decorators","return")&&(p?S.push(P):w[A]=P)}}finally{I.v=!0}}return(p||d)&&u.push((function(e,t){for(var r=S.length-1;r>=0;r--)t=S[r].c\
all(e,t);return t})),p||b||(f?d?u.push(i(w,"get"),i(w,"set")):u.push(2===o?w[A]:i.call.bind(w[A])):Object.defineProperty(e,n,w)),P}function \
u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.l\
ength>=6)var l=a[Symbol.metadata||Symbol.for("Symbol.metadata")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=func\
tion(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(\
p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+"/"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)th\
row Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is n\
ot currently supported by the decorators plugin. Property name was: "+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?"#"+h:toPropertyK\
ey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.len\
gth&&[u(applyDec(e,[r],n,e.name,5,f,t),f),c.bind(null,t,e)]}}}', {
      globals: ["TypeError", "Array", "Object", "Error", "Symbol", "Map"],
      locals: {
        applyDecs2305: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "applyDecs2305",
      dependencies: {
        checkInRHS: ["body.0.body.body.6.declarations.1.init.callee.body.body.0.declarations.3.init.body.body.0.argument.left.callee"],
        setFunctionName: ["body.0.body.body.3.body.body.2.consequent.body.2.expression.consequent.expressions.0.consequent.right.properties.\
0.value.callee", "body.0.body.body.3.body.body.2.consequent.body.2.expression.consequent.expressions.1.right.callee"],
        toPropertyKey: ["body.0.body.body.6.declarations.1.init.callee.body.body.2.body.body.1.consequent.body.2.expression.arguments.3.alte\
rnate.callee"]
      }
    }),
    classApplyDescriptorDestructureSet: Ee("7.13.10", 'function _classApplyDescriptorDestructureSet(e,t){if(t.set)return"__destrObj"in t||(t\
.__destrObj={set value(r){t.set.call(e,r)}}),t.__destrObj;if(!t.writable)throw new TypeError("attempted to set read only private field");ret\
urn t}', {
      globals: ["TypeError"],
      locals: {
        _classApplyDescriptorDestructureSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classApplyDescriptorDestructureSet",
      dependencies: {}
    }),
    classApplyDescriptorGet: Ee("7.13.10", "function _classApplyDescriptorGet(e,t){return t.get?t.get.call(e):t.value}", {
      globals: [],
      locals: {
        _classApplyDescriptorGet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classApplyDescriptorGet",
      dependencies: {}
    }),
    classApplyDescriptorSet: Ee("7.13.10", 'function _classApplyDescriptorSet(e,t,l){if(t.set)t.set.call(e,l);else{if(!t.writable)throw new \
TypeError("attempted to set read only private field");t.value=l}}', {
      globals: ["TypeError"],
      locals: {
        _classApplyDescriptorSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classApplyDescriptorSet",
      dependencies: {}
    }),
    classCheckPrivateStaticAccess: Ee("7.13.10", "function _classCheckPrivateStaticAccess(s,a,r){return assertClassBrand(a,s,r)}", {
      globals: [],
      locals: {
        _classCheckPrivateStaticAccess: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classCheckPrivateStaticAccess",
      dependencies: {
        assertClassBrand: ["body.0.body.body.0.argument.callee"]
      }
    }),
    classCheckPrivateStaticFieldDescriptor: Ee("7.13.10", 'function _classCheckPrivateStaticFieldDescriptor(t,e){if(void 0===t)throw new Typ\
eError("attempted to "+e+" private static field before its declaration")}', {
      globals: ["TypeError"],
      locals: {
        _classCheckPrivateStaticFieldDescriptor: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classCheckPrivateStaticFieldDescriptor",
      dependencies: {}
    }),
    classExtractFieldDescriptor: Ee("7.13.10", "function _classExtractFieldDescriptor(e,t){return classPrivateFieldGet2(t,e)}", {
      globals: [],
      locals: {
        _classExtractFieldDescriptor: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classExtractFieldDescriptor",
      dependencies: {
        classPrivateFieldGet2: ["body.0.body.body.0.argument.callee"]
      }
    }),
    classPrivateFieldDestructureSet: Ee("7.4.4", "function _classPrivateFieldDestructureSet(e,t){var r=classPrivateFieldGet2(t,e);return cla\
ssApplyDescriptorDestructureSet(e,r)}", {
      globals: [],
      locals: {
        _classPrivateFieldDestructureSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateFieldDestructureSet",
      dependencies: {
        classApplyDescriptorDestructureSet: ["body.0.body.body.1.argument.callee"],
        classPrivateFieldGet2: ["body.0.body.body.0.declarations.0.init.callee"]
      }
    }),
    classPrivateFieldGet: Ee("7.0.0-beta.0", "function _classPrivateFieldGet(e,t){var r=classPrivateFieldGet2(t,e);return classApplyDescript\
orGet(e,r)}", {
      globals: [],
      locals: {
        _classPrivateFieldGet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateFieldGet",
      dependencies: {
        classApplyDescriptorGet: ["body.0.body.body.1.argument.callee"],
        classPrivateFieldGet2: ["body.0.body.body.0.declarations.0.init.callee"]
      }
    }),
    classPrivateFieldSet: Ee("7.0.0-beta.0", "function _classPrivateFieldSet(e,t,r){var s=classPrivateFieldGet2(t,e);return classApplyDescri\
ptorSet(e,s,r),r}", {
      globals: [],
      locals: {
        _classPrivateFieldSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateFieldSet",
      dependencies: {
        classApplyDescriptorSet: ["body.0.body.body.1.argument.expressions.0.callee"],
        classPrivateFieldGet2: ["body.0.body.body.0.declarations.0.init.callee"]
      }
    }),
    classPrivateMethodGet: Ee("7.1.6", "function _classPrivateMethodGet(s,a,r){return assertClassBrand(a,s),r}", {
      globals: [],
      locals: {
        _classPrivateMethodGet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateMethodGet",
      dependencies: {
        assertClassBrand: ["body.0.body.body.0.argument.expressions.0.callee"]
      }
    }),
    classPrivateMethodSet: Ee("7.1.6", 'function _classPrivateMethodSet(){throw new TypeError("attempted to reassign private method")}', {
      globals: ["TypeError"],
      locals: {
        _classPrivateMethodSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classPrivateMethodSet",
      dependencies: {}
    }),
    classStaticPrivateFieldDestructureSet: Ee("7.13.10", 'function _classStaticPrivateFieldDestructureSet(t,r,s){return assertClassBrand(r,t\
),classCheckPrivateStaticFieldDescriptor(s,"set"),classApplyDescriptorDestructureSet(t,s)}', {
      globals: [],
      locals: {
        _classStaticPrivateFieldDestructureSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classStaticPrivateFieldDestructureSet",
      dependencies: {
        classApplyDescriptorDestructureSet: ["body.0.body.body.0.argument.expressions.2.callee"],
        assertClassBrand: ["body.0.body.body.0.argument.expressions.0.callee"],
        classCheckPrivateStaticFieldDescriptor: ["body.0.body.body.0.argument.expressions.1.callee"]
      }
    }),
    classStaticPrivateFieldSpecGet: Ee("7.0.2", 'function _classStaticPrivateFieldSpecGet(t,s,r){return assertClassBrand(s,t),classCheckPriv\
ateStaticFieldDescriptor(r,"get"),classApplyDescriptorGet(t,r)}', {
      globals: [],
      locals: {
        _classStaticPrivateFieldSpecGet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classStaticPrivateFieldSpecGet",
      dependencies: {
        classApplyDescriptorGet: ["body.0.body.body.0.argument.expressions.2.callee"],
        assertClassBrand: ["body.0.body.body.0.argument.expressions.0.callee"],
        classCheckPrivateStaticFieldDescriptor: ["body.0.body.body.0.argument.expressions.1.callee"]
      }
    }),
    classStaticPrivateFieldSpecSet: Ee("7.0.2", 'function _classStaticPrivateFieldSpecSet(s,t,r,e){return assertClassBrand(t,s),classCheckPr\
ivateStaticFieldDescriptor(r,"set"),classApplyDescriptorSet(s,r,e),e}', {
      globals: [],
      locals: {
        _classStaticPrivateFieldSpecSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classStaticPrivateFieldSpecSet",
      dependencies: {
        classApplyDescriptorSet: ["body.0.body.body.0.argument.expressions.2.callee"],
        assertClassBrand: ["body.0.body.body.0.argument.expressions.0.callee"],
        classCheckPrivateStaticFieldDescriptor: ["body.0.body.body.0.argument.expressions.1.callee"]
      }
    }),
    classStaticPrivateMethodSet: Ee("7.3.2", 'function _classStaticPrivateMethodSet(){throw new TypeError("attempted to set read only static\
 private field")}', {
      globals: ["TypeError"],
      locals: {
        _classStaticPrivateMethodSet: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_classStaticPrivateMethodSet",
      dependencies: {}
    }),
    defineEnumerableProperties: Ee("7.0.0-beta.0", 'function _defineEnumerableProperties(e,r){for(var t in r){var n=r[t];n.configurable=n.en\
umerable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,t,n)}if(Object.getOwnPropertySymbols)for(var a=Object.getOwnPropertySymbols\
(r),b=0;b<a.length;b++){var i=a[b];(n=r[i]).configurable=n.enumerable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i,n)}return e}',
    {
      globals: ["Object"],
      locals: {
        _defineEnumerableProperties: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_defineEnumerableProperties",
      dependencies: {}
    }),
    dispose: Ee("7.22.0", 'function dispose_SuppressedError(r,e){return"undefined"!=typeof SuppressedError?dispose_SuppressedError=Suppresse\
dError:(dispose_SuppressedError=function(r,e){this.suppressed=e,this.error=r,this.stack=Error().stack},dispose_SuppressedError.prototype=Obj\
ect.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(r,e)}func\
tion _dispose(r,e,s){function next(){for(;r.length>0;)try{var o=r.pop(),p=o.d.call(o.v);if(o.a)return Promise.resolve(p).then(next,err)}catc\
h(r){return err(r)}if(s)throw e}function err(r){return e=s?new dispose_SuppressedError(e,r):r,s=!0,next()}return next()}', {
      globals: ["SuppressedError", "Error", "Object", "Promise"],
      locals: {
        dispose_SuppressedError: ["body.0.id", "body.0.body.body.0.argument.expressions.0.alternate.expressions.1.left.object", "body.0.body\
.body.0.argument.expressions.0.alternate.expressions.1.right.arguments.1.properties.0.value.properties.0.value", "body.0.body.body.0.argumen\
t.expressions.1.callee", "body.1.body.body.1.body.body.0.argument.expressions.0.right.consequent.callee", "body.0.body.body.0.argument.expre\
ssions.0.consequent.left", "body.0.body.body.0.argument.expressions.0.alternate.expressions.0.left"],
        _dispose: ["body.1.id"]
      },
      exportBindingAssignments: [],
      exportName: "_dispose",
      dependencies: {}
    }),
    objectSpread: Ee("7.0.0-beta.0", 'function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?Object(argument\
s[r]):{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(t).filter((function(e\
){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.forEach((function(r){defineProperty(e,r,t[r])}))}return e}', {
      globals: ["Object"],
      locals: {
        _objectSpread: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_objectSpread",
      dependencies: {
        defineProperty: ["body.0.body.body.0.body.body.1.expression.expressions.1.arguments.0.body.body.0.expression.callee"]
      }
    }),
    using: Ee("7.22.0", 'function _using(o,n,e){if(null==n)return n;if(Object(n)!==n)throw new TypeError("using declarations can only be use\
d with objects, functions, null, or undefined.");if(e)var r=n[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(null==r&&(r=n[Symbo\
l.dispose||Symbol.for("Symbol.dispose")]),"function"!=typeof r)throw new TypeError("Property [Symbol.dispose] is not a function.");return o.\
push({v:n,d:r,a:e}),n}', {
      globals: ["Object", "TypeError", "Symbol"],
      locals: {
        _using: ["body.0.id"]
      },
      exportBindingAssignments: [],
      exportName: "_using",
      dependencies: {}
    })
  });
});

// ../node_modules/@babel/helpers/lib/index.js
var gN = g((el) => {
  "use strict";
  Object.defineProperty(el, "__esModule", {
    value: !0
  });
  el.default = void 0;
  el.get = xK;
  el.getDependencies = HFe;
  el.list = void 0;
  el.minVersion = $Fe;
  var KFe = fe(), bK = gK(), {
    cloneNode: VFe,
    identifier: TK
  } = KFe;
  function sx(t, e, s) {
    try {
      let r = e.split("."), i = r.shift();
      for (; r.length > 0; )
        t = t[i], i = r.shift();
      if (arguments.length > 2)
        t[i] = s;
      else
        return t[i];
    } catch (r) {
      throw r.message += ` (when accessing ${e})`, r;
    }
  }
  n(sx, "deep");
  function WFe(t, e, s, r, i, a) {
    let {
      locals: o,
      dependencies: l,
      exportBindingAssignments: u,
      exportName: c
    } = e, p = new Set(r || []);
    s && p.add(s);
    for (let [h, f] of (Object.entries || ((d) => Object.keys(d).map((m) => [m, d[m]])))(o)) {
      let d = h;
      if (s && h === c)
        d = s;
      else
        for (; p.has(d); ) d = "_" + d;
      if (d !== h)
        for (let m of f)
          sx(t, m, TK(d));
    }
    for (let [h, f] of (Object.entries || ((d) => Object.keys(d).map((m) => [m, d[m]])))(l)) {
      let d = typeof i == "function" && i(h) || TK(h);
      for (let m of f)
        sx(t, m, VFe(d));
    }
    a?.(t, c, (h) => {
      u.forEach((f) => sx(t, f, h(sx(t, f))));
    });
  }
  n(WFe, "permuteHelperAST");
  var yN = /* @__PURE__ */ Object.create(null);
  function rx(t) {
    if (!yN[t]) {
      let e = bK.default[t];
      if (!e)
        throw Object.assign(new ReferenceError(`Unknown helper ${t}`), {
          code: "BABEL_HELPER_UNKNOWN",
          helper: t
        });
      yN[t] = {
        minVersion: e.minVersion,
        build(s, r, i, a) {
          let o = e.ast();
          return WFe(o, e.metadata, r, i, s, a), {
            nodes: o.body,
            globals: e.metadata.globals
          };
        },
        getDependencies() {
          return Object.keys(e.metadata.dependencies);
        }
      };
    }
    return yN[t];
  }
  n(rx, "loadHelper");
  function xK(t, e, s, r, i) {
    if (typeof s == "object") {
      let a = s;
      a?.type === "Identifier" ? s = a.name : s = void 0;
    }
    return rx(t).build(e, s, r, i);
  }
  n(xK, "get");
  function $Fe(t) {
    return rx(t).minVersion;
  }
  n($Fe, "minVersion");
  function HFe(t) {
    return rx(t).getDependencies();
  }
  n(HFe, "getDependencies");
  el.ensure = (t) => {
    rx(t);
  };
  var WRs = el.list = Object.keys(bK.default).map((t) => t.replace(/^_/, "")), $Rs = el.default = xK;
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/lib/virtual-types.js
var TN = g((ys) => {
  "use strict";
  Object.defineProperty(ys, "__esModule", {
    value: !0
  });
  ys.Var = ys.User = ys.Statement = ys.SpreadProperty = ys.Scope = ys.RestProperty = ys.ReferencedMemberExpression = ys.ReferencedIdentifier =
  ys.Referenced = ys.Pure = ys.NumericLiteralTypeAnnotation = ys.Generated = ys.ForAwaitStatement = ys.Flow = ys.Expression = ys.ExistentialTypeParam =
  ys.BlockScoped = ys.BindingIdentifier = void 0;
  var YRs = ys.ReferencedIdentifier = ["Identifier", "JSXIdentifier"], XRs = ys.ReferencedMemberExpression = ["MemberExpression"], zRs = ys.
  BindingIdentifier = ["Identifier"], GRs = ys.Statement = ["Statement"], QRs = ys.Expression = ["Expression"], ZRs = ys.Scope = ["Scopable",
  "Pattern"], e5s = ys.Referenced = null, t5s = ys.BlockScoped = null, s5s = ys.Var = ["VariableDeclaration"], r5s = ys.User = null, i5s = ys.
  Generated = null, n5s = ys.Pure = null, a5s = ys.Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"], o5s = ys.RestProperty =
  ["RestElement"], l5s = ys.SpreadProperty = ["RestElement"], u5s = ys.ExistentialTypeParam = ["ExistsTypeAnnotation"], c5s = ys.NumericLiteralTypeAnnotation =
  ["NumberLiteralTypeAnnotation"], p5s = ys.ForAwaitStatement = ["ForOfStatement"];
});

// ../node_modules/ms/index.js
var PK = g((f5s, SK) => {
  var hd = 1e3, fd = hd * 60, dd = fd * 60, oh = dd * 24, JFe = oh * 7, YFe = oh * 365.25;
  SK.exports = function(t, e) {
    e = e || {};
    var s = typeof t;
    if (s === "string" && t.length > 0)
      return XFe(t);
    if (s === "number" && isFinite(t))
      return e.long ? GFe(t) : zFe(t);
    throw new Error(
      "val is not a non-empty string or a valid number. val=" + JSON.stringify(t)
    );
  };
  function XFe(t) {
    if (t = String(t), !(t.length > 100)) {
      var e = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.
      exec(
        t
      );
      if (e) {
        var s = parseFloat(e[1]), r = (e[2] || "ms").toLowerCase();
        switch (r) {
          case "years":
          case "year":
          case "yrs":
          case "yr":
          case "y":
            return s * YFe;
          case "weeks":
          case "week":
          case "w":
            return s * JFe;
          case "days":
          case "day":
          case "d":
            return s * oh;
          case "hours":
          case "hour":
          case "hrs":
          case "hr":
          case "h":
            return s * dd;
          case "minutes":
          case "minute":
          case "mins":
          case "min":
          case "m":
            return s * fd;
          case "seconds":
          case "second":
          case "secs":
          case "sec":
          case "s":
            return s * hd;
          case "milliseconds":
          case "millisecond":
          case "msecs":
          case "msec":
          case "ms":
            return s;
          default:
            return;
        }
      }
    }
  }
  n(XFe, "parse");
  function zFe(t) {
    var e = Math.abs(t);
    return e >= oh ? Math.round(t / oh) + "d" : e >= dd ? Math.round(t / dd) + "h" : e >= fd ? Math.round(t / fd) + "m" : e >= hd ? Math.round(
    t / hd) + "s" : t + "ms";
  }
  n(zFe, "fmtShort");
  function GFe(t) {
    var e = Math.abs(t);
    return e >= oh ? ix(t, e, oh, "day") : e >= dd ? ix(t, e, dd, "hour") : e >= fd ? ix(t, e, fd, "minute") : e >= hd ? ix(t, e, hd, "secon\
d") : t + " ms";
  }
  n(GFe, "fmtLong");
  function ix(t, e, s, r) {
    var i = e >= s * 1.5;
    return Math.round(t / s) + " " + r + (i ? "s" : "");
  }
  n(ix, "plural");
});

// ../node_modules/debug/src/common.js
var bN = g((m5s, EK) => {
  function QFe(t) {
    s.debug = s, s.default = s, s.coerce = u, s.disable = a, s.enable = i, s.enabled = o, s.humanize = PK(), s.destroy = c, Object.keys(t).forEach(
    (p) => {
      s[p] = t[p];
    }), s.names = [], s.skips = [], s.formatters = {};
    function e(p) {
      let h = 0;
      for (let f = 0; f < p.length; f++)
        h = (h << 5) - h + p.charCodeAt(f), h |= 0;
      return s.colors[Math.abs(h) % s.colors.length];
    }
    n(e, "selectColor"), s.selectColor = e;
    function s(p) {
      let h, f = null, d, m;
      function y(...T) {
        if (!y.enabled)
          return;
        let b = y, E = Number(/* @__PURE__ */ new Date()), V = E - (h || E);
        b.diff = V, b.prev = h, b.curr = E, h = E, T[0] = s.coerce(T[0]), typeof T[0] != "string" && T.unshift("%O");
        let W = 0;
        T[0] = T[0].replace(/%([a-zA-Z%])/g, (de, ye) => {
          if (de === "%%")
            return "%";
          W++;
          let Oe = s.formatters[ye];
          if (typeof Oe == "function") {
            let be = T[W];
            de = Oe.call(b, be), T.splice(W, 1), W--;
          }
          return de;
        }), s.formatArgs.call(b, T), (b.log || s.log).apply(b, T);
      }
      return n(y, "debug"), y.namespace = p, y.useColors = s.useColors(), y.color = s.selectColor(p), y.extend = r, y.destroy = s.destroy, Object.
      defineProperty(y, "enabled", {
        enumerable: !0,
        configurable: !1,
        get: /* @__PURE__ */ n(() => f !== null ? f : (d !== s.namespaces && (d = s.namespaces, m = s.enabled(p)), m), "get"),
        set: /* @__PURE__ */ n((T) => {
          f = T;
        }, "set")
      }), typeof s.init == "function" && s.init(y), y;
    }
    n(s, "createDebug");
    function r(p, h) {
      let f = s(this.namespace + (typeof h > "u" ? ":" : h) + p);
      return f.log = this.log, f;
    }
    n(r, "extend");
    function i(p) {
      s.save(p), s.namespaces = p, s.names = [], s.skips = [];
      let h, f = (typeof p == "string" ? p : "").split(/[\s,]+/), d = f.length;
      for (h = 0; h < d; h++)
        f[h] && (p = f[h].replace(/\*/g, ".*?"), p[0] === "-" ? s.skips.push(new RegExp("^" + p.slice(1) + "$")) : s.names.push(new RegExp("\
^" + p + "$")));
    }
    n(i, "enable");
    function a() {
      let p = [
        ...s.names.map(l),
        ...s.skips.map(l).map((h) => "-" + h)
      ].join(",");
      return s.enable(""), p;
    }
    n(a, "disable");
    function o(p) {
      if (p[p.length - 1] === "*")
        return !0;
      let h, f;
      for (h = 0, f = s.skips.length; h < f; h++)
        if (s.skips[h].test(p))
          return !1;
      for (h = 0, f = s.names.length; h < f; h++)
        if (s.names[h].test(p))
          return !0;
      return !1;
    }
    n(o, "enabled");
    function l(p) {
      return p.toString().substring(2, p.toString().length - 2).replace(/\.\*\?$/, "*");
    }
    n(l, "toNamespace");
    function u(p) {
      return p instanceof Error ? p.stack || p.message : p;
    }
    n(u, "coerce");
    function c() {
      console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major versio\
n of `debug`.");
    }
    return n(c, "destroy"), s.enable(s.load()), s;
  }
  n(QFe, "setup");
  EK.exports = QFe;
});

// ../node_modules/debug/src/browser.js
var AK = g((oa, nx) => {
  oa.formatArgs = e3e;
  oa.save = t3e;
  oa.load = s3e;
  oa.useColors = ZFe;
  oa.storage = r3e();
  oa.destroy = /* @__PURE__ */ (() => {
    let t = !1;
    return () => {
      t || (t = !0, console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the nex\
t major version of `debug`."));
    };
  })();
  oa.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 ZFe() {
    if (typeof window < "u" && window.process && (window.process.type === "renderer" || window.process.__nwjs))
      return !0;
    if (typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))
      return !1;
    let t;
    return typeof document < "u" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance ||
    // Is firebug? http://stackoverflow.com/a/398120/376773
    typeof window < "u" && 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 < "u" && navigator.userAgent && (t = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(t[1], 10) >=
    31 || // Double check webkit in userAgent just in case we are in a worker
    typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
  }
  n(ZFe, "useColors");
  function e3e(t) {
    if (t[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + t[0] + (this.useColors ? "%c " : " ") + "+" +
    nx.exports.humanize(this.diff), !this.useColors)
      return;
    let e = "color: " + this.color;
    t.splice(1, 0, e, "color: inherit");
    let s = 0, r = 0;
    t[0].replace(/%[a-zA-Z%]/g, (i) => {
      i !== "%%" && (s++, i === "%c" && (r = s));
    }), t.splice(r, 0, e);
  }
  n(e3e, "formatArgs");
  oa.log = console.debug || console.log || (() => {
  });
  function t3e(t) {
    try {
      t ? oa.storage.setItem("debug", t) : oa.storage.removeItem("debug");
    } catch {
    }
  }
  n(t3e, "save");
  function s3e() {
    let t;
    try {
      t = oa.storage.getItem("debug");
    } catch {
    }
    return !t && typeof process < "u" && "env" in process && (t = process.env.DEBUG), t;
  }
  n(s3e, "load");
  function r3e() {
    try {
      return localStorage;
    } catch {
    }
  }
  n(r3e, "localstorage");
  nx.exports = bN()(oa);
  var { formatters: i3e } = nx.exports;
  i3e.j = function(t) {
    try {
      return JSON.stringify(t);
    } catch (e) {
      return "[UnexpectedJSONParseError]: " + e.message;
    }
  };
});

// ../node_modules/has-flag/index.js
var CK = g((T5s, vK) => {
  "use strict";
  vK.exports = (t, e = process.argv) => {
    let s = t.startsWith("-") ? "" : t.length === 1 ? "-" : "--", r = e.indexOf(s + t), i = e.indexOf("--");
    return r !== -1 && (i === -1 || r < i);
  };
});

// ../node_modules/supports-color/index.js
var NK = g((b5s, IK) => {
  "use strict";
  var n3e = Je("os"), wK = Je("tty"), Aa = CK(), { env: Li } = process, Dc;
  Aa("no-color") || Aa("no-colors") || Aa("color=false") || Aa("color=never") ? Dc = 0 : (Aa("color") || Aa("colors") || Aa("color=true") ||
  Aa("color=always")) && (Dc = 1);
  "FORCE_COLOR" in Li && (Li.FORCE_COLOR === "true" ? Dc = 1 : Li.FORCE_COLOR === "false" ? Dc = 0 : Dc = Li.FORCE_COLOR.length === 0 ? 1 : Math.
  min(parseInt(Li.FORCE_COLOR, 10), 3));
  function xN(t) {
    return t === 0 ? !1 : {
      level: t,
      hasBasic: !0,
      has256: t >= 2,
      has16m: t >= 3
    };
  }
  n(xN, "translateLevel");
  function SN(t, e) {
    if (Dc === 0)
      return 0;
    if (Aa("color=16m") || Aa("color=full") || Aa("color=truecolor"))
      return 3;
    if (Aa("color=256"))
      return 2;
    if (t && !e && Dc === void 0)
      return 0;
    let s = Dc || 0;
    if (Li.TERM === "dumb")
      return s;
    if (process.platform === "win32") {
      let r = n3e.release().split(".");
      return Number(r[0]) >= 10 && Number(r[2]) >= 10586 ? Number(r[2]) >= 14931 ? 3 : 2 : 1;
    }
    if ("CI" in Li)
      return ["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((r) => r in Li) || Li.CI_NAME === "codeship" ?
      1 : s;
    if ("TEAMCITY_VERSION" in Li)
      return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Li.TEAMCITY_VERSION) ? 1 : 0;
    if (Li.COLORTERM === "truecolor")
      return 3;
    if ("TERM_PROGRAM" in Li) {
      let r = parseInt((Li.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
      switch (Li.TERM_PROGRAM) {
        case "iTerm.app":
          return r >= 3 ? 3 : 2;
        case "Apple_Terminal":
          return 2;
      }
    }
    return /-256(color)?$/i.test(Li.TERM) ? 2 : /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Li.TERM) || "COLORTERM" in
    Li ? 1 : s;
  }
  n(SN, "supportsColor");
  function a3e(t) {
    let e = SN(t, t && t.isTTY);
    return xN(e);
  }
  n(a3e, "getSupportLevel");
  IK.exports = {
    supportsColor: a3e,
    stdout: xN(SN(!0, wK.isatty(1))),
    stderr: xN(SN(!0, wK.isatty(2)))
  };
});

// ../node_modules/debug/src/node.js
var DK = g((Bi, ox) => {
  var o3e = Je("tty"), ax = Je("util");
  Bi.init = d3e;
  Bi.log = p3e;
  Bi.formatArgs = u3e;
  Bi.save = h3e;
  Bi.load = f3e;
  Bi.useColors = l3e;
  Bi.destroy = ax.deprecate(
    () => {
    },
    "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
  );
  Bi.colors = [6, 2, 3, 4, 5, 1];
  try {
    let t = NK();
    t && (t.stderr || t).level >= 2 && (Bi.colors = [
      20,
      21,
      26,
      27,
      32,
      33,
      38,
      39,
      40,
      41,
      42,
      43,
      44,
      45,
      56,
      57,
      62,
      63,
      68,
      69,
      74,
      75,
      76,
      77,
      78,
      79,
      80,
      81,
      92,
      93,
      98,
      99,
      112,
      113,
      128,
      129,
      134,
      135,
      148,
      149,
      160,
      161,
      162,
      163,
      164,
      165,
      166,
      167,
      168,
      169,
      170,
      171,
      172,
      173,
      178,
      179,
      184,
      185,
      196,
      197,
      198,
      199,
      200,
      201,
      202,
      203,
      204,
      205,
      206,
      207,
      208,
      209,
      214,
      215,
      220,
      221
    ]);
  } catch {
  }
  Bi.inspectOpts = Object.keys(process.env).filter((t) => /^debug_/i.test(t)).reduce((t, e) => {
    let s = e.substring(6).toLowerCase().replace(/_([a-z])/g, (i, a) => a.toUpperCase()), r = process.env[e];
    return /^(yes|on|true|enabled)$/i.test(r) ? r = !0 : /^(no|off|false|disabled)$/i.test(r) ? r = !1 : r === "null" ? r = null : r = Number(
    r), t[s] = r, t;
  }, {});
  function l3e() {
    return "colors" in Bi.inspectOpts ? !!Bi.inspectOpts.colors : o3e.isatty(process.stderr.fd);
  }
  n(l3e, "useColors");
  function u3e(t) {
    let { namespace: e, useColors: s } = this;
    if (s) {
      let r = this.color, i = "\x1B[3" + (r < 8 ? r : "8;5;" + r), a = `  ${i};1m${e} \x1B[0m`;
      t[0] = a + t[0].split(`
`).join(`
` + a), t.push(i + "m+" + ox.exports.humanize(this.diff) + "\x1B[0m");
    } else
      t[0] = c3e() + e + " " + t[0];
  }
  n(u3e, "formatArgs");
  function c3e() {
    return Bi.inspectOpts.hideDate ? "" : (/* @__PURE__ */ new Date()).toISOString() + " ";
  }
  n(c3e, "getDate");
  function p3e(...t) {
    return process.stderr.write(ax.formatWithOptions(Bi.inspectOpts, ...t) + `
`);
  }
  n(p3e, "log");
  function h3e(t) {
    t ? process.env.DEBUG = t : delete process.env.DEBUG;
  }
  n(h3e, "save");
  function f3e() {
    return process.env.DEBUG;
  }
  n(f3e, "load");
  function d3e(t) {
    t.inspectOpts = {};
    let e = Object.keys(Bi.inspectOpts);
    for (let s = 0; s < e.length; s++)
      t.inspectOpts[e[s]] = Bi.inspectOpts[e[s]];
  }
  n(d3e, "init");
  ox.exports = bN()(Bi);
  var { formatters: kK } = ox.exports;
  kK.o = function(t) {
    return this.inspectOpts.colors = this.useColors, ax.inspect(t, this.inspectOpts).split(`
`).map((e) => e.trim()).join(" ");
  };
  kK.O = function(t) {
    return this.inspectOpts.colors = this.useColors, ax.inspect(t, this.inspectOpts);
  };
});

// ../node_modules/debug/src/index.js
var go = g((P5s, PN) => {
  typeof process > "u" || process.type === "renderer" || process.browser === !0 || process.__nwjs ? PN.exports = AK() : PN.exports = DK();
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js
var AN = g((Ci) => {
  "use strict";
  Object.defineProperty(Ci, "__esModule", {
    value: !0
  });
  Ci.isBindingIdentifier = F3e;
  Ci.isBlockScoped = K3e;
  Ci.isExpression = R3e;
  Ci.isFlow = J3e;
  Ci.isForAwaitStatement = z3e;
  Ci.isGenerated = $3e;
  Ci.isPure = H3e;
  Ci.isReferenced = U3e;
  Ci.isReferencedIdentifier = B3e;
  Ci.isReferencedMemberExpression = M3e;
  Ci.isRestProperty = Y3e;
  Ci.isScope = q3e;
  Ci.isSpreadProperty = X3e;
  Ci.isStatement = j3e;
  Ci.isUser = W3e;
  Ci.isVar = V3e;
  var m3e = fe(), {
    isBinding: y3e,
    isBlockScoped: g3e,
    isExportDeclaration: T3e,
    isExpression: b3e,
    isFlow: x3e,
    isForStatement: S3e,
    isForXStatement: P3e,
    isIdentifier: OK,
    isImportDeclaration: E3e,
    isImportSpecifier: A3e,
    isJSXIdentifier: v3e,
    isJSXMemberExpression: C3e,
    isMemberExpression: w3e,
    isRestElement: _K,
    isReferenced: EN,
    isScope: I3e,
    isStatement: N3e,
    isVar: k3e,
    isVariableDeclaration: D3e,
    react: O3e,
    isForOfStatement: _3e
  } = m3e, {
    isCompatTag: L3e
  } = O3e;
  function B3e(t) {
    let {
      node: e,
      parent: s
    } = this;
    if (!OK(e, t) && !C3e(s, t))
      if (v3e(e, t)) {
        if (L3e(e.name)) return !1;
      } else
        return !1;
    return EN(e, s, this.parentPath.parent);
  }
  n(B3e, "isReferencedIdentifier");
  function M3e() {
    let {
      node: t,
      parent: e
    } = this;
    return w3e(t) && EN(t, e);
  }
  n(M3e, "isReferencedMemberExpression");
  function F3e() {
    let {
      node: t,
      parent: e
    } = this, s = this.parentPath.parent;
    return OK(t) && y3e(t, e, s);
  }
  n(F3e, "isBindingIdentifier");
  function j3e() {
    let {
      node: t,
      parent: e
    } = this;
    return N3e(t) ? !(D3e(t) && (P3e(e, {
      left: t
    }) || S3e(e, {
      init: t
    }))) : !1;
  }
  n(j3e, "isStatement");
  function R3e() {
    return this.isIdentifier() ? this.isReferencedIdentifier() : b3e(this.node);
  }
  n(R3e, "isExpression");
  function q3e() {
    return I3e(this.node, this.parent);
  }
  n(q3e, "isScope");
  function U3e() {
    return EN(this.node, this.parent);
  }
  n(U3e, "isReferenced");
  function K3e() {
    return g3e(this.node);
  }
  n(K3e, "isBlockScoped");
  function V3e() {
    return k3e(this.node);
  }
  n(V3e, "isVar");
  function W3e() {
    return this.node && !!this.node.loc;
  }
  n(W3e, "isUser");
  function $3e() {
    return !this.isUser();
  }
  n($3e, "isGenerated");
  function H3e(t) {
    return this.scope.isPure(this.node, t);
  }
  n(H3e, "isPure");
  function J3e() {
    let {
      node: t
    } = this;
    return x3e(t) ? !0 : E3e(t) ? t.importKind === "type" || t.importKind === "typeof" : T3e(t) ? t.exportKind === "type" : A3e(t) ? t.importKind ===
    "type" || t.importKind === "typeof" : !1;
  }
  n(J3e, "isFlow");
  function Y3e() {
    var t;
    return _K(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectPattern());
  }
  n(Y3e, "isRestProperty");
  function X3e() {
    var t;
    return _K(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectExpression());
  }
  n(X3e, "isSpreadProperty");
  function z3e() {
    return _3e(this.node, {
      await: !0
    });
  }
  n(z3e, "isForAwaitStatement");
  Ci.isExistentialTypeParam = /* @__PURE__ */ n(function() {
    throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.");
  }, "isExistentialTypeParam"), Ci.isNumericLiteralTypeAnnotation = /* @__PURE__ */ n(function() {
    throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.");
  }, "isNumericLiteralTypeAnnotation");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js
var lg = g((uh) => {
  "use strict";
  Object.defineProperty(uh, "__esModule", {
    value: !0
  });
  uh.environmentVisitor = i4e;
  uh.explode = WK;
  uh.isExplodedVisitor = VK;
  uh.merge = HK;
  uh.verify = $K;
  var KK = TN(), G3e = AN(), Q3e = fe(), LK = tl(), {
    DEPRECATED_KEYS: BK,
    DEPRECATED_ALIASES: MK,
    FLIPPED_ALIAS_KEYS: FK,
    TYPES: Z3e,
    __internal__deprecationWarning: jK
  } = Q3e;
  function e4e(t) {
    return t in KK;
  }
  n(e4e, "isVirtualType");
  function VK(t) {
    return t?._exploded;
  }
  n(VK, "isExplodedVisitor");
  function WK(t) {
    if (VK(t)) return t;
    t._exploded = !0;
    for (let e of Object.keys(t)) {
      if (lh(e)) continue;
      let s = e.split("|");
      if (s.length === 1) continue;
      let r = t[e];
      delete t[e];
      for (let i of s)
        t[i] = r;
    }
    $K(t), delete t.__esModule, t4e(t), UK(t);
    for (let e of Object.keys(t)) {
      if (lh(e) || !e4e(e)) continue;
      let s = t[e];
      for (let i of Object.keys(s))
        s[i] = s4e(e, s[i]);
      delete t[e];
      let r = KK[e];
      if (r !== null)
        for (let i of r)
          t[i] ? og(t[i], s) : t[i] = s;
      else
        og(t, s);
    }
    for (let e of Object.keys(t)) {
      if (lh(e)) continue;
      let s = FK[e];
      if (e in BK) {
        let i = BK[e];
        jK(e, i, "Visitor "), s = [i];
      } else if (e in MK) {
        let i = MK[e];
        jK(e, i, "Visitor "), s = FK[i];
      }
      if (!s) continue;
      let r = t[e];
      delete t[e];
      for (let i of s) {
        let a = t[i];
        a ? og(a, r) : t[i] = Object.assign({}, r);
      }
    }
    for (let e of Object.keys(t))
      lh(e) || UK(t[e]);
    return t;
  }
  n(WK, "explode$1");
  function $K(t) {
    if (!t._verified) {
      if (typeof t == "function")
        throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Functi\
on }`?");
      for (let e of Object.keys(t)) {
        if ((e === "enter" || e === "exit") && RK(e, t[e]), lh(e)) continue;
        if (!Z3e.includes(e))
          throw new Error(`You gave us a visitor for the node type ${e} but it's not a valid type in @babel/traverse 7.26.9`);
        let s = t[e];
        if (typeof s == "object")
          for (let r of Object.keys(s))
            if (r === "enter" || r === "exit")
              RK(`${e}.${r}`, s[r]);
            else
              throw new Error(`You passed \`traverse()\` a visitor object with the property ${e} that has the invalid property ${r}`);
      }
      t._verified = !0;
    }
  }
  n($K, "verify$1");
  function RK(t, e) {
    let s = [].concat(e);
    for (let r of s)
      if (typeof r != "function")
        throw new TypeError(`Non-function found defined in ${t} with type ${typeof r}`);
  }
  n(RK, "validateVisitorMethods");
  function HK(t, e = [], s) {
    let r = {
      _verified: !0,
      _exploded: !0
    };
    Object.defineProperty(r, "_exploded", {
      enumerable: !1
    }), Object.defineProperty(r, "_verified", {
      enumerable: !1
    });
    for (let i = 0; i < t.length; i++) {
      let a = WK(t[i]), o = e[i], l = a;
      (o || s) && (l = qK(l, o, s)), og(r, l);
      for (let u of Object.keys(a)) {
        if (lh(u)) continue;
        let c = a[u];
        (o || s) && (c = qK(c, o, s));
        let p = r[u] || (r[u] = {});
        og(p, c);
      }
    }
    return r;
  }
  n(HK, "merge");
  function qK(t, e, s) {
    let r = {};
    for (let i of ["enter", "exit"]) {
      let a = t[i];
      Array.isArray(a) && (a = a.map(function(o) {
        let l = o;
        return e && (l = /* @__PURE__ */ n(function(u) {
          o.call(e, u, e);
        }, "newFn")), s && (l = s(e?.key, i, l)), l !== o && (l.toString = () => o.toString()), l;
      }), r[i] = a);
    }
    return r;
  }
  n(qK, "wrapWithStateOrWrapper");
  function t4e(t) {
    for (let e of Object.keys(t)) {
      if (lh(e)) continue;
      let s = t[e];
      typeof s == "function" && (t[e] = {
        enter: s
      });
    }
  }
  n(t4e, "ensureEntranceObjects");
  function UK(t) {
    t.enter && !Array.isArray(t.enter) && (t.enter = [t.enter]), t.exit && !Array.isArray(t.exit) && (t.exit = [t.exit]);
  }
  n(UK, "ensureCallbackArrays");
  function s4e(t, e) {
    let s = `is${t}`, r = G3e[s], i = /* @__PURE__ */ n(function(a) {
      if (r.call(a))
        return e.apply(this, arguments);
    }, "newFn");
    return i.toString = () => e.toString(), i;
  }
  n(s4e, "wrapCheck");
  function lh(t) {
    return t[0] === "_" || t === "enter" || t === "exit" || t === "shouldSkip" || t === "denylist" || t === "noScope" || t === "skipKeys" ||
    t === "blacklist";
  }
  n(lh, "shouldIgnoreKey");
  function og(t, e) {
    for (let s of ["enter", "exit"])
      e[s] && (t[s] = [].concat(t[s] || [], e[s]));
  }
  n(og, "mergePair");
  var r4e = {
    FunctionParent(t) {
      t.isArrowFunctionExpression() || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() :
      LK.requeueComputedKeyAndDecorators.call(t)));
    },
    Property(t) {
      t.isObjectProperty() || (t.skip(), t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() : LK.requeueComputedKeyAndDecorators.
      call(t));
    }
  };
  function i4e(t) {
    return HK([r4e, t]);
  }
  n(i4e, "environmentVisitor");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/lib/renamer.js
var JK = g((ux) => {
  "use strict";
  Object.defineProperty(ux, "__esModule", {
    value: !0
  });
  ux.default = void 0;
  var lx = fe(), n4e = lx, a4e = cx(), o4e = lg(), l4e = tl(), {
    getAssignmentIdentifiers: u4e
  } = n4e, c4e = {
    ReferencedIdentifier({
      node: t
    }, e) {
      t.name === e.oldName && (t.name = e.newName);
    },
    Scope(t, e) {
      t.scope.bindingIdentifierEquals(e.oldName, e.binding.identifier) || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.
      requeueComputedKeyAndDecorators() : l4e.requeueComputedKeyAndDecorators.call(t)));
    },
    ObjectProperty({
      node: t,
      scope: e
    }, s) {
      let {
        name: r
      } = t.key;
      if (t.shorthand && (r === s.oldName || r === s.newName) && e.getBindingIdentifier(r) === s.binding.identifier) {
        t.shorthand = !1;
        {
          var i;
          (i = t.extra) != null && i.shorthand && (t.extra.shorthand = !1);
        }
      }
    },
    "AssignmentExpression|Declaration|VariableDeclarator"(t, e) {
      if (t.isVariableDeclaration()) return;
      let s = t.isAssignmentExpression() ? u4e(t.node) : t.getOuterBindingIdentifiers();
      for (let r in s)
        r === e.oldName && (s[r].name = e.newName);
    }
  }, vN = class {
    static {
      n(this, "Renamer");
    }
    constructor(e, s, r) {
      this.newName = r, this.oldName = s, this.binding = e;
    }
    maybeConvertFromExportDeclaration(e) {
      let s = e.parentPath;
      if (s.isExportDeclaration()) {
        if (s.isExportDefaultDeclaration()) {
          let {
            declaration: r
          } = s.node;
          if (lx.isDeclaration(r) && !r.id)
            return;
        }
        s.isExportAllDeclaration() || s.splitExportDeclaration();
      }
    }
    maybeConvertFromClassFunctionDeclaration(e) {
      return e;
    }
    maybeConvertFromClassFunctionExpression(e) {
      return e;
    }
    rename() {
      let {
        binding: e,
        oldName: s,
        newName: r
      } = this, {
        scope: i,
        path: a
      } = e, o = a.find((c) => c.isDeclaration() || c.isFunctionExpression() || c.isClassExpression());
      o && o.getOuterBindingIdentifiers()[s] === e.identifier && this.maybeConvertFromExportDeclaration(o);
      let l = arguments[0] || i.block, u = {
        discriminant: !0
      };
      lx.isMethod(l) && (l.computed && (u.key = !0), lx.isObjectMethod(l) || (u.decorators = !0)), (0, a4e.traverseNode)(l, (0, o4e.explode)(
      c4e), i, this, i.path, u), arguments[0] || (i.removeOwnBinding(s), i.bindings[r] = e, this.binding.identifier.name = r), o && (this.maybeConvertFromClassFunctionDeclaration(
      a), this.maybeConvertFromClassFunctionExpression(a));
    }
  };
  ux.default = vN;
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/binding.js
var YK = g((px) => {
  "use strict";
  Object.defineProperty(px, "__esModule", {
    value: !0
  });
  px.default = void 0;
  var CN = class {
    static {
      n(this, "Binding");
    }
    constructor({
      identifier: e,
      scope: s,
      path: r,
      kind: i
    }) {
      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 = e, this.scope = s, this.path = r, this.kind = i,
      (i === "var" || i === "hoisted") && p4e(r) && this.reassign(r), this.clearValue();
    }
    deoptValue() {
      this.clearValue(), this.hasDeoptedValue = !0;
    }
    setValue(e) {
      this.hasDeoptedValue || (this.hasValue = !0, this.value = e);
    }
    clearValue() {
      this.hasDeoptedValue = !1, this.hasValue = !1, this.value = null;
    }
    reassign(e) {
      this.constant = !1, !this.constantViolations.includes(e) && this.constantViolations.push(e);
    }
    reference(e) {
      this.referencePaths.includes(e) || (this.referenced = !0, this.references++, this.referencePaths.push(e));
    }
    dereference() {
      this.references--, this.referenced = !!this.references;
    }
  };
  px.default = CN;
  function p4e(t) {
    for (let {
      parentPath: e,
      key: s
    } = t; e; {
      parentPath: e,
      key: s
    } = e) {
      if (e.isFunctionParent()) return !1;
      if (e.isWhile() || e.isForXStatement() || e.isForStatement() && s === "body")
        return !0;
    }
    return !1;
  }
  n(p4e, "isDeclaredInLoop");
});

// ../node_modules/globals/globals.json
var XK = g((D5s, h4e) => {
  h4e.exports = {
    builtin: {
      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
    },
    es5: {
      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
    },
    es2015: {
      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
    },
    es2017: {
      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
    },
    browser: {
      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
    },
    worker: {
      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
    },
    node: {
      __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
    },
    commonjs: {
      exports: !0,
      global: !1,
      module: !1,
      require: !1
    },
    amd: {
      define: !1,
      require: !1
    },
    mocha: {
      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
    },
    jasmine: {
      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
    },
    jest: {
      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
    },
    qunit: {
      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
    },
    phantomjs: {
      console: !0,
      exports: !0,
      phantom: !0,
      require: !0,
      WebPage: !0
    },
    couch: {
      emit: !1,
      exports: !1,
      getRow: !1,
      log: !1,
      module: !1,
      provides: !1,
      require: !1,
      respond: !1,
      send: !1,
      start: !1,
      sum: !1
    },
    rhino: {
      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
    },
    nashorn: {
      __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
    },
    wsh: {
      ActiveXObject: !0,
      Enumerator: !0,
      GetObject: !0,
      ScriptEngine: !0,
      ScriptEngineBuildVersion: !0,
      ScriptEngineMajorVersion: !0,
      ScriptEngineMinorVersion: !0,
      VBArray: !0,
      WScript: !0,
      WSH: !0,
      XDomainRequest: !0
    },
    jquery: {
      $: !1,
      jQuery: !1
    },
    yui: {
      YAHOO: !1,
      YAHOO_config: !1,
      YUI: !1,
      YUI_config: !1
    },
    shelljs: {
      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
    },
    prototypejs: {
      $: !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
    },
    meteor: {
      _: !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
    },
    mongo: {
      _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
    },
    applescript: {
      $: !1,
      Application: !1,
      Automation: !1,
      console: !1,
      delay: !1,
      Library: !1,
      ObjC: !1,
      ObjectSpecifier: !1,
      Path: !1,
      Progress: !1,
      Ref: !1
    },
    serviceworker: {
      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
    },
    atomtest: {
      advanceClock: !1,
      fakeClearInterval: !1,
      fakeClearTimeout: !1,
      fakeSetInterval: !1,
      fakeSetTimeout: !1,
      resetTimeouts: !1,
      waitsForPromise: !1
    },
    embertest: {
      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
    },
    protractor: {
      $: !1,
      $$: !1,
      browser: !1,
      by: !1,
      By: !1,
      DartObject: !1,
      element: !1,
      protractor: !1
    },
    "shared-node-browser": {
      clearInterval: !1,
      clearTimeout: !1,
      console: !1,
      setInterval: !1,
      setTimeout: !1,
      URL: !1,
      URLSearchParams: !1
    },
    webextensions: {
      browser: !1,
      chrome: !1,
      opr: !1
    },
    greasemonkey: {
      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
    },
    devtools: {
      $: !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
    }
  };
});

// ../node_modules/globals/index.js
var md = g((O5s, zK) => {
  "use strict";
  zK.exports = XK();
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/cache.js
var ch = g((la) => {
  "use strict";
  Object.defineProperty(la, "__esModule", {
    value: !0
  });
  la.clear = d4e;
  la.clearPath = GK;
  la.clearScope = QK;
  la.getCachedPaths = m4e;
  la.getOrCreateCachedPaths = y4e;
  la.scope = la.path = void 0;
  var hx = la.path = /* @__PURE__ */ new WeakMap(), f4e = la.scope = /* @__PURE__ */ new WeakMap();
  function d4e() {
    GK(), QK();
  }
  n(d4e, "clear");
  function GK() {
    la.path = hx = /* @__PURE__ */ new WeakMap();
  }
  n(GK, "clearPath");
  function QK() {
    la.scope = f4e = /* @__PURE__ */ new WeakMap();
  }
  n(QK, "clearScope");
  var wN = Object.freeze({});
  function m4e(t, e) {
    var s, r;
    return t = null, (s = hx.get((r = t) != null ? r : wN)) == null ? void 0 : s.get(e);
  }
  n(m4e, "getCachedPaths");
  function y4e(t, e) {
    var s, r;
    t = null;
    let i = hx.get((s = t) != null ? s : wN);
    i || hx.set((r = t) != null ? r : wN, i = /* @__PURE__ */ new WeakMap());
    let a = i.get(e);
    return a || i.set(e, a = /* @__PURE__ */ new Map()), a;
  }
  n(y4e, "getOrCreateCachedPaths");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js
var DN = g((dx) => {
  "use strict";
  Object.defineProperty(dx, "__esModule", {
    value: !0
  });
  dx.default = void 0;
  var g4e = JK(), T4e = Yl(), b4e = YK(), x4e = md(), oV = fe(), lV = oV, ZK = ch(), S4e = lg(), {
    NOT_LOCAL_BINDING: eV,
    assignmentExpression: P4e,
    callExpression: tV,
    cloneNode: sV,
    getBindingIdentifiers: uV,
    identifier: hh,
    isArrayExpression: cV,
    isBinary: E4e,
    isCallExpression: rV,
    isClass: A4e,
    isClassBody: v4e,
    isClassDeclaration: C4e,
    isExportAllDeclaration: pV,
    isExportDefaultDeclaration: w4e,
    isExportNamedDeclaration: IN,
    isFunctionDeclaration: I4e,
    isIdentifier: ph,
    isImportDeclaration: NN,
    isLiteral: N4e,
    isMemberExpression: k4e,
    isMethod: D4e,
    isModuleSpecifier: O4e,
    isNullLiteral: _4e,
    isObjectExpression: L4e,
    isProperty: B4e,
    isPureish: M4e,
    isRegExpLiteral: F4e,
    isSuper: j4e,
    isTaggedTemplateExpression: R4e,
    isTemplateLiteral: hV,
    isThisExpression: iV,
    isUnaryExpression: q4e,
    isVariableDeclaration: U4e,
    expressionStatement: K4e,
    matchesPattern: nV,
    memberExpression: kN,
    numericLiteral: V4e,
    toIdentifier: W4e,
    variableDeclaration: $4e,
    variableDeclarator: H4e,
    isRecordExpression: J4e,
    isTupleExpression: Y4e,
    isObjectProperty: X4e,
    isTopicReference: aV,
    isMetaProperty: z4e,
    isPrivateName: G4e,
    isExportDeclaration: Q4e,
    buildUndefinedNode: Z4e,
    sequenceExpression: eje
  } = oV;
  function Cr(t, e) {
    switch (t?.type) {
      default:
        if (NN(t) || Q4e(t)) {
          var s;
          if ((pV(t) || IN(t) || NN(t)) && t.source)
            Cr(t.source, e);
          else if ((IN(t) || NN(t)) && (s = t.specifiers) != null && s.length)
            for (let r of t.specifiers) Cr(r, e);
          else (w4e(t) || IN(t)) && t.declaration && Cr(t.declaration, e);
        } else O4e(t) ? Cr(t.local, e) : N4e(t) && !_4e(t) && !F4e(t) && !hV(t) && e.push(t.value);
        break;
      case "MemberExpression":
      case "OptionalMemberExpression":
      case "JSXMemberExpression":
        Cr(t.object, e), Cr(t.property, e);
        break;
      case "Identifier":
      case "JSXIdentifier":
        e.push(t.name);
        break;
      case "CallExpression":
      case "OptionalCallExpression":
      case "NewExpression":
        Cr(t.callee, e);
        break;
      case "ObjectExpression":
      case "ObjectPattern":
        for (let r of t.properties)
          Cr(r, e);
        break;
      case "SpreadElement":
      case "RestElement":
        Cr(t.argument, e);
        break;
      case "ObjectProperty":
      case "ObjectMethod":
      case "ClassProperty":
      case "ClassMethod":
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
        Cr(t.key, e);
        break;
      case "ThisExpression":
        e.push("this");
        break;
      case "Super":
        e.push("super");
        break;
      case "Import":
        e.push("import");
        break;
      case "DoExpression":
        e.push("do");
        break;
      case "YieldExpression":
        e.push("yield"), Cr(t.argument, e);
        break;
      case "AwaitExpression":
        e.push("await"), Cr(t.argument, e);
        break;
      case "AssignmentExpression":
        Cr(t.left, e);
        break;
      case "VariableDeclarator":
        Cr(t.id, e);
        break;
      case "FunctionExpression":
      case "FunctionDeclaration":
      case "ClassExpression":
      case "ClassDeclaration":
        Cr(t.id, e);
        break;
      case "PrivateName":
        Cr(t.id, e);
        break;
      case "ParenthesizedExpression":
        Cr(t.expression, e);
        break;
      case "UnaryExpression":
      case "UpdateExpression":
        Cr(t.argument, e);
        break;
      case "MetaProperty":
        Cr(t.meta, e), Cr(t.property, e);
        break;
      case "JSXElement":
        Cr(t.openingElement, e);
        break;
      case "JSXOpeningElement":
        Cr(t.name, e);
        break;
      case "JSXFragment":
        Cr(t.openingFragment, e);
        break;
      case "JSXOpeningFragment":
        e.push("Fragment");
        break;
      case "JSXNamespacedName":
        Cr(t.namespace, e), Cr(t.name, e);
        break;
    }
  }
  n(Cr, "gatherNodeParts");
  var fx = {
    ForStatement(t) {
      let e = t.get("init");
      if (e.isVar()) {
        let {
          scope: s
        } = t;
        (s.getFunctionParent() || s.getProgramParent()).registerBinding("var", e);
      }
    },
    Declaration(t) {
      if (t.isBlockScoped() || t.isImportDeclaration() || t.isExportDeclaration()) return;
      (t.scope.getFunctionParent() || t.scope.getProgramParent()).registerDeclaration(t);
    },
    ImportDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    TSImportEqualsDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    ReferencedIdentifier(t, e) {
      lV.isTSQualifiedName(t.parent) && t.parent.right === t.node || t.parentPath.isTSImportEqualsDeclaration() || e.references.push(t);
    },
    ForXStatement(t, e) {
      let s = t.get("left");
      if (s.isPattern() || s.isIdentifier())
        e.constantViolations.push(t);
      else if (s.isVar()) {
        let {
          scope: r
        } = t;
        (r.getFunctionParent() || r.getProgramParent()).registerBinding("var", s);
      }
    },
    ExportDeclaration: {
      exit(t) {
        let {
          node: e,
          scope: s
        } = t;
        if (pV(e)) return;
        let r = e.declaration;
        if (C4e(r) || I4e(r)) {
          let i = r.id;
          if (!i) return;
          let a = s.getBinding(i.name);
          a?.reference(t);
        } else if (U4e(r))
          for (let i of r.declarations)
            for (let a of Object.keys(uV(i))) {
              let o = s.getBinding(a);
              o?.reference(t);
            }
      }
    },
    LabeledStatement(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    AssignmentExpression(t, e) {
      e.assignments.push(t);
    },
    UpdateExpression(t, e) {
      e.constantViolations.push(t);
    },
    UnaryExpression(t, e) {
      t.node.operator === "delete" && e.constantViolations.push(t);
    },
    BlockScoped(t) {
      let e = t.scope;
      if (e.path === t && (e = e.parent), e.getBlockParent().registerDeclaration(t), t.isClassDeclaration() && t.node.id) {
        let i = t.node.id.name;
        t.scope.bindings[i] = t.scope.parent.getBinding(i);
      }
    },
    CatchClause(t) {
      t.scope.registerBinding("let", t);
    },
    Function(t) {
      let e = t.get("params");
      for (let s of e)
        t.scope.registerBinding("param", s);
      t.isFunctionExpression() && t.node.id && !t.node.id[eV] && t.scope.registerBinding("local", t.get("id"), t);
    },
    ClassExpression(t) {
      t.node.id && !t.node.id[eV] && t.scope.registerBinding("local", t.get("id"), t);
    },
    TSTypeAnnotation(t) {
      t.skip();
    }
  }, tje = 0, To = class t {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.uid = void 0, this.path = void 0, this.block = void 0, this.inited = void 0, this.labels = 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;
      let {
        node: s
      } = e, r = ZK.scope.get(s);
      if (r?.path === e)
        return r;
      ZK.scope.set(s, this), this.uid = tje++, this.block = s, this.path = e, this.labels = /* @__PURE__ */ new Map(), this.inited = !1;
    }
    get parent() {
      var e;
      let s, r = this.path;
      do {
        var i;
        let a = r.key === "key" || r.listKey === "decorators";
        r = r.parentPath, a && r.isMethod() && (r = r.parentPath), (i = r) != null && i.isScope() && (s = r);
      } while (r && !s);
      return (e = s) == null ? void 0 : e.scope;
    }
    generateDeclaredUidIdentifier(e) {
      let s = this.generateUidIdentifier(e);
      return this.push({
        id: s
      }), sV(s);
    }
    generateUidIdentifier(e) {
      return hh(this.generateUid(e));
    }
    generateUid(e = "temp") {
      e = W4e(e).replace(/^_+/, "").replace(/\d+$/g, "");
      let s, r = 1;
      do
        s = `_${e}`, r > 1 && (s += r), r++;
      while (this.hasLabel(s) || this.hasBinding(s) || this.hasGlobal(s) || this.hasReference(s));
      let i = this.getProgramParent();
      return i.references[s] = !0, i.uids[s] = !0, s;
    }
    generateUidBasedOnNode(e, s) {
      let r = [];
      Cr(e, r);
      let i = r.join("$");
      return i = i.replace(/^_/, "") || s || "ref", this.generateUid(i.slice(0, 20));
    }
    generateUidIdentifierBasedOnNode(e, s) {
      return hh(this.generateUidBasedOnNode(e, s));
    }
    isStatic(e) {
      if (iV(e) || j4e(e) || aV(e))
        return !0;
      if (ph(e)) {
        let s = this.getBinding(e.name);
        return s ? s.constant : this.hasBinding(e.name);
      }
      return !1;
    }
    maybeGenerateMemoised(e, s) {
      if (this.isStatic(e))
        return null;
      {
        let r = this.generateUidIdentifierBasedOnNode(e);
        return s ? r : (this.push({
          id: r
        }), sV(r));
      }
    }
    checkBlockScopedCollisions(e, s, r, i) {
      if (s === "param" || e.kind === "local") return;
      if (s === "let" || e.kind === "let" || e.kind === "const" || e.kind === "module" || e.kind === "param" && s === "const")
        throw this.path.hub.buildError(i, `Duplicate declaration "${r}"`, TypeError);
    }
    rename(e, s) {
      let r = this.getBinding(e);
      r && (s || (s = this.generateUidIdentifier(e).name), new g4e.default(r, e, s).rename(arguments[2]));
    }
    dump() {
      let e = "-".repeat(60);
      console.log(e);
      let s = this;
      do {
        console.log("#", s.block.type);
        for (let r of Object.keys(s.bindings)) {
          let i = s.bindings[r];
          console.log(" -", r, {
            constant: i.constant,
            references: i.references,
            violations: i.constantViolations.length,
            kind: i.kind
          });
        }
      } while (s = s.parent);
      console.log(e);
    }
    hasLabel(e) {
      return !!this.getLabel(e);
    }
    getLabel(e) {
      return this.labels.get(e);
    }
    registerLabel(e) {
      this.labels.set(e.node.label.name, e);
    }
    registerDeclaration(e) {
      if (e.isLabeledStatement())
        this.registerLabel(e);
      else if (e.isFunctionDeclaration())
        this.registerBinding("hoisted", e.get("id"), e);
      else if (e.isVariableDeclaration()) {
        let s = e.get("declarations"), {
          kind: r
        } = e.node;
        for (let i of s)
          this.registerBinding(r === "using" || r === "await using" ? "const" : r, i);
      } else if (e.isClassDeclaration()) {
        if (e.node.declare) return;
        this.registerBinding("let", e);
      } else if (e.isImportDeclaration()) {
        let s = e.node.importKind === "type" || e.node.importKind === "typeof", r = e.get("specifiers");
        for (let i of r) {
          let a = s || i.isImportSpecifier() && (i.node.importKind === "type" || i.node.importKind === "typeof");
          this.registerBinding(a ? "unknown" : "module", i);
        }
      } else if (e.isExportDeclaration()) {
        let s = e.get("declaration");
        (s.isClassDeclaration() || s.isFunctionDeclaration() || s.isVariableDeclaration()) && this.registerDeclaration(s);
      } else
        this.registerBinding("unknown", e);
    }
    buildUndefinedNode() {
      return Z4e();
    }
    registerConstantViolation(e) {
      let s = e.getAssignmentIdentifiers();
      for (let i of Object.keys(s)) {
        var r;
        (r = this.getBinding(i)) == null || r.reassign(e);
      }
    }
    registerBinding(e, s, r = s) {
      if (!e) throw new ReferenceError("no `kind`");
      if (s.isVariableDeclaration()) {
        let o = s.get("declarations");
        for (let l of o)
          this.registerBinding(e, l);
        return;
      }
      let i = this.getProgramParent(), a = s.getOuterBindingIdentifiers(!0);
      for (let o of Object.keys(a)) {
        i.references[o] = !0;
        for (let l of a[o]) {
          let u = this.getOwnBinding(o);
          if (u) {
            if (u.identifier === l) continue;
            this.checkBlockScopedCollisions(u, e, o, l);
          }
          u ? u.reassign(r) : this.bindings[o] = new b4e.default({
            identifier: l,
            scope: this,
            path: r,
            kind: e
          });
        }
      }
    }
    addGlobal(e) {
      this.globals[e.name] = e;
    }
    hasUid(e) {
      let s = this;
      do
        if (s.uids[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasGlobal(e) {
      let s = this;
      do
        if (s.globals[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasReference(e) {
      return !!this.getProgramParent().references[e];
    }
    isPure(e, s) {
      if (ph(e)) {
        let o = this.getBinding(e.name);
        return o ? s ? o.constant : !0 : !1;
      } else {
        if (iV(e) || z4e(e) || aV(e) || G4e(e))
          return !0;
        if (A4e(e)) {
          var r;
          return e.superClass && !this.isPure(e.superClass, s) || ((r = e.decorators) == null ? void 0 : r.length) > 0 ? !1 : this.isPure(e.
          body, s);
        } else if (v4e(e)) {
          for (let o of e.body)
            if (!this.isPure(o, s)) return !1;
          return !0;
        } else {
          if (E4e(e))
            return this.isPure(e.left, s) && this.isPure(e.right, s);
          if (cV(e) || Y4e(e)) {
            for (let o of e.elements)
              if (o !== null && !this.isPure(o, s)) return !1;
            return !0;
          } else if (L4e(e) || J4e(e)) {
            for (let o of e.properties)
              if (!this.isPure(o, s)) return !1;
            return !0;
          } else if (D4e(e)) {
            var i;
            return !(e.computed && !this.isPure(e.key, s) || ((i = e.decorators) == null ? void 0 : i.length) > 0);
          } else if (B4e(e)) {
            var a;
            return !(e.computed && !this.isPure(e.key, s) || ((a = e.decorators) == null ? void 0 : a.length) > 0 || (X4e(e) || e.static) &&
            e.value !== null && !this.isPure(e.value, s));
          } else {
            if (q4e(e))
              return this.isPure(e.argument, s);
            if (hV(e)) {
              for (let o of e.expressions)
                if (!this.isPure(o, s)) return !1;
              return !0;
            } else return R4e(e) ? nV(e.tag, "String.raw") && !this.hasBinding("String", {
              noGlobals: !0
            }) && this.isPure(e.quasi, s) : k4e(e) ? !e.computed && ph(e.object) && e.object.name === "Symbol" && ph(e.property) && e.property.
            name !== "for" && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) : rV(e) ? nV(e.callee, "Symbol.for") && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) && e.arguments.length === 1 && lV.isStringLiteral(e.arguments[0]) : M4e(e);
          }
        }
      }
    }
    setData(e, s) {
      return this.data[e] = s;
    }
    getData(e) {
      let s = this;
      do {
        let r = s.data[e];
        if (r != null) return r;
      } while (s = s.parent);
    }
    removeData(e) {
      let s = this;
      do
        s.data[e] != null && (s.data[e] = null);
      while (s = s.parent);
    }
    init() {
      this.inited || (this.inited = !0, this.crawl());
    }
    crawl() {
      let e = 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);
      let s = this;
      do {
        if (s.crawling) return;
        if (s.path.isProgram())
          break;
      } while (s = s.parent);
      let r = s, i = {
        references: [],
        constantViolations: [],
        assignments: []
      };
      if (this.crawling = !0, e.type !== "Program" && (0, S4e.isExplodedVisitor)(fx)) {
        for (let o of fx.enter)
          o.call(i, e, i);
        let a = fx[e.type];
        if (a)
          for (let o of a.enter)
            o.call(i, e, i);
      }
      e.traverse(fx, i), this.crawling = !1;
      for (let a of i.assignments) {
        let o = a.getAssignmentIdentifiers();
        for (let l of Object.keys(o))
          a.scope.getBinding(l) || r.addGlobal(o[l]);
        a.scope.registerConstantViolation(a);
      }
      for (let a of i.references) {
        let o = a.scope.getBinding(a.node.name);
        o ? o.reference(a) : r.addGlobal(a.node);
      }
      for (let a of i.constantViolations)
        a.scope.registerConstantViolation(a);
    }
    push(e) {
      let s = this.path;
      s.isPattern() ? s = this.getPatternParent().path : !s.isBlockStatement() && !s.isProgram() && (s = this.getBlockParent().path), s.isSwitchStatement() &&
      (s = (this.getFunctionParent() || this.getProgramParent()).path);
      let {
        init: r,
        unique: i,
        kind: a = "var",
        id: o
      } = e;
      if (!r && !i && (a === "var" || a === "let") && s.isFunction() && !s.node.name && rV(s.parent, {
        callee: s.node
      }) && s.parent.arguments.length <= s.node.params.length && ph(o)) {
        s.pushContainer("params", o), s.scope.registerBinding("param", s.get("params")[s.node.params.length - 1]);
        return;
      }
      (s.isLoop() || s.isCatchClause() || s.isFunction()) && (s.ensureBlock(), s = s.get("body"));
      let l = e._blockHoist == null ? 2 : e._blockHoist, u = `declaration:${a}:${l}`, c = !i && s.getData(u);
      if (!c) {
        let f = $4e(a, []);
        f._blockHoist = l, [c] = s.unshiftContainer("body", [f]), i || s.setData(u, c);
      }
      let p = H4e(o, r), h = c.node.declarations.push(p);
      s.scope.registerBinding(a, c.get("declarations")[h - 1]);
    }
    getProgramParent() {
      let e = this;
      do
        if (e.path.isProgram())
          return e;
      while (e = e.parent);
      throw new Error("Couldn't find a Program");
    }
    getFunctionParent() {
      let e = this;
      do
        if (e.path.isFunctionParent())
          return e;
      while (e = e.parent);
      return null;
    }
    getBlockParent() {
      let e = this;
      do
        if (e.path.isBlockParent())
          return e;
      while (e = e.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getPatternParent() {
      let e = this;
      do
        if (!e.path.isPattern())
          return e.getBlockParent();
      while (e = e.parent.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getAllBindings() {
      let e = /* @__PURE__ */ Object.create(null), s = this;
      do {
        for (let r of Object.keys(s.bindings))
          r in e || (e[r] = s.bindings[r]);
        s = s.parent;
      } while (s);
      return e;
    }
    bindingIdentifierEquals(e, s) {
      return this.getBindingIdentifier(e) === s;
    }
    getBinding(e) {
      let s = this, r;
      do {
        let a = s.getOwnBinding(e);
        if (a) {
          var i;
          if (!((i = r) != null && i.isPattern() && a.kind !== "param" && a.kind !== "local"))
            return a;
        } else if (!a && e === "arguments" && s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
        r = s.path;
      } while (s = s.parent);
    }
    getOwnBinding(e) {
      return this.bindings[e];
    }
    getBindingIdentifier(e) {
      var s;
      return (s = this.getBinding(e)) == null ? void 0 : s.identifier;
    }
    getOwnBindingIdentifier(e) {
      let s = this.bindings[e];
      return s?.identifier;
    }
    hasOwnBinding(e) {
      return !!this.getOwnBinding(e);
    }
    hasBinding(e, s) {
      if (!e) return !1;
      let r = this;
      do
        if (r.hasOwnBinding(e))
          return !0;
      while (r = r.parent);
      let i, a;
      return typeof s == "object" ? (i = s.noGlobals, a = s.noUids) : typeof s == "boolean" && (i = s), !!(!a && this.hasUid(e) || !i && t.globals.
      includes(e) || !i && t.contextVariables.includes(e));
    }
    parentHasBinding(e, s) {
      var r;
      return (r = this.parent) == null ? void 0 : r.hasBinding(e, s);
    }
    moveBindingTo(e, s) {
      let r = this.getBinding(e);
      r && (r.scope.removeOwnBinding(e), r.scope = s, s.bindings[e] = r);
    }
    removeOwnBinding(e) {
      delete this.bindings[e];
    }
    removeBinding(e) {
      var s;
      (s = this.getBinding(e)) == null || s.scope.removeOwnBinding(e);
      let r = this;
      do
        r.uids[e] && (r.uids[e] = !1);
      while (r = r.parent);
    }
    hoistVariables(e = (s) => this.push({
      id: s
    })) {
      this.crawl();
      let s = /* @__PURE__ */ new Set();
      for (let i of Object.keys(this.bindings)) {
        let a = this.bindings[i];
        if (!a) continue;
        let {
          path: o
        } = a;
        if (!o.isVariableDeclarator()) continue;
        let {
          parent: l,
          parentPath: u
        } = o;
        if (l.kind !== "var" || s.has(l)) continue;
        s.add(o.parent);
        let c, p = [];
        for (let h of l.declarations) {
          var r;
          (r = c) != null || (c = h.id), h.init && p.push(P4e("=", h.id, h.init));
          let f = Object.keys(uV(h, !1, !0, !0));
          for (let d of f)
            e(hh(d), h.init != null);
        }
        if (u.parentPath.isFor({
          left: l
        }))
          u.replaceWith(c);
        else if (p.length === 0)
          u.remove();
        else {
          let h = p.length === 1 ? p[0] : eje(p);
          u.parentPath.isForStatement({
            init: l
          }) ? u.replaceWith(h) : u.replaceWith(K4e(h));
        }
      }
    }
  };
  dx.default = To;
  To.globals = Object.keys(x4e.builtin);
  To.contextVariables = ["arguments", "undefined", "Infinity", "NaN"];
  To.prototype._renameFromMap = /* @__PURE__ */ n(function(e, s, r, i) {
    e[s] && (e[r] = i, e[s] = null);
  }, "_renameFromMap"), To.prototype.traverse = function(t, e, s) {
    (0, T4e.default)(t, e, this, s, this.path);
  }, To.prototype._generateUid = /* @__PURE__ */ n(function(e, s) {
    let r = e;
    return s > 1 && (r += s), `_${r}`;
  }, "_generateUid"), To.prototype.toArray = /* @__PURE__ */ n(function(e, s, r) {
    if (ph(e)) {
      let o = this.getBinding(e.name);
      if (o != null && o.constant && o.path.isGenericType("Array"))
        return e;
    }
    if (cV(e))
      return e;
    if (ph(e, {
      name: "arguments"
    }))
      return tV(kN(kN(kN(hh("Array"), hh("prototype")), hh("slice")), hh("call")), [e]);
    let i, a = [e];
    return s === !0 ? i = "toConsumableArray" : typeof s == "number" ? (a.push(V4e(s)), i = "slicedToArray") : i = "toArray", r && (a.unshift(
    this.path.hub.addHelper(i)), i = "maybeArrayLike"), tV(this.path.hub.addHelper(i), a);
  }, "toArray"), To.prototype.getAllBindingsOfKind = /* @__PURE__ */ n(function(...e) {
    let s = /* @__PURE__ */ Object.create(null);
    for (let r of e) {
      let i = this;
      do {
        for (let a of Object.keys(i.bindings)) {
          let o = i.bindings[a];
          o.kind === r && (s[a] = o);
        }
        i = i.parent;
      } while (i);
    }
    return s;
  }, "getAllBindingsOfKind"), Object.defineProperties(To.prototype, {
    parentBlock: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.parent;
      }
    },
    hub: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.hub;
      }
    }
  });
});

// ../node_modules/@jridgewell/set-array/dist/set-array.umd.js
var dV = g((mx, fV) => {
  (function(t, e) {
    typeof mx == "object" && typeof fV < "u" ? e(mx) : typeof define == "function" && define.amd ? define(["exports"], e) : (t = typeof globalThis <
    "u" ? globalThis : t || self, e(t.setArray = {}));
  })(mx, function(t) {
    "use strict";
    class e {
      static {
        n(this, "SetArray");
      }
      constructor() {
        this._indexes = { __proto__: null }, this.array = [];
      }
    }
    function s(l) {
      return l;
    }
    n(s, "cast");
    function r(l, u) {
      return l._indexes[u];
    }
    n(r, "get");
    function i(l, u) {
      let c = r(l, u);
      if (c !== void 0)
        return c;
      let { array: p, _indexes: h } = l, f = p.push(u);
      return h[u] = f - 1;
    }
    n(i, "put");
    function a(l) {
      let { array: u, _indexes: c } = l;
      if (u.length === 0)
        return;
      let p = u.pop();
      c[p] = void 0;
    }
    n(a, "pop");
    function o(l, u) {
      let c = r(l, u);
      if (c === void 0)
        return;
      let { array: p, _indexes: h } = l;
      for (let f = c + 1; f < p.length; f++) {
        let d = p[f];
        p[f - 1] = d, h[d]--;
      }
      h[u] = void 0, p.pop();
    }
    n(o, "remove"), t.SetArray = e, t.get = r, t.pop = a, t.put = i, t.remove = o, Object.defineProperty(t, "__esModule", { value: !0 });
  });
});

// ../node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
var ON = g((yx, mV) => {
  (function(t, e) {
    typeof yx == "object" && typeof mV < "u" ? e(yx) : typeof define == "function" && define.amd ? define(["exports"], e) : (t = typeof globalThis <
    "u" ? globalThis : t || self, e(t.sourcemapCodec = {}));
  })(yx, function(t) {
    "use strict";
    let r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i = new Uint8Array(64), a = new Uint8Array(128);
    for (let be = 0; be < r.length; be++) {
      let me = r.charCodeAt(be);
      i[be] = me, a[me] = be;
    }
    function o(be, me) {
      let he = 0, Pe = 0, st = 0;
      do {
        let ke = be.next();
        st = a[ke], he |= (st & 31) << Pe, Pe += 5;
      } while (st & 32);
      let lt = he & 1;
      return he >>>= 1, lt && (he = -2147483648 | -he), me + he;
    }
    n(o, "decodeInteger");
    function l(be, me, he) {
      let Pe = me - he;
      Pe = Pe < 0 ? -Pe << 1 | 1 : Pe << 1;
      do {
        let st = Pe & 31;
        Pe >>>= 5, Pe > 0 && (st |= 32), be.write(i[st]);
      } while (Pe > 0);
      return me;
    }
    n(l, "encodeInteger");
    function u(be, me) {
      return be.pos >= me ? !1 : be.peek() !== 44;
    }
    n(u, "hasMoreVlq");
    let c = 1024 * 16, p = typeof TextDecoder < "u" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer < "u" ? {
      decode(be) {
        return Buffer.from(be.buffer, be.byteOffset, be.byteLength).toString();
      }
    } : {
      decode(be) {
        let me = "";
        for (let he = 0; he < be.length; he++)
          me += String.fromCharCode(be[he]);
        return me;
      }
    };
    class h {
      static {
        n(this, "StringWriter");
      }
      constructor() {
        this.pos = 0, this.out = "", this.buffer = new Uint8Array(c);
      }
      write(me) {
        let { buffer: he } = this;
        he[this.pos++] = me, this.pos === c && (this.out += p.decode(he), this.pos = 0);
      }
      flush() {
        let { buffer: me, out: he, pos: Pe } = this;
        return Pe > 0 ? he + p.decode(me.subarray(0, Pe)) : he;
      }
    }
    class f {
      static {
        n(this, "StringReader");
      }
      constructor(me) {
        this.pos = 0, this.buffer = me;
      }
      next() {
        return this.buffer.charCodeAt(this.pos++);
      }
      peek() {
        return this.buffer.charCodeAt(this.pos);
      }
      indexOf(me) {
        let { buffer: he, pos: Pe } = this, st = he.indexOf(me, Pe);
        return st === -1 ? he.length : st;
      }
    }
    let d = [];
    function m(be) {
      let { length: me } = be, he = new f(be), Pe = [], st = [], lt = 0;
      for (; he.pos < me; he.pos++) {
        lt = o(he, lt);
        let ke = o(he, 0);
        if (!u(he, me)) {
          let Wt = st.pop();
          Wt[2] = lt, Wt[3] = ke;
          continue;
        }
        let Ne = o(he, 0), Pt = o(he, 0) & 1 ? [lt, ke, 0, 0, Ne, o(he, 0)] : [lt, ke, 0, 0, Ne], Dt = d;
        if (u(he, me)) {
          Dt = [];
          do {
            let Wt = o(he, 0);
            Dt.push(Wt);
          } while (u(he, me));
        }
        Pt.vars = Dt, Pe.push(Pt), st.push(Pt);
      }
      return Pe;
    }
    n(m, "decodeOriginalScopes");
    function y(be) {
      let me = new h();
      for (let he = 0; he < be.length; )
        he = T(be, he, me, [0]);
      return me.flush();
    }
    n(y, "encodeOriginalScopes");
    function T(be, me, he, Pe) {
      let st = be[me], { 0: lt, 1: ke, 2: Ne, 3: He, 4: Ze, vars: Pt } = st;
      me > 0 && he.write(44), Pe[0] = l(he, lt, Pe[0]), l(he, ke, 0), l(he, Ze, 0);
      let Dt = st.length === 6 ? 1 : 0;
      l(he, Dt, 0), st.length === 6 && l(he, st[5], 0);
      for (let Wt of Pt)
        l(he, Wt, 0);
      for (me++; me < be.length; ) {
        let Wt = be[me], { 0: ut, 1: Yt } = Wt;
        if (ut > Ne || ut === Ne && Yt >= He)
          break;
        me = T(be, me, he, Pe);
      }
      return he.write(44), Pe[0] = l(he, Ne, Pe[0]), l(he, He, 0), me;
    }
    n(T, "_encodeOriginalScopes");
    function b(be) {
      let { length: me } = be, he = new f(be), Pe = [], st = [], lt = 0, ke = 0, Ne = 0, He = 0, Ze = 0, Pt = 0, Dt = 0, Wt = 0;
      do {
        let ut = he.indexOf(";"), Yt = 0;
        for (; he.pos < ut; he.pos++) {
          if (Yt = o(he, Yt), !u(he, ut)) {
            let vi = st.pop();
            vi[2] = lt, vi[3] = Yt;
            continue;
          }
          let Jr = o(he, 0), Pr = Jr & 1, At = Jr & 2, Er = Jr & 4, Zr = null, Ti = d, Oi;
          if (Pr) {
            let vi = o(he, ke);
            Ne = o(he, ke === vi ? Ne : 0), ke = vi, Oi = [lt, Yt, 0, 0, vi, Ne];
          } else
            Oi = [lt, Yt, 0, 0];
          if (Oi.isScope = !!Er, At) {
            let vi = He, ea = Ze;
            He = o(he, He);
            let $o = vi === He;
            Ze = o(he, $o ? Ze : 0), Pt = o(he, $o && ea === Ze ? Pt : 0), Zr = [He, Ze, Pt];
          }
          if (Oi.callsite = Zr, u(he, ut)) {
            Ti = [];
            do {
              Dt = lt, Wt = Yt;
              let vi = o(he, 0), ea;
              if (vi < -1) {
                ea = [[o(he, 0)]];
                for (let $o = -1; $o > vi; $o--) {
                  let jl = Dt;
                  Dt = o(he, Dt), Wt = o(he, Dt === jl ? Wt : 0);
                  let fo = o(he, 0);
                  ea.push([fo, Dt, Wt]);
                }
              } else
                ea = [[vi]];
              Ti.push(ea);
            } while (u(he, ut));
          }
          Oi.bindings = Ti, Pe.push(Oi), st.push(Oi);
        }
        lt++, he.pos = ut + 1;
      } while (he.pos < me);
      return Pe;
    }
    n(b, "decodeGeneratedRanges");
    function E(be) {
      if (be.length === 0)
        return "";
      let me = new h();
      for (let he = 0; he < be.length; )
        he = V(be, he, me, [0, 0, 0, 0, 0, 0, 0]);
      return me.flush();
    }
    n(E, "encodeGeneratedRanges");
    function V(be, me, he, Pe) {
      let st = be[me], { 0: lt, 1: ke, 2: Ne, 3: He, isScope: Ze, callsite: Pt, bindings: Dt } = st;
      Pe[0] < lt ? (W(he, Pe[0], lt), Pe[0] = lt, Pe[1] = 0) : me > 0 && he.write(44), Pe[1] = l(he, st[1], Pe[1]);
      let Wt = (st.length === 6 ? 1 : 0) | (Pt ? 2 : 0) | (Ze ? 4 : 0);
      if (l(he, Wt, 0), st.length === 6) {
        let { 4: ut, 5: Yt } = st;
        ut !== Pe[2] && (Pe[3] = 0), Pe[2] = l(he, ut, Pe[2]), Pe[3] = l(he, Yt, Pe[3]);
      }
      if (Pt) {
        let { 0: ut, 1: Yt, 2: Jr } = st.callsite;
        ut !== Pe[4] ? (Pe[5] = 0, Pe[6] = 0) : Yt !== Pe[5] && (Pe[6] = 0), Pe[4] = l(he, ut, Pe[4]), Pe[5] = l(he, Yt, Pe[5]), Pe[6] = l(he,
        Jr, Pe[6]);
      }
      if (Dt)
        for (let ut of Dt) {
          ut.length > 1 && l(he, -ut.length, 0);
          let Yt = ut[0][0];
          l(he, Yt, 0);
          let Jr = lt, Pr = ke;
          for (let At = 1; At < ut.length; At++) {
            let Er = ut[At];
            Jr = l(he, Er[1], Jr), Pr = l(he, Er[2], Pr), l(he, Er[0], 0);
          }
        }
      for (me++; me < be.length; ) {
        let ut = be[me], { 0: Yt, 1: Jr } = ut;
        if (Yt > Ne || Yt === Ne && Jr >= He)
          break;
        me = V(be, me, he, Pe);
      }
      return Pe[0] < Ne ? (W(he, Pe[0], Ne), Pe[0] = Ne, Pe[1] = 0) : he.write(44), Pe[1] = l(he, He, Pe[1]), me;
    }
    n(V, "_encodeGeneratedRanges");
    function W(be, me, he) {
      do
        be.write(59);
      while (++me < he);
    }
    n(W, "catchupLine");
    function oe(be) {
      let { length: me } = be, he = new f(be), Pe = [], st = 0, lt = 0, ke = 0, Ne = 0, He = 0;
      do {
        let Ze = he.indexOf(";"), Pt = [], Dt = !0, Wt = 0;
        for (st = 0; he.pos < Ze; ) {
          let ut;
          st = o(he, st), st < Wt && (Dt = !1), Wt = st, u(he, Ze) ? (lt = o(he, lt), ke = o(he, ke), Ne = o(he, Ne), u(he, Ze) ? (He = o(he,
          He), ut = [st, lt, ke, Ne, He]) : ut = [st, lt, ke, Ne]) : ut = [st], Pt.push(ut), he.pos++;
        }
        Dt || de(Pt), Pe.push(Pt), he.pos = Ze + 1;
      } while (he.pos <= me);
      return Pe;
    }
    n(oe, "decode");
    function de(be) {
      be.sort(ye);
    }
    n(de, "sort");
    function ye(be, me) {
      return be[0] - me[0];
    }
    n(ye, "sortComparator");
    function Oe(be) {
      let me = new h(), he = 0, Pe = 0, st = 0, lt = 0;
      for (let ke = 0; ke < be.length; ke++) {
        let Ne = be[ke];
        if (ke > 0 && me.write(59), Ne.length === 0)
          continue;
        let He = 0;
        for (let Ze = 0; Ze < Ne.length; Ze++) {
          let Pt = Ne[Ze];
          Ze > 0 && me.write(44), He = l(me, Pt[0], He), Pt.length !== 1 && (he = l(me, Pt[1], he), Pe = l(me, Pt[2], Pe), st = l(me, Pt[3],
          st), Pt.length !== 4 && (lt = l(me, Pt[4], lt)));
        }
      }
      return me.flush();
    }
    n(Oe, "encode"), t.decode = oe, t.decodeGeneratedRanges = b, t.decodeOriginalScopes = m, t.encode = Oe, t.encodeGeneratedRanges = E, t.encodeOriginalScopes =
    y, Object.defineProperty(t, "__esModule", { value: !0 });
  });
});

// ../node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
var yV = g((_N, LN) => {
  (function(t, e) {
    typeof _N == "object" && typeof LN < "u" ? LN.exports = e() : typeof define == "function" && define.amd ? define(e) : (t = typeof globalThis <
    "u" ? globalThis : t || self, t.resolveURI = e());
  })(_N, function() {
    "use strict";
    let t = /^[\w+.-]+:\/\//, e = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/, s = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
    var r;
    (function(b) {
      b[b.Empty = 1] = "Empty", b[b.Hash = 2] = "Hash", b[b.Query = 3] = "Query", b[b.RelativePath = 4] = "RelativePath", b[b.AbsolutePath =
      5] = "AbsolutePath", b[b.SchemeRelative = 6] = "SchemeRelative", b[b.Absolute = 7] = "Absolute";
    })(r || (r = {}));
    function i(b) {
      return t.test(b);
    }
    n(i, "isAbsoluteUrl");
    function a(b) {
      return b.startsWith("//");
    }
    n(a, "isSchemeRelativeUrl");
    function o(b) {
      return b.startsWith("/");
    }
    n(o, "isAbsolutePath");
    function l(b) {
      return b.startsWith("file:");
    }
    n(l, "isFileUrl");
    function u(b) {
      return /^[.?#]/.test(b);
    }
    n(u, "isRelative");
    function c(b) {
      let E = e.exec(b);
      return h(E[1], E[2] || "", E[3], E[4] || "", E[5] || "/", E[6] || "", E[7] || "");
    }
    n(c, "parseAbsoluteUrl");
    function p(b) {
      let E = s.exec(b), V = E[2];
      return h("file:", "", E[1] || "", "", o(V) ? V : "/" + V, E[3] || "", E[4] || "");
    }
    n(p, "parseFileUrl");
    function h(b, E, V, W, oe, de, ye) {
      return {
        scheme: b,
        user: E,
        host: V,
        port: W,
        path: oe,
        query: de,
        hash: ye,
        type: r.Absolute
      };
    }
    n(h, "makeUrl");
    function f(b) {
      if (a(b)) {
        let V = c("http:" + b);
        return V.scheme = "", V.type = r.SchemeRelative, V;
      }
      if (o(b)) {
        let V = c("http://foo.com" + b);
        return V.scheme = "", V.host = "", V.type = r.AbsolutePath, V;
      }
      if (l(b))
        return p(b);
      if (i(b))
        return c(b);
      let E = c("http://foo.com/" + b);
      return E.scheme = "", E.host = "", E.type = b ? b.startsWith("?") ? r.Query : b.startsWith("#") ? r.Hash : r.RelativePath : r.Empty, E;
    }
    n(f, "parseUrl");
    function d(b) {
      if (b.endsWith("/.."))
        return b;
      let E = b.lastIndexOf("/");
      return b.slice(0, E + 1);
    }
    n(d, "stripPathFilename");
    function m(b, E) {
      y(E, E.type), b.path === "/" ? b.path = E.path : b.path = d(E.path) + b.path;
    }
    n(m, "mergePaths");
    function y(b, E) {
      let V = E <= r.RelativePath, W = b.path.split("/"), oe = 1, de = 0, ye = !1;
      for (let be = 1; be < W.length; be++) {
        let me = W[be];
        if (!me) {
          ye = !0;
          continue;
        }
        if (ye = !1, me !== ".") {
          if (me === "..") {
            de ? (ye = !0, de--, oe--) : V && (W[oe++] = me);
            continue;
          }
          W[oe++] = me, de++;
        }
      }
      let Oe = "";
      for (let be = 1; be < oe; be++)
        Oe += "/" + W[be];
      (!Oe || ye && !Oe.endsWith("/..")) && (Oe += "/"), b.path = Oe;
    }
    n(y, "normalizePath");
    function T(b, E) {
      if (!b && !E)
        return "";
      let V = f(b), W = V.type;
      if (E && W !== r.Absolute) {
        let de = f(E), ye = de.type;
        switch (W) {
          case r.Empty:
            V.hash = de.hash;
          // fall through
          case r.Hash:
            V.query = de.query;
          // fall through
          case r.Query:
          case r.RelativePath:
            m(V, de);
          // fall through
          case r.AbsolutePath:
            V.user = de.user, V.host = de.host, V.port = de.port;
          // fall through
          case r.SchemeRelative:
            V.scheme = de.scheme;
        }
        ye > W && (W = ye);
      }
      y(V, W);
      let oe = V.query + V.hash;
      switch (W) {
        // This is impossible, because of the empty checks at the start of the function.
        // case UrlType.Empty:
        case r.Hash:
        case r.Query:
          return oe;
        case r.RelativePath: {
          let de = V.path.slice(1);
          return de ? u(E || b) && !u(de) ? "./" + de + oe : de + oe : oe || ".";
        }
        case r.AbsolutePath:
          return V.path + oe;
        default:
          return V.scheme + "//" + V.user + V.host + V.port + V.path + oe;
      }
    }
    return n(T, "resolve"), T;
  });
});

// ../node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
var Oc = g((gx, gV) => {
  (function(t, e) {
    typeof gx == "object" && typeof gV < "u" ? e(gx, ON(), yV()) : typeof define == "function" && define.amd ? define(["exports", "@jridgewe\
ll/sourcemap-codec", "@jridgewell/resolve-uri"], e) : (t = typeof globalThis < "u" ? globalThis : t || self, e(t.traceMapping = {}, t.sourcemapCodec,
    t.resolveURI));
  })(gx, function(t, e, s) {
    "use strict";
    function r(le, ge) {
      return ge && !ge.endsWith("/") && (ge += "/"), s(le, ge);
    }
    n(r, "resolve");
    function i(le) {
      if (!le)
        return "";
      let ge = le.lastIndexOf("/");
      return le.slice(0, ge + 1);
    }
    n(i, "stripFilename");
    let a = 0, o = 1, l = 2, u = 3, c = 4, p = 1, h = 2;
    function f(le, ge) {
      let Ae = d(le, 0);
      if (Ae === le.length)
        return le;
      ge || (le = le.slice());
      for (let De = Ae; De < le.length; De = d(le, De + 1))
        le[De] = y(le[De], ge);
      return le;
    }
    n(f, "maybeSort");
    function d(le, ge) {
      for (let Ae = ge; Ae < le.length; Ae++)
        if (!m(le[Ae]))
          return Ae;
      return le.length;
    }
    n(d, "nextUnsortedSegmentLine");
    function m(le) {
      for (let ge = 1; ge < le.length; ge++)
        if (le[ge][a] < le[ge - 1][a])
          return !1;
      return !0;
    }
    n(m, "isSorted");
    function y(le, ge) {
      return ge || (le = le.slice()), le.sort(T);
    }
    n(y, "sortSegments");
    function T(le, ge) {
      return le[a] - ge[a];
    }
    n(T, "sortComparator");
    let b = !1;
    function E(le, ge, Ae, De) {
      for (; Ae <= De; ) {
        let ct = Ae + (De - Ae >> 1), tt = le[ct][a] - ge;
        if (tt === 0)
          return b = !0, ct;
        tt < 0 ? Ae = ct + 1 : De = ct - 1;
      }
      return b = !1, Ae - 1;
    }
    n(E, "binarySearch");
    function V(le, ge, Ae) {
      for (let De = Ae + 1; De < le.length && le[De][a] === ge; Ae = De++)
        ;
      return Ae;
    }
    n(V, "upperBound");
    function W(le, ge, Ae) {
      for (let De = Ae - 1; De >= 0 && le[De][a] === ge; Ae = De--)
        ;
      return Ae;
    }
    n(W, "lowerBound");
    function oe() {
      return {
        lastKey: -1,
        lastNeedle: -1,
        lastIndex: -1
      };
    }
    n(oe, "memoizedState");
    function de(le, ge, Ae, De) {
      let { lastKey: ct, lastNeedle: tt, lastIndex: Ut } = Ae, Xt = 0, Vt = le.length - 1;
      if (De === ct) {
        if (ge === tt)
          return b = Ut !== -1 && le[Ut][a] === ge, Ut;
        ge >= tt ? Xt = Ut === -1 ? 0 : Ut : Vt = Ut;
      }
      return Ae.lastKey = De, Ae.lastNeedle = ge, Ae.lastIndex = E(le, ge, Xt, Vt);
    }
    n(de, "memoizedBinarySearch");
    function ye(le, ge) {
      let Ae = ge.map(be);
      for (let De = 0; De < le.length; De++) {
        let ct = le[De];
        for (let tt = 0; tt < ct.length; tt++) {
          let Ut = ct[tt];
          if (Ut.length === 1)
            continue;
          let Xt = Ut[o], Vt = Ut[l], zt = Ut[u], bi = Ae[Xt], Rs = bi[Vt] || (bi[Vt] = []), ms = ge[Xt], Ar = V(Rs, zt, de(Rs, zt, ms, Vt));
          ms.lastIndex = ++Ar, Oe(Rs, Ar, [zt, De, Ut[a]]);
        }
      }
      return Ae;
    }
    n(ye, "buildBySources");
    function Oe(le, ge, Ae) {
      for (let De = le.length; De > ge; De--)
        le[De] = le[De - 1];
      le[ge] = Ae;
    }
    n(Oe, "insert");
    function be() {
      return { __proto__: null };
    }
    n(be, "buildNullArray");
    let me = /* @__PURE__ */ n(function(le, ge) {
      let Ae = he(le);
      if (!("sections" in Ae))
        return new Dt(Ae, ge);
      let De = [], ct = [], tt = [], Ut = [], Xt = [];
      Pe(Ae, ge, De, ct, tt, Ut, Xt, 0, 0, 1 / 0, 1 / 0);
      let Vt = {
        version: 3,
        file: Ae.file,
        names: Ut,
        sources: ct,
        sourcesContent: tt,
        mappings: De,
        ignoreList: Xt
      };
      return ea(Vt);
    }, "AnyMap");
    function he(le) {
      return typeof le == "string" ? JSON.parse(le) : le;
    }
    n(he, "parse");
    function Pe(le, ge, Ae, De, ct, tt, Ut, Xt, Vt, zt, bi) {
      let { sections: Rs } = le;
      for (let ms = 0; ms < Rs.length; ms++) {
        let { map: Ar, offset: ei } = Rs[ms], _i = zt, Jo = bi;
        if (ms + 1 < Rs.length) {
          let Sc = Rs[ms + 1].offset;
          _i = Math.min(zt, Xt + Sc.line), _i === zt ? Jo = Math.min(bi, Vt + Sc.column) : _i < zt && (Jo = Vt + Sc.column);
        }
        st(Ar, ge, Ae, De, ct, tt, Ut, Xt + ei.line, Vt + ei.column, _i, Jo);
      }
    }
    n(Pe, "recurse");
    function st(le, ge, Ae, De, ct, tt, Ut, Xt, Vt, zt, bi) {
      let Rs = he(le);
      if ("sections" in Rs)
        return Pe(...arguments);
      let ms = new Dt(Rs, ge), Ar = De.length, ei = tt.length, _i = Yt(ms), { resolvedSources: Jo, sourcesContent: Sc, ignoreList: _y } = ms;
      if (lt(De, Jo), lt(tt, ms.names), Sc)
        lt(ct, Sc);
      else
        for (let fn = 0; fn < Jo.length; fn++)
          ct.push(null);
      if (_y)
        for (let fn = 0; fn < _y.length; fn++)
          Ut.push(_y[fn] + Ar);
      for (let fn = 0; fn < _i.length; fn++) {
        let Qf = Xt + fn;
        if (Qf > zt)
          return;
        let Ly = ke(Ae, Qf), $ge = fn === 0 ? Vt : 0, m7 = _i[fn];
        for (let fC = 0; fC < m7.length; fC++) {
          let Qp = m7[fC], db = $ge + Qp[a];
          if (Qf === zt && db >= bi)
            return;
          if (Qp.length === 1) {
            Ly.push([db]);
            continue;
          }
          let y7 = Ar + Qp[o], g7 = Qp[l], T7 = Qp[u];
          Ly.push(Qp.length === 4 ? [db, y7, g7, T7] : [db, y7, g7, T7, ei + Qp[c]]);
        }
      }
    }
    n(st, "addSection");
    function lt(le, ge) {
      for (let Ae = 0; Ae < ge.length; Ae++)
        le.push(ge[Ae]);
    }
    n(lt, "append");
    function ke(le, ge) {
      for (let Ae = le.length; Ae <= ge; Ae++)
        le[Ae] = [];
      return le[ge];
    }
    n(ke, "getLine");
    let Ne = "`line` must be greater than 0 (lines start at line 1)", He = "`column` must be greater than or equal to 0 (columns start at co\
lumn 0)", Ze = -1, Pt = 1;
    class Dt {
      static {
        n(this, "TraceMap");
      }
      constructor(ge, Ae) {
        let De = typeof ge == "string";
        if (!De && ge._decodedMemo)
          return ge;
        let ct = De ? JSON.parse(ge) : ge, { version: tt, file: Ut, names: Xt, sourceRoot: Vt, sources: zt, sourcesContent: bi } = ct;
        this.version = tt, this.file = Ut, this.names = Xt || [], this.sourceRoot = Vt, this.sources = zt, this.sourcesContent = bi, this.ignoreList =
        ct.ignoreList || ct.x_google_ignoreList || void 0;
        let Rs = r(Vt || "", i(Ae));
        this.resolvedSources = zt.map((Ar) => r(Ar || "", Rs));
        let { mappings: ms } = ct;
        typeof ms == "string" ? (this._encoded = ms, this._decoded = void 0) : (this._encoded = void 0, this._decoded = f(ms, De)), this._decodedMemo =
        oe(), this._bySources = void 0, this._bySourceMemos = void 0;
      }
    }
    function Wt(le) {
      return le;
    }
    n(Wt, "cast");
    function ut(le) {
      var ge, Ae;
      return (ge = (Ae = le)._encoded) !== null && ge !== void 0 ? ge : Ae._encoded = e.encode(le._decoded);
    }
    n(ut, "encodedMappings");
    function Yt(le) {
      var ge;
      return (ge = le)._decoded || (ge._decoded = e.decode(le._encoded));
    }
    n(Yt, "decodedMappings");
    function Jr(le, ge, Ae) {
      let De = Yt(le);
      if (ge >= De.length)
        return null;
      let ct = De[ge], tt = Rl(ct, le._decodedMemo, ge, Ae, Pt);
      return tt === -1 ? null : ct[tt];
    }
    n(Jr, "traceSegment");
    function Pr(le, ge) {
      let { line: Ae, column: De, bias: ct } = ge;
      if (Ae--, Ae < 0)
        throw new Error(Ne);
      if (De < 0)
        throw new Error(He);
      let tt = Yt(le);
      if (Ae >= tt.length)
        return Ho(null, null, null, null);
      let Ut = tt[Ae], Xt = Rl(Ut, le._decodedMemo, Ae, De, ct || Pt);
      if (Xt === -1)
        return Ho(null, null, null, null);
      let Vt = Ut[Xt];
      if (Vt.length === 1)
        return Ho(null, null, null, null);
      let { names: zt, resolvedSources: bi } = le;
      return Ho(bi[Vt[o]], Vt[l] + 1, Vt[u], Vt.length === 5 ? zt[Vt[c]] : null);
    }
    n(Pr, "originalPositionFor");
    function At(le, ge) {
      let { source: Ae, line: De, column: ct, bias: tt } = ge;
      return je(le, Ae, De, ct, tt || Pt, !1);
    }
    n(At, "generatedPositionFor");
    function Er(le, ge) {
      let { source: Ae, line: De, column: ct, bias: tt } = ge;
      return je(le, Ae, De, ct, tt || Ze, !0);
    }
    n(Er, "allGeneratedPositionsFor");
    function Zr(le, ge) {
      let Ae = Yt(le), { names: De, resolvedSources: ct } = le;
      for (let tt = 0; tt < Ae.length; tt++) {
        let Ut = Ae[tt];
        for (let Xt = 0; Xt < Ut.length; Xt++) {
          let Vt = Ut[Xt], zt = tt + 1, bi = Vt[0], Rs = null, ms = null, Ar = null, ei = null;
          Vt.length !== 1 && (Rs = ct[Vt[1]], ms = Vt[2] + 1, Ar = Vt[3]), Vt.length === 5 && (ei = De[Vt[4]]), ge({
            generatedLine: zt,
            generatedColumn: bi,
            source: Rs,
            originalLine: ms,
            originalColumn: Ar,
            name: ei
          });
        }
      }
    }
    n(Zr, "eachMapping");
    function Ti(le, ge) {
      let { sources: Ae, resolvedSources: De } = le, ct = Ae.indexOf(ge);
      return ct === -1 && (ct = De.indexOf(ge)), ct;
    }
    n(Ti, "sourceIndex");
    function Oi(le, ge) {
      let { sourcesContent: Ae } = le;
      if (Ae == null)
        return null;
      let De = Ti(le, ge);
      return De === -1 ? null : Ae[De];
    }
    n(Oi, "sourceContentFor");
    function vi(le, ge) {
      let { ignoreList: Ae } = le;
      if (Ae == null)
        return !1;
      let De = Ti(le, ge);
      return De === -1 ? !1 : Ae.includes(De);
    }
    n(vi, "isIgnored");
    function ea(le, ge) {
      let Ae = new Dt(fo(le, []), ge);
      return Ae._decoded = le.mappings, Ae;
    }
    n(ea, "presortedDecodedMap");
    function $o(le) {
      return fo(le, Yt(le));
    }
    n($o, "decodedMap");
    function jl(le) {
      return fo(le, ut(le));
    }
    n(jl, "encodedMap");
    function fo(le, ge) {
      return {
        version: le.version,
        file: le.file,
        names: le.names,
        sourceRoot: le.sourceRoot,
        sources: le.sources,
        sourcesContent: le.sourcesContent,
        mappings: ge,
        ignoreList: le.ignoreList || le.x_google_ignoreList
      };
    }
    n(fo, "clone");
    function Ho(le, ge, Ae, De) {
      return { source: le, line: ge, column: Ae, name: De };
    }
    n(Ho, "OMapping");
    function xc(le, ge) {
      return { line: le, column: ge };
    }
    n(xc, "GMapping");
    function Rl(le, ge, Ae, De, ct) {
      let tt = de(le, De, ge, Ae);
      return b ? tt = (ct === Ze ? V : W)(le, De, tt) : ct === Ze && tt++, tt === -1 || tt === le.length ? -1 : tt;
    }
    n(Rl, "traceSegmentInternal");
    function et(le, ge, Ae, De, ct) {
      let tt = Rl(le, ge, Ae, De, Pt);
      if (!b && ct === Ze && tt++, tt === -1 || tt === le.length)
        return [];
      let Ut = b ? De : le[tt][a];
      b || (tt = W(le, Ut, tt));
      let Xt = V(le, Ut, tt), Vt = [];
      for (; tt <= Xt; tt++) {
        let zt = le[tt];
        Vt.push(xc(zt[p] + 1, zt[h]));
      }
      return Vt;
    }
    n(et, "sliceGeneratedPositions");
    function je(le, ge, Ae, De, ct, tt) {
      var Ut;
      if (Ae--, Ae < 0)
        throw new Error(Ne);
      if (De < 0)
        throw new Error(He);
      let { sources: Xt, resolvedSources: Vt } = le, zt = Xt.indexOf(ge);
      if (zt === -1 && (zt = Vt.indexOf(ge)), zt === -1)
        return tt ? [] : xc(null, null);
      let Rs = ((Ut = le)._bySources || (Ut._bySources = ye(Yt(le), le._bySourceMemos = Xt.map(oe))))[zt][Ae];
      if (Rs == null)
        return tt ? [] : xc(null, null);
      let ms = le._bySourceMemos[zt];
      if (tt)
        return et(Rs, ms, Ae, De, ct);
      let Ar = Rl(Rs, ms, Ae, De, ct);
      if (Ar === -1)
        return xc(null, null);
      let ei = Rs[Ar];
      return xc(ei[p] + 1, ei[h]);
    }
    n(je, "generatedPosition"), t.AnyMap = me, t.GREATEST_LOWER_BOUND = Pt, t.LEAST_UPPER_BOUND = Ze, t.TraceMap = Dt, t.allGeneratedPositionsFor =
    Er, t.decodedMap = $o, t.decodedMappings = Yt, t.eachMapping = Zr, t.encodedMap = jl, t.encodedMappings = ut, t.generatedPositionFor = At,
    t.isIgnored = vi, t.originalPositionFor = Pr, t.presortedDecodedMap = ea, t.sourceContentFor = Oi, t.traceSegment = Jr;
  });
});

// ../node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
var fh = g((Tx, TV) => {
  (function(t, e) {
    typeof Tx == "object" && typeof TV < "u" ? e(Tx, dV(), ON(), Oc()) : typeof define == "function" && define.amd ? define(["exports", "@jr\
idgewell/set-array", "@jridgewell/sourcemap-codec", "@jridgewell/trace-mapping"], e) : (t = typeof globalThis < "u" ? globalThis : t || self,
    e(t.genMapping = {}, t.setArray, t.sourcemapCodec, t.traceMapping));
  })(Tx, function(t, e, s, r) {
    "use strict";
    class p {
      static {
        n(this, "GenMapping");
      }
      constructor({ file: Ne, sourceRoot: He } = {}) {
        this._names = new e.SetArray(), this._sources = new e.SetArray(), this._sourcesContent = [], this._mappings = [], this.file = Ne, this.
        sourceRoot = He, this._ignoreList = new e.SetArray();
      }
    }
    function h(ke) {
      return ke;
    }
    n(h, "cast");
    function f(ke, Ne, He, Ze, Pt, Dt, Wt, ut) {
      return de(!1, ke, Ne, He, Ze, Pt, Dt, Wt, ut);
    }
    n(f, "addSegment");
    function d(ke, Ne) {
      return lt(!1, ke, Ne);
    }
    n(d, "addMapping");
    let m = /* @__PURE__ */ n((ke, Ne, He, Ze, Pt, Dt, Wt, ut) => de(!0, ke, Ne, He, Ze, Pt, Dt, Wt, ut), "maybeAddSegment"), y = /* @__PURE__ */ n(
    (ke, Ne) => lt(!0, ke, Ne), "maybeAddMapping");
    function T(ke, Ne, He) {
      let { _sources: Ze, _sourcesContent: Pt } = ke, Dt = e.put(Ze, Ne);
      Pt[Dt] = He;
    }
    n(T, "setSourceContent");
    function b(ke, Ne, He = !0) {
      let { _sources: Ze, _sourcesContent: Pt, _ignoreList: Dt } = ke, Wt = e.put(Ze, Ne);
      Wt === Pt.length && (Pt[Wt] = null), He ? e.put(Dt, Wt) : e.remove(Dt, Wt);
    }
    n(b, "setIgnore");
    function E(ke) {
      let { _mappings: Ne, _sources: He, _sourcesContent: Ze, _names: Pt, _ignoreList: Dt } = ke;
      return me(Ne), {
        version: 3,
        file: ke.file || void 0,
        names: Pt.array,
        sourceRoot: ke.sourceRoot || void 0,
        sources: He.array,
        sourcesContent: Ze,
        mappings: Ne,
        ignoreList: Dt.array
      };
    }
    n(E, "toDecodedMap");
    function V(ke) {
      let Ne = E(ke);
      return Object.assign(Object.assign({}, Ne), { mappings: s.encode(Ne.mappings) });
    }
    n(V, "toEncodedMap");
    function W(ke) {
      let Ne = new r.TraceMap(ke), He = new p({ file: Ne.file, sourceRoot: Ne.sourceRoot });
      return he(He._names, Ne.names), he(He._sources, Ne.sources), He._sourcesContent = Ne.sourcesContent || Ne.sources.map(() => null), He.
      _mappings = r.decodedMappings(Ne), Ne.ignoreList && he(He._ignoreList, Ne.ignoreList), He;
    }
    n(W, "fromMap");
    function oe(ke) {
      let Ne = [], { _mappings: He, _sources: Ze, _names: Pt } = ke;
      for (let Dt = 0; Dt < He.length; Dt++) {
        let Wt = He[Dt];
        for (let ut = 0; ut < Wt.length; ut++) {
          let Yt = Wt[ut], Jr = { line: Dt + 1, column: Yt[0] }, Pr, At, Er;
          Yt.length !== 1 && (Pr = Ze.array[Yt[1]], At = { line: Yt[2] + 1, column: Yt[3] }, Yt.length === 5 && (Er = Pt.array[Yt[4]])), Ne.
          push({ generated: Jr, source: Pr, original: At, name: Er });
        }
      }
      return Ne;
    }
    n(oe, "allMappings");
    function de(ke, Ne, He, Ze, Pt, Dt, Wt, ut, Yt) {
      let { _mappings: Jr, _sources: Pr, _sourcesContent: At, _names: Er } = Ne, Zr = ye(Jr, He), Ti = Oe(Zr, Ze);
      if (!Pt)
        return ke && Pe(Zr, Ti) ? void 0 : be(Zr, Ti, [Ze]);
      let Oi = e.put(Pr, Pt), vi = ut ? e.put(Er, ut) : -1;
      if (Oi === At.length && (At[Oi] = Yt ?? null), !(ke && st(Zr, Ti, Oi, Dt, Wt, vi)))
        return be(Zr, Ti, ut ? [Ze, Oi, Dt, Wt, vi] : [Ze, Oi, Dt, Wt]);
    }
    n(de, "addSegmentInternal");
    function ye(ke, Ne) {
      for (let He = ke.length; He <= Ne; He++)
        ke[He] = [];
      return ke[Ne];
    }
    n(ye, "getLine");
    function Oe(ke, Ne) {
      let He = ke.length;
      for (let Ze = He - 1; Ze >= 0; He = Ze--) {
        let Pt = ke[Ze];
        if (Ne >= Pt[0])
          break;
      }
      return He;
    }
    n(Oe, "getColumnIndex");
    function be(ke, Ne, He) {
      for (let Ze = ke.length; Ze > Ne; Ze--)
        ke[Ze] = ke[Ze - 1];
      ke[Ne] = He;
    }
    n(be, "insert");
    function me(ke) {
      let { length: Ne } = ke, He = Ne;
      for (let Ze = He - 1; Ze >= 0 && !(ke[Ze].length > 0); He = Ze, Ze--)
        ;
      He < Ne && (ke.length = He);
    }
    n(me, "removeEmptyFinalLines");
    function he(ke, Ne) {
      for (let He = 0; He < Ne.length; He++)
        e.put(ke, Ne[He]);
    }
    n(he, "putAll");
    function Pe(ke, Ne) {
      return Ne === 0 ? !0 : ke[Ne - 1].length === 1;
    }
    n(Pe, "skipSourceless");
    function st(ke, Ne, He, Ze, Pt, Dt) {
      if (Ne === 0)
        return !1;
      let Wt = ke[Ne - 1];
      return Wt.length === 1 ? !1 : He === Wt[1] && Ze === Wt[2] && Pt === Wt[3] && Dt === (Wt.length === 5 ? Wt[4] : -1);
    }
    n(st, "skipSource");
    function lt(ke, Ne, He) {
      let { generated: Ze, source: Pt, original: Dt, name: Wt, content: ut } = He;
      return Pt ? de(ke, Ne, Ze.line - 1, Ze.column, Pt, Dt.line - 1, Dt.column, Wt, ut) : de(ke, Ne, Ze.line - 1, Ze.column, null, null, null,
      null, null);
    }
    n(lt, "addMappingInternal"), t.GenMapping = p, t.addMapping = d, t.addSegment = f, t.allMappings = oe, t.fromMap = W, t.maybeAddMapping =
    y, t.maybeAddSegment = m, t.setIgnore = b, t.setSourceContent = T, t.toDecodedMap = E, t.toEncodedMap = V, Object.defineProperty(t, "__e\
sModule", { value: !0 });
  });
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/source-map.js
var bV = g((bx) => {
  "use strict";
  Object.defineProperty(bx, "__esModule", {
    value: !0
  });
  bx.default = void 0;
  var _c = fh(), BN = Oc(), MN = class {
    static {
      n(this, "SourceMap");
    }
    constructor(e, s) {
      var r;
      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;
      let i = this._map = new _c.GenMapping({
        sourceRoot: e.sourceRoot
      });
      if (this._sourceFileName = (r = e.sourceFileName) == null ? void 0 : r.replace(/\\/g, "/"), this._rawMappings = void 0, e.inputSourceMap) {
        this._inputMap = new BN.TraceMap(e.inputSourceMap);
        let o = this._inputMap.resolvedSources;
        if (o.length)
          for (let l = 0; l < o.length; l++) {
            var a;
            (0, _c.setSourceContent)(i, o[l], (a = this._inputMap.sourcesContent) == null ? void 0 : a[l]);
          }
      }
      if (typeof s == "string" && !e.inputSourceMap)
        (0, _c.setSourceContent)(i, this._sourceFileName, s);
      else if (typeof s == "object")
        for (let o of Object.keys(s))
          (0, _c.setSourceContent)(i, o.replace(/\\/g, "/"), s[o]);
    }
    get() {
      return (0, _c.toEncodedMap)(this._map);
    }
    getDecoded() {
      return (0, _c.toDecodedMap)(this._map);
    }
    getRawMappings() {
      return this._rawMappings || (this._rawMappings = (0, _c.allMappings)(this._map));
    }
    mark(e, s, r, i, a, o) {
      var l;
      this._rawMappings = void 0;
      let u;
      if (s != null)
        if (this._inputMap) {
          if (u = (0, BN.originalPositionFor)(this._inputMap, {
            line: s,
            column: r
          }), !u.name && a) {
            let c = (0, BN.originalPositionFor)(this._inputMap, a);
            c.name && (i = c.name);
          }
        } else
          u = {
            source: o?.replace(/\\/g, "/") || this._sourceFileName,
            line: s,
            column: r
          };
      (0, _c.maybeAddMapping)(this._map, {
        name: i,
        generated: e,
        source: (l = u) == null ? void 0 : l.source,
        original: u
      });
    }
  };
  bx.default = MN;
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/buffer.js
var xV = g((xx) => {
  "use strict";
  Object.defineProperty(xx, "__esModule", {
    value: !0
  });
  xx.default = void 0;
  var FN = class {
    static {
      n(this, "Buffer");
    }
    constructor(e, s) {
      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 = e, this._indentChar = s;
      for (let r = 0; r < 64; r++)
        this._fastIndentations.push(s.repeat(r));
      this._allocQueue();
    }
    _allocQueue() {
      let e = this._queue;
      for (let s = 0; s < 16; s++)
        e.push({
          char: 0,
          repeat: 1,
          line: void 0,
          column: void 0,
          identifierName: void 0,
          identifierNamePos: void 0,
          filename: ""
        });
    }
    _pushQueue(e, s, r, i, a) {
      let o = this._queueCursor;
      o === this._queue.length && this._allocQueue();
      let l = this._queue[o];
      l.char = e, l.repeat = s, l.line = r, l.column = i, 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();
      let e = this._map, s = {
        code: (this._buf + this._str).trimRight(),
        decodedMap: e?.getDecoded(),
        get __mergedMap() {
          return this.map;
        },
        get map() {
          let r = e ? e.get() : null;
          return s.map = r, r;
        },
        set map(r) {
          Object.defineProperty(s, "map", {
            value: r,
            writable: !0
          });
        },
        get rawMappings() {
          let r = e?.getRawMappings();
          return s.rawMappings = r, r;
        },
        set rawMappings(r) {
          Object.defineProperty(s, "rawMappings", {
            value: r,
            writable: !0
          });
        }
      };
      return s;
    }
    append(e, s) {
      this._flush(), this._append(e, this._sourcePosition, s);
    }
    appendChar(e) {
      this._flush(), this._appendChar(e, 1, this._sourcePosition);
    }
    queue(e) {
      if (e === 10)
        for (; this._queueCursor !== 0; ) {
          let r = this._queue[this._queueCursor - 1].char;
          if (r !== 32 && r !== 9)
            break;
          this._queueCursor--;
        }
      let s = this._sourcePosition;
      this._pushQueue(e, 1, s.line, s.column, s.filename);
    }
    queueIndentation(e) {
      e !== 0 && this._pushQueue(-1, e, void 0, void 0, void 0);
    }
    _flush() {
      let e = this._queueCursor, s = this._queue;
      for (let r = 0; r < e; r++) {
        let i = s[r];
        this._appendChar(i.char, i.repeat, i);
      }
      this._queueCursor = 0;
    }
    _appendChar(e, s, r) {
      if (this._last = e, e === -1) {
        let i = this._fastIndentations[s];
        i !== void 0 ? this._str += i : this._str += s > 1 ? this._indentChar.repeat(s) : this._indentChar;
      } else
        this._str += s > 1 ? String.fromCharCode(e).repeat(s) : String.fromCharCode(e);
      e !== 10 ? (this._mark(r.line, r.column, r.identifierName, r.identifierNamePos, r.filename), this._position.column += s) : (this._position.
      line++, this._position.column = 0), this._canMarkIdName && (r.identifierName = void 0, r.identifierNamePos = void 0);
    }
    _append(e, s, r) {
      let i = e.length, a = this._position;
      if (this._last = e.charCodeAt(i - 1), ++this._appendCount > 4096 ? (+this._str, this._buf += this._str, this._str = e, this._appendCount =
      0) : this._str += e, !r && !this._map) {
        a.column += i;
        return;
      }
      let {
        column: o,
        identifierName: l,
        identifierNamePos: u,
        filename: c
      } = s, p = s.line;
      (l != null || u != null) && this._canMarkIdName && (s.identifierName = void 0, s.identifierNamePos = void 0);
      let h = e.indexOf(`
`), f = 0;
      for (h !== 0 && this._mark(p, o, l, u, c); h !== -1; )
        a.line++, a.column = 0, f = h + 1, f < i && p !== void 0 && this._mark(++p, 0, null, null, c), h = e.indexOf(`
`, f);
      a.column += i - f;
    }
    _mark(e, s, r, i, a) {
      var o;
      (o = this._map) == null || o.mark(this._position, e, s, r, i, a);
    }
    removeTrailingNewline() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 10 && this._queueCursor--;
    }
    removeLastSemicolon() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 59 && this._queueCursor--;
    }
    getLastChar() {
      let e = this._queueCursor;
      return e !== 0 ? this._queue[e - 1].char : this._last;
    }
    getNewlineCount() {
      let e = this._queueCursor, s = 0;
      if (e === 0) return this._last === 10 ? 1 : 0;
      for (let r = e - 1; r >= 0 && this._queue[r].char === 10; r--)
        s++;
      return s === e && this._last === 10 ? s + 1 : s;
    }
    endsWithCharAndNewline() {
      let e = this._queue, s = this._queueCursor;
      if (s !== 0)
        return e[s - 1].char !== 10 ? void 0 : s > 1 ? e[s - 2].char : this._last;
    }
    hasContent() {
      return this._queueCursor !== 0 || !!this._last;
    }
    exactSource(e, s) {
      if (!this._map) {
        s();
        return;
      }
      this.source("start", e);
      let r = e.identifierName, i = this._sourcePosition;
      r && (this._canMarkIdName = !1, i.identifierName = r), s(), r && (this._canMarkIdName = !0, i.identifierName = void 0, i.identifierNamePos =
      void 0), this.source("end", e);
    }
    source(e, s) {
      this._map && this._normalizePosition(e, s, 0);
    }
    sourceWithOffset(e, s, r) {
      this._map && this._normalizePosition(e, s, r);
    }
    _normalizePosition(e, s, r) {
      let i = s[e], a = this._sourcePosition;
      i && (a.line = i.line, a.column = Math.max(i.column + r, 0), a.filename = s.filename);
    }
    getCurrentColumn() {
      let e = this._queue, s = this._queueCursor, r = -1, i = 0;
      for (let a = 0; a < s; a++) {
        let o = e[a];
        o.char === 10 && (r = i), i += o.repeat;
      }
      return r === -1 ? this._position.column + i : i - 1 - r;
    }
    getCurrentLine() {
      let e = 0, s = this._queue;
      for (let r = 0; r < this._queueCursor; r++)
        s[r].char === 10 && e++;
      return this._position.line + e;
    }
  };
  xx.default = FN;
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/node/whitespace.js
var vV = g((Px) => {
  "use strict";
  Object.defineProperty(Px, "__esModule", {
    value: !0
  });
  Px.nodes = void 0;
  var sje = fe(), {
    FLIPPED_ALIAS_KEYS: rje,
    isArrayExpression: ije,
    isAssignmentExpression: PV,
    isBinary: EV,
    isBlockStatement: nje,
    isCallExpression: AV,
    isFunction: ug,
    isIdentifier: Sx,
    isLiteral: aje,
    isMemberExpression: jN,
    isObjectExpression: oje,
    isOptionalCallExpression: lje,
    isOptionalMemberExpression: uje,
    isStringLiteral: cje
  } = sje;
  function yd(t, e) {
    return t && (jN(t) || uje(t) ? (yd(t.object, e), t.computed && yd(t.property, e)) : EV(t) || PV(t) ? (yd(t.left, e), yd(t.right, e)) : AV(
    t) || lje(t) ? (e.hasCall = !0, yd(t.callee, e)) : ug(t) ? e.hasFunction = !0 : Sx(t) && (e.hasHelper = e.hasHelper || t.callee && Xl(t.
    callee))), e;
  }
  n(yd, "crawlInternal");
  function SV(t) {
    return yd(t, {
      hasCall: !1,
      hasFunction: !1,
      hasHelper: !1
    });
  }
  n(SV, "crawl");
  function Xl(t) {
    return t ? jN(t) ? Xl(t.object) || Xl(t.property) : Sx(t) ? t.name === "require" || t.name.charCodeAt(0) === 95 : AV(t) ? Xl(t.callee) :
    EV(t) || PV(t) ? Sx(t.left) && Xl(t.left) || Xl(t.right) : !1 : !1;
  }
  n(Xl, "isHelper");
  function pje(t) {
    return aje(t) || oje(t) || ije(t) || Sx(t) || jN(t);
  }
  n(pje, "isType");
  var dh = Px.nodes = {
    AssignmentExpression(t) {
      let e = SV(t.right);
      if (e.hasCall && e.hasHelper || e.hasFunction)
        return e.hasFunction ? 3 : 2;
    },
    SwitchCase(t, e) {
      return (t.consequent.length || e.cases[0] === t ? 1 : 0) | (!t.consequent.length && e.cases[e.cases.length - 1] === t ? 2 : 0);
    },
    LogicalExpression(t) {
      if (ug(t.left) || ug(t.right))
        return 2;
    },
    Literal(t) {
      if (cje(t) && t.value === "use strict")
        return 2;
    },
    CallExpression(t) {
      if (ug(t.callee) || Xl(t))
        return 3;
    },
    OptionalCallExpression(t) {
      if (ug(t.callee))
        return 3;
    },
    VariableDeclaration(t) {
      for (let e = 0; e < t.declarations.length; e++) {
        let s = t.declarations[e], r = Xl(s.id) && !pje(s.init);
        if (!r && s.init) {
          let i = SV(s.init);
          r = Xl(s.init) && i.hasCall || i.hasFunction;
        }
        if (r)
          return 3;
      }
    },
    IfStatement(t) {
      if (nje(t.consequent))
        return 3;
    }
  };
  dh.ObjectProperty = dh.ObjectTypeProperty = dh.ObjectMethod = function(t, e) {
    if (e.properties[0] === t)
      return 1;
  };
  dh.ObjectTypeCallProperty = function(t, e) {
    var s;
    if (e.callProperties[0] === t && !((s = e.properties) != null && s.length))
      return 1;
  };
  dh.ObjectTypeIndexer = function(t, e) {
    var s, r;
    if (e.indexers[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length))
      return 1;
  };
  dh.ObjectTypeInternalSlot = function(t, e) {
    var s, r, i;
    if (e.internalSlots[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length) && !((i = e.indexers) !=
    null && i.length))
      return 1;
  };
  [["Function", !0], ["Class", !0], ["Loop", !0], ["LabeledStatement", !0], ["SwitchStatement", !0], ["TryStatement", !0]].forEach(function([
  t, e]) {
    [t].concat(rje[t] || []).forEach(function(s) {
      let r = e ? 3 : 0;
      dh[s] = () => r;
    });
  });
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/node/parentheses.js
var _V = g((Ss) => {
  "use strict";
  Object.defineProperty(Ss, "__esModule", {
    value: !0
  });
  Ss.AssignmentExpression = Vje;
  Ss.Binary = kV;
  Ss.BinaryExpression = Fje;
  Ss.ClassExpression = qje;
  Ss.ArrowFunctionExpression = Ss.ConditionalExpression = OV;
  Ss.DoExpression = Cje;
  Ss.FunctionExpression = Uje;
  Ss.FunctionTypeAnnotation = Eje;
  Ss.Identifier = $je;
  Ss.LogicalExpression = Wje;
  Ss.NullableTypeAnnotation = Pje;
  Ss.ObjectExpression = vje;
  Ss.OptionalIndexedAccessType = Ije;
  Ss.OptionalCallExpression = Ss.OptionalMemberExpression = Kje;
  Ss.SequenceExpression = jje;
  Ss.TSSatisfiesExpression = Ss.TSAsExpression = Nje;
  Ss.TSConditionalType = kje;
  Ss.TSConstructorType = Ss.TSFunctionType = Mje;
  Ss.TSInferType = _je;
  Ss.TSInstantiationExpression = Bje;
  Ss.TSIntersectionType = Oje;
  Ss.UnaryLike = Ss.TSTypeAssertion = DV;
  Ss.TSTypeOperator = Lje;
  Ss.TSUnionType = Dje;
  Ss.IntersectionTypeAnnotation = Ss.UnionTypeAnnotation = wje;
  Ss.UpdateExpression = Aje;
  Ss.AwaitExpression = Ss.YieldExpression = Rje;
  var hje = fe(), va = Lc(), {
    isArrayTypeAnnotation: fje,
    isBinaryExpression: dje,
    isCallExpression: mje,
    isForOfStatement: yje,
    isIndexedAccessType: gje,
    isMemberExpression: IV,
    isObjectPattern: Tje,
    isOptionalMemberExpression: bje,
    isYieldExpression: xje,
    isStatement: Sje
  } = hje, CV = /* @__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 wV(t, e) {
    if (e === "BinaryExpression" || e === "LogicalExpression")
      return CV.get(t.operator);
    if (e === "TSAsExpression" || e === "TSSatisfiesExpression")
      return CV.get("in");
  }
  n(wV, "getBinaryPrecedence");
  function RN(t) {
    return t === "TSAsExpression" || t === "TSSatisfiesExpression" || t === "TSTypeAssertion";
  }
  n(RN, "isTSTypeExpression");
  var Ex = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "ClassDeclaration" || s === "ClassExpression") && e.superClass === t;
  }, "isClassExtendsClause"), Ax = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "MemberExpression" || s === "OptionalMemberExpression") && e.object === t || (s === "CallExpression" || s === "OptionalCal\
lExpression" || s === "NewExpression") && e.callee === t || s === "TaggedTemplateExpression" && e.tag === t || s === "TSNonNullExpression";
  }, "hasPostfixPart");
  function Pje(t, e) {
    return fje(e);
  }
  n(Pje, "NullableTypeAnnotation");
  function Eje(t, e, s) {
    let r = e.type;
    return r === "UnionTypeAnnotation" || r === "IntersectionTypeAnnotation" || r === "ArrayTypeAnnotation" || !!(s & va.TokenContext.arrowFlowReturnType);
  }
  n(Eje, "FunctionTypeAnnotation");
  function Aje(t, e) {
    return Ax(t, e) || Ex(t, e);
  }
  n(Aje, "UpdateExpression");
  function NV(t) {
    return !!(t & (va.TokenContext.expressionStatement | va.TokenContext.arrowBody));
  }
  n(NV, "needsParenBeforeExpressionBrace");
  function vje(t, e, s) {
    return NV(s);
  }
  n(vje, "ObjectExpression");
  function Cje(t, e, s) {
    return !t.async && !!(s & va.TokenContext.expressionStatement);
  }
  n(Cje, "DoExpression");
  function kV(t, e) {
    let s = e.type;
    if (t.type === "BinaryExpression" && t.operator === "**" && s === "BinaryExpression" && e.operator === "**")
      return e.left === t;
    if (Ex(t, e) || Ax(t, e) || s === "UnaryExpression" || s === "SpreadElement" || s === "AwaitExpression")
      return !0;
    let r = wV(e, s);
    if (r != null) {
      let i = wV(t, t.type);
      if (r === i && s === "BinaryExpression" && e.right === t || r > i)
        return !0;
    }
  }
  n(kV, "Binary");
  function wje(t, e) {
    let s = e.type;
    return s === "ArrayTypeAnnotation" || s === "NullableTypeAnnotation" || s === "IntersectionTypeAnnotation" || s === "UnionTypeAnnotation";
  }
  n(wje, "UnionTypeAnnotation");
  function Ije(t, e) {
    return gje(e) && e.objectType === t;
  }
  n(Ije, "OptionalIndexedAccessType");
  function Nje(t, e) {
    return (e.type === "AssignmentExpression" || e.type === "AssignmentPattern") && e.left === t || e.type === "BinaryExpression" && (e.operator ===
    "|" || e.operator === "&") && t === e.left ? !0 : kV(t, e);
  }
  n(Nje, "TSAsExpression");
  function kje(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType" || s === "TSTypeOperator" || s ===
    "TSTypeParameter" || (s === "TSIntersectionType" || s === "TSUnionType") && e.types[0] === t || s === "TSConditionalType" && (e.checkType ===
    t || e.extendsType === t);
  }
  n(kje, "TSConditionalType");
  function Dje(t, e) {
    let s = e.type;
    return s === "TSIntersectionType" || s === "TSTypeOperator" || s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t ||
    s === "TSOptionalType";
  }
  n(Dje, "TSUnionType");
  function Oje(t, e) {
    let s = e.type;
    return s === "TSTypeOperator" || s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType";
  }
  n(Oje, "TSIntersectionType");
  function _je(t, e) {
    let s = e.type;
    return !!(s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType" || t.typeParameter.constraint &&
    (s === "TSIntersectionType" || s === "TSUnionType") && e.types[0] === t);
  }
  n(_je, "TSInferType");
  function Lje(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType";
  }
  n(Lje, "TSTypeOperator");
  function Bje(t, e) {
    let s = e.type;
    return (s === "CallExpression" || s === "OptionalCallExpression" || s === "NewExpression" || s === "TSInstantiationExpression") && !!e.typeParameters;
  }
  n(Bje, "TSInstantiationExpression");
  function Mje(t, e) {
    let s = e.type;
    return s === "TSIntersectionType" || s === "TSUnionType" || s === "TSTypeOperator" || s === "TSOptionalType" || s === "TSArrayType" || s ===
    "TSIndexedAccessType" && e.objectType === t || s === "TSConditionalType" && (e.checkType === t || e.extendsType === t);
  }
  n(Mje, "TSFunctionType");
  function Fje(t, e, s, r) {
    return t.operator === "in" && r;
  }
  n(Fje, "BinaryExpression");
  function jje(t, e) {
    let s = e.type;
    return s === "SequenceExpression" || s === "ParenthesizedExpression" || s === "MemberExpression" && e.property === t || s === "OptionalM\
emberExpression" && e.property === t || s === "TemplateLiteral" ? !1 : s === "ClassDeclaration" ? !0 : s === "ForOfStatement" ? e.right === t :
    s === "ExportDefaultDeclaration" ? !0 : !Sje(e);
  }
  n(jje, "SequenceExpression");
  function Rje(t, e) {
    let s = e.type;
    return s === "BinaryExpression" || s === "LogicalExpression" || s === "UnaryExpression" || s === "SpreadElement" || Ax(t, e) || s === "A\
waitExpression" && xje(t) || s === "ConditionalExpression" && t === e.test || Ex(t, e) || RN(s);
  }
  n(Rje, "YieldExpression");
  function qje(t, e, s) {
    return !!(s & (va.TokenContext.expressionStatement | va.TokenContext.exportDefault));
  }
  n(qje, "ClassExpression");
  function DV(t, e) {
    return Ax(t, e) || dje(e) && e.operator === "**" && e.left === t || Ex(t, e);
  }
  n(DV, "UnaryLike");
  function Uje(t, e, s) {
    return !!(s & (va.TokenContext.expressionStatement | va.TokenContext.exportDefault));
  }
  n(Uje, "FunctionExpression");
  function OV(t, e) {
    let s = e.type;
    return s === "UnaryExpression" || s === "SpreadElement" || s === "BinaryExpression" || s === "LogicalExpression" || s === "ConditionalEx\
pression" && e.test === t || s === "AwaitExpression" || RN(s) ? !0 : DV(t, e);
  }
  n(OV, "ConditionalExpression");
  function Kje(t, e) {
    return mje(e) && e.callee === t || IV(e) && e.object === t;
  }
  n(Kje, "OptionalMemberExpression");
  function Vje(t, e, s) {
    return NV(s) && Tje(t.left) ? !0 : OV(t, e);
  }
  n(Vje, "AssignmentExpression");
  function Wje(t, e) {
    let s = e.type;
    if (RN(s)) return !0;
    if (s !== "LogicalExpression") return !1;
    switch (t.operator) {
      case "||":
        return e.operator === "??" || e.operator === "&&";
      case "&&":
        return e.operator === "??";
      case "??":
        return e.operator !== "??";
    }
  }
  n(Wje, "LogicalExpression");
  function $je(t, e, s, r, i) {
    var a;
    let o = e.type;
    if ((a = t.extra) != null && a.parenthesized && o === "AssignmentExpression" && e.left === t) {
      let l = e.right.type;
      if ((l === "FunctionExpression" || l === "ClassExpression") && e.right.id == null)
        return !0;
    }
    return i && i(t) !== t.name ? !1 : t.name === "let" ? (IV(e, {
      object: t,
      computed: !0
    }) || bje(e, {
      object: t,
      computed: !0,
      optional: !1
    })) && s & (va.TokenContext.expressionStatement | va.TokenContext.forHead | va.TokenContext.forInHead) ? !0 : !!(s & va.TokenContext.forOfHead) :
    t.name === "async" && yje(e, {
      left: t,
      await: !1
    });
  }
  n($je, "Identifier");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/node/index.js
var Lc = g((zl) => {
  "use strict";
  Object.defineProperty(zl, "__esModule", {
    value: !0
  });
  zl.TokenContext = void 0;
  zl.isLastChild = o8e;
  zl.needsParens = a8e;
  zl.needsWhitespace = UN;
  zl.needsWhitespaceAfter = n8e;
  zl.needsWhitespaceBefore = i8e;
  var Hje = vV(), Jje = _V(), Yje = fe(), {
    FLIPPED_ALIAS_KEYS: Xje,
    VISITOR_KEYS: zje,
    isCallExpression: LV,
    isDecorator: Gje,
    isExpressionStatement: Qje,
    isMemberExpression: Zje,
    isNewExpression: e8e,
    isParenthesizedExpression: t8e
  } = Yje, z5s = zl.TokenContext = {
    expressionStatement: 1,
    arrowBody: 2,
    exportDefault: 4,
    forHead: 8,
    forInHead: 16,
    forOfHead: 32,
    arrowFlowReturnType: 64
  };
  function BV(t) {
    let e = /* @__PURE__ */ new Map();
    function s(r, i) {
      let a = e.get(r);
      e.set(r, a ? function(o, l, u, c, p) {
        var h;
        return (h = a(o, l, u, c, p)) != null ? h : i(o, l, u, c, p);
      } : i);
    }
    n(s, "add");
    for (let r of Object.keys(t)) {
      let i = Xje[r];
      if (i)
        for (let a of i)
          s(a, t[r]);
      else
        s(r, t[r]);
    }
    return e;
  }
  n(BV, "expandAliases");
  var s8e = BV(Jje), r8e = BV(Hje.nodes);
  function MV(t) {
    return LV(t) ? !0 : Zje(t) && MV(t.object);
  }
  n(MV, "isOrHasCallExpression");
  function UN(t, e, s) {
    var r;
    if (!t) return !1;
    Qje(t) && (t = t.expression);
    let i = (r = r8e.get(t.type)) == null ? void 0 : r(t, e);
    return typeof i == "number" ? (i & s) !== 0 : !1;
  }
  n(UN, "needsWhitespace");
  function i8e(t, e) {
    return UN(t, e, 1);
  }
  n(i8e, "needsWhitespaceBefore");
  function n8e(t, e) {
    return UN(t, e, 2);
  }
  n(n8e, "needsWhitespaceAfter");
  function a8e(t, e, s, r, i) {
    var a;
    return e ? e8e(e) && e.callee === t && MV(t) ? !0 : Gje(e) ? !qN(t) && !(LV(t) && qN(t.callee)) && !t8e(t) : (a = s8e.get(t.type)) == null ?
    void 0 : a(t, e, s, r, i) : !1;
  }
  n(a8e, "needsParens");
  function qN(t) {
    switch (t.type) {
      case "Identifier":
        return !0;
      case "MemberExpression":
        return !t.computed && t.property.type === "Identifier" && qN(t.object);
      default:
        return !1;
    }
  }
  n(qN, "isDecoratorMemberExpression");
  function o8e(t, e) {
    let s = zje[t.type];
    for (let r = s.length - 1; r >= 0; r--) {
      let i = t[s[r]];
      if (i === e)
        return !0;
      if (Array.isArray(i)) {
        let a = i.length - 1;
        for (; a >= 0 && i[a] === null; ) a--;
        return a >= 0 && i[a] === e;
      } else if (i)
        return !1;
    }
    return !1;
  }
  n(o8e, "isLastChild");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/token-map.js
var FV = g((vx) => {
  "use strict";
  Object.defineProperty(vx, "__esModule", {
    value: !0
  });
  vx.TokenMap = void 0;
  var l8e = fe(), {
    traverseFast: u8e,
    VISITOR_KEYS: c8e
  } = l8e, KN = class {
    static {
      n(this, "TokenMap");
    }
    constructor(e, s, r) {
      this._tokens = void 0, this._source = void 0, this._nodesToTokenIndexes = /* @__PURE__ */ new Map(), this._nodesOccurrencesCountCache =
      /* @__PURE__ */ new Map(), this._tokensCache = /* @__PURE__ */ new Map(), this._tokens = s, this._source = r, u8e(e, (i) => {
        let a = this._getTokensIndexesOfNode(i);
        a.length > 0 && this._nodesToTokenIndexes.set(i, a);
      }), this._tokensCache = null;
    }
    has(e) {
      return this._nodesToTokenIndexes.has(e);
    }
    getIndexes(e) {
      return this._nodesToTokenIndexes.get(e);
    }
    find(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = 0; i < r.length; i++) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return o;
        }
      return null;
    }
    findLastIndex(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = r.length - 1; i >= 0; i--) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return a;
        }
      return -1;
    }
    findMatching(e, s, r = 0) {
      let i = this._nodesToTokenIndexes.get(e);
      if (i) {
        let a = 0, o = r;
        if (o > 1) {
          let l = this._nodesOccurrencesCountCache.get(e);
          l && l.test === s && l.count < o && (a = l.i + 1, r -= l.count + 1);
        }
        for (; a < i.length; a++) {
          let l = this._tokens[i[a]];
          if (this.matchesOriginal(l, s)) {
            if (r === 0)
              return o > 0 && this._nodesOccurrencesCountCache.set(e, {
                test: s,
                count: o,
                i: a
              }), l;
            r--;
          }
        }
      }
      return null;
    }
    matchesOriginal(e, s) {
      return e.end - e.start !== s.length ? !1 : e.value != null ? e.value === s : this._source.startsWith(s, e.start);
    }
    startMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[0]];
      return i.start !== e.start ? !1 : this.matchesOriginal(i, s);
    }
    endMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[r.length - 1]];
      return i.end !== e.end ? !1 : this.matchesOriginal(i, s);
    }
    _getTokensIndexesOfNode(e) {
      if (e.start == null || e.end == null) return [];
      let {
        first: s,
        last: r
      } = this._findTokensOfNode(e, 0, this._tokens.length - 1), i = s, a = p8e(e);
      (e.type === "ExportNamedDeclaration" || e.type === "ExportDefaultDeclaration") && e.declaration && e.declaration.type === "ClassDeclar\
ation" && a.next();
      let o = [];
      for (let l of a) {
        if (l == null || l.start == null || l.end == null) continue;
        let u = this._findTokensOfNode(l, i, r), c = u.first;
        for (let p = i; p < c; p++) o.push(p);
        i = u.last + 1;
      }
      for (let l = i; l <= r; l++) o.push(l);
      return o;
    }
    _findTokensOfNode(e, s, r) {
      let i = this._tokensCache.get(e);
      if (i) return i;
      let a = this._findFirstTokenOfNode(e.start, s, r), o = this._findLastTokenOfNode(e.end, a, r);
      return this._tokensCache.set(e, {
        first: a,
        last: o
      }), {
        first: a,
        last: o
      };
    }
    _findFirstTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].start)
          r = i - 1;
        else if (e > this._tokens[i].start)
          s = i + 1;
        else
          return i;
      }
      return s;
    }
    _findLastTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].end)
          r = i - 1;
        else if (e > this._tokens[i].end)
          s = i + 1;
        else
          return i;
      }
      return r;
    }
  };
  vx.TokenMap = KN;
  function* p8e(t) {
    if (t.type === "TemplateLiteral") {
      yield t.quasis[0];
      for (let s = 1; s < t.quasis.length; s++)
        yield t.expressions[s - 1], yield t.quasis[s];
      return;
    }
    let e = c8e[t.type];
    for (let s of e) {
      let r = t[s];
      r && (Array.isArray(r) ? yield* r : yield r);
    }
  }
  n(p8e, "childrenIterator");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/template-literals.js
var jV = g((gd) => {
  "use strict";
  Object.defineProperty(gd, "__esModule", {
    value: !0
  });
  gd.TaggedTemplateExpression = h8e;
  gd.TemplateElement = f8e;
  gd.TemplateLiteral = m8e;
  gd._printTemplate = d8e;
  function h8e(t) {
    this.print(t.tag), this.print(t.typeParameters), this.print(t.quasi);
  }
  n(h8e, "TaggedTemplateExpression");
  function f8e() {
    throw new Error("TemplateElement printing is handled in TemplateLiteral");
  }
  n(f8e, "TemplateElement");
  function d8e(t, e) {
    let s = t.quasis, r = "`";
    for (let i = 0; i < s.length - 1; i++)
      if (r += s[i].value.raw, this.token(r + "${", !0), this.print(e[i]), r = "}", this.tokenMap) {
        let a = this.tokenMap.findMatching(t, "}", i);
        a && this._catchUpTo(a.loc.start);
      }
    r += s[s.length - 1].value.raw, this.token(r + "`", !0);
  }
  n(d8e, "_printTemplate");
  function m8e(t) {
    this._printTemplate(t, t.expressions);
  }
  n(m8e, "TemplateLiteral");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/expressions.js
var qV = g((ur) => {
  "use strict";
  Object.defineProperty(ur, "__esModule", {
    value: !0
  });
  ur.LogicalExpression = ur.BinaryExpression = ur.AssignmentExpression = U8e;
  ur.AssignmentPattern = q8e;
  ur.AwaitExpression = M8e;
  ur.BindExpression = K8e;
  ur.CallExpression = L8e;
  ur.ConditionalExpression = v8e;
  ur.Decorator = D8e;
  ur.DoExpression = P8e;
  ur.EmptyStatement = j8e;
  ur.ExpressionStatement = R8e;
  ur.Import = B8e;
  ur.MemberExpression = V8e;
  ur.MetaProperty = W8e;
  ur.ModuleExpression = J8e;
  ur.NewExpression = C8e;
  ur.OptionalCallExpression = _8e;
  ur.OptionalMemberExpression = O8e;
  ur.ParenthesizedExpression = E8e;
  ur.PrivateName = $8e;
  ur.SequenceExpression = w8e;
  ur.Super = N8e;
  ur.ThisExpression = I8e;
  ur.UnaryExpression = S8e;
  ur.UpdateExpression = A8e;
  ur.V8IntrinsicIdentifier = H8e;
  ur.YieldExpression = F8e;
  ur._shouldPrintDecoratorsBeforeExport = k8e;
  var y8e = fe(), g8e = Lc(), {
    isCallExpression: T8e,
    isLiteral: RV,
    isMemberExpression: VN,
    isNewExpression: b8e,
    isPattern: x8e
  } = y8e;
  function S8e(t) {
    let {
      operator: e
    } = t;
    e === "void" || e === "delete" || e === "typeof" || e === "throw" ? (this.word(e), this.space()) : this.token(e), this.print(t.argument);
  }
  n(S8e, "UnaryExpression");
  function P8e(t) {
    t.async && (this.word("async", !0), this.space()), this.word("do"), this.space(), this.print(t.body);
  }
  n(P8e, "DoExpression");
  function E8e(t) {
    this.tokenChar(40);
    let e = this.enterDelimited();
    this.print(t.expression), e(), this.rightParens(t);
  }
  n(E8e, "ParenthesizedExpression");
  function A8e(t) {
    t.prefix ? (this.token(t.operator), this.print(t.argument)) : (this.print(t.argument, !0), this.token(t.operator));
  }
  n(A8e, "UpdateExpression");
  function v8e(t) {
    this.print(t.test), this.space(), this.tokenChar(63), this.space(), this.print(t.consequent), this.space(), this.tokenChar(58), this.space(),
    this.print(t.alternate);
  }
  n(v8e, "ConditionalExpression");
  function C8e(t, e) {
    if (this.word("new"), this.space(), this.print(t.callee), this.format.minified && t.arguments.length === 0 && !t.optional && !T8e(e, {
      callee: t
    }) && !VN(e) && !b8e(e) || (this.print(t.typeArguments), this.print(t.typeParameters), t.optional && this.token("?."), t.arguments.length ===
    0 && this.tokenMap && !this.tokenMap.endMatches(t, ")")))
      return;
    this.tokenChar(40);
    let s = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), s(), this.rightParens(t);
  }
  n(C8e, "NewExpression");
  function w8e(t) {
    this.printList(t.expressions);
  }
  n(w8e, "SequenceExpression");
  function I8e() {
    this.word("this");
  }
  n(I8e, "ThisExpression");
  function N8e() {
    this.word("super");
  }
  n(N8e, "Super");
  function k8e(t) {
    return typeof this.format.decoratorsBeforeExport == "boolean" ? this.format.decoratorsBeforeExport : typeof t.start == "number" && t.start ===
    t.declaration.start;
  }
  n(k8e, "_shouldPrintDecoratorsBeforeExport");
  function D8e(t) {
    this.tokenChar(64), this.print(t.expression), this.newline();
  }
  n(D8e, "Decorator");
  function O8e(t) {
    let {
      computed: e
    } = t, {
      optional: s,
      property: r
    } = t;
    if (this.print(t.object), !e && VN(r))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    RV(r) && typeof r.value == "number" && (e = !0), s && this.token("?."), e ? (this.tokenChar(91), this.print(r), this.tokenChar(93)) : (s ||
    this.tokenChar(46), this.print(r));
  }
  n(O8e, "OptionalMemberExpression");
  function _8e(t) {
    this.print(t.callee), this.print(t.typeParameters), t.optional && this.token("?."), this.print(t.typeArguments), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments), e(), this.rightParens(t);
  }
  n(_8e, "OptionalCallExpression");
  function L8e(t) {
    this.print(t.callee), this.print(t.typeArguments), this.print(t.typeParameters), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), e(), this.rightParens(t);
  }
  n(L8e, "CallExpression");
  function B8e() {
    this.word("import");
  }
  n(B8e, "Import");
  function M8e(t) {
    this.word("await"), t.argument && (this.space(), this.printTerminatorless(t.argument));
  }
  n(M8e, "AwaitExpression");
  function F8e(t) {
    this.word("yield", !0), t.delegate ? (this.tokenChar(42), t.argument && (this.space(), this.print(t.argument))) : t.argument && (this.space(),
    this.printTerminatorless(t.argument));
  }
  n(F8e, "YieldExpression");
  function j8e() {
    this.semicolon(!0);
  }
  n(j8e, "EmptyStatement");
  function R8e(t) {
    this.tokenContext |= g8e.TokenContext.expressionStatement, this.print(t.expression), this.semicolon();
  }
  n(R8e, "ExpressionStatement");
  function q8e(t) {
    this.print(t.left), (t.left.type === "Identifier" || x8e(t.left)) && (t.left.optional && this.tokenChar(63), this.print(t.left.typeAnnotation)),
    this.space(), this.tokenChar(61), this.space(), this.print(t.right);
  }
  n(q8e, "AssignmentPattern");
  function U8e(t) {
    this.print(t.left), this.space(), t.operator === "in" || t.operator === "instanceof" ? this.word(t.operator) : (this.token(t.operator), this.
    _endsWithDiv = t.operator === "/"), this.space(), this.print(t.right);
  }
  n(U8e, "AssignmentExpression");
  function K8e(t) {
    this.print(t.object), this.token("::"), this.print(t.callee);
  }
  n(K8e, "BindExpression");
  function V8e(t) {
    if (this.print(t.object), !t.computed && VN(t.property))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    let e = t.computed;
    if (RV(t.property) && typeof t.property.value == "number" && (e = !0), e) {
      let s = this.enterDelimited();
      this.tokenChar(91), this.print(t.property), this.tokenChar(93), s();
    } else
      this.tokenChar(46), this.print(t.property);
  }
  n(V8e, "MemberExpression");
  function W8e(t) {
    this.print(t.meta), this.tokenChar(46), this.print(t.property);
  }
  n(W8e, "MetaProperty");
  function $8e(t) {
    this.tokenChar(35), this.print(t.id);
  }
  n($8e, "PrivateName");
  function H8e(t) {
    this.tokenChar(37), this.word(t.name);
  }
  n(H8e, "V8IntrinsicIdentifier");
  function J8e(t) {
    this.word("module", !0), this.space(), this.tokenChar(123), this.indent();
    let {
      body: e
    } = t;
    (e.body.length || e.directives.length) && this.newline(), this.print(e), this.dedent(), this.rightBrace(t);
  }
  n(J8e, "ModuleExpression");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/statements.js
var WV = g((Yr) => {
  "use strict";
  Object.defineProperty(Yr, "__esModule", {
    value: !0
  });
  Yr.BreakStatement = r6e;
  Yr.CatchClause = u6e;
  Yr.ContinueStatement = i6e;
  Yr.DebuggerStatement = h6e;
  Yr.DoWhileStatement = s6e;
  Yr.ForOfStatement = Yr.ForInStatement = void 0;
  Yr.ForStatement = e6e;
  Yr.IfStatement = Z8e;
  Yr.LabeledStatement = o6e;
  Yr.ReturnStatement = n6e;
  Yr.SwitchCase = p6e;
  Yr.SwitchStatement = c6e;
  Yr.ThrowStatement = a6e;
  Yr.TryStatement = l6e;
  Yr.VariableDeclaration = f6e;
  Yr.VariableDeclarator = d6e;
  Yr.WhileStatement = t6e;
  Yr.WithStatement = Q8e;
  var Y8e = fe(), WN = Lc(), {
    isFor: UV,
    isForStatement: X8e,
    isIfStatement: z8e,
    isStatement: G8e
  } = Y8e;
  function Q8e(t) {
    this.word("with"), this.space(), this.tokenChar(40), this.print(t.object), this.tokenChar(41), this.printBlock(t);
  }
  n(Q8e, "WithStatement");
  function Z8e(t) {
    this.word("if"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.space();
    let e = t.alternate && z8e(KV(t.consequent));
    e && (this.tokenChar(123), this.newline(), this.indent()), this.printAndIndentOnComments(t.consequent), e && (this.dedent(), this.newline(),
    this.tokenChar(125)), t.alternate && (this.endsWith(125) && this.space(), this.word("else"), this.space(), this.printAndIndentOnComments(
    t.alternate));
  }
  n(Z8e, "IfStatement");
  function KV(t) {
    let {
      body: e
    } = t;
    return G8e(e) === !1 ? t : KV(e);
  }
  n(KV, "getLastStatement");
  function e6e(t) {
    this.word("for"), this.space(), this.tokenChar(40);
    {
      let e = this.enterForStatementInit();
      this.tokenContext |= WN.TokenContext.forHead, this.print(t.init), e();
    }
    this.tokenChar(59), t.test && (this.space(), this.print(t.test)), this.token(";", !1, 1), t.update && (this.space(), this.print(t.update)),
    this.tokenChar(41), this.printBlock(t);
  }
  n(e6e, "ForStatement");
  function t6e(t) {
    this.word("while"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.printBlock(t);
  }
  n(t6e, "WhileStatement");
  function VV(t) {
    this.word("for"), this.space();
    let e = t.type === "ForOfStatement";
    e && t.await && (this.word("await"), this.space()), this.noIndentInnerCommentsHere(), this.tokenChar(40);
    {
      let s = e ? null : this.enterForStatementInit();
      this.tokenContext |= e ? WN.TokenContext.forOfHead : WN.TokenContext.forInHead, this.print(t.left), s?.();
    }
    this.space(), this.word(e ? "of" : "in"), this.space(), this.print(t.right), this.tokenChar(41), this.printBlock(t);
  }
  n(VV, "ForXStatement");
  var n9s = Yr.ForInStatement = VV, a9s = Yr.ForOfStatement = VV;
  function s6e(t) {
    this.word("do"), this.space(), this.print(t.body), this.space(), this.word("while"), this.space(), this.tokenChar(40), this.print(t.test),
    this.tokenChar(41), this.semicolon();
  }
  n(s6e, "DoWhileStatement");
  function Cx(t, e) {
    e && (t.space(), t.printTerminatorless(e)), t.semicolon();
  }
  n(Cx, "printStatementAfterKeyword");
  function r6e(t) {
    this.word("break"), Cx(this, t.label);
  }
  n(r6e, "BreakStatement");
  function i6e(t) {
    this.word("continue"), Cx(this, t.label);
  }
  n(i6e, "ContinueStatement");
  function n6e(t) {
    this.word("return"), Cx(this, t.argument);
  }
  n(n6e, "ReturnStatement");
  function a6e(t) {
    this.word("throw"), Cx(this, t.argument);
  }
  n(a6e, "ThrowStatement");
  function o6e(t) {
    this.print(t.label), this.tokenChar(58), this.space(), this.print(t.body);
  }
  n(o6e, "LabeledStatement");
  function l6e(t) {
    this.word("try"), this.space(), this.print(t.block), this.space(), t.handlers ? this.print(t.handlers[0]) : this.print(t.handler), t.finalizer &&
    (this.space(), this.word("finally"), this.space(), this.print(t.finalizer));
  }
  n(l6e, "TryStatement");
  function u6e(t) {
    this.word("catch"), this.space(), t.param && (this.tokenChar(40), this.print(t.param), this.print(t.param.typeAnnotation), this.tokenChar(
    41), this.space()), this.print(t.body);
  }
  n(u6e, "CatchClause");
  function c6e(t) {
    this.word("switch"), this.space(), this.tokenChar(40), this.print(t.discriminant), this.tokenChar(41), this.space(), this.tokenChar(123),
    this.printSequence(t.cases, !0, void 0, /* @__PURE__ */ n(function(s, r) {
      if (!s && t.cases[t.cases.length - 1] === r) return -1;
    }, "addNewlines")), this.rightBrace(t);
  }
  n(c6e, "SwitchStatement");
  function p6e(t) {
    t.test ? (this.word("case"), this.space(), this.print(t.test), this.tokenChar(58)) : (this.word("default"), this.tokenChar(58)), t.consequent.
    length && (this.newline(), this.printSequence(t.consequent, !0));
  }
  n(p6e, "SwitchCase");
  function h6e() {
    this.word("debugger"), this.semicolon();
  }
  n(h6e, "DebuggerStatement");
  function f6e(t, e) {
    t.declare && (this.word("declare"), this.space());
    let {
      kind: s
    } = t;
    s === "await using" ? (this.word("await"), this.space(), this.word("using", !0)) : this.word(s, s === "using"), this.space();
    let r = !1;
    if (!UV(e))
      for (let i of t.declarations)
        i.init && (r = !0);
    if (this.printList(t.declarations, void 0, void 0, t.declarations.length > 1, r ? function(i) {
      this.token(",", !1, i), this.newline();
    } : void 0), UV(e)) {
      if (X8e(e)) {
        if (e.init === t) return;
      } else if (e.left === t) return;
    }
    this.semicolon();
  }
  n(f6e, "VariableDeclaration");
  function d6e(t) {
    this.print(t.id), t.definite && this.tokenChar(33), this.print(t.id.typeAnnotation), t.init && (this.space(), this.tokenChar(61), this.space(),
    this.print(t.init));
  }
  n(d6e, "VariableDeclarator");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/classes.js
var $V = g((Ca) => {
  "use strict";
  Object.defineProperty(Ca, "__esModule", {
    value: !0
  });
  Ca.ClassAccessorProperty = P6e;
  Ca.ClassBody = b6e;
  Ca.ClassExpression = Ca.ClassDeclaration = T6e;
  Ca.ClassMethod = A6e;
  Ca.ClassPrivateMethod = v6e;
  Ca.ClassPrivateProperty = E6e;
  Ca.ClassProperty = S6e;
  Ca.StaticBlock = w6e;
  Ca._classMethodHead = C6e;
  var m6e = fe(), {
    isExportDefaultDeclaration: y6e,
    isExportNamedDeclaration: g6e
  } = m6e;
  function T6e(t, e) {
    (!(y6e(e) || g6e(e)) || !this._shouldPrintDecoratorsBeforeExport(e)) && this.printJoin(t.decorators), t.declare && (this.word("declare"),
    this.space()), t.abstract && (this.word("abstract"), this.space()), this.word("class"), t.id && (this.space(), this.print(t.id)), this.print(
    t.typeParameters), t.superClass && (this.space(), this.word("extends"), this.space(), this.print(t.superClass), this.print(t.superTypeParameters)),
    t.implements && (this.space(), this.word("implements"), this.space(), this.printList(t.implements)), this.space(), this.print(t.body);
  }
  n(T6e, "ClassDeclaration");
  function b6e(t) {
    if (this.tokenChar(123), t.body.length === 0)
      this.tokenChar(125);
    else {
      this.newline();
      let e = x6e(this, t);
      e?.(-1);
      let s = this.enterDelimited();
      this.printJoin(t.body, !0, !0, e, !0), s(), this.endsWith(10) || this.newline(), this.rightBrace(t);
    }
  }
  n(b6e, "ClassBody");
  function x6e(t, e) {
    if (!t.tokenMap || e.start == null || e.end == null)
      return null;
    let s = t.tokenMap.getIndexes(e);
    if (!s) return null;
    let r = 1, i = 0, a = 0, o = /* @__PURE__ */ n(() => {
      for (; a < e.body.length && e.body[a].start == null; )
        a++;
    }, "advanceNextLocIndex");
    return o(), (l) => {
      a <= l && (a = l + 1, o());
      let u = a === e.body.length ? e.end : e.body[a].start, c;
      for (; r < s.length && t.tokenMap.matchesOriginal(c = t._tokens[s[r]], ";") && c.start < u; )
        t.token(";", void 0, i++), r++;
    };
  }
  n(x6e, "classBodyEmptySemicolonsPrinter");
  function S6e(t) {
    if (this.printJoin(t.decorators), !t.static && !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), t.computed ? (this.tokenChar(91), this.print(t.key), this.tokenChar(93)) : (this._variance(t), this.
    print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(),
    this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(S6e, "ClassProperty");
  function P6e(t) {
    var e;
    this.printJoin(t.decorators);
    let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
    s && this.catchUp(s), this.tsPrintClassMemberModifiers(t), this.word("accessor", !0), this.space(), t.computed ? (this.tokenChar(91), this.
    print(t.key), this.tokenChar(93)) : (this._variance(t), this.print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(
    33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(P6e, "ClassAccessorProperty");
  function E6e(t) {
    this.printJoin(t.decorators), this.tsPrintClassMemberModifiers(t), this.print(t.key), t.optional && this.tokenChar(63), t.definite && this.
    tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(E6e, "ClassPrivateProperty");
  function A6e(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(A6e, "ClassMethod");
  function v6e(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(v6e, "ClassPrivateMethod");
  function C6e(t) {
    if (this.printJoin(t.decorators), !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), this._methodHead(t);
  }
  n(C6e, "_classMethodHead");
  function w6e(t) {
    this.word("static"), this.space(), this.tokenChar(123), t.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(
    t.body, !0), this.rightBrace(t));
  }
  n(w6e, "StaticBlock");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/methods.js
var HV = g((wa) => {
  "use strict";
  Object.defineProperty(wa, "__esModule", {
    value: !0
  });
  wa.ArrowFunctionExpression = j6e;
  wa.FunctionDeclaration = wa.FunctionExpression = F6e;
  wa._functionHead = M6e;
  wa._methodHead = L6e;
  wa._param = _6e;
  wa._parameters = O6e;
  wa._params = D6e;
  wa._predicate = B6e;
  wa._shouldPrintArrowParamsParens = R6e;
  var I6e = fe(), N6e = Lc(), {
    isIdentifier: k6e
  } = I6e;
  function D6e(t, e, s) {
    this.print(t.typeParameters);
    let r = q6e.call(this, e, s);
    r && this.sourceIdentifierName(r.name, r.pos), this.tokenChar(40), this._parameters(t.params, ")");
    let i = t.type === "ArrowFunctionExpression";
    this.print(t.returnType, i), this._noLineTerminator = i;
  }
  n(D6e, "_params");
  function O6e(t, e) {
    let s = this.enterDelimited(), r = this.shouldPrintTrailingComma(e), i = t.length;
    for (let a = 0; a < i; a++)
      this._param(t[a]), (r || a < i - 1) && (this.token(",", null, a), this.space());
    this.token(e), s();
  }
  n(O6e, "_parameters");
  function _6e(t) {
    this.printJoin(t.decorators), this.print(t), t.optional && this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(_6e, "_param");
  function L6e(t) {
    let e = t.kind, s = t.key;
    (e === "get" || e === "set") && (this.word(e), this.space()), t.async && (this.word("async", !0), this.space()), (e === "method" || e ===
    "init") && t.generator && this.tokenChar(42), t.computed ? (this.tokenChar(91), this.print(s), this.tokenChar(93)) : this.print(s), t.optional &&
    this.tokenChar(63), this._params(t, t.computed && t.key.type !== "StringLiteral" ? void 0 : t.key, void 0);
  }
  n(L6e, "_methodHead");
  function B6e(t, e) {
    t.predicate && (t.returnType || this.tokenChar(58), this.space(), this.print(t.predicate, e));
  }
  n(B6e, "_predicate");
  function M6e(t, e) {
    t.async && (this.word("async"), this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.space()), this.word("function"), t.generator &&
    (this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.tokenChar(42)), this.space(), t.id && this.print(t.id), this._params(
    t, t.id, e), t.type !== "TSDeclareFunction" && this._predicate(t);
  }
  n(M6e, "_functionHead");
  function F6e(t, e) {
    this._functionHead(t, e), this.space(), this.print(t.body);
  }
  n(F6e, "FunctionExpression");
  function j6e(t, e) {
    t.async && (this.word("async", !0), this.space()), this._shouldPrintArrowParamsParens(t) ? this._params(t, void 0, e) : this.print(t.params[0],
    !0), this._predicate(t, !0), this.space(), this.printInnerComments(), this.token("=>"), this.space(), this.tokenContext |= N6e.TokenContext.
    arrowBody, this.print(t.body);
  }
  n(j6e, "ArrowFunctionExpression");
  function R6e(t) {
    var e, s;
    if (t.params.length !== 1 || t.typeParameters || t.returnType || t.predicate)
      return !0;
    let r = t.params[0];
    if (!k6e(r) || r.typeAnnotation || r.optional || (e = r.leadingComments) != null && e.length || (s = r.trailingComments) != null && s.length)
      return !0;
    if (this.tokenMap) {
      if (t.loc == null || this.tokenMap.findMatching(t, "(") !== null) return !0;
      let i = this.tokenMap.findMatching(t, "=>");
      return i?.loc == null ? !0 : i.loc.start.line !== t.loc.start.line;
    }
    return !!this.format.retainLines;
  }
  n(R6e, "_shouldPrintArrowParamsParens");
  function q6e(t, e) {
    let s = t;
    if (!s && e) {
      let u = e.type;
      u === "VariableDeclarator" ? s = e.id : u === "AssignmentExpression" || u === "AssignmentPattern" ? s = e.left : u === "ObjectProperty" ||
      u === "ClassProperty" ? (!e.computed || e.key.type === "StringLiteral") && (s = e.key) : (u === "ClassPrivateProperty" || u === "Class\
AccessorProperty") && (s = e.key);
    }
    if (!s) return;
    let r;
    if (s.type === "Identifier") {
      var i, a;
      r = {
        pos: (i = s.loc) == null ? void 0 : i.start,
        name: ((a = s.loc) == null ? void 0 : a.identifierName) || s.name
      };
    } else if (s.type === "PrivateName") {
      var o;
      r = {
        pos: (o = s.loc) == null ? void 0 : o.start,
        name: "#" + s.id.name
      };
    } else if (s.type === "StringLiteral") {
      var l;
      r = {
        pos: (l = s.loc) == null ? void 0 : l.start,
        name: s.value
      };
    }
    return r;
  }
  n(q6e, "_getFuncIdName");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/modules.js
var $N = g((bn) => {
  "use strict";
  Object.defineProperty(bn, "__esModule", {
    value: !0
  });
  bn.ExportAllDeclaration = eRe;
  bn.ExportDefaultDeclaration = sRe;
  bn.ExportDefaultSpecifier = z6e;
  bn.ExportNamedDeclaration = tRe;
  bn.ExportNamespaceSpecifier = Q6e;
  bn.ExportSpecifier = G6e;
  bn.ImportAttribute = iRe;
  bn.ImportDeclaration = rRe;
  bn.ImportDefaultSpecifier = X6e;
  bn.ImportExpression = aRe;
  bn.ImportNamespaceSpecifier = nRe;
  bn.ImportSpecifier = Y6e;
  bn._printAttributes = Z6e;
  var U6e = fe(), K6e = Lc(), {
    isClassDeclaration: V6e,
    isExportDefaultSpecifier: W6e,
    isExportNamespaceSpecifier: $6e,
    isImportDefaultSpecifier: H6e,
    isImportNamespaceSpecifier: J6e,
    isStatement: YV
  } = U6e;
  function Y6e(t) {
    (t.importKind === "type" || t.importKind === "typeof") && (this.word(t.importKind), this.space()), this.print(t.imported), t.local && t.
    local.name !== t.imported.name && (this.space(), this.word("as"), this.space(), this.print(t.local));
  }
  n(Y6e, "ImportSpecifier");
  function X6e(t) {
    this.print(t.local);
  }
  n(X6e, "ImportDefaultSpecifier");
  function z6e(t) {
    this.print(t.exported);
  }
  n(z6e, "ExportDefaultSpecifier");
  function G6e(t) {
    t.exportKind === "type" && (this.word("type"), this.space()), this.print(t.local), t.exported && t.local.name !== t.exported.name && (this.
    space(), this.word("as"), this.space(), this.print(t.exported));
  }
  n(G6e, "ExportSpecifier");
  function Q6e(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.exported);
  }
  n(Q6e, "ExportNamespaceSpecifier");
  var JV = !1;
  function Z6e(t, e) {
    let {
      importAttributesKeyword: s
    } = this.format, {
      attributes: r,
      assertions: i
    } = t;
    r && !s && !JV && (JV = !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'));
    let a = s === "assert" || !s && i;
    if (this.word(a ? "assert" : "with"), this.space(), !a && s !== "with") {
      this.printList(r || i);
      return;
    }
    let o = e ? 1 : 0;
    this.token("{", null, o), this.space(), this.printList(r || i, this.shouldPrintTrailingComma("}")), this.space(), this.token("}", null, o);
  }
  n(Z6e, "_printAttributes");
  function eRe(t) {
    var e, s;
    this.word("export"), this.space(), t.exportKind === "type" && (this.word("type"), this.space()), this.tokenChar(42), this.space(), this.
    word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0),
    this.space(), this._printAttributes(t, !1)) : this.print(t.source), this.semicolon();
  }
  n(eRe, "ExportAllDeclaration");
  function XV(t, e) {
    V6e(e.declaration) && t._shouldPrintDecoratorsBeforeExport(e) && t.printJoin(e.declaration.decorators);
  }
  n(XV, "maybePrintDecoratorsBeforeExport");
  function tRe(t) {
    if (XV(this, t), this.word("export"), this.space(), t.declaration) {
      let r = t.declaration;
      this.print(r), YV(r) || this.semicolon();
    } else {
      t.exportKind === "type" && (this.word("type"), this.space());
      let r = t.specifiers.slice(0), i = !1;
      for (; ; ) {
        let o = r[0];
        if (W6e(o) || $6e(o))
          i = !0, this.print(r.shift()), r.length && (this.tokenChar(44), this.space());
        else
          break;
      }
      let a = !1;
      if ((r.length || !r.length && !i) && (a = !0, this.tokenChar(123), r.length && (this.space(), this.printList(r, this.shouldPrintTrailingComma(
      "}")), this.space()), this.tokenChar(125)), t.source) {
        var e, s;
        this.space(), this.word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.
        print(t.source, !0), this.space(), this._printAttributes(t, a)) : this.print(t.source);
      }
      this.semicolon();
    }
  }
  n(tRe, "ExportNamedDeclaration");
  function sRe(t) {
    XV(this, t), this.word("export"), this.noIndentInnerCommentsHere(), this.space(), this.word("default"), this.space(), this.tokenContext |=
    K6e.TokenContext.exportDefault;
    let e = t.declaration;
    this.print(e), YV(e) || this.semicolon();
  }
  n(sRe, "ExportDefaultDeclaration");
  function rRe(t) {
    var e, s;
    this.word("import"), this.space();
    let r = t.importKind === "type" || t.importKind === "typeof";
    r ? (this.noIndentInnerCommentsHere(), this.word(t.importKind), this.space()) : t.module ? (this.noIndentInnerCommentsHere(), this.word(
    "module"), this.space()) : t.phase && (this.noIndentInnerCommentsHere(), this.word(t.phase), this.space());
    let i = t.specifiers.slice(0), a = !!i.length;
    for (; a; ) {
      let l = i[0];
      if (H6e(l) || J6e(l))
        this.print(i.shift()), i.length && (this.tokenChar(44), this.space());
      else
        break;
    }
    let o = !1;
    i.length ? (o = !0, this.tokenChar(123), this.space(), this.printList(i, this.shouldPrintTrailingComma("}")), this.space(), this.tokenChar(
    125)) : r && !a && (o = !0, this.tokenChar(123), this.tokenChar(125)), (a || r) && (this.space(), this.word("from"), this.space()), (e =
    t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0), this.space(), this._printAttributes(
    t, o)) : this.print(t.source), this.semicolon();
  }
  n(rRe, "ImportDeclaration");
  function iRe(t) {
    this.print(t.key), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(iRe, "ImportAttribute");
  function nRe(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.local);
  }
  n(nRe, "ImportNamespaceSpecifier");
  function aRe(t) {
    this.word("import"), t.phase && (this.tokenChar(46), this.word(t.phase)), this.tokenChar(40), this.print(t.source), t.options != null &&
    (this.tokenChar(44), this.space(), this.print(t.options)), this.tokenChar(41);
  }
  n(aRe, "ImportExpression");
});

// ../node_modules/jsesc/jsesc.js
var Td = g((m9s, QV) => {
  "use strict";
  var zV = {}, oRe = zV.hasOwnProperty, GV = /* @__PURE__ */ n((t, e) => {
    for (let s in t)
      oRe.call(t, s) && e(s, t[s]);
  }, "forOwn"), lRe = /* @__PURE__ */ n((t, e) => (e && GV(e, (s, r) => {
    t[s] = r;
  }), t), "extend"), uRe = /* @__PURE__ */ n((t, e) => {
    let s = t.length, r = -1;
    for (; ++r < s; )
      e(t[r]);
  }, "forEach"), wx = /* @__PURE__ */ n((t) => "\\u" + ("0000" + t).slice(-4), "fourHexEscape"), cg = /* @__PURE__ */ n((t, e) => {
    let s = t.toString(16);
    return e ? s : s.toUpperCase();
  }, "hexadecimal"), pg = zV.toString, cRe = Array.isArray, pRe = /* @__PURE__ */ n((t) => typeof Buffer == "function" && Buffer.isBuffer(t),
  "isBuffer"), hRe = /* @__PURE__ */ n((t) => pg.call(t) == "[object Object]", "isObject"), fRe = /* @__PURE__ */ n((t) => typeof t == "stri\
ng" || pg.call(t) == "[object String]", "isString"), dRe = /* @__PURE__ */ n((t) => typeof t == "number" || pg.call(t) == "[object Number]",
  "isNumber"), mRe = /* @__PURE__ */ n((t) => typeof t == "function", "isFunction"), yRe = /* @__PURE__ */ n((t) => pg.call(t) == "[object M\
ap]", "isMap"), gRe = /* @__PURE__ */ n((t) => pg.call(t) == "[object Set]", "isSet"), TRe = {
    "\\": "\\\\",
    "\b": "\\b",
    "\f": "\\f",
    "\n": "\\n",
    "\r": "\\r",
    "	": "\\t"
    // `\v` is omitted intentionally, because in IE < 9, '\v' == 'v'.
    // '\v': '\\x0B'
  }, bRe = /[\\\b\f\n\r\t]/, xRe = /[0-9]/, SRe = /[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/, PRe = /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^]/g,
  ERe = /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^ !#-&\(-\[\]-_a-~]/g, Bc = /* @__PURE__ */ n((t, e) => {
    let s = /* @__PURE__ */ n(() => {
      c = u, ++e.indentLevel, u = e.indent.repeat(e.indentLevel);
    }, "increaseIndentation"), r = {
      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
    }, i = e && e.json;
    i && (r.quotes = "double", r.wrap = !0), e = lRe(r, e), e.quotes != "single" && e.quotes != "double" && e.quotes != "backtick" && (e.quotes =
    "single");
    let a = e.quotes == "double" ? '"' : e.quotes == "backtick" ? "`" : "'", o = e.compact, l = e.lowercaseHex, u = e.indent.repeat(e.indentLevel),
    c = "", p = e.__inline1__, h = e.__inline2__, f = o ? "" : `
`, d, m = !0, y = e.numbers == "binary", T = e.numbers == "octal", b = e.numbers == "decimal", E = e.numbers == "hexadecimal";
    if (i && t && mRe(t.toJSON) && (t = t.toJSON()), !fRe(t)) {
      if (yRe(t))
        return t.size == 0 ? "new Map()" : (o || (e.__inline1__ = !0, e.__inline2__ = !1), "new Map(" + Bc(Array.from(t), e) + ")");
      if (gRe(t))
        return t.size == 0 ? "new Set()" : "new Set(" + Bc(Array.from(t), e) + ")";
      if (pRe(t))
        return t.length == 0 ? "Buffer.from([])" : "Buffer.from(" + Bc(Array.from(t), e) + ")";
      if (cRe(t))
        return d = [], e.wrap = !0, p && (e.__inline1__ = !1, e.__inline2__ = !0), h || s(), uRe(t, (W) => {
          m = !1, h && (e.__inline2__ = !1), d.push(
            (o || h ? "" : u) + Bc(W, e)
          );
        }), m ? "[]" : h ? "[" + d.join(", ") + "]" : "[" + f + d.join("," + f) + f + (o ? "" : c) + "]";
      if (dRe(t)) {
        if (i)
          return JSON.stringify(t);
        if (b)
          return String(t);
        if (E) {
          let W = t.toString(16);
          return l || (W = W.toUpperCase()), "0x" + W;
        }
        if (y)
          return "0b" + t.toString(2);
        if (T)
          return "0o" + t.toString(8);
      } else return hRe(t) ? (d = [], e.wrap = !0, s(), GV(t, (W, oe) => {
        m = !1, d.push(
          (o ? "" : u) + Bc(W, e) + ":" + (o ? "" : " ") + Bc(oe, e)
        );
      }), m ? "{}" : "{" + f + d.join("," + f) + f + (o ? "" : c) + "}") : i ? JSON.stringify(t) || "null" : String(t);
    }
    let V = e.escapeEverything ? PRe : ERe;
    return d = t.replace(V, (W, oe, de, ye, Oe, be) => {
      if (oe) {
        if (e.minimal) return oe;
        let he = oe.charCodeAt(0), Pe = oe.charCodeAt(1);
        if (e.es6) {
          let st = (he - 55296) * 1024 + Pe - 56320 + 65536;
          return "\\u{" + cg(st, l) + "}";
        }
        return wx(cg(he, l)) + wx(cg(Pe, l));
      }
      if (de)
        return wx(cg(de.charCodeAt(0), l));
      if (W == "\0" && !i && !xRe.test(be.charAt(Oe + 1)))
        return "\\0";
      if (ye)
        return ye == a || e.escapeEverything ? "\\" + ye : ye;
      if (bRe.test(W))
        return TRe[W];
      if (e.minimal && !SRe.test(W))
        return W;
      let me = cg(W.charCodeAt(0), l);
      return i || me.length > 2 ? wx(me) : "\\x" + ("00" + me).slice(-2);
    }), a == "`" && (d = d.replace(/\$\{/g, "\\${")), e.isScriptContext && (d = d.replace(/<\/(script|style)/gi, "<\\/$1").replace(/<!--/g, i ?
    "\\u003C!--" : "\\x3C!--")), e.wrap && (d = a + d + a), d;
  }, "jsesc");
  Bc.version = "3.0.2";
  QV.exports = Bc;
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js
var JN = g((Dr) => {
  "use strict";
  Object.defineProperty(Dr, "__esModule", {
    value: !0
  });
  Dr.ArgumentPlaceholder = IRe;
  Dr.ArrayPattern = Dr.ArrayExpression = _Re;
  Dr.BigIntLiteral = URe;
  Dr.BooleanLiteral = FRe;
  Dr.Identifier = wRe;
  Dr.NullLiteral = jRe;
  Dr.NumericLiteral = RRe;
  Dr.ObjectPattern = Dr.ObjectExpression = kRe;
  Dr.ObjectMethod = DRe;
  Dr.ObjectProperty = ORe;
  Dr.PipelineBareFunction = WRe;
  Dr.PipelinePrimaryTopicReference = $Re;
  Dr.PipelineTopicExpression = VRe;
  Dr.RecordExpression = LRe;
  Dr.RegExpLiteral = MRe;
  Dr.SpreadElement = Dr.RestElement = NRe;
  Dr.StringLiteral = qRe;
  Dr.TopicReference = KRe;
  Dr.TupleExpression = BRe;
  Dr._getRawIdentifier = CRe;
  var ARe = fe(), tW = Td(), {
    isAssignmentPattern: vRe,
    isIdentifier: HN
  } = ARe, ZV = null, Ix = "";
  function CRe(t) {
    if (t === ZV) return Ix;
    ZV = t;
    let {
      name: e
    } = t, s = this.tokenMap.find(t, (r) => r.value === e);
    return s ? (Ix = this._originalCode.slice(s.start, s.end), Ix) : Ix = t.name;
  }
  n(CRe, "_getRawIdentifier");
  function wRe(t) {
    var e;
    this.sourceIdentifierName(((e = t.loc) == null ? void 0 : e.identifierName) || t.name), this.word(this.tokenMap ? this._getRawIdentifier(
    t) : t.name);
  }
  n(wRe, "Identifier");
  function IRe() {
    this.tokenChar(63);
  }
  n(IRe, "ArgumentPlaceholder");
  function NRe(t) {
    this.token("..."), this.print(t.argument);
  }
  n(NRe, "RestElement");
  function kRe(t) {
    let e = t.properties;
    if (this.tokenChar(123), e.length) {
      let s = this.enterDelimited();
      this.space(), this.printList(e, this.shouldPrintTrailingComma("}"), !0, !0), this.space(), s();
    }
    this.sourceWithOffset("end", t.loc, -1), this.tokenChar(125);
  }
  n(kRe, "ObjectExpression");
  function DRe(t) {
    this.printJoin(t.decorators), this._methodHead(t), this.space(), this.print(t.body);
  }
  n(DRe, "ObjectMethod");
  function ORe(t) {
    if (this.printJoin(t.decorators), t.computed)
      this.tokenChar(91), this.print(t.key), this.tokenChar(93);
    else {
      if (vRe(t.value) && HN(t.key) && t.key.name === t.value.left.name) {
        this.print(t.value);
        return;
      }
      if (this.print(t.key), t.shorthand && HN(t.key) && HN(t.value) && t.key.name === t.value.name)
        return;
    }
    this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(ORe, "ObjectProperty");
  function _Re(t) {
    let e = t.elements, s = e.length;
    this.tokenChar(91);
    let r = this.enterDelimited();
    for (let i = 0; i < e.length; i++) {
      let a = e[i];
      a ? (i > 0 && this.space(), this.print(a), (i < s - 1 || this.shouldPrintTrailingComma("]")) && this.token(",", !1, i)) : this.token("\
,", !1, i);
    }
    r(), this.tokenChar(93);
  }
  n(_Re, "ArrayExpression");
  function LRe(t) {
    let e = t.properties, s, r;
    if (this.format.recordAndTupleSyntaxType === "bar")
      s = "{|", r = "|}";
    else {
      if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null)
        throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)}\
 received).`);
      s = "#{", r = "}";
    }
    this.token(s), e.length && (this.space(), this.printList(e, this.shouldPrintTrailingComma(r), !0, !0), this.space()), this.token(r);
  }
  n(LRe, "RecordExpression");
  function BRe(t) {
    let e = t.elements, s = e.length, r, i;
    if (this.format.recordAndTupleSyntaxType === "bar")
      r = "[|", i = "|]";
    else if (this.format.recordAndTupleSyntaxType === "hash")
      r = "#[", i = "]";
    else
      throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
    this.token(r);
    for (let a = 0; a < e.length; a++) {
      let o = e[a];
      o && (a > 0 && this.space(), this.print(o), (a < s - 1 || this.shouldPrintTrailingComma(i)) && this.token(",", !1, a));
    }
    this.token(i);
  }
  n(BRe, "TupleExpression");
  function MRe(t) {
    this.word(`/${t.pattern}/${t.flags}`);
  }
  n(MRe, "RegExpLiteral");
  function FRe(t) {
    this.word(t.value ? "true" : "false");
  }
  n(FRe, "BooleanLiteral");
  function jRe() {
    this.word("null");
  }
  n(jRe, "NullLiteral");
  function RRe(t) {
    let e = this.getPossibleRaw(t), s = this.format.jsescOption, r = t.value, i = r + "";
    s.numbers ? this.number(tW(r, s), r) : e == null ? this.number(i, r) : this.format.minified ? this.number(e.length < i.length ? e : i, r) :
    this.number(e, r);
  }
  n(RRe, "NumericLiteral");
  function qRe(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let s = tW(t.value, this.format.jsescOption);
    this.token(s);
  }
  n(qRe, "StringLiteral");
  function URe(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.word(e);
      return;
    }
    this.word(t.value + "n");
  }
  n(URe, "BigIntLiteral");
  var eW = /* @__PURE__ */ new Set(["^^", "@@", "^", "%", "#"]);
  function KRe() {
    let {
      topicToken: t
    } = this.format;
    if (eW.has(t))
      this.token(t);
    else {
      let e = JSON.stringify(t), s = Array.from(eW, (r) => JSON.stringify(r));
      throw new Error(`The "topicToken" generator option must be one of ${s.join(", ")} (${e} received instead).`);
    }
  }
  n(KRe, "TopicReference");
  function VRe(t) {
    this.print(t.expression);
  }
  n(VRe, "PipelineTopicExpression");
  function WRe(t) {
    this.print(t.callee);
  }
  n(WRe, "PipelineBareFunction");
  function $Re() {
    this.tokenChar(35);
  }
  n($Re, "PipelinePrimaryTopicReference");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/flow.js
var rW = g((rt) => {
  "use strict";
  Object.defineProperty(rt, "__esModule", {
    value: !0
  });
  rt.AnyTypeAnnotation = zRe;
  rt.ArrayTypeAnnotation = GRe;
  rt.BooleanLiteralTypeAnnotation = ZRe;
  rt.BooleanTypeAnnotation = QRe;
  rt.DeclareClass = t5e;
  rt.DeclareExportAllDeclaration = h5e;
  rt.DeclareExportDeclaration = p5e;
  rt.DeclareFunction = s5e;
  rt.DeclareInterface = n5e;
  rt.DeclareModule = a5e;
  rt.DeclareModuleExports = o5e;
  rt.DeclareOpaqueType = u5e;
  rt.DeclareTypeAlias = l5e;
  rt.DeclareVariable = c5e;
  rt.DeclaredPredicate = i5e;
  rt.EmptyTypeAnnotation = L5e;
  rt.EnumBooleanBody = d5e;
  rt.EnumBooleanMember = b5e;
  rt.EnumDeclaration = f5e;
  rt.EnumDefaultedMember = T5e;
  rt.EnumNumberBody = m5e;
  rt.EnumNumberMember = x5e;
  rt.EnumStringBody = y5e;
  rt.EnumStringMember = S5e;
  rt.EnumSymbolBody = g5e;
  rt.ExistsTypeAnnotation = E5e;
  rt.FunctionTypeAnnotation = A5e;
  rt.FunctionTypeParam = v5e;
  rt.IndexedAccessType = n9e;
  rt.InferredPredicate = r5e;
  rt.InterfaceDeclaration = N5e;
  rt.GenericTypeAnnotation = rt.ClassImplements = rt.InterfaceExtends = C5e;
  rt.InterfaceTypeAnnotation = D5e;
  rt.IntersectionTypeAnnotation = O5e;
  rt.MixedTypeAnnotation = _5e;
  rt.NullLiteralTypeAnnotation = e5e;
  rt.NullableTypeAnnotation = B5e;
  Object.defineProperty(rt, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return sW.NumericLiteral;
    }, "get")
  });
  rt.NumberTypeAnnotation = M5e;
  rt.ObjectTypeAnnotation = H5e;
  rt.ObjectTypeCallProperty = Y5e;
  rt.ObjectTypeIndexer = X5e;
  rt.ObjectTypeInternalSlot = J5e;
  rt.ObjectTypeProperty = z5e;
  rt.ObjectTypeSpreadProperty = G5e;
  rt.OpaqueType = $5e;
  rt.OptionalIndexedAccessType = a9e;
  rt.QualifiedTypeIdentifier = Q5e;
  Object.defineProperty(rt, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return sW.StringLiteral;
    }, "get")
  });
  rt.StringTypeAnnotation = F5e;
  rt.SymbolTypeAnnotation = Z5e;
  rt.ThisTypeAnnotation = j5e;
  rt.TupleTypeAnnotation = R5e;
  rt.TypeAlias = U5e;
  rt.TypeAnnotation = K5e;
  rt.TypeCastExpression = s9e;
  rt.TypeParameter = W5e;
  rt.TypeParameterDeclaration = rt.TypeParameterInstantiation = V5e;
  rt.TypeofTypeAnnotation = q5e;
  rt.UnionTypeAnnotation = t9e;
  rt.Variance = r9e;
  rt.VoidTypeAnnotation = i9e;
  rt._interfaceish = w5e;
  rt._variance = I5e;
  var HRe = fe(), JRe = $N(), YRe = Lc(), sW = JN(), {
    isDeclareExportDeclaration: Nx,
    isStatement: XRe
  } = HRe;
  function zRe() {
    this.word("any");
  }
  n(zRe, "AnyTypeAnnotation");
  function GRe(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(GRe, "ArrayTypeAnnotation");
  function QRe() {
    this.word("boolean");
  }
  n(QRe, "BooleanTypeAnnotation");
  function ZRe(t) {
    this.word(t.value ? "true" : "false");
  }
  n(ZRe, "BooleanLiteralTypeAnnotation");
  function e5e() {
    this.word("null");
  }
  n(e5e, "NullLiteralTypeAnnotation");
  function t5e(t, e) {
    Nx(e) || (this.word("declare"), this.space()), this.word("class"), this.space(), this._interfaceish(t);
  }
  n(t5e, "DeclareClass");
  function s5e(t, e) {
    Nx(e) || (this.word("declare"), this.space()), this.word("function"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation.typeAnnotation),
    t.predicate && (this.space(), this.print(t.predicate)), this.semicolon();
  }
  n(s5e, "DeclareFunction");
  function r5e() {
    this.tokenChar(37), this.word("checks");
  }
  n(r5e, "InferredPredicate");
  function i5e(t) {
    this.tokenChar(37), this.word("checks"), this.tokenChar(40), this.print(t.value), this.tokenChar(41);
  }
  n(i5e, "DeclaredPredicate");
  function n5e(t) {
    this.word("declare"), this.space(), this.InterfaceDeclaration(t);
  }
  n(n5e, "DeclareInterface");
  function a5e(t) {
    this.word("declare"), this.space(), this.word("module"), this.space(), this.print(t.id), this.space(), this.print(t.body);
  }
  n(a5e, "DeclareModule");
  function o5e(t) {
    this.word("declare"), this.space(), this.word("module"), this.tokenChar(46), this.word("exports"), this.print(t.typeAnnotation);
  }
  n(o5e, "DeclareModuleExports");
  function l5e(t) {
    this.word("declare"), this.space(), this.TypeAlias(t);
  }
  n(l5e, "DeclareTypeAlias");
  function u5e(t, e) {
    Nx(e) || (this.word("declare"), this.space()), this.OpaqueType(t);
  }
  n(u5e, "DeclareOpaqueType");
  function c5e(t, e) {
    Nx(e) || (this.word("declare"), this.space()), this.word("var"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation), this.semicolon();
  }
  n(c5e, "DeclareVariable");
  function p5e(t) {
    this.word("declare"), this.space(), this.word("export"), this.space(), t.default && (this.word("default"), this.space()), P5e.call(this,
    t);
  }
  n(p5e, "DeclareExportDeclaration");
  function h5e(t) {
    this.word("declare"), this.space(), JRe.ExportAllDeclaration.call(this, t);
  }
  n(h5e, "DeclareExportAllDeclaration");
  function f5e(t) {
    let {
      id: e,
      body: s
    } = t;
    this.word("enum"), this.space(), this.print(e), this.print(s);
  }
  n(f5e, "EnumDeclaration");
  function kx(t, e, s) {
    s && (t.space(), t.word("of"), t.space(), t.word(e)), t.space();
  }
  n(kx, "enumExplicitType");
  function Dx(t, e) {
    let {
      members: s
    } = e;
    t.token("{"), t.indent(), t.newline();
    for (let r of s)
      t.print(r), t.newline();
    e.hasUnknownMembers && (t.token("..."), t.newline()), t.dedent(), t.token("}");
  }
  n(Dx, "enumBody");
  function d5e(t) {
    let {
      explicitType: e
    } = t;
    kx(this, "boolean", e), Dx(this, t);
  }
  n(d5e, "EnumBooleanBody");
  function m5e(t) {
    let {
      explicitType: e
    } = t;
    kx(this, "number", e), Dx(this, t);
  }
  n(m5e, "EnumNumberBody");
  function y5e(t) {
    let {
      explicitType: e
    } = t;
    kx(this, "string", e), Dx(this, t);
  }
  n(y5e, "EnumStringBody");
  function g5e(t) {
    kx(this, "symbol", !0), Dx(this, t);
  }
  n(g5e, "EnumSymbolBody");
  function T5e(t) {
    let {
      id: e
    } = t;
    this.print(e), this.tokenChar(44);
  }
  n(T5e, "EnumDefaultedMember");
  function YN(t, e) {
    t.print(e.id), t.space(), t.token("="), t.space(), t.print(e.init), t.token(",");
  }
  n(YN, "enumInitializedMember");
  function b5e(t) {
    YN(this, t);
  }
  n(b5e, "EnumBooleanMember");
  function x5e(t) {
    YN(this, t);
  }
  n(x5e, "EnumNumberMember");
  function S5e(t) {
    YN(this, t);
  }
  n(S5e, "EnumStringMember");
  function P5e(t) {
    if (t.declaration) {
      let e = t.declaration;
      this.print(e), XRe(e) || this.semicolon();
    } else
      this.tokenChar(123), t.specifiers.length && (this.space(), this.printList(t.specifiers), this.space()), this.tokenChar(125), t.source &&
      (this.space(), this.word("from"), this.space(), this.print(t.source)), this.semicolon();
  }
  n(P5e, "FlowExportDeclaration");
  function E5e() {
    this.tokenChar(42);
  }
  n(E5e, "ExistsTypeAnnotation");
  function A5e(t, e) {
    this.print(t.typeParameters), this.tokenChar(40), t.this && (this.word("this"), this.tokenChar(58), this.space(), this.print(t.this.typeAnnotation),
    (t.params.length || t.rest) && (this.tokenChar(44), this.space())), this.printList(t.params), t.rest && (t.params.length && (this.tokenChar(
    44), this.space()), this.token("..."), this.print(t.rest)), this.tokenChar(41);
    let s = e?.type;
    s != null && (s === "ObjectTypeCallProperty" || s === "ObjectTypeInternalSlot" || s === "DeclareFunction" || s === "ObjectTypeProperty" &&
    e.method) ? this.tokenChar(58) : (this.space(), this.token("=>")), this.space(), this.print(t.returnType);
  }
  n(A5e, "FunctionTypeAnnotation");
  function v5e(t) {
    this.print(t.name), t.optional && this.tokenChar(63), t.name && (this.tokenChar(58), this.space()), this.print(t.typeAnnotation);
  }
  n(v5e, "FunctionTypeParam");
  function C5e(t) {
    this.print(t.id), this.print(t.typeParameters, !0);
  }
  n(C5e, "InterfaceExtends");
  function w5e(t) {
    var e;
    if (this.print(t.id), this.print(t.typeParameters), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(),
    this.printList(t.extends)), t.type === "DeclareClass") {
      var s, r;
      (s = t.mixins) != null && s.length && (this.space(), this.word("mixins"), this.space(), this.printList(t.mixins)), (r = t.implements) !=
      null && r.length && (this.space(), this.word("implements"), this.space(), this.printList(t.implements));
    }
    this.space(), this.print(t.body);
  }
  n(w5e, "_interfaceish");
  function I5e(t) {
    var e;
    let s = (e = t.variance) == null ? void 0 : e.kind;
    s != null && (s === "plus" ? this.tokenChar(43) : s === "minus" && this.tokenChar(45));
  }
  n(I5e, "_variance");
  function N5e(t) {
    this.word("interface"), this.space(), this._interfaceish(t);
  }
  n(N5e, "InterfaceDeclaration");
  function k5e(t) {
    this.space(), this.token("&", !1, t), this.space();
  }
  n(k5e, "andSeparator");
  function D5e(t) {
    var e;
    this.word("interface"), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(), this.printList(t.extends)),
    this.space(), this.print(t.body);
  }
  n(D5e, "InterfaceTypeAnnotation");
  function O5e(t) {
    this.printJoin(t.types, void 0, void 0, k5e);
  }
  n(O5e, "IntersectionTypeAnnotation");
  function _5e() {
    this.word("mixed");
  }
  n(_5e, "MixedTypeAnnotation");
  function L5e() {
    this.word("empty");
  }
  n(L5e, "EmptyTypeAnnotation");
  function B5e(t) {
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(B5e, "NullableTypeAnnotation");
  function M5e() {
    this.word("number");
  }
  n(M5e, "NumberTypeAnnotation");
  function F5e() {
    this.word("string");
  }
  n(F5e, "StringTypeAnnotation");
  function j5e() {
    this.word("this");
  }
  n(j5e, "ThisTypeAnnotation");
  function R5e(t) {
    this.tokenChar(91), this.printList(t.types), this.tokenChar(93);
  }
  n(R5e, "TupleTypeAnnotation");
  function q5e(t) {
    this.word("typeof"), this.space(), this.print(t.argument);
  }
  n(q5e, "TypeofTypeAnnotation");
  function U5e(t) {
    this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), this.space(), this.tokenChar(61), this.space(), this.print(
    t.right), this.semicolon();
  }
  n(U5e, "TypeAlias");
  function K5e(t, e) {
    this.tokenChar(58), this.space(), e.type === "ArrowFunctionExpression" ? this.tokenContext |= YRe.TokenContext.arrowFlowReturnType : t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(K5e, "TypeAnnotation");
  function V5e(t) {
    this.tokenChar(60), this.printList(t.params), this.tokenChar(62);
  }
  n(V5e, "TypeParameterInstantiation");
  function W5e(t) {
    this._variance(t), this.word(t.name), t.bound && this.print(t.bound), t.default && (this.space(), this.tokenChar(61), this.space(), this.
    print(t.default));
  }
  n(W5e, "TypeParameter");
  function $5e(t) {
    this.word("opaque"), this.space(), this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), t.supertype && (this.
    tokenChar(58), this.space(), this.print(t.supertype)), t.impltype && (this.space(), this.tokenChar(61), this.space(), this.print(t.impltype)),
    this.semicolon();
  }
  n($5e, "OpaqueType");
  function H5e(t) {
    t.exact ? this.token("{|") : this.tokenChar(123);
    let e = [...t.properties, ...t.callProperties || [], ...t.indexers || [], ...t.internalSlots || []];
    e.length && (this.newline(), this.space(), this.printJoin(e, !0, !0, void 0, void 0, /* @__PURE__ */ n(function(r) {
      if (r && !e[0]) return 1;
    }, "addNewlines"), () => {
      (e.length !== 1 || t.inexact) && (this.tokenChar(44), this.space());
    }), this.space()), t.inexact && (this.indent(), this.token("..."), e.length && this.newline(), this.dedent()), t.exact ? this.token("|}") :
    this.tokenChar(125);
  }
  n(H5e, "ObjectTypeAnnotation");
  function J5e(t) {
    t.static && (this.word("static"), this.space()), this.tokenChar(91), this.tokenChar(91), this.print(t.id), this.tokenChar(93), this.tokenChar(
    93), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58), this.space()), this.print(t.value);
  }
  n(J5e, "ObjectTypeInternalSlot");
  function Y5e(t) {
    t.static && (this.word("static"), this.space()), this.print(t.value);
  }
  n(Y5e, "ObjectTypeCallProperty");
  function X5e(t) {
    t.static && (this.word("static"), this.space()), this._variance(t), this.tokenChar(91), t.id && (this.print(t.id), this.tokenChar(58), this.
    space()), this.print(t.key), this.tokenChar(93), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(X5e, "ObjectTypeIndexer");
  function z5e(t) {
    t.proto && (this.word("proto"), this.space()), t.static && (this.word("static"), this.space()), (t.kind === "get" || t.kind === "set") &&
    (this.word(t.kind), this.space()), this._variance(t), this.print(t.key), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58),
    this.space()), this.print(t.value);
  }
  n(z5e, "ObjectTypeProperty");
  function G5e(t) {
    this.token("..."), this.print(t.argument);
  }
  n(G5e, "ObjectTypeSpreadProperty");
  function Q5e(t) {
    this.print(t.qualification), this.tokenChar(46), this.print(t.id);
  }
  n(Q5e, "QualifiedTypeIdentifier");
  function Z5e() {
    this.word("symbol");
  }
  n(Z5e, "SymbolTypeAnnotation");
  function e9e(t) {
    this.space(), this.token("|", !1, t), this.space();
  }
  n(e9e, "orSeparator");
  function t9e(t) {
    this.printJoin(t.types, void 0, void 0, e9e);
  }
  n(t9e, "UnionTypeAnnotation");
  function s9e(t) {
    this.tokenChar(40), this.print(t.expression), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(s9e, "TypeCastExpression");
  function r9e(t) {
    t.kind === "plus" ? this.tokenChar(43) : this.tokenChar(45);
  }
  n(r9e, "Variance");
  function i9e() {
    this.word("void");
  }
  n(i9e, "VoidTypeAnnotation");
  function n9e(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(n9e, "IndexedAccessType");
  function a9e(t) {
    this.print(t.objectType), t.optional && this.token("?."), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(a9e, "OptionalIndexedAccessType");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js
var iW = g((Gl) => {
  "use strict";
  Object.defineProperty(Gl, "__esModule", {
    value: !0
  });
  Gl.BlockStatement = u9e;
  Gl.Directive = c9e;
  Gl.DirectiveLiteral = f9e;
  Gl.File = o9e;
  Gl.InterpreterDirective = d9e;
  Gl.Placeholder = m9e;
  Gl.Program = l9e;
  function o9e(t) {
    t.program && this.print(t.program.interpreter), this.print(t.program);
  }
  n(o9e, "File");
  function l9e(t) {
    var e;
    this.noIndentInnerCommentsHere(), this.printInnerComments();
    let s = (e = t.directives) == null ? void 0 : e.length;
    if (s) {
      var r;
      let i = t.body.length ? 2 : 1;
      this.printSequence(t.directives, void 0, i), (r = t.directives[s - 1].trailingComments) != null && r.length || this.newline(i);
    }
    this.printSequence(t.body);
  }
  n(l9e, "Program");
  function u9e(t) {
    var e;
    this.tokenChar(123);
    let s = this.enterDelimited(), r = (e = t.directives) == null ? void 0 : e.length;
    if (r) {
      var i;
      let a = t.body.length ? 2 : 1;
      this.printSequence(t.directives, !0, a), (i = t.directives[r - 1].trailingComments) != null && i.length || this.newline(a);
    }
    this.printSequence(t.body, !0), s(), this.rightBrace(t);
  }
  n(u9e, "BlockStatement");
  function c9e(t) {
    this.print(t.value), this.semicolon();
  }
  n(c9e, "Directive");
  var p9e = /(?:^|[^\\])(?:\\\\)*'/, h9e = /(?:^|[^\\])(?:\\\\)*"/;
  function f9e(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let {
      value: s
    } = t;
    if (!h9e.test(s))
      this.token(`"${s}"`);
    else if (!p9e.test(s))
      this.token(`'${s}'`);
    else
      throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.");
  }
  n(f9e, "DirectiveLiteral");
  function d9e(t) {
    this.token(`#!${t.value}`), this.newline(1, !0);
  }
  n(d9e, "InterpreterDirective");
  function m9e(t) {
    this.token("%%"), this.print(t.name), this.token("%%"), t.expectedNode === "Statement" && this.semicolon();
  }
  n(m9e, "Placeholder");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/jsx.js
var nW = g((Ui) => {
  "use strict";
  Object.defineProperty(Ui, "__esModule", {
    value: !0
  });
  Ui.JSXAttribute = y9e;
  Ui.JSXClosingElement = w9e;
  Ui.JSXClosingFragment = D9e;
  Ui.JSXElement = A9e;
  Ui.JSXEmptyExpression = I9e;
  Ui.JSXExpressionContainer = S9e;
  Ui.JSXFragment = N9e;
  Ui.JSXIdentifier = g9e;
  Ui.JSXMemberExpression = b9e;
  Ui.JSXNamespacedName = T9e;
  Ui.JSXOpeningElement = C9e;
  Ui.JSXOpeningFragment = k9e;
  Ui.JSXSpreadAttribute = x9e;
  Ui.JSXSpreadChild = P9e;
  Ui.JSXText = E9e;
  function y9e(t) {
    this.print(t.name), t.value && (this.tokenChar(61), this.print(t.value));
  }
  n(y9e, "JSXAttribute");
  function g9e(t) {
    this.word(t.name);
  }
  n(g9e, "JSXIdentifier");
  function T9e(t) {
    this.print(t.namespace), this.tokenChar(58), this.print(t.name);
  }
  n(T9e, "JSXNamespacedName");
  function b9e(t) {
    this.print(t.object), this.tokenChar(46), this.print(t.property);
  }
  n(b9e, "JSXMemberExpression");
  function x9e(t) {
    this.tokenChar(123), this.token("..."), this.print(t.argument), this.rightBrace(t);
  }
  n(x9e, "JSXSpreadAttribute");
  function S9e(t) {
    this.tokenChar(123), this.print(t.expression), this.rightBrace(t);
  }
  n(S9e, "JSXExpressionContainer");
  function P9e(t) {
    this.tokenChar(123), this.token("..."), this.print(t.expression), this.rightBrace(t);
  }
  n(P9e, "JSXSpreadChild");
  function E9e(t) {
    let e = this.getPossibleRaw(t);
    e !== void 0 ? this.token(e, !0) : this.token(t.value, !0);
  }
  n(E9e, "JSXText");
  function A9e(t) {
    let e = t.openingElement;
    if (this.print(e), !e.selfClosing) {
      this.indent();
      for (let s of t.children)
        this.print(s);
      this.dedent(), this.print(t.closingElement);
    }
  }
  n(A9e, "JSXElement");
  function v9e() {
    this.space();
  }
  n(v9e, "spaceSeparator");
  function C9e(t) {
    this.tokenChar(60), this.print(t.name), t.typeArguments && this.print(t.typeArguments), this.print(t.typeParameters), t.attributes.length >
    0 && (this.space(), this.printJoin(t.attributes, void 0, void 0, v9e)), t.selfClosing && (this.space(), this.tokenChar(47)), this.tokenChar(
    62);
  }
  n(C9e, "JSXOpeningElement");
  function w9e(t) {
    this.tokenChar(60), this.tokenChar(47), this.print(t.name), this.tokenChar(62);
  }
  n(w9e, "JSXClosingElement");
  function I9e() {
    this.printInnerComments();
  }
  n(I9e, "JSXEmptyExpression");
  function N9e(t) {
    this.print(t.openingFragment), this.indent();
    for (let e of t.children)
      this.print(e);
    this.dedent(), this.print(t.closingFragment);
  }
  n(N9e, "JSXFragment");
  function k9e() {
    this.tokenChar(60), this.tokenChar(62);
  }
  n(k9e, "JSXOpeningFragment");
  function D9e() {
    this.token("</"), this.tokenChar(62);
  }
  n(D9e, "JSXClosingFragment");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/typescript.js
var cW = g((Ye) => {
  "use strict";
  Object.defineProperty(Ye, "__esModule", {
    value: !0
  });
  Ye.TSAnyKeyword = $9e;
  Ye.TSArrayType = h7e;
  Ye.TSSatisfiesExpression = Ye.TSAsExpression = D7e;
  Ye.TSBigIntKeyword = H9e;
  Ye.TSBooleanKeyword = z9e;
  Ye.TSCallSignatureDeclaration = R9e;
  Ye.TSInterfaceHeritage = Ye.TSClassImplements = w7e;
  Ye.TSConditionalType = b7e;
  Ye.TSConstructSignatureDeclaration = q9e;
  Ye.TSConstructorType = a7e;
  Ye.TSDeclareFunction = M9e;
  Ye.TSDeclareMethod = F9e;
  Ye.TSEnumBody = uW;
  Ye.TSEnumDeclaration = L7e;
  Ye.TSEnumMember = B7e;
  Ye.TSExportAssignment = K7e;
  Ye.TSExternalModuleReference = q7e;
  Ye.TSFunctionType = n7e;
  Ye.TSImportEqualsDeclaration = R7e;
  Ye.TSImportType = j7e;
  Ye.TSIndexSignature = W9e;
  Ye.TSIndexedAccessType = E7e;
  Ye.TSInferType = x7e;
  Ye.TSInstantiationExpression = _7e;
  Ye.TSInterfaceBody = N7e;
  Ye.TSInterfaceDeclaration = I7e;
  Ye.TSIntersectionType = T7e;
  Ye.TSIntrinsicKeyword = r7e;
  Ye.TSLiteralType = C7e;
  Ye.TSMappedType = A7e;
  Ye.TSMethodSignature = V9e;
  Ye.TSModuleBlock = F7e;
  Ye.TSModuleDeclaration = M7e;
  Ye.TSNamedTupleMember = y7e;
  Ye.TSNamespaceExportDeclaration = V7e;
  Ye.TSNeverKeyword = s7e;
  Ye.TSNonNullExpression = U7e;
  Ye.TSNullKeyword = t7e;
  Ye.TSNumberKeyword = Y9e;
  Ye.TSObjectKeyword = X9e;
  Ye.TSOptionalType = d7e;
  Ye.TSParameterProperty = B9e;
  Ye.TSParenthesizedType = S7e;
  Ye.TSPropertySignature = U9e;
  Ye.TSQualifiedName = j9e;
  Ye.TSRestType = m7e;
  Ye.TSStringKeyword = G9e;
  Ye.TSSymbolKeyword = Q9e;
  Ye.TSTemplateLiteralType = v7e;
  Ye.TSThisType = i7e;
  Ye.TSTupleType = f7e;
  Ye.TSTypeAliasDeclaration = k7e;
  Ye.TSTypeAnnotation = O9e;
  Ye.TSTypeAssertion = O7e;
  Ye.TSTypeLiteral = p7e;
  Ye.TSTypeOperator = P7e;
  Ye.TSTypeParameter = L9e;
  Ye.TSTypeParameterDeclaration = Ye.TSTypeParameterInstantiation = _9e;
  Ye.TSTypePredicate = u7e;
  Ye.TSTypeQuery = c7e;
  Ye.TSTypeReference = l7e;
  Ye.TSUndefinedKeyword = e7e;
  Ye.TSUnionType = g7e;
  Ye.TSUnknownKeyword = J9e;
  Ye.TSVoidKeyword = Z9e;
  Ye.tsPrintClassMemberModifiers = $7e;
  Ye.tsPrintFunctionOrConstructorType = o7e;
  Ye.tsPrintPropertyOrMethodName = K9e;
  Ye.tsPrintSignatureDeclarationBase = W7e;
  function O9e(t, e) {
    this.token((e.type === "TSFunctionType" || e.type === "TSConstructorType") && e.typeAnnotation === t ? "=>" : ":"), this.space(), t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(O9e, "TSTypeAnnotation");
  function _9e(t, e) {
    this.tokenChar(60);
    let s = e.type === "ArrowFunctionExpression" && t.params.length === 1;
    this.tokenMap && t.start != null && t.end != null && (s && (s = !!this.tokenMap.find(t, (r) => this.tokenMap.matchesOriginal(r, ","))), s ||
    (s = this.shouldPrintTrailingComma(">"))), this.printList(t.params, s), this.tokenChar(62);
  }
  n(_9e, "TSTypeParameterInstantiation");
  function L9e(t) {
    t.in && (this.word("in"), this.space()), t.out && (this.word("out"), this.space()), this.word(t.name), t.constraint && (this.space(), this.
    word("extends"), this.space(), this.print(t.constraint)), t.default && (this.space(), this.tokenChar(61), this.space(), this.print(t.default));
  }
  n(L9e, "TSTypeParameter");
  function B9e(t) {
    t.accessibility && (this.word(t.accessibility), this.space()), t.readonly && (this.word("readonly"), this.space()), this._param(t.parameter);
  }
  n(B9e, "TSParameterProperty");
  function M9e(t, e) {
    t.declare && (this.word("declare"), this.space()), this._functionHead(t, e), this.semicolon();
  }
  n(M9e, "TSDeclareFunction");
  function F9e(t) {
    this._classMethodHead(t), this.semicolon();
  }
  n(F9e, "TSDeclareMethod");
  function j9e(t) {
    this.print(t.left), this.tokenChar(46), this.print(t.right);
  }
  n(j9e, "TSQualifiedName");
  function R9e(t) {
    this.tsPrintSignatureDeclarationBase(t), hg(this, t);
  }
  n(R9e, "TSCallSignatureDeclaration");
  function hg(t, e) {
    if (!t.tokenMap || !e.start || !e.end) {
      t.semicolon();
      return;
    }
    t.tokenMap.endMatches(e, ",") ? t.token(",") : t.tokenMap.endMatches(e, ";") && t.semicolon();
  }
  n(hg, "maybePrintTrailingCommaOrSemicolon");
  function q9e(t) {
    this.word("new"), this.space(), this.tsPrintSignatureDeclarationBase(t), hg(this, t);
  }
  n(q9e, "TSConstructSignatureDeclaration");
  function U9e(t) {
    let {
      readonly: e
    } = t;
    e && (this.word("readonly"), this.space()), this.tsPrintPropertyOrMethodName(t), this.print(t.typeAnnotation), hg(this, t);
  }
  n(U9e, "TSPropertySignature");
  function K9e(t) {
    t.computed && this.tokenChar(91), this.print(t.key), t.computed && this.tokenChar(93), t.optional && this.tokenChar(63);
  }
  n(K9e, "tsPrintPropertyOrMethodName");
  function V9e(t) {
    let {
      kind: e
    } = t;
    (e === "set" || e === "get") && (this.word(e), this.space()), this.tsPrintPropertyOrMethodName(t), this.tsPrintSignatureDeclarationBase(
    t), hg(this, t);
  }
  n(V9e, "TSMethodSignature");
  function W9e(t) {
    let {
      readonly: e,
      static: s
    } = t;
    s && (this.word("static"), this.space()), e && (this.word("readonly"), this.space()), this.tokenChar(91), this._parameters(t.parameters,
    "]"), this.print(t.typeAnnotation), hg(this, t);
  }
  n(W9e, "TSIndexSignature");
  function $9e() {
    this.word("any");
  }
  n($9e, "TSAnyKeyword");
  function H9e() {
    this.word("bigint");
  }
  n(H9e, "TSBigIntKeyword");
  function J9e() {
    this.word("unknown");
  }
  n(J9e, "TSUnknownKeyword");
  function Y9e() {
    this.word("number");
  }
  n(Y9e, "TSNumberKeyword");
  function X9e() {
    this.word("object");
  }
  n(X9e, "TSObjectKeyword");
  function z9e() {
    this.word("boolean");
  }
  n(z9e, "TSBooleanKeyword");
  function G9e() {
    this.word("string");
  }
  n(G9e, "TSStringKeyword");
  function Q9e() {
    this.word("symbol");
  }
  n(Q9e, "TSSymbolKeyword");
  function Z9e() {
    this.word("void");
  }
  n(Z9e, "TSVoidKeyword");
  function e7e() {
    this.word("undefined");
  }
  n(e7e, "TSUndefinedKeyword");
  function t7e() {
    this.word("null");
  }
  n(t7e, "TSNullKeyword");
  function s7e() {
    this.word("never");
  }
  n(s7e, "TSNeverKeyword");
  function r7e() {
    this.word("intrinsic");
  }
  n(r7e, "TSIntrinsicKeyword");
  function i7e() {
    this.word("this");
  }
  n(i7e, "TSThisType");
  function n7e(t) {
    this.tsPrintFunctionOrConstructorType(t);
  }
  n(n7e, "TSFunctionType");
  function a7e(t) {
    t.abstract && (this.word("abstract"), this.space()), this.word("new"), this.space(), this.tsPrintFunctionOrConstructorType(t);
  }
  n(a7e, "TSConstructorType");
  function o7e(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")"), this.space();
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(o7e, "tsPrintFunctionOrConstructorType");
  function l7e(t) {
    let e = t.typeParameters;
    this.print(t.typeName, !!e), this.print(e);
  }
  n(l7e, "TSTypeReference");
  function u7e(t) {
    t.asserts && (this.word("asserts"), this.space()), this.print(t.parameterName), t.typeAnnotation && (this.space(), this.word("is"), this.
    space(), this.print(t.typeAnnotation.typeAnnotation));
  }
  n(u7e, "TSTypePredicate");
  function c7e(t) {
    this.word("typeof"), this.space(), this.print(t.exprName);
    let e = t.typeParameters;
    e && this.print(e);
  }
  n(c7e, "TSTypeQuery");
  function p7e(t) {
    Ox(this, t, () => this.printJoin(t.members, !0, !0));
  }
  n(p7e, "TSTypeLiteral");
  function h7e(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(h7e, "TSArrayType");
  function f7e(t) {
    this.tokenChar(91), this.printList(t.elementTypes, this.shouldPrintTrailingComma("]")), this.tokenChar(93);
  }
  n(f7e, "TSTupleType");
  function d7e(t) {
    this.print(t.typeAnnotation), this.tokenChar(63);
  }
  n(d7e, "TSOptionalType");
  function m7e(t) {
    this.token("..."), this.print(t.typeAnnotation);
  }
  n(m7e, "TSRestType");
  function y7e(t) {
    this.print(t.label), t.optional && this.tokenChar(63), this.tokenChar(58), this.space(), this.print(t.elementType);
  }
  n(y7e, "TSNamedTupleMember");
  function g7e(t) {
    lW(this, t, "|");
  }
  n(g7e, "TSUnionType");
  function T7e(t) {
    lW(this, t, "&");
  }
  n(T7e, "TSIntersectionType");
  function lW(t, e, s) {
    var r;
    let i = 0;
    (r = t.tokenMap) != null && r.startMatches(e, s) && (i = 1, t.token(s)), t.printJoin(e.types, void 0, void 0, function(a) {
      this.space(), this.token(s, null, a + i), this.space();
    });
  }
  n(lW, "tsPrintUnionOrIntersectionType");
  function b7e(t) {
    this.print(t.checkType), this.space(), this.word("extends"), this.space(), this.print(t.extendsType), this.space(), this.tokenChar(63), this.
    space(), this.print(t.trueType), this.space(), this.tokenChar(58), this.space(), this.print(t.falseType);
  }
  n(b7e, "TSConditionalType");
  function x7e(t) {
    this.word("infer"), this.print(t.typeParameter);
  }
  n(x7e, "TSInferType");
  function S7e(t) {
    this.tokenChar(40), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(S7e, "TSParenthesizedType");
  function P7e(t) {
    this.word(t.operator), this.space(), this.print(t.typeAnnotation);
  }
  n(P7e, "TSTypeOperator");
  function E7e(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(E7e, "TSIndexedAccessType");
  function A7e(t) {
    let {
      nameType: e,
      optional: s,
      readonly: r,
      typeAnnotation: i
    } = t;
    this.tokenChar(123);
    let a = this.enterDelimited();
    this.space(), r && (aW(this, r), this.word("readonly"), this.space()), this.tokenChar(91), this.word(t.typeParameter.name), this.space(),
    this.word("in"), this.space(), this.print(t.typeParameter.constraint), e && (this.space(), this.word("as"), this.space(), this.print(e)),
    this.tokenChar(93), s && (aW(this, s), this.tokenChar(63)), i && (this.tokenChar(58), this.space(), this.print(i)), this.space(), a(), this.
    tokenChar(125);
  }
  n(A7e, "TSMappedType");
  function aW(t, e) {
    e !== !0 && t.token(e);
  }
  n(aW, "tokenIfPlusMinus");
  function v7e(t) {
    this._printTemplate(t, t.types);
  }
  n(v7e, "TSTemplateLiteralType");
  function C7e(t) {
    this.print(t.literal);
  }
  n(C7e, "TSLiteralType");
  function w7e(t) {
    this.print(t.expression), this.print(t.typeArguments);
  }
  n(w7e, "TSClassImplements");
  function I7e(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      extends: i,
      body: a
    } = t;
    e && (this.word("declare"), this.space()), this.word("interface"), this.space(), this.print(s), this.print(r), i != null && i.length && (this.
    space(), this.word("extends"), this.space(), this.printList(i)), this.space(), this.print(a);
  }
  n(I7e, "TSInterfaceDeclaration");
  function N7e(t) {
    Ox(this, t, () => this.printJoin(t.body, !0, !0));
  }
  n(N7e, "TSInterfaceBody");
  function k7e(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      typeAnnotation: i
    } = t;
    e && (this.word("declare"), this.space()), this.word("type"), this.space(), this.print(s), this.print(r), this.space(), this.tokenChar(61),
    this.space(), this.print(i), this.semicolon();
  }
  n(k7e, "TSTypeAliasDeclaration");
  function D7e(t) {
    let {
      type: e,
      expression: s,
      typeAnnotation: r
    } = t;
    this.print(s, !0), this.space(), this.word(e === "TSAsExpression" ? "as" : "satisfies"), this.space(), this.print(r);
  }
  n(D7e, "TSTypeExpression");
  function O7e(t) {
    let {
      typeAnnotation: e,
      expression: s
    } = t;
    this.tokenChar(60), this.print(e), this.tokenChar(62), this.space(), this.print(s);
  }
  n(O7e, "TSTypeAssertion");
  function _7e(t) {
    this.print(t.expression), this.print(t.typeParameters);
  }
  n(_7e, "TSInstantiationExpression");
  function L7e(t) {
    let {
      declare: e,
      const: s,
      id: r
    } = t;
    e && (this.word("declare"), this.space()), s && (this.word("const"), this.space()), this.word("enum"), this.space(), this.print(r), this.
    space(), uW.call(this, t);
  }
  n(L7e, "TSEnumDeclaration");
  function uW(t) {
    Ox(this, t, () => {
      var e;
      return this.printList(t.members, (e = this.shouldPrintTrailingComma("}")) != null ? e : !0, !0, !0);
    });
  }
  n(uW, "TSEnumBody");
  function B7e(t) {
    let {
      id: e,
      initializer: s
    } = t;
    this.print(e), s && (this.space(), this.tokenChar(61), this.space(), this.print(s));
  }
  n(B7e, "TSEnumMember");
  function M7e(t) {
    let {
      declare: e,
      id: s,
      kind: r
    } = t;
    e && (this.word("declare"), this.space());
    {
      if (t.global || (this.word(r ?? (s.type === "Identifier" ? "namespace" : "module")), this.space()), this.print(s), !t.body) {
        this.semicolon();
        return;
      }
      let i = t.body;
      for (; i.type === "TSModuleDeclaration"; )
        this.tokenChar(46), this.print(i.id), i = i.body;
      this.space(), this.print(i);
    }
  }
  n(M7e, "TSModuleDeclaration");
  function F7e(t) {
    Ox(this, t, () => this.printSequence(t.body, !0));
  }
  n(F7e, "TSModuleBlock");
  function j7e(t) {
    let {
      argument: e,
      qualifier: s,
      options: r
    } = t;
    this.word("import"), this.tokenChar(40), this.print(e), r && (this.tokenChar(44), this.print(r)), this.tokenChar(41), s && (this.tokenChar(
    46), this.print(s));
    let i = t.typeParameters;
    i && this.print(i);
  }
  n(j7e, "TSImportType");
  function R7e(t) {
    let {
      id: e,
      moduleReference: s
    } = t;
    t.isExport && (this.word("export"), this.space()), this.word("import"), this.space(), this.print(e), this.space(), this.tokenChar(61), this.
    space(), this.print(s), this.semicolon();
  }
  n(R7e, "TSImportEqualsDeclaration");
  function q7e(t) {
    this.token("require("), this.print(t.expression), this.tokenChar(41);
  }
  n(q7e, "TSExternalModuleReference");
  function U7e(t) {
    this.print(t.expression), this.tokenChar(33);
  }
  n(U7e, "TSNonNullExpression");
  function K7e(t) {
    this.word("export"), this.space(), this.tokenChar(61), this.space(), this.print(t.expression), this.semicolon();
  }
  n(K7e, "TSExportAssignment");
  function V7e(t) {
    this.word("export"), this.space(), this.word("as"), this.space(), this.word("namespace"), this.space(), this.print(t.id), this.semicolon();
  }
  n(V7e, "TSNamespaceExportDeclaration");
  function W7e(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")");
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(W7e, "tsPrintSignatureDeclarationBase");
  function $7e(t) {
    let e = t.type === "ClassPrivateProperty", s = t.type === "ClassAccessorProperty" || t.type === "ClassProperty";
    oW(this, t, [s && t.declare && "declare", !e && t.accessibility]), t.static && (this.word("static"), this.space()), oW(this, t, [!e && t.
    override && "override", !e && t.abstract && "abstract", (s || e) && t.readonly && "readonly"]);
  }
  n($7e, "tsPrintClassMemberModifiers");
  function Ox(t, e, s) {
    t.token("{");
    let r = t.enterDelimited();
    s(), r(), t.rightBrace(e);
  }
  n(Ox, "printBraced");
  function oW(t, e, s) {
    var r;
    let i = /* @__PURE__ */ new Set();
    for (let a of s)
      a && i.add(a);
    (r = t.tokenMap) == null || r.find(e, (a) => {
      if (i.has(a.value))
        return t.token(a.value), t.space(), i.delete(a.value), i.size === 0;
    });
    for (let a of i)
      t.word(a), t.space();
  }
  n(oW, "printModifiersList");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/index.js
var pW = g((Ns) => {
  "use strict";
  Object.defineProperty(Ns, "__esModule", {
    value: !0
  });
  var XN = jV();
  Object.keys(XN).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === XN[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return XN[t];
      }, "get")
    });
  });
  var zN = qV();
  Object.keys(zN).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === zN[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return zN[t];
      }, "get")
    });
  });
  var GN = WV();
  Object.keys(GN).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === GN[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return GN[t];
      }, "get")
    });
  });
  var QN = $V();
  Object.keys(QN).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === QN[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return QN[t];
      }, "get")
    });
  });
  var ZN = HV();
  Object.keys(ZN).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === ZN[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return ZN[t];
      }, "get")
    });
  });
  var ek = $N();
  Object.keys(ek).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === ek[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return ek[t];
      }, "get")
    });
  });
  var tk = JN();
  Object.keys(tk).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === tk[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return tk[t];
      }, "get")
    });
  });
  var sk = rW();
  Object.keys(sk).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === sk[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return sk[t];
      }, "get")
    });
  });
  var rk = iW();
  Object.keys(rk).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === rk[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return rk[t];
      }, "get")
    });
  });
  var ik = nW();
  Object.keys(ik).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === ik[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return ik[t];
      }, "get")
    });
  });
  var nk = cW();
  Object.keys(nk).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ns && Ns[t] === nk[t] || Object.defineProperty(Ns, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return nk[t];
      }, "get")
    });
  });
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/generators/deprecated.js
var hW = g((ak) => {
  "use strict";
  Object.defineProperty(ak, "__esModule", {
    value: !0
  });
  ak.addDeprecatedGenerators = H7e;
  function H7e(t) {
    {
      let e = {
        Noop() {
        },
        TSExpressionWithTypeArguments(s) {
          this.print(s.expression), this.print(s.typeParameters);
        },
        DecimalLiteral(s) {
          let r = this.getPossibleRaw(s);
          if (!this.format.minified && r !== void 0) {
            this.word(r);
            return;
          }
          this.word(s.value + "m");
        }
      };
      Object.assign(t.prototype, e);
    }
  }
  n(H7e, "addDeprecatedGenerators");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js
var yW = g((_x) => {
  "use strict";
  Object.defineProperty(_x, "__esModule", {
    value: !0
  });
  _x.default = void 0;
  var J7e = xV(), dW = Lc(), Y7e = fe(), X7e = FV(), z7e = pW(), G7e = hW(), {
    isExpression: Q7e,
    isFunction: Z7e,
    isStatement: eqe,
    isClassBody: tqe,
    isTSInterfaceBody: sqe,
    isTSEnumMember: rqe
  } = Y7e, iqe = /e/i, nqe = /\.0+$/, mW = /[\n\r\u2028\u2029]/, aqe = /[\n\r\u2028\u2029]|\*\//;
  function fW(t) {
    return t.type === "CommentLine" || mW.test(t.value);
  }
  n(fW, "commentIsNewline");
  var {
    needsParens: oqe
  } = dW, fg = class {
    static {
      n(this, "Printer");
    }
    constructor(e, s, r, i) {
      this.inForStatementInit = !1, this.tokenContext = 0, this._tokens = null, this._originalCode = null, this._currentNode = null, this._indent =
      0, this._indentRepeat = 0, this._insideAux = !1, this._noLineTerminator = !1, this._noLineTerminatorAfterNode = null, this._printAuxAfterOnNextUserNode =
      !1, this._printedComments = /* @__PURE__ */ new Set(), this._endsWithInteger = !1, this._endsWithWord = !1, this._endsWithDiv = !1, this.
      _lastCommentLine = 0, this._endsWithInnerRaw = !1, this._indentInnerComments = !0, this.tokenMap = null, this._boundGetRawIdentifier =
      this._getRawIdentifier.bind(this), this._printSemicolonBeforeNextNode = -1, this._printSemicolonBeforeNextToken = -1, this.format = e,
      this._tokens = r, this._originalCode = i, this._indentRepeat = e.indent.style.length, this._inputMap = s?._inputMap, this._buf = new J7e.
      default(s, e.indent.style[0]);
    }
    enterForStatementInit() {
      return this.inForStatementInit ? () => {
      } : (this.inForStatementInit = !0, () => {
        this.inForStatementInit = !1;
      });
    }
    enterDelimited() {
      let e = this.inForStatementInit, s = this._noLineTerminatorAfterNode;
      return e === !1 && s === null ? () => {
      } : (this.inForStatementInit = !1, this._noLineTerminatorAfterNode = null, () => {
        this.inForStatementInit = e, this._noLineTerminatorAfterNode = s;
      });
    }
    generate(e) {
      return this.format.preserveFormat && (this.tokenMap = new X7e.TokenMap(e, this._tokens, this._originalCode)), this.print(e), this._maybeAddAuxComment(),
      this._buf.get();
    }
    indent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent++;
    }
    dedent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent--;
    }
    semicolon(e = !1) {
      if (this._maybeAddAuxComment(), e) {
        this._appendChar(59), this._noLineTerminator = !1;
        return;
      }
      if (this.tokenMap) {
        let s = this._currentNode;
        if (s.start != null && s.end != null) {
          if (!this.tokenMap.endMatches(s, ";")) {
            this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();
            return;
          }
          let r = this.tokenMap.getIndexes(this._currentNode);
          this._catchUpTo(this._tokens[r[r.length - 1]].loc.start);
        }
      }
      this._queue(59), this._noLineTerminator = !1;
    }
    rightBrace(e) {
      this.format.minified && this._buf.removeLastSemicolon(), this.sourceWithOffset("end", e.loc, -1), this.tokenChar(125);
    }
    rightParens(e) {
      this.sourceWithOffset("end", e.loc, -1), this.tokenChar(41);
    }
    space(e = !1) {
      let {
        format: s
      } = this;
      if (!(s.compact || s.preserveFormat)) {
        if (e)
          this._space();
        else if (this._buf.hasContent()) {
          let r = this.getLastChar();
          r !== 32 && r !== 10 && this._space();
        }
      }
    }
    word(e, s = !1) {
      this.tokenContext = 0, this._maybePrintInnerComments(e), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e), (this.
      _endsWithWord || this._endsWithDiv && e.charCodeAt(0) === 47) && this._space(), this._append(e, !1), this._endsWithWord = !0, this._noLineTerminator =
      s;
    }
    number(e, s) {
      function r(i) {
        if (i.length > 2 && i.charCodeAt(0) === 48) {
          let a = i.charCodeAt(1);
          return a === 98 || a === 111 || a === 120;
        }
        return !1;
      }
      n(r, "isNonDecimalLiteral"), this.word(e), this._endsWithInteger = Number.isInteger(s) && !r(e) && !iqe.test(e) && !nqe.test(e) && e.charCodeAt(
      e.length - 1) !== 46;
    }
    token(e, s = !1, r = 0) {
      this.tokenContext = 0, this._maybePrintInnerComments(e, r), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e,
      r);
      let i = this.getLastChar(), a = e.charCodeAt(0);
      (i === 33 && (e === "--" || a === 61) || a === 43 && i === 43 || a === 45 && i === 45 || a === 46 && this._endsWithInteger) && this._space(),
      this._append(e, s), this._noLineTerminator = !1;
    }
    tokenChar(e) {
      this.tokenContext = 0;
      let s = String.fromCharCode(e);
      this._maybePrintInnerComments(s), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(s);
      let r = this.getLastChar();
      (e === 43 && r === 43 || e === 45 && r === 45 || e === 46 && this._endsWithInteger) && this._space(), this._appendChar(e), this._noLineTerminator =
      !1;
    }
    newline(e = 1, s) {
      if (!(e <= 0)) {
        if (!s) {
          if (this.format.retainLines || this.format.compact) return;
          if (this.format.concise) {
            this.space();
            return;
          }
        }
        e > 2 && (e = 2), e -= this._buf.getNewlineCount();
        for (let r = 0; r < e; r++)
          this._newline();
      }
    }
    endsWith(e) {
      return this.getLastChar() === e;
    }
    getLastChar() {
      return this._buf.getLastChar();
    }
    endsWithCharAndNewline() {
      return this._buf.endsWithCharAndNewline();
    }
    removeTrailingNewline() {
      this._buf.removeTrailingNewline();
    }
    exactSource(e, s) {
      if (!e) {
        s();
        return;
      }
      this._catchUp("start", e), this._buf.exactSource(e, s);
    }
    source(e, s) {
      s && (this._catchUp(e, s), this._buf.source(e, s));
    }
    sourceWithOffset(e, s, r) {
      !s || this.format.preserveFormat || (this._catchUp(e, s), this._buf.sourceWithOffset(e, s, r));
    }
    sourceIdentifierName(e, s) {
      if (!this._buf._canMarkIdName) return;
      let r = this._buf._sourcePosition;
      r.identifierNamePos = s, r.identifierName = e;
    }
    _space() {
      this._queue(32);
    }
    _newline() {
      this._queue(10);
    }
    _catchUpToCurrentToken(e, s = 0) {
      let r = this.tokenMap.findMatching(this._currentNode, e, s);
      r && this._catchUpTo(r.loc.start), this._printSemicolonBeforeNextToken !== -1 && this._printSemicolonBeforeNextToken === this._buf.getCurrentLine() &&
      (this._buf.appendChar(59), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1), this._printSemicolonBeforeNextToken =
      -1, this._printSemicolonBeforeNextNode = -1;
    }
    _append(e, s) {
      this._maybeIndent(e.charCodeAt(0)), this._buf.append(e, s), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _appendChar(e) {
      this._maybeIndent(e), this._buf.appendChar(e), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _queue(e) {
      this._maybeIndent(e), this._buf.queue(e), this._endsWithWord = !1, this._endsWithInteger = !1;
    }
    _maybeIndent(e) {
      this._indent && e !== 10 && this.endsWith(10) && this._buf.queueIndentation(this._getIndent());
    }
    _shouldIndent(e) {
      if (this._indent && e !== 10 && this.endsWith(10))
        return !0;
    }
    catchUp(e) {
      if (!this.format.retainLines) return;
      let s = e - this._buf.getCurrentLine();
      for (let r = 0; r < s; r++)
        this._newline();
    }
    _catchUp(e, s) {
      let {
        format: r
      } = this;
      if (!r.preserveFormat) {
        r.retainLines && s != null && s[e] && this.catchUp(s[e].line);
        return;
      }
      let i = s?.[e];
      i != null && this._catchUpTo(i);
    }
    _catchUpTo({
      line: e,
      column: s,
      index: r
    }) {
      let i = e - this._buf.getCurrentLine();
      if (i > 0 && this._noLineTerminator)
        return;
      for (let o = 0; o < i; o++)
        this._newline();
      let a = i > 0 ? s : s - this._buf.getCurrentColumn();
      if (a > 0) {
        let o = this._originalCode ? this._originalCode.slice(r - a, r).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu,
        " ") : " ".repeat(a);
        this._append(o, !1);
      }
    }
    _getIndent() {
      return this._indentRepeat * this._indent;
    }
    printTerminatorless(e) {
      this._noLineTerminator = !0, this.print(e);
    }
    print(e, s, r) {
      var i, a, o;
      if (!e) return;
      this._endsWithInnerRaw = !1;
      let l = e.type, u = this.format, c = u.concise;
      e._compact && (u.concise = !0);
      let p = this[l];
      if (p === void 0)
        throw new ReferenceError(`unknown node of type ${JSON.stringify(l)} with constructor ${JSON.stringify(e.constructor.name)}`);
      let h = this._currentNode;
      this._currentNode = e, this.tokenMap && (this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode);
      let f = this._insideAux;
      this._insideAux = e.loc == null, this._maybeAddAuxComment(this._insideAux && !f);
      let d = (i = e.extra) == null ? void 0 : i.parenthesized, m = d && u.preserveFormat || d && u.retainFunctionParens && l === "FunctionE\
xpression" || oqe(e, h, this.tokenContext, this.inForStatementInit, u.preserveFormat ? this._boundGetRawIdentifier : void 0);
      if (!m && d && (a = e.leadingComments) != null && a.length && e.leadingComments[0].type === "CommentBlock")
        switch (h?.type) {
          case "ExpressionStatement":
          case "VariableDeclarator":
          case "AssignmentExpression":
          case "ReturnStatement":
            break;
          case "CallExpression":
          case "OptionalCallExpression":
          case "NewExpression":
            if (h.callee !== e) break;
          default:
            m = !0;
        }
      let y = !1;
      !m && this._noLineTerminator && ((o = e.leadingComments) != null && o.some(fW) || this.format.retainLines && e.loc && e.loc.start.line >
      this._buf.getCurrentLine()) && (m = !0, y = !0);
      let T, b;
      if (!m && (s || (s = h && this._noLineTerminatorAfterNode === h && dW.isLastChild(h, e)), s)) {
        var E;
        (E = e.trailingComments) != null && E.some(fW) ? Q7e(e) && (m = !0) : (T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode =
        e);
      }
      m && (this.tokenChar(40), y && this.indent(), this._endsWithInnerRaw = !1, this.inForStatementInit && (b = !0, this.inForStatementInit =
      !1), T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode = null), this._lastCommentLine = 0, this._printLeadingComments(
      e, h);
      let V = l === "Program" || l === "File" ? null : e.loc;
      this.exactSource(V, p.bind(this, e, h)), m ? (this._printTrailingComments(e, h), y && (this.dedent(), this.newline()), this.tokenChar(
      41), this._noLineTerminator = s, b && (this.inForStatementInit = !0)) : s && !this._noLineTerminator ? (this._noLineTerminator = !0, this.
      _printTrailingComments(e, h)) : this._printTrailingComments(e, h, r), this._currentNode = h, u.concise = c, this._insideAux = f, T !==
      void 0 && (this._noLineTerminatorAfterNode = T), this._endsWithInnerRaw = !1;
    }
    _maybeAddAuxComment(e) {
      e && this._printAuxBeforeComment(), this._insideAux || this._printAuxAfterComment();
    }
    _printAuxBeforeComment() {
      if (this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !0;
      let e = this.format.auxiliaryCommentBefore;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    _printAuxAfterComment() {
      if (!this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !1;
      let e = this.format.auxiliaryCommentAfter;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    getPossibleRaw(e) {
      let s = e.extra;
      if (s?.raw != null && s.rawValue != null && e.value === s.rawValue)
        return s.raw;
    }
    printJoin(e, s, r, i, a, o, l, u) {
      if (!(e != null && e.length)) return;
      if (r == null && this.format.retainLines) {
        var c;
        let y = (c = e[0].loc) == null ? void 0 : c.start.line;
        y != null && y !== this._buf.getCurrentLine() && (r = !0);
      }
      r && this.indent();
      let p = {
        addNewlines: o,
        nextNodeStartLine: 0
      }, h = i?.bind(this), f = e.length;
      for (let y = 0; y < f; y++) {
        let T = e[y];
        if (T && (s && this._printNewline(y === 0, p), this.print(T, void 0, u || 0), l?.(T, y), h != null && (y < f - 1 ? h(y, !1) : a && h(
        y, !0)), s)) {
          var d;
          if ((d = T.trailingComments) != null && d.length || (this._lastCommentLine = 0), y + 1 === f)
            this.newline(1);
          else {
            var m;
            let b = e[y + 1];
            p.nextNodeStartLine = ((m = b.loc) == null ? void 0 : m.start.line) || 0, this._printNewline(!0, p);
          }
        }
      }
      r && this.dedent();
    }
    printAndIndentOnComments(e) {
      let s = e.leadingComments && e.leadingComments.length > 0;
      s && this.indent(), this.print(e), s && this.dedent();
    }
    printBlock(e) {
      let s = e.body;
      s.type !== "EmptyStatement" && this.space(), this.print(s);
    }
    _printTrailingComments(e, s, r) {
      let {
        innerComments: i,
        trailingComments: a
      } = e;
      i != null && i.length && this._printComments(2, i, e, s, r), a != null && a.length && this._printComments(2, a, e, s, r);
    }
    _printLeadingComments(e, s) {
      let r = e.leadingComments;
      r != null && r.length && this._printComments(0, r, e, s);
    }
    _maybePrintInnerComments(e, s) {
      if (this._endsWithInnerRaw) {
        var r;
        this.printInnerComments((r = this.tokenMap) == null ? void 0 : r.findMatching(this._currentNode, e, s));
      }
      this._endsWithInnerRaw = !0, this._indentInnerComments = !0;
    }
    printInnerComments(e) {
      let s = this._currentNode, r = s.innerComments;
      if (!(r != null && r.length)) return;
      let i = this.endsWith(32), a = this._indentInnerComments, o = this._printedComments.size;
      a && this.indent(), this._printComments(1, r, s, void 0, void 0, e), i && o !== this._printedComments.size && this.space(), a && this.
      dedent();
    }
    noIndentInnerCommentsHere() {
      this._indentInnerComments = !1;
    }
    printSequence(e, s, r, i) {
      this.printJoin(e, !0, s ?? !1, void 0, void 0, i, void 0, r);
    }
    printList(e, s, r, i, a, o) {
      this.printJoin(e, r, i, a ?? lqe, s, void 0, o);
    }
    shouldPrintTrailingComma(e) {
      if (!this.tokenMap) return null;
      let s = this.tokenMap.findLastIndex(this._currentNode, (r) => this.tokenMap.matchesOriginal(r, e));
      return s <= 0 ? null : this.tokenMap.matchesOriginal(this._tokens[s - 1], ",");
    }
    _printNewline(e, s) {
      let r = this.format;
      if (r.retainLines || r.compact) return;
      if (r.concise) {
        this.space();
        return;
      }
      if (!e)
        return;
      let i = s.nextNodeStartLine, a = this._lastCommentLine;
      if (i > 0 && a > 0) {
        let o = i - a;
        if (o >= 0) {
          this.newline(o || 1);
          return;
        }
      }
      this._buf.hasContent() && this.newline(1);
    }
    _shouldPrintComment(e, s) {
      if (e.ignore || this._printedComments.has(e)) return 0;
      if (this._noLineTerminator && aqe.test(e.value))
        return 2;
      if (s && this.tokenMap) {
        let r = this.tokenMap.find(this._currentNode, (i) => i.value === e.value);
        if (r && r.start > s.start)
          return 2;
      }
      return this._printedComments.add(e), this.format.shouldPrintComment(e.value) ? 1 : 0;
    }
    _printComment(e, s) {
      let r = this._noLineTerminator, i = e.type === "CommentBlock", a = i && s !== 1 && !this._noLineTerminator;
      a && this._buf.hasContent() && s !== 2 && this.newline(1);
      let o = this.getLastChar();
      o !== 91 && o !== 123 && o !== 40 && this.space();
      let l;
      if (i) {
        if (l = `/*${e.value}*/`, this.format.indent.adjustMultilineComment) {
          var u;
          let c = (u = e.loc) == null ? void 0 : u.start.column;
          if (c) {
            let p = new RegExp("\\n\\s{1," + c + "}", "g");
            l = l.replace(p, `
`);
          }
          if (this.format.concise)
            l = l.replace(/\n(?!$)/g, `
`);
          else {
            let p = this.format.retainLines ? 0 : this._buf.getCurrentColumn();
            (this._shouldIndent(47) || this.format.retainLines) && (p += this._getIndent()), l = l.replace(/\n(?!$)/g, `
${" ".repeat(p)}`);
          }
        }
      } else r ? l = `/*${e.value}*/` : l = `//${e.value}`;
      if (this._endsWithDiv && this._space(), this.tokenMap) {
        let {
          _printSemicolonBeforeNextToken: c,
          _printSemicolonBeforeNextNode: p
        } = this;
        this._printSemicolonBeforeNextToken = -1, this._printSemicolonBeforeNextNode = -1, this.source("start", e.loc), this._append(l, i), this.
        _printSemicolonBeforeNextNode = p, this._printSemicolonBeforeNextToken = c;
      } else
        this.source("start", e.loc), this._append(l, i);
      !i && !r && this.newline(1, !0), a && s !== 3 && this.newline(1);
    }
    _printComments(e, s, r, i, a = 0, o) {
      let l = r.loc, u = s.length, c = !!l, p = c ? l.start.line : 0, h = c ? l.end.line : 0, f = 0, d = 0, m = this._noLineTerminator ? function() {
      } : this.newline.bind(this);
      for (let y = 0; y < u; y++) {
        let T = s[y], b = this._shouldPrintComment(T, o);
        if (b === 2) {
          c = !1;
          break;
        }
        if (c && T.loc && b === 1) {
          let E = T.loc.start.line, V = T.loc.end.line;
          if (e === 0) {
            let W = 0;
            y === 0 ? this._buf.hasContent() && (T.type === "CommentLine" || E !== V) && (W = d = 1) : W = E - f, f = V, m(W), this._printComment(
            T, 1), y + 1 === u && (m(Math.max(p - f, d)), f = p);
          } else if (e === 1) {
            let W = E - (y === 0 ? p : f);
            f = V, m(W), this._printComment(T, 1), y + 1 === u && (m(Math.min(1, h - f)), f = h);
          } else {
            let W = E - (y === 0 ? h - a : f);
            f = V, m(W), this._printComment(T, 1);
          }
        } else {
          if (c = !1, b !== 1)
            continue;
          if (u === 1) {
            let E = T.loc ? T.loc.start.line === T.loc.end.line : !mW.test(T.value), V = E && !eqe(r) && !tqe(i) && !sqe(i) && !rqe(r);
            e === 0 ? this._printComment(T, V && r.type !== "ObjectExpression" || E && Z7e(i, {
              body: r
            }) ? 1 : 0) : V && e === 2 ? this._printComment(T, 1) : this._printComment(T, 0);
          } else e === 1 && !(r.type === "ObjectExpression" && r.properties.length > 1) && r.type !== "ClassBody" && r.type !== "TSInterface\
Body" ? this._printComment(T, y === 0 ? 2 : y === u - 1 ? 3 : 0) : this._printComment(T, 0);
        }
      }
      e === 2 && c && f && (this._lastCommentLine = f);
    }
  };
  Object.assign(fg.prototype, z7e);
  (0, G7e.addDeprecatedGenerators)(fg);
  var D9s = _x.default = fg;
  function lqe(t, e) {
    this.token(",", !1, t), e || this.space();
  }
  n(lqe, "commaSeparator");
});

// ../node_modules/@babel/core/node_modules/@babel/generator/lib/index.js
var Bx = g((Lx) => {
  "use strict";
  Object.defineProperty(Lx, "__esModule", {
    value: !0
  });
  Lx.default = uqe;
  var gW = bV(), TW = yW();
  function bW(t, e, s) {
    if (e.experimental_preserveFormat) {
      if (typeof t != "string")
        throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string");
      if (!e.retainLines)
        throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`");
      if (e.compact && e.compact !== "auto")
        throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option");
      if (e.minified)
        throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option");
      if (e.jsescOption)
        throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option");
      if (!Array.isArray(s.tokens))
        throw new Error("`experimental_preserveFormat` requires the AST to have attatched the token of the input code. Make sure to enable t\
he `tokens: true` parser option.");
    }
    let r = {
      auxiliaryCommentBefore: e.auxiliaryCommentBefore,
      auxiliaryCommentAfter: e.auxiliaryCommentAfter,
      shouldPrintComment: e.shouldPrintComment,
      preserveFormat: e.experimental_preserveFormat,
      retainLines: e.retainLines,
      retainFunctionParens: e.retainFunctionParens,
      comments: e.comments == null || e.comments,
      compact: e.compact,
      minified: e.minified,
      concise: e.concise,
      indent: {
        adjustMultilineComment: !0,
        style: "  "
      },
      jsescOption: Object.assign({
        quotes: "double",
        wrap: !0,
        minimal: !1
      }, e.jsescOption),
      topicToken: e.topicToken,
      importAttributesKeyword: e.importAttributesKeyword
    };
    {
      var i;
      r.decoratorsBeforeExport = e.decoratorsBeforeExport, r.jsescOption.json = e.jsonCompatibleStrings, r.recordAndTupleSyntaxType = (i = e.
      recordAndTupleSyntaxType) != null ? i : "hash";
    }
    r.minified ? (r.compact = !0, r.shouldPrintComment = r.shouldPrintComment || (() => r.comments)) : r.shouldPrintComment = r.shouldPrintComment ||
    ((u) => r.comments || u.includes("@license") || u.includes("@preserve")), r.compact === "auto" && (r.compact = typeof t == "string" && t.
    length > 5e5, r.compact && console.error(`[BABEL] Note: The code generator has deoptimised the styling of ${e.filename} as it exceeds th\
e max of 500KB.`)), (r.compact || r.preserveFormat) && (r.indent.adjustMultilineComment = !1);
    let {
      auxiliaryCommentBefore: a,
      auxiliaryCommentAfter: o,
      shouldPrintComment: l
    } = r;
    return a && !l(a) && (r.auxiliaryCommentBefore = void 0), o && !l(o) && (r.auxiliaryCommentAfter = void 0), r;
  }
  n(bW, "normalizeOptions");
  Lx.CodeGenerator = class {
    static {
      n(this, "CodeGenerator");
    }
    constructor(e, s = {}, r) {
      this._ast = void 0, this._format = void 0, this._map = void 0, this._ast = e, this._format = bW(r, s, e), this._map = s.sourceMaps ? new gW.
      default(s, r) : null;
    }
    generate() {
      return new TW.default(this._format, this._map).generate(this._ast);
    }
  };
  function uqe(t, e = {}, s) {
    let r = bW(s, e, t), i = e.sourceMaps ? new gW.default(e, s) : null;
    return new TW.default(r, i, t.tokens, typeof s == "string" ? s : null).generate(t);
  }
  n(uqe, "generate");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/ancestry.js
var xW = g((Ia) => {
  "use strict";
  Object.defineProperty(Ia, "__esModule", {
    value: !0
  });
  Ia.find = fqe;
  Ia.findParent = hqe;
  Ia.getAncestry = Tqe;
  Ia.getDeepestCommonAncestorFrom = gqe;
  Ia.getEarliestCommonAncestorFrom = yqe;
  Ia.getFunctionParent = dqe;
  Ia.getStatementParent = mqe;
  Ia.inType = Sqe;
  Ia.isAncestor = bqe;
  Ia.isDescendant = xqe;
  var cqe = fe(), {
    VISITOR_KEYS: pqe
  } = cqe;
  function hqe(t) {
    let e = this;
    for (; e = e.parentPath; )
      if (t(e)) return e;
    return null;
  }
  n(hqe, "findParent");
  function fqe(t) {
    let e = this;
    do
      if (t(e)) return e;
    while (e = e.parentPath);
    return null;
  }
  n(fqe, "find");
  function dqe() {
    return this.findParent((t) => t.isFunction());
  }
  n(dqe, "getFunctionParent");
  function mqe() {
    let t = this;
    do {
      if (!t.parentPath || Array.isArray(t.container) && t.isStatement())
        break;
      t = t.parentPath;
    } while (t);
    if (t && (t.isProgram() || t.isFile()))
      throw new Error("File/Program node, we can't possibly find a statement parent to this");
    return t;
  }
  n(mqe, "getStatementParent");
  function yqe(t) {
    return this.getDeepestCommonAncestorFrom(t, function(e, s, r) {
      let i, a = pqe[e.type];
      for (let o of r) {
        let l = o[s + 1];
        if (!i) {
          i = l;
          continue;
        }
        if (l.listKey && i.listKey === l.listKey && l.key < i.key) {
          i = l;
          continue;
        }
        let u = a.indexOf(i.parentKey), c = a.indexOf(l.parentKey);
        u > c && (i = l);
      }
      return i;
    });
  }
  n(yqe, "getEarliestCommonAncestorFrom");
  function gqe(t, e) {
    if (!t.length)
      return this;
    if (t.length === 1)
      return t[0];
    let s = 1 / 0, r, i, a = t.map((l) => {
      let u = [];
      do
        u.unshift(l);
      while ((l = l.parentPath) && l !== this);
      return u.length < s && (s = u.length), u;
    }), o = a[0];
    e: for (let l = 0; l < s; l++) {
      let u = o[l];
      for (let c of a)
        if (c[l] !== u)
          break e;
      r = l, i = u;
    }
    if (i)
      return e ? e(i, r, a) : i;
    throw new Error("Couldn't find intersection");
  }
  n(gqe, "getDeepestCommonAncestorFrom");
  function Tqe() {
    let t = this, e = [];
    do
      e.push(t);
    while (t = t.parentPath);
    return e;
  }
  n(Tqe, "getAncestry");
  function bqe(t) {
    return t.isDescendant(this);
  }
  n(bqe, "isAncestor");
  function xqe(t) {
    return !!this.findParent((e) => e === t);
  }
  n(xqe, "isDescendant");
  function Sqe(...t) {
    let e = this;
    for (; e; ) {
      for (let s of t)
        if (e.node.type === s) return !0;
      e = e.parentPath;
    }
    return !1;
  }
  n(Sqe, "inType");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/util.js
var lk = g((ok) => {
  "use strict";
  Object.defineProperty(ok, "__esModule", {
    value: !0
  });
  ok.createUnionType = Cqe;
  var Pqe = fe(), {
    createFlowUnionType: SW,
    createTSUnionType: PW,
    createUnionTypeAnnotation: Eqe,
    isFlowType: Aqe,
    isTSType: vqe
  } = Pqe;
  function Cqe(t) {
    {
      if (t.every((e) => Aqe(e)))
        return SW ? SW(t) : Eqe(t);
      if (t.every((e) => vqe(e)) && PW)
        return PW(t);
    }
  }
  n(Cqe, "createUnionType");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js
var wW = g((uk) => {
  "use strict";
  Object.defineProperty(uk, "__esModule", {
    value: !0
  });
  uk.default = Dqe;
  var wqe = fe(), AW = lk(), {
    BOOLEAN_NUMBER_BINARY_OPERATORS: Iqe,
    createTypeAnnotationBasedOnTypeof: Nqe,
    numberTypeAnnotation: vW,
    voidTypeAnnotation: kqe
  } = wqe;
  function Dqe(t) {
    if (!this.isReferenced()) return;
    let e = this.scope.getBinding(t.name);
    if (e)
      return e.identifier.typeAnnotation ? e.identifier.typeAnnotation : Oqe(e, this, t.name);
    if (t.name === "undefined")
      return kqe();
    if (t.name === "NaN" || t.name === "Infinity")
      return vW();
    t.name;
  }
  n(Dqe, "_default");
  function Oqe(t, e, s) {
    let r = [], i = [], a = EW(t, e, i), o = CW(t, e, s);
    if (o) {
      let l = EW(t, o.ifStatement);
      a = a.filter((u) => !l.includes(u)), r.push(o.typeAnnotation);
    }
    if (a.length) {
      a.push(...i);
      for (let l of a)
        r.push(l.getTypeAnnotation());
    }
    if (r.length)
      return (0, AW.createUnionType)(r);
  }
  n(Oqe, "getTypeAnnotationBindingConstantViolations");
  function EW(t, e, s) {
    let r = t.constantViolations.slice();
    return r.unshift(t.path), r.filter((i) => {
      i = i.resolve();
      let a = i._guessExecutionStatusRelativeTo(e);
      return s && a === "unknown" && s.push(i), a === "before";
    });
  }
  n(EW, "getConstantViolationsBefore");
  function _qe(t, e) {
    let s = e.node.operator, r = e.get("right").resolve(), i = e.get("left").resolve(), a;
    if (i.isIdentifier({
      name: t
    }) ? a = r : r.isIdentifier({
      name: t
    }) && (a = i), a)
      return s === "===" ? a.getTypeAnnotation() : Iqe.includes(s) ? vW() : void 0;
    if (s !== "===" && s !== "==") return;
    let o, l;
    if (i.isUnaryExpression({
      operator: "typeof"
    }) ? (o = i, l = r) : r.isUnaryExpression({
      operator: "typeof"
    }) && (o = r, l = i), !o || !o.get("argument").isIdentifier({
      name: t
    }) || (l = l.resolve(), !l.isLiteral())) return;
    let u = l.node.value;
    if (typeof u == "string")
      return Nqe(u);
  }
  n(_qe, "inferAnnotationFromBinaryExpression");
  function Lqe(t, e, s) {
    let r;
    for (; r = e.parentPath; ) {
      if (r.isIfStatement() || r.isConditionalExpression())
        return e.key === "test" ? void 0 : r;
      if (r.isFunction() && r.parentPath.scope.getBinding(s) !== t)
        return;
      e = r;
    }
  }
  n(Lqe, "getParentConditionalPath");
  function CW(t, e, s) {
    let r = Lqe(t, e, s);
    if (!r) return;
    let a = [r.get("test")], o = [];
    for (let l = 0; l < a.length; l++) {
      let u = a[l];
      if (u.isLogicalExpression())
        u.node.operator === "&&" && (a.push(u.get("left")), a.push(u.get("right")));
      else if (u.isBinaryExpression()) {
        let c = _qe(s, u);
        c && o.push(c);
      }
    }
    return o.length ? {
      typeAnnotation: (0, AW.createUnionType)(o),
      ifStatement: r
    } : CW(t, r, s);
  }
  n(CW, "getConditionalAnnotation");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/inferers.js
var BW = g((Hs) => {
  "use strict";
  Object.defineProperty(Hs, "__esModule", {
    value: !0
  });
  Hs.ArrayExpression = OW;
  Hs.AssignmentExpression = rUe;
  Hs.BinaryExpression = Qqe;
  Hs.BooleanLiteral = oUe;
  Hs.CallExpression = yUe;
  Hs.ConditionalExpression = eUe;
  Hs.ClassDeclaration = Hs.ClassExpression = Hs.FunctionDeclaration = Hs.ArrowFunctionExpression = Hs.FunctionExpression = pUe;
  Object.defineProperty(Hs, "Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Mqe.default;
    }, "get")
  });
  Hs.LogicalExpression = Zqe;
  Hs.NewExpression = Xqe;
  Hs.NullLiteral = lUe;
  Hs.NumericLiteral = aUe;
  Hs.ObjectExpression = cUe;
  Hs.ParenthesizedExpression = sUe;
  Hs.RegExpLiteral = uUe;
  Hs.RestElement = _W;
  Hs.SequenceExpression = tUe;
  Hs.StringLiteral = nUe;
  Hs.TSAsExpression = DW;
  Hs.TSNonNullExpression = Yqe;
  Hs.TaggedTemplateExpression = gUe;
  Hs.TemplateLiteral = zqe;
  Hs.TypeCastExpression = kW;
  Hs.UnaryExpression = Gqe;
  Hs.UpdateExpression = iUe;
  Hs.VariableDeclarator = Jqe;
  var Bqe = fe(), Mqe = wW(), NW = lk(), {
    BOOLEAN_BINARY_OPERATORS: Fqe,
    BOOLEAN_UNARY_OPERATORS: jqe,
    NUMBER_BINARY_OPERATORS: Rqe,
    NUMBER_UNARY_OPERATORS: qqe,
    STRING_UNARY_OPERATORS: Uqe,
    anyTypeAnnotation: IW,
    arrayTypeAnnotation: ck,
    booleanTypeAnnotation: pk,
    buildMatchMemberExpression: Mx,
    genericTypeAnnotation: Mc,
    identifier: mh,
    nullLiteralTypeAnnotation: Kqe,
    numberTypeAnnotation: bd,
    stringTypeAnnotation: yh,
    tupleTypeAnnotation: Vqe,
    unionTypeAnnotation: Wqe,
    voidTypeAnnotation: $qe,
    isIdentifier: Hqe
  } = Bqe;
  function Jqe() {
    if (this.get("id").isIdentifier())
      return this.get("init").getTypeAnnotation();
  }
  n(Jqe, "VariableDeclarator");
  function kW(t) {
    return t.typeAnnotation;
  }
  n(kW, "TypeCastExpression");
  kW.validParent = !0;
  function DW(t) {
    return t.typeAnnotation;
  }
  n(DW, "TSAsExpression");
  DW.validParent = !0;
  function Yqe() {
    return this.get("expression").getTypeAnnotation();
  }
  n(Yqe, "TSNonNullExpression");
  function Xqe(t) {
    if (t.callee.type === "Identifier")
      return Mc(t.callee);
  }
  n(Xqe, "NewExpression");
  function zqe() {
    return yh();
  }
  n(zqe, "TemplateLiteral");
  function Gqe(t) {
    let e = t.operator;
    if (e === "void")
      return $qe();
    if (qqe.includes(e))
      return bd();
    if (Uqe.includes(e))
      return yh();
    if (jqe.includes(e))
      return pk();
  }
  n(Gqe, "UnaryExpression");
  function Qqe(t) {
    let e = t.operator;
    if (Rqe.includes(e))
      return bd();
    if (Fqe.includes(e))
      return pk();
    if (e === "+") {
      let s = this.get("right"), r = this.get("left");
      return r.isBaseType("number") && s.isBaseType("number") ? bd() : r.isBaseType("string") || s.isBaseType("string") ? yh() : Wqe([yh(), bd()]);
    }
  }
  n(Qqe, "BinaryExpression");
  function Zqe() {
    let t = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()];
    return (0, NW.createUnionType)(t);
  }
  n(Zqe, "LogicalExpression");
  function eUe() {
    let t = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()];
    return (0, NW.createUnionType)(t);
  }
  n(eUe, "ConditionalExpression");
  function tUe() {
    return this.get("expressions").pop().getTypeAnnotation();
  }
  n(tUe, "SequenceExpression");
  function sUe() {
    return this.get("expression").getTypeAnnotation();
  }
  n(sUe, "ParenthesizedExpression");
  function rUe() {
    return this.get("right").getTypeAnnotation();
  }
  n(rUe, "AssignmentExpression");
  function iUe(t) {
    let e = t.operator;
    if (e === "++" || e === "--")
      return bd();
  }
  n(iUe, "UpdateExpression");
  function nUe() {
    return yh();
  }
  n(nUe, "StringLiteral");
  function aUe() {
    return bd();
  }
  n(aUe, "NumericLiteral");
  function oUe() {
    return pk();
  }
  n(oUe, "BooleanLiteral");
  function lUe() {
    return Kqe();
  }
  n(lUe, "NullLiteral");
  function uUe() {
    return Mc(mh("RegExp"));
  }
  n(uUe, "RegExpLiteral");
  function cUe() {
    return Mc(mh("Object"));
  }
  n(cUe, "ObjectExpression");
  function OW() {
    return Mc(mh("Array"));
  }
  n(OW, "ArrayExpression");
  function _W() {
    return OW();
  }
  n(_W, "RestElement");
  _W.validParent = !0;
  function pUe() {
    return Mc(mh("Function"));
  }
  n(pUe, "Func");
  var hUe = Mx("Array.from"), fUe = Mx("Object.keys"), dUe = Mx("Object.values"), mUe = Mx("Object.entries");
  function yUe() {
    let {
      callee: t
    } = this.node;
    return fUe(t) ? ck(yh()) : hUe(t) || dUe(t) || Hqe(t, {
      name: "Array"
    }) ? ck(IW()) : mUe(t) ? ck(Vqe([yh(), IW()])) : LW(this.get("callee"));
  }
  n(yUe, "CallExpression");
  function gUe() {
    return LW(this.get("tag"));
  }
  n(gUe, "TaggedTemplateExpression");
  function LW(t) {
    if (t = t.resolve(), t.isFunction()) {
      let {
        node: e
      } = t;
      if (e.async)
        return e.generator ? Mc(mh("AsyncIterator")) : Mc(mh("Promise"));
      if (e.generator)
        return Mc(mh("Iterator"));
      if (t.node.returnType)
        return t.node.returnType;
    }
  }
  n(LW, "resolveCall");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/index.js
var qW = g((Fc) => {
  "use strict";
  Object.defineProperty(Fc, "__esModule", {
    value: !0
  });
  Fc._getTypeAnnotation = RW;
  Fc.baseTypeStrictlyMatches = RUe;
  Fc.couldBeBaseType = jUe;
  Fc.getTypeAnnotation = MUe;
  Fc.isBaseType = FUe;
  Fc.isGenericType = qUe;
  var MW = BW(), TUe = fe(), {
    anyTypeAnnotation: jW,
    isAnyTypeAnnotation: Fx,
    isArrayTypeAnnotation: bUe,
    isBooleanTypeAnnotation: xUe,
    isEmptyTypeAnnotation: SUe,
    isFlowBaseAnnotation: PUe,
    isGenericTypeAnnotation: EUe,
    isIdentifier: FW,
    isMixedTypeAnnotation: AUe,
    isNumberTypeAnnotation: vUe,
    isStringTypeAnnotation: CUe,
    isTSArrayType: wUe,
    isTSTypeAnnotation: IUe,
    isTSTypeReference: NUe,
    isTupleTypeAnnotation: kUe,
    isTypeAnnotation: DUe,
    isUnionTypeAnnotation: OUe,
    isVoidTypeAnnotation: _Ue,
    stringTypeAnnotation: LUe,
    voidTypeAnnotation: BUe
  } = TUe;
  function MUe() {
    let t = this.getData("typeAnnotation");
    return t != null || (t = RW.call(this) || jW(), (DUe(t) || IUe(t)) && (t = t.typeAnnotation), this.setData("typeAnnotation", t)), t;
  }
  n(MUe, "getTypeAnnotation");
  var hk = /* @__PURE__ */ new WeakSet();
  function RW() {
    let t = this.node;
    if (!t)
      if (this.key === "init" && this.parentPath.isVariableDeclarator()) {
        let s = this.parentPath.parentPath, r = s.parentPath;
        return s.key === "left" && r.isForInStatement() ? LUe() : s.key === "left" && r.isForOfStatement() ? jW() : BUe();
      } else
        return;
    if (t.typeAnnotation)
      return t.typeAnnotation;
    if (!hk.has(t)) {
      hk.add(t);
      try {
        var e;
        let s = MW[t.type];
        if (s)
          return s.call(this, t);
        if (s = MW[this.parentPath.type], (e = s) != null && e.validParent)
          return this.parentPath.getTypeAnnotation();
      } finally {
        hk.delete(t);
      }
    }
  }
  n(RW, "_getTypeAnnotation");
  function FUe(t, e) {
    return fk(t, this.getTypeAnnotation(), e);
  }
  n(FUe, "isBaseType");
  function fk(t, e, s) {
    if (t === "string")
      return CUe(e);
    if (t === "number")
      return vUe(e);
    if (t === "boolean")
      return xUe(e);
    if (t === "any")
      return Fx(e);
    if (t === "mixed")
      return AUe(e);
    if (t === "empty")
      return SUe(e);
    if (t === "void")
      return _Ue(e);
    if (s)
      return !1;
    throw new Error(`Unknown base type ${t}`);
  }
  n(fk, "_isBaseType");
  function jUe(t) {
    let e = this.getTypeAnnotation();
    if (Fx(e)) return !0;
    if (OUe(e)) {
      for (let s of e.types)
        if (Fx(s) || fk(t, s, !0))
          return !0;
      return !1;
    } else
      return fk(t, e, !0);
  }
  n(jUe, "couldBeBaseType");
  function RUe(t) {
    let e = this.getTypeAnnotation(), s = t.getTypeAnnotation();
    return !Fx(e) && PUe(e) ? s.type === e.type : !1;
  }
  n(RUe, "baseTypeStrictlyMatches");
  function qUe(t) {
    let e = this.getTypeAnnotation();
    return t === "Array" && (wUe(e) || bUe(e) || kUe(e)) ? !0 : EUe(e) && FW(e.id, {
      name: t
    }) || NUe(e) && FW(e.typeName, {
      name: t
    });
  }
  n(qUe, "isGenericType");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js
var UW = g((jx) => {
  "use strict";
  Object.defineProperty(jx, "__esModule", {
    value: !0
  });
  jx.hooks = void 0;
  var J9s = jx.hooks = [function(t, e) {
    if (t.key === "test" && (e.isWhile() || e.isSwitchCase()) || t.key === "declaration" && e.isExportDeclaration() || t.key === "body" && e.
    isLabeledStatement() || t.listKey === "declarations" && e.isVariableDeclaration() && e.node.declarations.length === 1 || t.key === "expr\
ession" && e.isExpressionStatement())
      return e.remove(), !0;
  }, function(t, e) {
    if (e.isSequenceExpression() && e.node.expressions.length === 1)
      return e.replaceWith(e.node.expressions[0]), !0;
  }, function(t, e) {
    if (e.isBinary())
      return t.key === "left" ? e.replaceWith(e.node.right) : e.replaceWith(e.node.left), !0;
  }, function(t, e) {
    if (e.isIfStatement() && t.key === "consequent" || t.key === "body" && (e.isLoop() || e.isArrowFunctionExpression()))
      return t.replaceWith({
        type: "BlockStatement",
        body: []
      }), !0;
  }];
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/removal.js
var Rx = g((jc) => {
  "use strict";
  Object.defineProperty(jc, "__esModule", {
    value: !0
  });
  jc._assertUnremoved = HW;
  jc._callRemovalHooks = WW;
  jc._markRemoved = dk;
  jc._remove = $W;
  jc._removeFromScope = VW;
  jc.remove = YUe;
  var UUe = UW(), KUe = ch(), VUe = mk(), KW = Rc(), WUe = fe(), $Ue = qx(), HUe = tl(), {
    getBindingIdentifiers: JUe
  } = WUe;
  function YUe() {
    var t;
    if (HW.call(this), HUe.resync.call(this), WW.call(this)) {
      dk.call(this);
      return;
    }
    (t = this.opts) != null && t.noScope || VW.call(this), this.shareCommentsWithSiblings(), $W.call(this), dk.call(this);
  }
  n(YUe, "remove");
  function VW() {
    let t = JUe(this.node, !1, !1, !0);
    Object.keys(t).forEach((e) => this.scope.removeBinding(e));
  }
  n(VW, "_removeFromScope");
  function WW() {
    if (this.parentPath) {
      for (let t of UUe.hooks)
        if (t(this, this.parentPath)) return !0;
    }
  }
  n(WW, "_callRemovalHooks");
  function $W() {
    Array.isArray(this.container) ? (this.container.splice(this.key, 1), $Ue.updateSiblingKeys.call(this, this.key, -1)) : VUe._replaceWith.
    call(this, null);
  }
  n($W, "_remove");
  function dk() {
    this._traverseFlags |= KW.SHOULD_SKIP | KW.REMOVED, this.parent && (0, KUe.getCachedPaths)(this.hub, this.parent).delete(this.node), this.
    node = null;
  }
  n(dk, "_markRemoved");
  function HW() {
    if (this.removed)
      throw this.buildCodeFrameError("NodePath has been removed so is read-only.");
  }
  n(HW, "_assertUnremoved");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/lib/hoister.js
var YW = g((Ux) => {
  "use strict";
  Object.defineProperty(Ux, "__esModule", {
    value: !0
  });
  Ux.default = void 0;
  var JW = fe(), XUe = JW, {
    react: zUe
  } = JW, {
    cloneNode: GUe,
    jsxExpressionContainer: QUe,
    variableDeclaration: ZUe,
    variableDeclarator: eKe
  } = XUe, tKe = {
    ReferencedIdentifier(t, e) {
      if (t.isJSXIdentifier() && zUe.isCompatTag(t.node.name) && !t.parentPath.isJSXMemberExpression())
        return;
      if (t.node.name === "this") {
        let r = t.scope;
        do
          if (r.path.isFunction() && !r.path.isArrowFunctionExpression())
            break;
        while (r = r.parent);
        r && e.breakOnScopePaths.push(r.path);
      }
      let s = t.scope.getBinding(t.node.name);
      if (s) {
        for (let r of s.constantViolations)
          if (r.scope !== s.path.scope) {
            e.mutableBinding = !0, t.stop();
            return;
          }
        s === e.scope.getBinding(t.node.name) && (e.bindings[t.node.name] = s);
      }
    }
  }, yk = class {
    static {
      n(this, "PathHoister");
    }
    constructor(e, s) {
      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 = s, this.path = e, this.attachAfter = !1;
    }
    isCompatibleScope(e) {
      for (let s of Object.keys(this.bindings)) {
        let r = this.bindings[s];
        if (!e.bindingIdentifierEquals(s, r.identifier))
          return !1;
      }
      return !0;
    }
    getCompatibleScopes() {
      let e = this.path.scope;
      do {
        if (this.isCompatibleScope(e))
          this.scopes.push(e);
        else
          break;
        if (this.breakOnScopePaths.includes(e.path))
          break;
      } while (e = e.parent);
    }
    getAttachmentPath() {
      let e = this._getAttachmentPath();
      if (!e) return;
      let s = e.scope;
      if (s.path === e && (s = e.scope.parent), s.path.isProgram() || s.path.isFunction())
        for (let r of Object.keys(this.bindings)) {
          if (!s.hasOwnBinding(r)) continue;
          let i = this.bindings[r];
          if (i.kind === "param" || i.path.parentKey === "params")
            continue;
          if (this.getAttachmentParentForPath(i.path).key >= e.key) {
            this.attachAfter = !0, e = i.path;
            for (let o of i.constantViolations)
              this.getAttachmentParentForPath(o).key > e.key && (e = o);
          }
        }
      return e;
    }
    _getAttachmentPath() {
      let s = this.scopes.pop();
      if (s) {
        if (s.path.isFunction())
          if (this.hasOwnParamBindings(s)) {
            if (this.scope === s) return;
            let r = s.path.get("body").get("body");
            for (let i = 0; i < r.length; i++)
              if (!r[i].node._blockHoist)
                return r[i];
          } else
            return this.getNextScopeAttachmentParent();
        else if (s.path.isProgram())
          return this.getNextScopeAttachmentParent();
      }
    }
    getNextScopeAttachmentParent() {
      let e = this.scopes.pop();
      if (e) return this.getAttachmentParentForPath(e.path);
    }
    getAttachmentParentForPath(e) {
      do
        if (!e.parentPath || Array.isArray(e.container) && e.isStatement())
          return e;
      while (e = e.parentPath);
    }
    hasOwnParamBindings(e) {
      for (let s of Object.keys(this.bindings)) {
        if (!e.hasOwnBinding(s)) continue;
        let r = this.bindings[s];
        if (r.kind === "param" && r.constant) return !0;
      }
      return !1;
    }
    run() {
      if (this.path.traverse(tKe, this), this.mutableBinding) return;
      this.getCompatibleScopes();
      let e = this.getAttachmentPath();
      if (!e || e.getFunctionParent() === this.path.getFunctionParent()) return;
      let s = e.scope.generateUidIdentifier("ref"), r = eKe(s, this.path.node), i = this.attachAfter ? "insertAfter" : "insertBefore", [a] = e[i](
      [e.isVariableDeclarator() ? r : ZUe("var", [r])]), o = this.path.parentPath;
      return o.isJSXElement() && this.path.container === o.node.children && (s = QUe(s)), this.path.replaceWith(GUe(s)), e.isVariableDeclarator() ?
      a.get("init") : a.get("declarations.0.init");
    }
  };
  Ux.default = yk;
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/modification.js
var qx = g((Na) => {
  "use strict";
  Object.defineProperty(Na, "__esModule", {
    value: !0
  });
  Na._containerInsert = Sk;
  Na._containerInsertAfter = GW;
  Na._containerInsertBefore = Pk;
  Na._verifyNodeList = dg;
  Na.insertAfter = TKe;
  Na.insertBefore = yKe;
  Na.pushContainer = xKe;
  Na.unshiftContainer = bKe;
  Na.updateSiblingKeys = e$;
  var sKe = ch(), xk = Rc(), gk = tl(), Kx = Rx(), rKe = fe(), iKe = YW(), {
    arrowFunctionExpression: nKe,
    assertExpression: aKe,
    assignmentExpression: oKe,
    blockStatement: XW,
    callExpression: lKe,
    cloneNode: Tk,
    expressionStatement: bk,
    isAssignmentExpression: uKe,
    isCallExpression: cKe,
    isExportNamedDeclaration: zW,
    isExpression: pKe,
    isIdentifier: hKe,
    isSequenceExpression: fKe,
    isSuper: dKe,
    thisExpression: mKe
  } = rKe;
  function yKe(t) {
    Kx._assertUnremoved.call(this);
    let e = dg.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || zW(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertBefore(e);
    if (this.isNodeType("Expression") && !this.isJSXElement() || s.isForStatement() && this.key === "init")
      return this.node && e.push(this.node), this.replaceExpressionWithStatements(e);
    if (Array.isArray(this.container))
      return Pk.call(this, e);
    if (this.isStatementOrBlock()) {
      let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
      return this.replaceWith(XW(a ? [i] : [])), this.unshiftContainer("body", e);
    } 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?");
  }
  n(yKe, "insertBefore");
  function Sk(t, e) {
    e$.call(this, t, e.length);
    let s = [];
    this.container.splice(t, 0, ...e);
    for (let a = 0; a < e.length; a++) {
      var r;
      let o = t + a, l = this.getSibling(o);
      s.push(l), (r = this.context) != null && r.queue && gk.pushContext.call(l, this.context);
    }
    let i = gk._getQueueContexts.call(this);
    for (let a of s) {
      gk.setScope.call(a), a.debug("Inserted.");
      for (let o of i)
        o.maybeQueue(a, !0);
    }
    return s;
  }
  n(Sk, "_containerInsert");
  function Pk(t) {
    return Sk.call(this, this.key, t);
  }
  n(Pk, "_containerInsertBefore");
  function GW(t) {
    return Sk.call(this, this.key + 1, t);
  }
  n(GW, "_containerInsertAfter");
  var QW = /* @__PURE__ */ n((t) => t[t.length - 1], "last");
  function ZW(t) {
    return fKe(t.parent) && (QW(t.parent.expressions) !== t.node || ZW(t.parentPath));
  }
  n(ZW, "isHiddenInSequenceExpression");
  function gKe(t, e) {
    if (!uKe(t) || !hKe(t.left))
      return !1;
    let s = e.getBlockParent();
    return s.hasOwnBinding(t.left.name) && s.getOwnBinding(t.left.name).constantViolations.length <= 1;
  }
  n(gKe, "isAlmostConstantAssignment");
  function TKe(t) {
    if (Kx._assertUnremoved.call(this), this.isSequenceExpression())
      return QW(this.get("expressions")).insertAfter(t);
    let e = dg.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || zW(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertAfter(e.map((i) => pKe(i) ? bk(i) : i));
    if (this.isNodeType("Expression") && !this.isJSXElement() && !s.isJSXElement() || s.isForStatement() && this.key === "init") {
      let i = this;
      if (i.node) {
        let a = i.node, {
          scope: o
        } = this;
        if (o.path.isPattern())
          return aKe(a), i.replaceWith(lKe(nKe([], a), [])), i.get("callee.body").insertAfter(e), [i];
        if (ZW(i))
          e.unshift(a);
        else if (cKe(a) && dKe(a.callee))
          e.unshift(a), e.push(mKe());
        else if (gKe(a, o))
          e.unshift(a), e.push(Tk(a.left));
        else if (o.isPure(a, !0))
          e.push(a);
        else {
          s.isMethod({
            computed: !0,
            key: a
          }) && (o = o.parent);
          let l = o.generateDeclaredUidIdentifier();
          e.unshift(bk(oKe("=", Tk(l), a))), e.push(bk(Tk(l)));
        }
      }
      return this.replaceExpressionWithStatements(e);
    } else {
      if (Array.isArray(this.container))
        return GW.call(this, e);
      if (this.isStatementOrBlock()) {
        let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
        return this.replaceWith(XW(a ? [i] : [])), this.pushContainer("body", e);
      } 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?");
    }
  }
  n(TKe, "insertAfter");
  function e$(t, e) {
    if (!this.parent) return;
    let s = (0, sKe.getCachedPaths)(this.hub, this.parent) || [];
    for (let [, r] of s)
      typeof r.key == "number" && r.container === this.container && r.key >= t && (r.key += e);
  }
  n(e$, "updateSiblingKeys");
  function dg(t) {
    if (!t)
      return [];
    Array.isArray(t) || (t = [t]);
    for (let e = 0; e < t.length; e++) {
      let s = t[e], r;
      if (s ? typeof s != "object" ? r = "contains a non-object node" : s.type ? s instanceof xk.default && (r = "has a NodePath when it exp\
ected a raw object") : r = "without a type" : r = "has falsy node", r) {
        let i = Array.isArray(s) ? "array" : typeof s;
        throw new Error(`Node list ${r} with the index of ${e} and type of ${i}`);
      }
    }
    return t;
  }
  n(dg, "_verifyNodeList");
  function bKe(t, e) {
    Kx._assertUnremoved.call(this), e = dg.call(this, e);
    let s = xk.default.get({
      parentPath: this,
      parent: this.node,
      container: this.node[t],
      listKey: t,
      key: 0
    }).setContext(this.context);
    return Pk.call(s, e);
  }
  n(bKe, "unshiftContainer");
  function xKe(t, e) {
    Kx._assertUnremoved.call(this);
    let s = dg.call(this, e), r = this.node[t];
    return xk.default.get({
      parentPath: this,
      parent: this.node,
      container: r,
      listKey: t,
      key: r.length
    }).setContext(this.context).replaceWithMultiple(s);
  }
  n(xKe, "pushContainer");
  Na.hoist = /* @__PURE__ */ n(function(e = this.scope) {
    return new iKe.default(this, e).run();
  }, "hoist");
});

// ../node_modules/@babel/core/node_modules/@babel/parser/lib/index.js
var Qx = g((Eg) => {
  "use strict";
  Object.defineProperty(Eg, "__esModule", {
    value: !0
  });
  function SKe(t, e) {
    if (t == null) return {};
    var s = {};
    for (var r in t) if ({}.hasOwnProperty.call(t, r)) {
      if (e.includes(r)) continue;
      s[r] = t[r];
    }
    return s;
  }
  n(SKe, "_objectWithoutPropertiesLoose");
  var rl = class {
    static {
      n(this, "Position");
    }
    constructor(e, s, r) {
      this.line = void 0, this.column = void 0, this.index = void 0, this.line = e, this.column = s, this.index = r;
    }
  }, Ad = class {
    static {
      n(this, "SourceLocation");
    }
    constructor(e, s) {
      this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = e, this.end = s;
    }
  };
  function Sn(t, e) {
    let {
      line: s,
      column: r,
      index: i
    } = t;
    return new rl(s, r + e, i + e);
  }
  n(Sn, "createPositionWithColumnOffset");
  var t$ = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED", PKe = {
    ImportMetaOutsideModule: {
      message: `import.meta may appear only with 'sourceType: "module"'`,
      code: t$
    },
    ImportOutsideModule: {
      message: `'import' and 'export' may appear only with 'sourceType: "module"'`,
      code: t$
    }
  }, s$ = {
    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"
  }, $x = /* @__PURE__ */ n((t) => t.type === "UpdateExpression" ? s$.UpdateExpression[`${t.prefix}`] : s$[t.type], "toNodeDescription"), EKe = {
    AccessorIsGenerator: /* @__PURE__ */ n(({
      kind: t
    }) => `A ${t}ter cannot be a generator.`, "AccessorIsGenerator"),
    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: /* @__PURE__ */ n(({
      kind: t
    }) => `Missing initializer in ${t} declaration.`, "DeclarationMissingInitializer"),
    DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(deco\
rator)(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 s\
ame 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: /* @__PURE__ */ n(({
      exportName: t
    }) => `\`${t}\` has already been exported. Exported identifiers must be unique.`, "DuplicateExport"),
    DuplicateProto: "Redefinition of __proto__ property.",
    DuplicateRegExpFlags: "Duplicate regular expression flag.",
    DynamicImportPhaseRequiresImportExpressions: /* @__PURE__ */ n(({
      phase: t
    }) => `'import.${t}(...)' can only be parsed when using the 'createImportExpressions' option.`, "DynamicImportPhaseRequiresImportExpress\
ions"),
    ElementAfterRest: "Rest element must be last element.",
    EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
    ExportBindingIsString: /* @__PURE__ */ n(({
      localName: t,
      exportName: e
    }) => `A string literal cannot be used as an exported binding without \`from\`.
- Did you mean \`export { '${t}' as '${e}' } from 'some-module'\`?`, "ExportBindingIsString"),
    ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
    ForInOfLoopInitializer: /* @__PURE__ */ n(({
      type: t
    }) => `'${t === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, "ForInOfLoopInitialize\
r"),
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Unsyntactic ${t === "BreakStatement" ? "break" : "continue"}.`, "IllegalBreakContinue"),
    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: /* @__PURE__ */ n(({
      importName: t
    }) => `A string literal cannot be used as an imported binding.
- Did you mean \`import { "${t}" as foo }\`?`, "ImportBindingIsString"),
    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: /* @__PURE__ */ n(({
      radix: t
    }) => `Expected number in radix ${t}.`, "InvalidDigit"),
    InvalidEscapeSequence: "Bad character escape sequence.",
    InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
    InvalidEscapedReservedWord: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Escape sequence in keyword ${t}.`, "InvalidEscapedReservedWord"),
    InvalidIdentifier: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Invalid identifier ${t}.`, "InvalidIdentifier"),
    InvalidLhs: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid left-hand side in ${$x(t)}.`, "InvalidLhs"),
    InvalidLhsBinding: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Binding invalid left-hand side in ${$x(t)}.`, "InvalidLhsBinding"),
    InvalidLhsOptionalChaining: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid optional chaining in the left-hand side of ${$x(t)}.`, "InvalidLhsOptionalChaining"),
    InvalidNumber: "Invalid number.",
    InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
    InvalidOrUnexpectedToken: /* @__PURE__ */ n(({
      unexpected: t
    }) => `Unexpected character '${t}'.`, "InvalidOrUnexpectedToken"),
    InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
    InvalidPrivateFieldResolution: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private name #${t} is not defined.`, "InvalidPrivateFieldResolution"),
    InvalidPropertyBindingPattern: "Binding member expression.",
    InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
    InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
    LabelRedeclaration: /* @__PURE__ */ n(({
      labelName: t
    }) => `Label '${t}' is already declared.`, "LabelRedeclaration"),
    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: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling the parser plugin: ${t.map((e) => JSON.stringify(e)).join(", ")}.`, "MissingPlugin"),
    MissingOneOfPlugins: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${t.map((e) => JSON.stringify(e)).join(", ")}.`,
    "MissingOneOfPlugins"),
    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: /* @__PURE__ */ n(({
      key: t
    }) => `Duplicate key "${t}" is not allowed in module attributes.`, "ModuleAttributesWithDuplicateKeys"),
    ModuleExportNameHasLoneSurrogate: /* @__PURE__ */ n(({
      surrogateCharCode: t
    }) => `An export name cannot include a lone surrogate, found '\\u${t.toString(16)}'.`, "ModuleExportNameHasLoneSurrogate"),
    ModuleExportUndefined: /* @__PURE__ */ n(({
      localName: t
    }) => `Export '${t}' is not defined.`, "ModuleExportUndefined"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private names are only allowed in property accesses (\`obj.#${t}\`) or in \`in\` expressions (\`#${t} in obj\`).`, "PrivateInExpe\
ctedIn"),
    PrivateNameRedeclaration: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Duplicate private name #${t}.`, "PrivateNameRedeclaration"),
    RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 're\
cordAndTuple' 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 th\
e '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 sta\
tement.",
    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 n\
ot 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 'reco\
rdAndTuple' 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: /* @__PURE__ */ n(({
      keyword: t
    }) => `Unexpected keyword '${t}'.`, "UnexpectedKeyword"),
    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: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Unexpected reserved word '${t}'.`, "UnexpectedReservedWord"),
    UnexpectedSuper: "'super' is only allowed in object methods and classes.",
    UnexpectedToken: /* @__PURE__ */ n(({
      expected: t,
      unexpected: e
    }) => `Unexpected token${e ? ` '${e}'.` : ""}${t ? `, expected "${t}"` : ""}`, "UnexpectedToken"),
    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: /* @__PURE__ */ n(({
      target: t,
      onlyValidPropertyName: e
    }) => `The only valid meta property for ${t} is ${t}.${e}.`, "UnsupportedMetaProperty"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Identifier '${t}' has already been declared.`, "VarRedeclaration"),
    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."
  }, AKe = {
    StrictDelete: "Deleting local variable in strict mode.",
    StrictEvalArguments: /* @__PURE__ */ n(({
      referenceName: t
    }) => `Assigning to '${t}' in strict mode.`, "StrictEvalArguments"),
    StrictEvalArgumentsBinding: /* @__PURE__ */ n(({
      bindingName: t
    }) => `Binding '${t}' in strict mode.`, "StrictEvalArgumentsBinding"),
    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."
  }, vKe = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]), CKe = Object.
  assign({
    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" opt\
ion.',
    PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
    PipeTopicUnconfiguredToken: /* @__PURE__ */ n(({
      token: t
    }) => `Invalid topic token ${t}. In order to use ${t} as a topic reference, the pipelineOperator plugin must be configured with { "propo\
sal": "hack", "topicToken": "${t}" }.`, "PipeTopicUnconfiguredToken"),
    PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
    PipeUnparenthesizedBody: /* @__PURE__ */ n(({
      type: t
    }) => `Hack-style pipe body cannot be an unparenthesized ${$x({
      type: t
    })}; please wrap it in parentheses.`, "PipeUnparenthesizedBody")
  }, {
    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 "sma\
rt" option.'
  }), wKe = ["message"];
  function r$(t, e, s) {
    Object.defineProperty(t, e, {
      enumerable: !1,
      configurable: !0,
      value: s
    });
  }
  n(r$, "defineHidden");
  function IKe({
    toMessage: t,
    code: e,
    reasonCode: s,
    syntaxPlugin: r
  }) {
    let i = s === "MissingPlugin" || s === "MissingOneOfPlugins";
    {
      let a = {
        AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter",
        AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters",
        ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumRefer\
ence",
        SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter",
        SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter",
        SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType"
      };
      a[s] && (s = a[s]);
    }
    return /* @__PURE__ */ n(function a(o, l) {
      let u = new SyntaxError();
      return u.code = e, u.reasonCode = s, u.loc = o, u.pos = o.index, u.syntaxPlugin = r, i && (u.missingPlugin = l.missingPlugin), r$(u, "\
clone", /* @__PURE__ */ n(function(p = {}) {
        var h;
        let {
          line: f,
          column: d,
          index: m
        } = (h = p.loc) != null ? h : o;
        return a(new rl(f, d, m), Object.assign({}, l, p.details));
      }, "clone")), r$(u, "details", l), Object.defineProperty(u, "message", {
        configurable: !0,
        get() {
          let c = `${t(l)} (${o.line}:${o.column})`;
          return this.message = c, c;
        },
        set(c) {
          Object.defineProperty(this, "message", {
            value: c,
            writable: !0
          });
        }
      }), u;
    }, "constructor");
  }
  n(IKe, "toParseErrorConstructor");
  function tu(t, e) {
    if (Array.isArray(t))
      return (r) => tu(r, t[0]);
    let s = {};
    for (let r of Object.keys(t)) {
      let i = t[r], a = typeof i == "string" ? {
        message: /* @__PURE__ */ n(() => i, "message")
      } : typeof i == "function" ? {
        message: i
      } : i, {
        message: o
      } = a, l = SKe(a, wKe), u = typeof o == "string" ? () => o : o;
      s[r] = IKe(Object.assign({
        code: "BABEL_PARSER_SYNTAX_ERROR",
        reasonCode: r,
        toMessage: u
      }, e ? {
        syntaxPlugin: e
      } : {}, l));
    }
    return s;
  }
  n(tu, "ParseErrorEnum");
  var Q = Object.assign({}, tu(PKe), tu(EKe), tu(AKe), tu`pipelineOperator`(CKe));
  function NKe() {
    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
    };
  }
  n(NKe, "createDefaultOptions");
  function kKe(t) {
    let e = NKe();
    if (t == null)
      return e;
    if (t.annexB != null && t.annexB !== !1)
      throw new Error("The `annexB` option can only be set to `false`.");
    for (let s of Object.keys(e))
      t[s] != null && (e[s] = t[s]);
    if (e.startLine === 1)
      t.startIndex == null && e.startColumn > 0 ? e.startIndex = e.startColumn : t.startColumn == null && e.startIndex > 0 && (e.startColumn =
      e.startIndex);
    else if ((t.startColumn == null || t.startIndex == null) && t.startIndex != null)
      throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
    return e;
  }
  n(kKe, "getOptions");
  var {
    defineProperty: DKe
  } = Object, i$ = /* @__PURE__ */ n((t, e) => {
    t && DKe(t, e, {
      enumerable: !1,
      value: t[e]
    });
  }, "toUnenumerable");
  function mg(t) {
    return i$(t.loc.start, "index"), i$(t.loc.end, "index"), t;
  }
  n(mg, "toESTreeLocation");
  var OKe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "ESTreeParserMixin");
    }
    parse() {
      let s = mg(super.parse());
      return this.optionFlags & 128 && (s.tokens = s.tokens.map(mg)), s;
    }
    parseRegExpLiteral({
      pattern: s,
      flags: r
    }) {
      let i = null;
      try {
        i = new RegExp(s, r);
      } catch {
      }
      let a = this.estreeParseLiteral(i);
      return a.regex = {
        pattern: s,
        flags: r
      }, a;
    }
    parseBigIntLiteral(s) {
      let r;
      try {
        r = BigInt(s);
      } catch {
        r = null;
      }
      let i = this.estreeParseLiteral(r);
      return i.bigint = String(i.value || s), i;
    }
    parseDecimalLiteral(s) {
      let i = this.estreeParseLiteral(null);
      return i.decimal = String(i.value || s), i;
    }
    estreeParseLiteral(s) {
      return this.parseLiteral(s, "Literal");
    }
    parseStringLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNumericLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNullLiteral() {
      return this.estreeParseLiteral(null);
    }
    parseBooleanLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    directiveToStmt(s) {
      let r = s.value;
      delete s.value, r.type = "Literal", r.raw = r.extra.raw, r.value = r.extra.expressionValue;
      let i = s;
      return i.type = "ExpressionStatement", i.expression = r, i.directive = r.extra.rawValue, delete r.extra, i;
    }
    initFunction(s, r) {
      super.initFunction(s, r), s.expression = !1;
    }
    checkDeclaration(s) {
      s != null && this.isObjectProperty(s) ? this.checkDeclaration(s.value) : super.checkDeclaration(s);
    }
    getObjectOrClassMethodParams(s) {
      return s.value.params;
    }
    isValidDirective(s) {
      var r;
      return s.type === "ExpressionStatement" && s.expression.type === "Literal" && typeof s.expression.value == "string" && !((r = s.expression.
      extra) != null && r.parenthesized);
    }
    parseBlockBody(s, r, i, a, o) {
      super.parseBlockBody(s, r, i, a, o);
      let l = s.directives.map((u) => this.directiveToStmt(u));
      s.body = l.concat(s.body), delete s.directives;
    }
    parsePrivateName() {
      let s = super.parsePrivateName();
      return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(s) : s;
    }
    convertPrivateNameToPrivateIdentifier(s) {
      let r = super.getPrivateNameSV(s);
      return s = s, delete s.id, s.name = r, s.type = "PrivateIdentifier", s;
    }
    isPrivateName(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.type === "PrivateIdentifier" : super.isPrivateName(s);
    }
    getPrivateNameSV(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.name : super.getPrivateNameSV(s);
    }
    parseLiteral(s, r) {
      let i = super.parseLiteral(s, r);
      return i.raw = i.extra.raw, delete i.extra, i;
    }
    parseFunctionBody(s, r, i = !1) {
      super.parseFunctionBody(s, r, i), s.expression = s.body.type !== "BlockStatement";
    }
    parseMethod(s, r, i, a, o, l, u = !1) {
      let c = this.startNode();
      c.kind = s.kind, c = super.parseMethod(c, r, i, a, o, l, u), c.type = "FunctionExpression", delete c.kind, s.value = c;
      let {
        typeParameters: p
      } = s;
      return p && (delete s.typeParameters, c.typeParameters = p, this.resetStartLocationFromNode(c, p)), l === "ClassPrivateMethod" && (s.computed =
      !1), this.finishNode(s, "MethodDefinition");
    }
    nameIsConstructor(s) {
      return s.type === "Literal" ? s.value === "constructor" : super.nameIsConstructor(s);
    }
    parseClassProperty(...s) {
      let r = super.parseClassProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition"), r;
    }
    parseClassPrivateProperty(...s) {
      let r = super.parseClassPrivateProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition", r.computed = !1), r;
    }
    parseObjectMethod(s, r, i, a, o) {
      let l = super.parseObjectMethod(s, r, i, a, o);
      return l && (l.type = "Property", l.kind === "method" && (l.kind = "init"), l.shorthand = !1), l;
    }
    parseObjectProperty(s, r, i, a) {
      let o = super.parseObjectProperty(s, r, i, a);
      return o && (o.kind = "init", o.type = "Property"), o;
    }
    isValidLVal(s, r, i) {
      return s === "Property" ? "value" : super.isValidLVal(s, r, i);
    }
    isAssignable(s, r) {
      return s != null && this.isObjectProperty(s) ? this.isAssignable(s.value, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      if (s != null && this.isObjectProperty(s)) {
        let {
          key: i,
          value: a
        } = s;
        this.isPrivateName(i) && this.classScope.usePrivateName(this.getPrivateNameSV(i), i.loc.start), this.toAssignable(a, r);
      } else
        super.toAssignable(s, r);
    }
    toAssignableObjectExpressionProp(s, r, i) {
      s.type === "Property" && (s.kind === "get" || s.kind === "set") ? this.raise(Q.PatternHasAccessor, s.key) : s.type === "Property" && s.
      method ? this.raise(Q.PatternHasMethod, s.key) : super.toAssignableObjectExpressionProp(s, r, i);
    }
    finishCallExpression(s, r) {
      let i = super.finishCallExpression(s, r);
      if (i.callee.type === "Import") {
        var a, o;
        i.type = "ImportExpression", i.source = i.arguments[0], i.options = (a = i.arguments[1]) != null ? a : null, i.attributes = (o = i.arguments[1]) !=
        null ? o : null, delete i.arguments, delete i.callee;
      }
      return i;
    }
    toReferencedArguments(s) {
      s.type !== "ImportExpression" && super.toReferencedArguments(s);
    }
    parseExport(s, r) {
      let i = this.state.lastTokStartLoc, a = super.parseExport(s, r);
      switch (a.type) {
        case "ExportAllDeclaration":
          a.exported = null;
          break;
        case "ExportNamedDeclaration":
          a.specifiers.length === 1 && a.specifiers[0].type === "ExportNamespaceSpecifier" && (a.type = "ExportAllDeclaration", a.exported =
          a.specifiers[0].exported, delete a.specifiers);
        case "ExportDefaultDeclaration":
          {
            var o;
            let {
              declaration: l
            } = a;
            l?.type === "ClassDeclaration" && ((o = l.decorators) == null ? void 0 : o.length) > 0 && l.start === a.start && this.resetStartLocation(
            a, i);
          }
          break;
      }
      return a;
    }
    parseSubscript(s, r, i, a) {
      let o = super.parseSubscript(s, r, i, a);
      if (a.optionalChainMember) {
        if ((o.type === "OptionalMemberExpression" || o.type === "OptionalCallExpression") && (o.type = o.type.substring(8)), a.stop) {
          let l = this.startNodeAtNode(o);
          return l.expression = o, this.finishNode(l, "ChainExpression");
        }
      } else (o.type === "MemberExpression" || o.type === "CallExpression") && (o.optional = !1);
      return o;
    }
    isOptionalMemberExpression(s) {
      return s.type === "ChainExpression" ? s.expression.type === "MemberExpression" : super.isOptionalMemberExpression(s);
    }
    hasPropertyAsPrivateName(s) {
      return s.type === "ChainExpression" && (s = s.expression), super.hasPropertyAsPrivateName(s);
    }
    isObjectProperty(s) {
      return s.type === "Property" && s.kind === "init" && !s.method;
    }
    isObjectMethod(s) {
      return s.type === "Property" && (s.method || s.kind === "get" || s.kind === "set");
    }
    finishNodeAt(s, r, i) {
      return mg(super.finishNodeAt(s, r, i));
    }
    resetStartLocation(s, r) {
      super.resetStartLocation(s, r), mg(s);
    }
    resetEndLocation(s, r = this.state.lastTokEndLoc) {
      super.resetEndLocation(s, r), mg(s);
    }
  }, "estree"), bh = class {
    static {
      n(this, "TokContext");
    }
    constructor(e, s) {
      this.token = void 0, this.preserveSpace = void 0, this.token = e, this.preserveSpace = !!s;
    }
  }, Js = {
    brace: new bh("{"),
    j_oTag: new bh("<tag"),
    j_cTag: new bh("</tag"),
    j_expr: new bh("<tag>...</tag>", !0)
  };
  Js.template = new bh("`", !0);
  var as = !0, Ue = !0, Ek = !0, yg = !0, qc = !0, _Ke = !0, Yx = class {
    static {
      n(this, "ExportedTokenType");
    }
    constructor(e, s = {}) {
      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 = e, this.keyword = s.keyword,
      this.beforeExpr = !!s.beforeExpr, this.startsExpr = !!s.startsExpr, this.rightAssociative = !!s.rightAssociative, this.isLoop = !!s.isLoop,
      this.isAssign = !!s.isAssign, this.prefix = !!s.prefix, this.postfix = !!s.postfix, this.binop = s.binop != null ? s.binop : null, this.
      updateContext = null;
    }
  }, Yk = /* @__PURE__ */ new Map();
  function ks(t, e = {}) {
    e.keyword = t;
    let s = Ct(t, e);
    return Yk.set(t, s), s;
  }
  n(ks, "createKeyword");
  function xn(t, e) {
    return Ct(t, {
      beforeExpr: as,
      binop: e
    });
  }
  n(xn, "createBinop");
  var bg = -1, Zl = [], Xk = [], zk = [], Gk = [], Qk = [], Zk = [];
  function Ct(t, e = {}) {
    var s, r, i, a;
    return ++bg, Xk.push(t), zk.push((s = e.binop) != null ? s : -1), Gk.push((r = e.beforeExpr) != null ? r : !1), Qk.push((i = e.startsExpr) !=
    null ? i : !1), Zk.push((a = e.prefix) != null ? a : !1), Zl.push(new Yx(t, e)), bg;
  }
  n(Ct, "createToken");
  function ns(t, e = {}) {
    var s, r, i, a;
    return ++bg, Yk.set(t, bg), Xk.push(t), zk.push((s = e.binop) != null ? s : -1), Gk.push((r = e.beforeExpr) != null ? r : !1), Qk.push((i =
    e.startsExpr) != null ? i : !1), Zk.push((a = e.prefix) != null ? a : !1), Zl.push(new Yx("name", e)), bg;
  }
  n(ns, "createKeywordLike");
  var LKe = {
    bracketL: Ct("[", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    bracketHashL: Ct("#[", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    bracketBarL: Ct("[|", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    bracketR: Ct("]"),
    bracketBarR: Ct("|]"),
    braceL: Ct("{", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    braceBarL: Ct("{|", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    braceHashL: Ct("#{", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    braceR: Ct("}"),
    braceBarR: Ct("|}"),
    parenL: Ct("(", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    parenR: Ct(")"),
    comma: Ct(",", {
      beforeExpr: as
    }),
    semi: Ct(";", {
      beforeExpr: as
    }),
    colon: Ct(":", {
      beforeExpr: as
    }),
    doubleColon: Ct("::", {
      beforeExpr: as
    }),
    dot: Ct("."),
    question: Ct("?", {
      beforeExpr: as
    }),
    questionDot: Ct("?."),
    arrow: Ct("=>", {
      beforeExpr: as
    }),
    template: Ct("template"),
    ellipsis: Ct("...", {
      beforeExpr: as
    }),
    backQuote: Ct("`", {
      startsExpr: Ue
    }),
    dollarBraceL: Ct("${", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    templateTail: Ct("...`", {
      startsExpr: Ue
    }),
    templateNonTail: Ct("...${", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    at: Ct("@"),
    hash: Ct("#", {
      startsExpr: Ue
    }),
    interpreterDirective: Ct("#!..."),
    eq: Ct("=", {
      beforeExpr: as,
      isAssign: yg
    }),
    assign: Ct("_=", {
      beforeExpr: as,
      isAssign: yg
    }),
    slashAssign: Ct("_=", {
      beforeExpr: as,
      isAssign: yg
    }),
    xorAssign: Ct("_=", {
      beforeExpr: as,
      isAssign: yg
    }),
    moduloAssign: Ct("_=", {
      beforeExpr: as,
      isAssign: yg
    }),
    incDec: Ct("++/--", {
      prefix: qc,
      postfix: _Ke,
      startsExpr: Ue
    }),
    bang: Ct("!", {
      beforeExpr: as,
      prefix: qc,
      startsExpr: Ue
    }),
    tilde: Ct("~", {
      beforeExpr: as,
      prefix: qc,
      startsExpr: Ue
    }),
    doubleCaret: Ct("^^", {
      startsExpr: Ue
    }),
    doubleAt: Ct("@@", {
      startsExpr: Ue
    }),
    pipeline: xn("|>", 0),
    nullishCoalescing: xn("??", 1),
    logicalOR: xn("||", 1),
    logicalAND: xn("&&", 2),
    bitwiseOR: xn("|", 3),
    bitwiseXOR: xn("^", 4),
    bitwiseAND: xn("&", 5),
    equality: xn("==/!=/===/!==", 6),
    lt: xn("</>/<=/>=", 7),
    gt: xn("</>/<=/>=", 7),
    relational: xn("</>/<=/>=", 7),
    bitShift: xn("<</>>/>>>", 8),
    bitShiftL: xn("<</>>/>>>", 8),
    bitShiftR: xn("<</>>/>>>", 8),
    plusMin: Ct("+/-", {
      beforeExpr: as,
      binop: 9,
      prefix: qc,
      startsExpr: Ue
    }),
    modulo: Ct("%", {
      binop: 10,
      startsExpr: Ue
    }),
    star: Ct("*", {
      binop: 10
    }),
    slash: xn("/", 10),
    exponent: Ct("**", {
      beforeExpr: as,
      binop: 11,
      rightAssociative: !0
    }),
    _in: ks("in", {
      beforeExpr: as,
      binop: 7
    }),
    _instanceof: ks("instanceof", {
      beforeExpr: as,
      binop: 7
    }),
    _break: ks("break"),
    _case: ks("case", {
      beforeExpr: as
    }),
    _catch: ks("catch"),
    _continue: ks("continue"),
    _debugger: ks("debugger"),
    _default: ks("default", {
      beforeExpr: as
    }),
    _else: ks("else", {
      beforeExpr: as
    }),
    _finally: ks("finally"),
    _function: ks("function", {
      startsExpr: Ue
    }),
    _if: ks("if"),
    _return: ks("return", {
      beforeExpr: as
    }),
    _switch: ks("switch"),
    _throw: ks("throw", {
      beforeExpr: as,
      prefix: qc,
      startsExpr: Ue
    }),
    _try: ks("try"),
    _var: ks("var"),
    _const: ks("const"),
    _with: ks("with"),
    _new: ks("new", {
      beforeExpr: as,
      startsExpr: Ue
    }),
    _this: ks("this", {
      startsExpr: Ue
    }),
    _super: ks("super", {
      startsExpr: Ue
    }),
    _class: ks("class", {
      startsExpr: Ue
    }),
    _extends: ks("extends", {
      beforeExpr: as
    }),
    _export: ks("export"),
    _import: ks("import", {
      startsExpr: Ue
    }),
    _null: ks("null", {
      startsExpr: Ue
    }),
    _true: ks("true", {
      startsExpr: Ue
    }),
    _false: ks("false", {
      startsExpr: Ue
    }),
    _typeof: ks("typeof", {
      beforeExpr: as,
      prefix: qc,
      startsExpr: Ue
    }),
    _void: ks("void", {
      beforeExpr: as,
      prefix: qc,
      startsExpr: Ue
    }),
    _delete: ks("delete", {
      beforeExpr: as,
      prefix: qc,
      startsExpr: Ue
    }),
    _do: ks("do", {
      isLoop: Ek,
      beforeExpr: as
    }),
    _for: ks("for", {
      isLoop: Ek
    }),
    _while: ks("while", {
      isLoop: Ek
    }),
    _as: ns("as", {
      startsExpr: Ue
    }),
    _assert: ns("assert", {
      startsExpr: Ue
    }),
    _async: ns("async", {
      startsExpr: Ue
    }),
    _await: ns("await", {
      startsExpr: Ue
    }),
    _defer: ns("defer", {
      startsExpr: Ue
    }),
    _from: ns("from", {
      startsExpr: Ue
    }),
    _get: ns("get", {
      startsExpr: Ue
    }),
    _let: ns("let", {
      startsExpr: Ue
    }),
    _meta: ns("meta", {
      startsExpr: Ue
    }),
    _of: ns("of", {
      startsExpr: Ue
    }),
    _sent: ns("sent", {
      startsExpr: Ue
    }),
    _set: ns("set", {
      startsExpr: Ue
    }),
    _source: ns("source", {
      startsExpr: Ue
    }),
    _static: ns("static", {
      startsExpr: Ue
    }),
    _using: ns("using", {
      startsExpr: Ue
    }),
    _yield: ns("yield", {
      startsExpr: Ue
    }),
    _asserts: ns("asserts", {
      startsExpr: Ue
    }),
    _checks: ns("checks", {
      startsExpr: Ue
    }),
    _exports: ns("exports", {
      startsExpr: Ue
    }),
    _global: ns("global", {
      startsExpr: Ue
    }),
    _implements: ns("implements", {
      startsExpr: Ue
    }),
    _intrinsic: ns("intrinsic", {
      startsExpr: Ue
    }),
    _infer: ns("infer", {
      startsExpr: Ue
    }),
    _is: ns("is", {
      startsExpr: Ue
    }),
    _mixins: ns("mixins", {
      startsExpr: Ue
    }),
    _proto: ns("proto", {
      startsExpr: Ue
    }),
    _require: ns("require", {
      startsExpr: Ue
    }),
    _satisfies: ns("satisfies", {
      startsExpr: Ue
    }),
    _keyof: ns("keyof", {
      startsExpr: Ue
    }),
    _readonly: ns("readonly", {
      startsExpr: Ue
    }),
    _unique: ns("unique", {
      startsExpr: Ue
    }),
    _abstract: ns("abstract", {
      startsExpr: Ue
    }),
    _declare: ns("declare", {
      startsExpr: Ue
    }),
    _enum: ns("enum", {
      startsExpr: Ue
    }),
    _module: ns("module", {
      startsExpr: Ue
    }),
    _namespace: ns("namespace", {
      startsExpr: Ue
    }),
    _interface: ns("interface", {
      startsExpr: Ue
    }),
    _type: ns("type", {
      startsExpr: Ue
    }),
    _opaque: ns("opaque", {
      startsExpr: Ue
    }),
    name: Ct("name", {
      startsExpr: Ue
    }),
    placeholder: Ct("%%", {
      startsExpr: !0
    }),
    string: Ct("string", {
      startsExpr: Ue
    }),
    num: Ct("num", {
      startsExpr: Ue
    }),
    bigint: Ct("bigint", {
      startsExpr: Ue
    }),
    decimal: Ct("decimal", {
      startsExpr: Ue
    }),
    regexp: Ct("regexp", {
      startsExpr: Ue
    }),
    privateName: Ct("#name", {
      startsExpr: Ue
    }),
    eof: Ct("eof"),
    jsxName: Ct("jsxName"),
    jsxText: Ct("jsxText", {
      beforeExpr: !0
    }),
    jsxTagStart: Ct("jsxTagStart", {
      startsExpr: !0
    }),
    jsxTagEnd: Ct("jsxTagEnd")
  };
  function Ys(t) {
    return t >= 93 && t <= 133;
  }
  n(Ys, "tokenIsIdentifier");
  function BKe(t) {
    return t <= 92;
  }
  n(BKe, "tokenKeywordOrIdentifierIsKeyword");
  function bo(t) {
    return t >= 58 && t <= 133;
  }
  n(bo, "tokenIsKeywordOrIdentifier");
  function y$(t) {
    return t >= 58 && t <= 137;
  }
  n(y$, "tokenIsLiteralPropertyName");
  function MKe(t) {
    return Gk[t];
  }
  n(MKe, "tokenComesBeforeExpression");
  function Ik(t) {
    return Qk[t];
  }
  n(Ik, "tokenCanStartExpression");
  function FKe(t) {
    return t >= 29 && t <= 33;
  }
  n(FKe, "tokenIsAssignment");
  function n$(t) {
    return t >= 129 && t <= 131;
  }
  n(n$, "tokenIsFlowInterfaceOrTypeOrOpaque");
  function jKe(t) {
    return t >= 90 && t <= 92;
  }
  n(jKe, "tokenIsLoop");
  function eD(t) {
    return t >= 58 && t <= 92;
  }
  n(eD, "tokenIsKeyword");
  function RKe(t) {
    return t >= 39 && t <= 59;
  }
  n(RKe, "tokenIsOperator");
  function qKe(t) {
    return t === 34;
  }
  n(qKe, "tokenIsPostfix");
  function UKe(t) {
    return Zk[t];
  }
  n(UKe, "tokenIsPrefix");
  function KKe(t) {
    return t >= 121 && t <= 123;
  }
  n(KKe, "tokenIsTSTypeOperator");
  function VKe(t) {
    return t >= 124 && t <= 130;
  }
  n(VKe, "tokenIsTSDeclarationStart");
  function Kc(t) {
    return Xk[t];
  }
  n(Kc, "tokenLabelName");
  function Hx(t) {
    return zk[t];
  }
  n(Hx, "tokenOperatorPrecedence");
  function WKe(t) {
    return t === 57;
  }
  n(WKe, "tokenIsRightAssociative");
  function Xx(t) {
    return t >= 24 && t <= 25;
  }
  n(Xx, "tokenIsTemplate");
  function Ql(t) {
    return Zl[t];
  }
  n(Ql, "getExportedToken");
  Zl[8].updateContext = (t) => {
    t.pop();
  }, Zl[5].updateContext = Zl[7].updateContext = Zl[23].updateContext = (t) => {
    t.push(Js.brace);
  }, Zl[22].updateContext = (t) => {
    t[t.length - 1] === Js.template ? t.pop() : t.push(Js.template);
  }, Zl[143].updateContext = (t) => {
    t.push(Js.j_expr, Js.j_oTag);
  };
  var tD = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993\
-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\
\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\
\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\
\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\
\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01\
-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
  g$ = "\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\
\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\
\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6\
-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20\
-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65", $Ke = new RegExp("[" + tD + "]"), HKe = new RegExp("[" + tD + g$ + "]");
  tD = g$ = null;
  var T$ = [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], JKe = [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 Nk(t, e) {
    let s = 65536;
    for (let r = 0, i = e.length; r < i; r += 2) {
      if (s += e[r], s > t) return !1;
      if (s += e[r + 1], s >= t) return !0;
    }
    return !1;
  }
  n(Nk, "isInAstralSet");
  function eu(t) {
    return t < 65 ? t === 36 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && $Ke.test(String.fromCharCode(t)) :
    Nk(t, T$);
  }
  n(eu, "isIdentifierStart");
  function Sd(t) {
    return t < 48 ? t === 36 : t < 58 ? !0 : t < 65 ? !1 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && HKe.test(
    String.fromCharCode(t)) : Nk(t, T$) || Nk(t, JKe);
  }
  n(Sd, "isIdentifierChar");
  var sD = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "swit\
ch", "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"]
  }, YKe = new Set(sD.keyword), XKe = new Set(sD.strict), zKe = new Set(sD.strictBind);
  function b$(t, e) {
    return e && t === "await" || t === "enum";
  }
  n(b$, "isReservedWord");
  function x$(t, e) {
    return b$(t, e) || XKe.has(t);
  }
  n(x$, "isStrictReservedWord");
  function S$(t) {
    return zKe.has(t);
  }
  n(S$, "isStrictBindOnlyReservedWord");
  function P$(t, e) {
    return x$(t, e) || S$(t);
  }
  n(P$, "isStrictBindReservedWord");
  function GKe(t) {
    return YKe.has(t);
  }
  n(GKe, "isKeyword");
  function QKe(t, e, s) {
    return t === 64 && e === 64 && eu(s);
  }
  n(QKe, "isIteratorStart");
  var ZKe = /* @__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", "protecte\
d", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
  function eVe(t) {
    return ZKe.has(t);
  }
  n(eVe, "canBeReservedWord");
  var xg = class {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = e;
    }
  }, Sg = class {
    static {
      n(this, "ScopeHandler");
    }
    constructor(e, s) {
      this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = e,
      this.inModule = s;
    }
    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() {
      let e = this.currentThisScopeFlags();
      return (e & 64) > 0 && (e & 2) === 0;
    }
    get inStaticBlock() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 128)
          return !0;
        if (s & 451)
          return !1;
      }
    }
    get inNonArrowFunction() {
      return (this.currentThisScopeFlags() & 2) > 0;
    }
    get treatFunctionsAsVar() {
      return this.treatFunctionsAsVarInScope(this.currentScope());
    }
    createScope(e) {
      return new xg(e);
    }
    enter(e) {
      this.scopeStack.push(this.createScope(e));
    }
    exit() {
      return this.scopeStack.pop().flags;
    }
    treatFunctionsAsVarInScope(e) {
      return !!(e.flags & 130 || !this.parser.inModule && e.flags & 1);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 8 || s & 16) {
        this.checkRedeclarationInScope(i, e, s, r);
        let a = i.names.get(e) || 0;
        s & 16 ? a = a | 4 : (i.firstLexicalName || (i.firstLexicalName = e), a = a | 2), i.names.set(e, a), s & 8 && this.maybeExportDefined(
        i, e);
      } else if (s & 4)
        for (let a = this.scopeStack.length - 1; a >= 0 && (i = this.scopeStack[a], this.checkRedeclarationInScope(i, e, s, r), i.names.set(
        e, (i.names.get(e) || 0) | 1), this.maybeExportDefined(i, e), !(i.flags & 387)); --a)
          ;
      this.parser.inModule && i.flags & 1 && this.undefinedExports.delete(e);
    }
    maybeExportDefined(e, s) {
      this.parser.inModule && e.flags & 1 && this.undefinedExports.delete(s);
    }
    checkRedeclarationInScope(e, s, r, i) {
      this.isRedeclaredInScope(e, s, r) && this.parser.raise(Q.VarRedeclaration, i, {
        identifierName: s
      });
    }
    isRedeclaredInScope(e, s, r) {
      if (!(r & 1)) return !1;
      if (r & 8)
        return e.names.has(s);
      let i = e.names.get(s);
      return r & 16 ? (i & 2) > 0 || !this.treatFunctionsAsVarInScope(e) && (i & 1) > 0 : (i & 2) > 0 && !(e.flags & 8 && e.firstLexicalName ===
      s) || !this.treatFunctionsAsVarInScope(e) && (i & 4) > 0;
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      this.scopeStack[0].names.has(s) || this.undefinedExports.set(s, e.loc.start);
    }
    currentScope() {
      return this.scopeStack[this.scopeStack.length - 1];
    }
    currentVarScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 387)
          return s;
      }
    }
    currentThisScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 451 && !(s & 4))
          return s;
      }
    }
  }, kk = class extends xg {
    static {
      n(this, "FlowScope");
    }
    constructor(...e) {
      super(...e), this.declareFunctions = /* @__PURE__ */ new Set();
    }
  }, Dk = class extends Sg {
    static {
      n(this, "FlowScopeHandler");
    }
    createScope(e) {
      return new kk(e);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 2048) {
        this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e), i.declareFunctions.add(e);
        return;
      }
      super.declareName(e, s, r);
    }
    isRedeclaredInScope(e, s, r) {
      if (super.isRedeclaredInScope(e, s, r)) return !0;
      if (r & 2048 && !e.declareFunctions.has(s)) {
        let i = e.names.get(s);
        return (i & 4) > 0 || (i & 2) > 0;
      }
      return !1;
    }
    checkLocalExport(e) {
      this.scopeStack[0].declareFunctions.has(e.name) || super.checkLocalExport(e);
    }
  }, Ok = class {
    static {
      n(this, "BaseParser");
    }
    constructor() {
      this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
    }
    sourceToOffsetPos(e) {
      return e + this.startIndex;
    }
    offsetToSourcePos(e) {
      return e - this.startIndex;
    }
    hasPlugin(e) {
      if (typeof e == "string")
        return this.plugins.has(e);
      {
        let [s, r] = e;
        if (!this.hasPlugin(s))
          return !1;
        let i = this.plugins.get(s);
        for (let a of Object.keys(r))
          if (i?.[a] !== r[a])
            return !1;
        return !0;
      }
    }
    getPluginOption(e, s) {
      var r;
      return (r = this.plugins.get(e)) == null ? void 0 : r[s];
    }
  };
  function E$(t, e) {
    t.trailingComments === void 0 ? t.trailingComments = e : t.trailingComments.unshift(...e);
  }
  n(E$, "setTrailingComments");
  function tVe(t, e) {
    t.leadingComments === void 0 ? t.leadingComments = e : t.leadingComments.unshift(...e);
  }
  n(tVe, "setLeadingComments");
  function Pg(t, e) {
    t.innerComments === void 0 ? t.innerComments = e : t.innerComments.unshift(...e);
  }
  n(Pg, "setInnerComments");
  function gh(t, e, s) {
    let r = null, i = e.length;
    for (; r === null && i > 0; )
      r = e[--i];
    r === null || r.start > s.start ? Pg(t, s.comments) : E$(r, s.comments);
  }
  n(gh, "adjustInnerComments");
  var _k = class extends Ok {
    static {
      n(this, "CommentsParser");
    }
    addComment(e) {
      this.filename && (e.loc.filename = this.filename);
      let {
        commentsLen: s
      } = this.state;
      this.comments.length !== s && (this.comments.length = s), this.comments.push(e), this.state.commentsLen++;
    }
    processComment(e) {
      let {
        commentStack: s
      } = this.state, r = s.length;
      if (r === 0) return;
      let i = r - 1, a = s[i];
      a.start === e.end && (a.leadingNode = e, i--);
      let {
        start: o
      } = e;
      for (; i >= 0; i--) {
        let l = s[i], u = l.end;
        if (u > o)
          l.containingNode = e, this.finalizeComment(l), s.splice(i, 1);
        else {
          u === o && (l.trailingNode = e);
          break;
        }
      }
    }
    finalizeComment(e) {
      let {
        comments: s
      } = e;
      if (e.leadingNode !== null || e.trailingNode !== null)
        e.leadingNode !== null && E$(e.leadingNode, s), e.trailingNode !== null && tVe(e.trailingNode, s);
      else {
        let {
          containingNode: r,
          start: i
        } = e;
        if (this.input.charCodeAt(this.offsetToSourcePos(i) - 1) === 44)
          switch (r.type) {
            case "ObjectExpression":
            case "ObjectPattern":
            case "RecordExpression":
              gh(r, r.properties, e);
              break;
            case "CallExpression":
            case "OptionalCallExpression":
              gh(r, r.arguments, e);
              break;
            case "FunctionDeclaration":
            case "FunctionExpression":
            case "ArrowFunctionExpression":
            case "ObjectMethod":
            case "ClassMethod":
            case "ClassPrivateMethod":
              gh(r, r.params, e);
              break;
            case "ArrayExpression":
            case "ArrayPattern":
            case "TupleExpression":
              gh(r, r.elements, e);
              break;
            case "ExportNamedDeclaration":
            case "ImportDeclaration":
              gh(r, r.specifiers, e);
              break;
            case "TSEnumDeclaration":
              gh(r, r.members, e);
              break;
            case "TSEnumBody":
              gh(r, r.members, e);
              break;
            default:
              Pg(r, s);
          }
        else
          Pg(r, s);
      }
    }
    finalizeRemainingComments() {
      let {
        commentStack: e
      } = this.state;
      for (let s = e.length - 1; s >= 0; s--)
        this.finalizeComment(e[s]);
      this.state.commentStack = [];
    }
    resetPreviousNodeTrailingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      if (r === 0) return;
      let i = s[r - 1];
      i.leadingNode === e && (i.leadingNode = null);
    }
    resetPreviousIdentifierLeadingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      r !== 0 && (s[r - 1].trailingNode === e ? s[r - 1].trailingNode = null : r >= 2 && s[r - 2].trailingNode === e && (s[r - 2].trailingNode =
      null));
    }
    takeSurroundingComments(e, s, r) {
      let {
        commentStack: i
      } = this.state, a = i.length;
      if (a === 0) return;
      let o = a - 1;
      for (; o >= 0; o--) {
        let l = i[o], u = l.end;
        if (l.start === r)
          l.leadingNode = e;
        else if (u === s)
          l.trailingNode = e;
        else if (u < s)
          break;
      }
    }
  }, sVe = /\r\n|[\r\n\u2028\u2029]/, Vx = new RegExp(sVe.source, "g");
  function Pd(t) {
    switch (t) {
      case 10:
      case 13:
      case 8232:
      case 8233:
        return !0;
      default:
        return !1;
    }
  }
  n(Pd, "isNewLine");
  function a$(t, e, s) {
    for (let r = e; r < s; r++)
      if (Pd(t.charCodeAt(r)))
        return !0;
    return !1;
  }
  n(a$, "hasNewLine");
  var Ak = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, vk = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;
  function rVe(t) {
    switch (t) {
      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;
    }
  }
  n(rVe, "isWhitespace");
  var Lk = class t {
    static {
      n(this, "State");
    }
    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 = [Js.brace], this.firstInvalidTemplateEscapePos = null,
      this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
    }
    get strict() {
      return (this.flags & 1) > 0;
    }
    set strict(e) {
      e ? this.flags |= 1 : this.flags &= -2;
    }
    init({
      strictMode: e,
      sourceType: s,
      startIndex: r,
      startLine: i,
      startColumn: a
    }) {
      this.strict = e === !1 ? !1 : e === !0 ? !0 : s === "module", this.startIndex = r, this.curLine = i, this.lineStart = -a, this.startLoc =
      this.endLoc = new rl(i, a, r);
    }
    get maybeInArrowParameters() {
      return (this.flags & 2) > 0;
    }
    set maybeInArrowParameters(e) {
      e ? this.flags |= 2 : this.flags &= -3;
    }
    get inType() {
      return (this.flags & 4) > 0;
    }
    set inType(e) {
      e ? this.flags |= 4 : this.flags &= -5;
    }
    get noAnonFunctionType() {
      return (this.flags & 8) > 0;
    }
    set noAnonFunctionType(e) {
      e ? this.flags |= 8 : this.flags &= -9;
    }
    get hasFlowComment() {
      return (this.flags & 16) > 0;
    }
    set hasFlowComment(e) {
      e ? this.flags |= 16 : this.flags &= -17;
    }
    get isAmbientContext() {
      return (this.flags & 32) > 0;
    }
    set isAmbientContext(e) {
      e ? this.flags |= 32 : this.flags &= -33;
    }
    get inAbstractClass() {
      return (this.flags & 64) > 0;
    }
    set inAbstractClass(e) {
      e ? this.flags |= 64 : this.flags &= -65;
    }
    get inDisallowConditionalTypesContext() {
      return (this.flags & 128) > 0;
    }
    set inDisallowConditionalTypesContext(e) {
      e ? this.flags |= 128 : this.flags &= -129;
    }
    get soloAwait() {
      return (this.flags & 256) > 0;
    }
    set soloAwait(e) {
      e ? this.flags |= 256 : this.flags &= -257;
    }
    get inFSharpPipelineDirectBody() {
      return (this.flags & 512) > 0;
    }
    set inFSharpPipelineDirectBody(e) {
      e ? this.flags |= 512 : this.flags &= -513;
    }
    get canStartJSXElement() {
      return (this.flags & 1024) > 0;
    }
    set canStartJSXElement(e) {
      e ? this.flags |= 1024 : this.flags &= -1025;
    }
    get containsEsc() {
      return (this.flags & 2048) > 0;
    }
    set containsEsc(e) {
      e ? this.flags |= 2048 : this.flags &= -2049;
    }
    get hasTopLevelAwait() {
      return (this.flags & 4096) > 0;
    }
    set hasTopLevelAwait(e) {
      e ? this.flags |= 4096 : this.flags &= -4097;
    }
    curPosition() {
      return new rl(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex);
    }
    clone() {
      let e = new t();
      return e.flags = this.flags, e.startIndex = this.startIndex, e.curLine = this.curLine, e.lineStart = this.lineStart, e.startLoc = this.
      startLoc, e.endLoc = this.endLoc, e.errors = this.errors.slice(), e.potentialArrowAt = this.potentialArrowAt, e.noArrowAt = this.noArrowAt.
      slice(), e.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), e.topicContext = this.topicContext, e.labels = this.labels.
      slice(), e.commentsLen = this.commentsLen, e.commentStack = this.commentStack.slice(), e.pos = this.pos, e.type = this.type, e.value =
      this.value, e.start = this.start, e.end = this.end, e.lastTokEndLoc = this.lastTokEndLoc, e.lastTokStartLoc = this.lastTokStartLoc, e.
      context = this.context.slice(), e.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, e.strictErrors = this.strictErrors,
      e.tokensLength = this.tokensLength, e;
    }
  }, iVe = /* @__PURE__ */ n(function(e) {
    return e >= 48 && e <= 57;
  }, "isDigit"), o$ = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, Wx = {
    bin: /* @__PURE__ */ n((t) => t === 48 || t === 49, "bin"),
    oct: /* @__PURE__ */ n((t) => t >= 48 && t <= 55, "oct"),
    dec: /* @__PURE__ */ n((t) => t >= 48 && t <= 57, "dec"),
    hex: /* @__PURE__ */ n((t) => t >= 48 && t <= 57 || t >= 65 && t <= 70 || t >= 97 && t <= 102, "hex")
  };
  function l$(t, e, s, r, i, a) {
    let o = s, l = r, u = i, c = "", p = null, h = s, {
      length: f
    } = e;
    for (; ; ) {
      if (s >= f) {
        a.unterminated(o, l, u), c += e.slice(h, s);
        break;
      }
      let d = e.charCodeAt(s);
      if (nVe(t, d, e, s)) {
        c += e.slice(h, s);
        break;
      }
      if (d === 92) {
        c += e.slice(h, s);
        let m = aVe(e, s, r, i, t === "template", a);
        m.ch === null && !p ? p = {
          pos: s,
          lineStart: r,
          curLine: i
        } : c += m.ch, {
          pos: s,
          lineStart: r,
          curLine: i
        } = m, h = s;
      } else d === 8232 || d === 8233 ? (++s, ++i, r = s) : d === 10 || d === 13 ? t === "template" ? (c += e.slice(h, s) + `
`, ++s, d === 13 && e.charCodeAt(s) === 10 && ++s, ++i, h = r = s) : a.unterminated(o, l, u) : ++s;
    }
    return {
      pos: s,
      str: c,
      firstInvalidLoc: p,
      lineStart: r,
      curLine: i,
      containsInvalid: !!p
    };
  }
  n(l$, "readStringContents");
  function nVe(t, e, s, r) {
    return t === "template" ? e === 96 || e === 36 && s.charCodeAt(r + 1) === 123 : e === (t === "double" ? 34 : 39);
  }
  n(nVe, "isStringEnd");
  function aVe(t, e, s, r, i, a) {
    let o = !i;
    e++;
    let l = /* @__PURE__ */ n((c) => ({
      pos: e,
      ch: c,
      lineStart: s,
      curLine: r
    }), "res"), u = t.charCodeAt(e++);
    switch (u) {
      case 110:
        return l(`
`);
      case 114:
        return l("\r");
      case 120: {
        let c;
        return {
          code: c,
          pos: e
        } = Bk(t, e, s, r, 2, !1, o, a), l(c === null ? null : String.fromCharCode(c));
      }
      case 117: {
        let c;
        return {
          code: c,
          pos: e
        } = v$(t, e, s, r, o, a), l(c === null ? null : String.fromCodePoint(c));
      }
      case 116:
        return l("	");
      case 98:
        return l("\b");
      case 118:
        return l("\v");
      case 102:
        return l("\f");
      case 13:
        t.charCodeAt(e) === 10 && ++e;
      case 10:
        s = e, ++r;
      case 8232:
      case 8233:
        return l("");
      case 56:
      case 57:
        if (i)
          return l(null);
        a.strictNumericEscape(e - 1, s, r);
      default:
        if (u >= 48 && u <= 55) {
          let c = e - 1, h = /^[0-7]+/.exec(t.slice(c, e + 2))[0], f = parseInt(h, 8);
          f > 255 && (h = h.slice(0, -1), f = parseInt(h, 8)), e += h.length - 1;
          let d = t.charCodeAt(e);
          if (h !== "0" || d === 56 || d === 57) {
            if (i)
              return l(null);
            a.strictNumericEscape(c, s, r);
          }
          return l(String.fromCharCode(f));
        }
        return l(String.fromCharCode(u));
    }
  }
  n(aVe, "readEscapedChar");
  function Bk(t, e, s, r, i, a, o, l) {
    let u = e, c;
    return {
      n: c,
      pos: e
    } = A$(t, e, s, r, 16, i, a, !1, l, !o), c === null && (o ? l.invalidEscapeSequence(u, s, r) : e = u - 1), {
      code: c,
      pos: e
    };
  }
  n(Bk, "readHexChar");
  function A$(t, e, s, r, i, a, o, l, u, c) {
    let p = e, h = i === 16 ? o$.hex : o$.decBinOct, f = i === 16 ? Wx.hex : i === 10 ? Wx.dec : i === 8 ? Wx.oct : Wx.bin, d = !1, m = 0;
    for (let y = 0, T = a ?? 1 / 0; y < T; ++y) {
      let b = t.charCodeAt(e), E;
      if (b === 95 && l !== "bail") {
        let V = t.charCodeAt(e - 1), W = t.charCodeAt(e + 1);
        if (l) {
          if (Number.isNaN(W) || !f(W) || h.has(V) || h.has(W)) {
            if (c) return {
              n: null,
              pos: e
            };
            u.unexpectedNumericSeparator(e, s, r);
          }
        } else {
          if (c) return {
            n: null,
            pos: e
          };
          u.numericSeparatorInEscapeSequence(e, s, r);
        }
        ++e;
        continue;
      }
      if (b >= 97 ? E = b - 97 + 10 : b >= 65 ? E = b - 65 + 10 : iVe(b) ? E = b - 48 : E = 1 / 0, E >= i) {
        if (E <= 9 && c)
          return {
            n: null,
            pos: e
          };
        if (E <= 9 && u.invalidDigit(e, s, r, i))
          E = 0;
        else if (o)
          E = 0, d = !0;
        else
          break;
      }
      ++e, m = m * i + E;
    }
    return e === p || a != null && e - p !== a || d ? {
      n: null,
      pos: e
    } : {
      n: m,
      pos: e
    };
  }
  n(A$, "readInt");
  function v$(t, e, s, r, i, a) {
    let o = t.charCodeAt(e), l;
    if (o === 123) {
      if (++e, {
        code: l,
        pos: e
      } = Bk(t, e, s, r, t.indexOf("}", e) - e, !0, i, a), ++e, l !== null && l > 1114111)
        if (i)
          a.invalidCodePoint(e, s, r);
        else
          return {
            code: null,
            pos: e
          };
    } else
      ({
        code: l,
        pos: e
      } = Bk(t, e, s, r, 4, !1, i, a));
    return {
      code: l,
      pos: e
    };
  }
  n(v$, "readCodePoint");
  function gg(t, e, s) {
    return new rl(s, t - e, t);
  }
  n(gg, "buildPosition");
  var oVe = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]), sl = class {
    static {
      n(this, "Token");
    }
    constructor(e) {
      let s = e.startIndex || 0;
      this.type = e.type, this.value = e.value, this.start = s + e.start, this.end = s + e.end, this.loc = new Ad(e.startLoc, e.endLoc);
    }
  }, Mk = class extends _k {
    static {
      n(this, "Tokenizer");
    }
    constructor(e, s) {
      super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
        invalidDigit: /* @__PURE__ */ n((r, i, a, o) => this.optionFlags & 1024 ? (this.raise(Q.InvalidDigit, gg(r, i, a), {
          radix: o
        }), !0) : !1, "invalidDigit"),
        numericSeparatorInEscapeSequence: this.errorBuilder(Q.NumericSeparatorInEscapeSequence),
        unexpectedNumericSeparator: this.errorBuilder(Q.UnexpectedNumericSeparator)
      }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
        invalidEscapeSequence: this.errorBuilder(Q.InvalidEscapeSequence),
        invalidCodePoint: this.errorBuilder(Q.InvalidCodePoint)
      }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: /* @__PURE__ */ n((r, i, a) => {
          this.recordStrictModeErrors(Q.StrictNumericEscape, gg(r, i, a));
        }, "strictNumericEscape"),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(Q.UnterminatedString, gg(r - 1, i, a));
        }, "unterminated")
      }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: this.errorBuilder(Q.StrictNumericEscape),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(Q.UnterminatedTemplate, gg(r, i, a));
        }, "unterminated")
      }), this.state = new Lk(), this.state.init(e), this.input = s, this.length = s.length, this.comments = [], this.isLookahead = !1;
    }
    pushToken(e) {
      this.tokens.length = this.state.tokensLength, this.tokens.push(e), ++this.state.tokensLength;
    }
    next() {
      this.checkKeywordEscapes(), this.optionFlags & 128 && this.pushToken(new sl(this.state)), this.state.lastTokEndLoc = this.state.endLoc,
      this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
    }
    eat(e) {
      return this.match(e) ? (this.next(), !0) : !1;
    }
    match(e) {
      return this.state.type === e;
    }
    createLookaheadState(e) {
      return {
        pos: e.pos,
        value: null,
        type: e.type,
        start: e.start,
        end: e.end,
        context: [this.curContext()],
        inType: e.inType,
        startLoc: e.startLoc,
        lastTokEndLoc: e.lastTokEndLoc,
        curLine: e.curLine,
        lineStart: e.lineStart,
        curPosition: e.curPosition
      };
    }
    lookahead() {
      let e = this.state;
      this.state = this.createLookaheadState(e), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
      let s = this.state;
      return this.state = e, s;
    }
    nextTokenStart() {
      return this.nextTokenStartSince(this.state.pos);
    }
    nextTokenStartSince(e) {
      return Ak.lastIndex = e, Ak.test(this.input) ? Ak.lastIndex : e;
    }
    lookaheadCharCode() {
      return this.input.charCodeAt(this.nextTokenStart());
    }
    nextTokenInLineStart() {
      return this.nextTokenInLineStartSince(this.state.pos);
    }
    nextTokenInLineStartSince(e) {
      return vk.lastIndex = e, vk.test(this.input) ? vk.lastIndex : e;
    }
    lookaheadInLineCharCode() {
      return this.input.charCodeAt(this.nextTokenInLineStart());
    }
    codePointAtPos(e) {
      let s = this.input.charCodeAt(e);
      if ((s & 64512) === 55296 && ++e < this.input.length) {
        let r = this.input.charCodeAt(e);
        (r & 64512) === 56320 && (s = 65536 + ((s & 1023) << 10) + (r & 1023));
      }
      return s;
    }
    setStrict(e) {
      this.state.strict = e, e && (this.state.strictErrors.forEach(([s, r]) => this.raise(s, r)), 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(e) {
      let s;
      this.isLookahead || (s = this.state.curPosition());
      let r = this.state.pos, i = this.input.indexOf(e, r + 2);
      if (i === -1)
        throw this.raise(Q.UnterminatedComment, this.state.curPosition());
      for (this.state.pos = i + e.length, Vx.lastIndex = r + 2; Vx.test(this.input) && Vx.lastIndex <= i; )
        ++this.state.curLine, this.state.lineStart = Vx.lastIndex;
      if (this.isLookahead) return;
      let a = {
        type: "CommentBlock",
        value: this.input.slice(r + 2, i),
        start: this.sourceToOffsetPos(r),
        end: this.sourceToOffsetPos(i + e.length),
        loc: new Ad(s, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(a), a;
    }
    skipLineComment(e) {
      let s = this.state.pos, r;
      this.isLookahead || (r = this.state.curPosition());
      let i = this.input.charCodeAt(this.state.pos += e);
      if (this.state.pos < this.length)
        for (; !Pd(i) && ++this.state.pos < this.length; )
          i = this.input.charCodeAt(this.state.pos);
      if (this.isLookahead) return;
      let a = this.state.pos, l = {
        type: "CommentLine",
        value: this.input.slice(s + e, a),
        start: this.sourceToOffsetPos(s),
        end: this.sourceToOffsetPos(a),
        loc: new Ad(r, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(l), l;
    }
    skipSpace() {
      let e = this.state.pos, s = this.optionFlags & 2048 ? [] : null;
      e: for (; this.state.pos < this.length; ) {
        let r = this.input.charCodeAt(this.state.pos);
        switch (r) {
          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: {
                let i = this.skipBlockComment("*/");
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              case 47: {
                let i = this.skipLineComment(2);
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (rVe(r))
              ++this.state.pos;
            else if (r === 45 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 45 && this.input.charCodeAt(i + 2) === 62 && (e === 0 || this.state.lineStart > e)) {
                let a = this.skipLineComment(3);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else if (r === 60 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 33 && this.input.charCodeAt(i + 2) === 45 && this.input.charCodeAt(i + 3) === 45) {
                let a = this.skipLineComment(4);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else
              break e;
        }
      }
      if (s?.length > 0) {
        let r = this.state.pos, i = {
          start: this.sourceToOffsetPos(e),
          end: this.sourceToOffsetPos(r),
          comments: s,
          leadingNode: null,
          trailingNode: null,
          containingNode: null
        };
        this.state.commentStack.push(i);
      }
    }
    finishToken(e, s) {
      this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
      let r = this.state.type;
      this.state.type = e, this.state.value = s, this.isLookahead || this.updateContext(r);
    }
    replaceToken(e) {
      this.state.type = e, this.updateContext();
    }
    readToken_numberSign() {
      if (this.state.pos === 0 && this.readToken_interpreter())
        return;
      let e = this.state.pos + 1, s = this.codePointAtPos(e);
      if (s >= 48 && s <= 57)
        throw this.raise(Q.UnexpectedDigitAfterHash, this.state.curPosition());
      if (s === 123 || s === 91 && this.hasPlugin("recordAndTuple")) {
        if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
          throw this.raise(s === 123 ? Q.RecordExpressionHashIncorrectStartSyntaxType : Q.TupleExpressionHashIncorrectStartSyntaxType, this.
          state.curPosition());
        this.state.pos += 2, s === 123 ? this.finishToken(7) : this.finishToken(1);
      } else eu(s) ? (++this.state.pos, this.finishToken(139, this.readWord1(s))) : s === 92 ? (++this.state.pos, this.finishToken(139, this.
      readWord1())) : this.finishOp(27, 1);
    }
    readToken_dot() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      if (e >= 48 && e <= 57) {
        this.readNumber(!0);
        return;
      }
      e === 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 e = this.input.charCodeAt(this.state.pos + 1);
      if (e !== 33) return !1;
      let s = this.state.pos;
      for (this.state.pos += 1; !Pd(e) && ++this.state.pos < this.length; )
        e = this.input.charCodeAt(this.state.pos);
      let r = this.input.slice(s + 2, this.state.pos);
      return this.finishToken(28, r), !0;
    }
    readToken_mult_modulo(e) {
      let s = e === 42 ? 55 : 54, r = 1, i = this.input.charCodeAt(this.state.pos + 1);
      e === 42 && i === 42 && (r++, i = this.input.charCodeAt(this.state.pos + 2), s = 57), i === 61 && !this.state.inType && (r++, s = e ===
      37 ? 33 : 30), this.finishOp(s, r);
    }
    readToken_pipe_amp(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(e === 124 ? 41 : 42, 2);
        return;
      }
      if (e === 124) {
        if (s === 62) {
          this.finishOp(39, 2);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 125) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(Q.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(9);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 93) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(Q.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(4);
          return;
        }
      }
      if (s === 61) {
        this.finishOp(30, 2);
        return;
      }
      this.finishOp(e === 124 ? 43 : 45, 1);
    }
    readToken_caret() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      e === 61 && !this.state.inType ? this.finishOp(32, 2) : e === 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(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.finishOp(34, 2);
        return;
      }
      s === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
    }
    readToken_lt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 60) {
        if (this.input.charCodeAt(e + 2) === 61) {
          this.finishOp(30, 3);
          return;
        }
        this.finishOp(51, 2);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(47, 1);
    }
    readToken_gt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 62) {
        let r = this.input.charCodeAt(e + 2) === 62 ? 3 : 2;
        if (this.input.charCodeAt(e + r) === 61) {
          this.finishOp(30, r + 1);
          return;
        }
        this.finishOp(52, r);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(48, 1);
    }
    readToken_eq_excl(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === 61) {
        this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
        return;
      }
      if (e === 61 && s === 62) {
        this.state.pos += 2, this.finishToken(19);
        return;
      }
      this.finishOp(e === 61 ? 29 : 35, 1);
    }
    readToken_question() {
      let e = this.input.charCodeAt(this.state.pos + 1), s = this.input.charCodeAt(this.state.pos + 2);
      e === 63 ? s === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : e === 46 && !(s >= 48 && s <= 57) ? (this.state.pos += 2, this.finishToken(
      18)) : (++this.state.pos, this.finishToken(17));
    }
    getTokenFromCode(e) {
      switch (e) {
        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(Q.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(Q.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: {
          let s = this.input.charCodeAt(this.state.pos + 1);
          if (s === 120 || s === 88) {
            this.readRadixNumber(16);
            return;
          }
          if (s === 111 || s === 79) {
            this.readRadixNumber(8);
            return;
          }
          if (s === 98 || s === 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(e);
          return;
        case 47:
          this.readToken_slash();
          return;
        case 37:
        case 42:
          this.readToken_mult_modulo(e);
          return;
        case 124:
        case 38:
          this.readToken_pipe_amp(e);
          return;
        case 94:
          this.readToken_caret();
          return;
        case 43:
        case 45:
          this.readToken_plus_min(e);
          return;
        case 60:
          this.readToken_lt();
          return;
        case 62:
          this.readToken_gt();
          return;
        case 61:
        case 33:
          this.readToken_eq_excl(e);
          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 (eu(e)) {
            this.readWord(e);
            return;
          }
      }
      throw this.raise(Q.InvalidOrUnexpectedToken, this.state.curPosition(), {
        unexpected: String.fromCodePoint(e)
      });
    }
    finishOp(e, s) {
      let r = this.input.slice(this.state.pos, this.state.pos + s);
      this.state.pos += s, this.finishToken(e, r);
    }
    readRegexp() {
      let e = this.state.startLoc, s = this.state.start + 1, r, i, {
        pos: a
      } = this.state;
      for (; ; ++a) {
        if (a >= this.length)
          throw this.raise(Q.UnterminatedRegExp, Sn(e, 1));
        let c = this.input.charCodeAt(a);
        if (Pd(c))
          throw this.raise(Q.UnterminatedRegExp, Sn(e, 1));
        if (r)
          r = !1;
        else {
          if (c === 91)
            i = !0;
          else if (c === 93 && i)
            i = !1;
          else if (c === 47 && !i)
            break;
          r = c === 92;
        }
      }
      let o = this.input.slice(s, a);
      ++a;
      let l = "", u = /* @__PURE__ */ n(() => Sn(e, a + 2 - s), "nextPos");
      for (; a < this.length; ) {
        let c = this.codePointAtPos(a), p = String.fromCharCode(c);
        if (oVe.has(c))
          c === 118 ? l.includes("u") && this.raise(Q.IncompatibleRegExpUVFlags, u()) : c === 117 && l.includes("v") && this.raise(Q.IncompatibleRegExpUVFlags,
          u()), l.includes(p) && this.raise(Q.DuplicateRegExpFlags, u());
        else if (Sd(c) || c === 92)
          this.raise(Q.MalformedRegExpFlags, u());
        else
          break;
        ++a, l += p;
      }
      this.state.pos = a, this.finishToken(138, {
        pattern: o,
        flags: l
      });
    }
    readInt(e, s, r = !1, i = !0) {
      let {
        n: a,
        pos: o
      } = A$(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, s, r, i, this.errorHandlers_readInt, !1);
      return this.state.pos = o, a;
    }
    readRadixNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1;
      this.state.pos += 2;
      let a = this.readInt(e);
      a == null && this.raise(Q.InvalidDigit, Sn(r, 2), {
        radix: e
      });
      let o = this.input.charCodeAt(this.state.pos);
      if (o === 110)
        ++this.state.pos, i = !0;
      else if (o === 109)
        throw this.raise(Q.InvalidDecimal, r);
      if (eu(this.codePointAtPos(this.state.pos)))
        throw this.raise(Q.NumberIdentifier, this.state.curPosition());
      if (i) {
        let l = this.input.slice(s, this.state.pos).replace(/[_n]/g, "");
        this.finishToken(136, l);
        return;
      }
      this.finishToken(135, a);
    }
    readNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1, a = !1, o = !1, l = !1;
      !e && this.readInt(10) === null && this.raise(Q.InvalidNumber, this.state.curPosition());
      let u = this.state.pos - s >= 2 && this.input.charCodeAt(s) === 48;
      if (u) {
        let d = this.input.slice(s, this.state.pos);
        if (this.recordStrictModeErrors(Q.StrictOctalLiteral, r), !this.state.strict) {
          let m = d.indexOf("_");
          m > 0 && this.raise(Q.ZeroDigitNumericSeparator, Sn(r, m));
        }
        l = u && !/[89]/.test(d);
      }
      let c = this.input.charCodeAt(this.state.pos);
      if (c === 46 && !l && (++this.state.pos, this.readInt(10), i = !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(
      Q.InvalidOrMissingExponent, r), i = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((i || u) && this.raise(Q.InvalidBigIntLiteral,
      r), ++this.state.pos, a = !0), c === 109) {
        this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(Q.InvalidDecimal, r), ++this.state.pos;
        var p = !0;
      }
      if (eu(this.codePointAtPos(this.state.pos)))
        throw this.raise(Q.NumberIdentifier, this.state.curPosition());
      let h = this.input.slice(s, this.state.pos).replace(/[_mn]/g, "");
      if (a) {
        this.finishToken(136, h);
        return;
      }
      if (p) {
        this.finishToken(137, h);
        return;
      }
      let f = l ? parseInt(h, 8) : parseFloat(h);
      this.finishToken(135, f);
    }
    readCodePoint(e) {
      let {
        code: s,
        pos: r
      } = v$(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, this.errorHandlers_readCodePoint);
      return this.state.pos = r, s;
    }
    readString(e) {
      let {
        str: s,
        pos: r,
        curLine: i,
        lineStart: a
      } = l$(e === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
      this.state.pos = r + 1, this.state.lineStart = a, this.state.curLine = i, this.finishToken(134, s);
    }
    readTemplateContinuation() {
      this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
    }
    readTemplateToken() {
      let e = this.input[this.state.pos], {
        str: s,
        firstInvalidLoc: r,
        pos: i,
        curLine: a,
        lineStart: o
      } = l$("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
      this.state.pos = i + 1, this.state.lineStart = o, this.state.curLine = a, r && (this.state.firstInvalidTemplateEscapePos = new rl(r.curLine,
      r.pos - r.lineStart, this.sourceToOffsetPos(r.pos))), this.input.codePointAt(i) === 96 ? this.finishToken(24, r ? null : e + s + "`") :
      (this.state.pos++, this.finishToken(25, r ? null : e + s + "${"));
    }
    recordStrictModeErrors(e, s) {
      let r = s.index;
      this.state.strict && !this.state.strictErrors.has(r) ? this.raise(e, s) : this.state.strictErrors.set(r, [e, s]);
    }
    readWord1(e) {
      this.state.containsEsc = !1;
      let s = "", r = this.state.pos, i = this.state.pos;
      for (e !== void 0 && (this.state.pos += e <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
        let a = this.codePointAtPos(this.state.pos);
        if (Sd(a))
          this.state.pos += a <= 65535 ? 1 : 2;
        else if (a === 92) {
          this.state.containsEsc = !0, s += this.input.slice(i, this.state.pos);
          let o = this.state.curPosition(), l = this.state.pos === r ? eu : Sd;
          if (this.input.charCodeAt(++this.state.pos) !== 117) {
            this.raise(Q.MissingUnicodeEscape, this.state.curPosition()), i = this.state.pos - 1;
            continue;
          }
          ++this.state.pos;
          let u = this.readCodePoint(!0);
          u !== null && (l(u) || this.raise(Q.EscapedCharNotAnIdentifier, o), s += String.fromCodePoint(u)), i = this.state.pos;
        } else
          break;
      }
      return s + this.input.slice(i, this.state.pos);
    }
    readWord(e) {
      let s = this.readWord1(e), r = Yk.get(s);
      r !== void 0 ? this.finishToken(r, Kc(r)) : this.finishToken(132, s);
    }
    checkKeywordEscapes() {
      let {
        type: e
      } = this.state;
      eD(e) && this.state.containsEsc && this.raise(Q.InvalidEscapedReservedWord, this.state.startLoc, {
        reservedWord: Kc(e)
      });
    }
    raise(e, s, r = {}) {
      let i = s instanceof rl ? s : s.loc.start, a = e(i, r);
      if (!(this.optionFlags & 1024)) throw a;
      return this.isLookahead || this.state.errors.push(a), a;
    }
    raiseOverwrite(e, s, r = {}) {
      let i = s instanceof rl ? s : s.loc.start, a = i.index, o = this.state.errors;
      for (let l = o.length - 1; l >= 0; l--) {
        let u = o[l];
        if (u.loc.index === a)
          return o[l] = e(i, r);
        if (u.loc.index < a) break;
      }
      return this.raise(e, s, r);
    }
    updateContext(e) {
    }
    unexpected(e, s) {
      throw this.raise(Q.UnexpectedToken, e ?? this.state.startLoc, {
        expected: s ? Kc(s) : null
      });
    }
    expectPlugin(e, s) {
      if (this.hasPlugin(e))
        return !0;
      throw this.raise(Q.MissingPlugin, s ?? this.state.startLoc, {
        missingPlugin: [e]
      });
    }
    expectOnePlugin(e) {
      if (!e.some((s) => this.hasPlugin(s)))
        throw this.raise(Q.MissingOneOfPlugins, this.state.startLoc, {
          missingPlugin: e
        });
    }
    errorBuilder(e) {
      return (s, r, i) => {
        this.raise(e, gg(s, r, i));
      };
    }
  }, Fk = class {
    static {
      n(this, "ClassScope");
    }
    constructor() {
      this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
    }
  }, jk = class {
    static {
      n(this, "ClassScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = e;
    }
    current() {
      return this.stack[this.stack.length - 1];
    }
    enter() {
      this.stack.push(new Fk());
    }
    exit() {
      let e = this.stack.pop(), s = this.current();
      for (let [r, i] of Array.from(e.undefinedPrivateNames))
        s ? s.undefinedPrivateNames.has(r) || s.undefinedPrivateNames.set(r, i) : this.parser.raise(Q.InvalidPrivateFieldResolution, i, {
          identifierName: r
        });
    }
    declarePrivateName(e, s, r) {
      let {
        privateNames: i,
        loneAccessors: a,
        undefinedPrivateNames: o
      } = this.current(), l = i.has(e);
      if (s & 3) {
        let u = l && a.get(e);
        if (u) {
          let c = u & 4, p = s & 4, h = u & 3, f = s & 3;
          l = h === f || c !== p, l || a.delete(e);
        } else l || a.set(e, s);
      }
      l && this.parser.raise(Q.PrivateNameRedeclaration, r, {
        identifierName: e
      }), i.add(e), o.delete(e);
    }
    usePrivateName(e, s) {
      let r;
      for (r of this.stack)
        if (r.privateNames.has(e)) return;
      r ? r.undefinedPrivateNames.set(e, s) : this.parser.raise(Q.InvalidPrivateFieldResolution, s, {
        identifierName: e
      });
    }
  }, vd = class {
    static {
      n(this, "ExpressionScope");
    }
    constructor(e = 0) {
      this.type = e;
    }
    canBeArrowParameterDeclaration() {
      return this.type === 2 || this.type === 1;
    }
    isCertainlyParameterDeclaration() {
      return this.type === 3;
    }
  }, zx = class extends vd {
    static {
      n(this, "ArrowHeadParsingScope");
    }
    constructor(e) {
      super(e), this.declarationErrors = /* @__PURE__ */ new Map();
    }
    recordDeclarationError(e, s) {
      let r = s.index;
      this.declarationErrors.set(r, [e, s]);
    }
    clearDeclarationError(e) {
      this.declarationErrors.delete(e);
    }
    iterateErrors(e) {
      this.declarationErrors.forEach(e);
    }
  }, Rk = class {
    static {
      n(this, "ExpressionScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [new vd()], this.parser = e;
    }
    enter(e) {
      this.stack.push(e);
    }
    exit() {
      this.stack.pop();
    }
    recordParameterInitializerError(e, s) {
      let r = s.loc.start, {
        stack: i
      } = this, a = i.length - 1, o = i[a];
      for (; !o.isCertainlyParameterDeclaration(); ) {
        if (o.canBeArrowParameterDeclaration())
          o.recordDeclarationError(e, r);
        else
          return;
        o = i[--a];
      }
      this.parser.raise(e, r);
    }
    recordArrowParameterBindingError(e, s) {
      let {
        stack: r
      } = this, i = r[r.length - 1], a = s.loc.start;
      if (i.isCertainlyParameterDeclaration())
        this.parser.raise(e, a);
      else if (i.canBeArrowParameterDeclaration())
        i.recordDeclarationError(e, a);
      else
        return;
    }
    recordAsyncArrowParametersError(e) {
      let {
        stack: s
      } = this, r = s.length - 1, i = s[r];
      for (; i.canBeArrowParameterDeclaration(); )
        i.type === 2 && i.recordDeclarationError(Q.AwaitBindingIdentifier, e), i = s[--r];
    }
    validateAsPattern() {
      let {
        stack: e
      } = this, s = e[e.length - 1];
      s.canBeArrowParameterDeclaration() && s.iterateErrors(([r, i]) => {
        this.parser.raise(r, i);
        let a = e.length - 2, o = e[a];
        for (; o.canBeArrowParameterDeclaration(); )
          o.clearDeclarationError(i.index), o = e[--a];
      });
    }
  };
  function lVe() {
    return new vd(3);
  }
  n(lVe, "newParameterDeclarationScope");
  function uVe() {
    return new zx(1);
  }
  n(uVe, "newArrowHeadScope");
  function cVe() {
    return new zx(2);
  }
  n(cVe, "newAsyncArrowScope");
  function C$() {
    return new vd();
  }
  n(C$, "newExpressionScope");
  var qk = class {
    static {
      n(this, "ProductionParameterHandler");
    }
    constructor() {
      this.stacks = [];
    }
    enter(e) {
      this.stacks.push(e);
    }
    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 Jx(t, e) {
    return (t ? 2 : 0) | (e ? 1 : 0);
  }
  n(Jx, "functionFlags");
  var Uk = class extends Mk {
    static {
      n(this, "UtilParser");
    }
    addExtra(e, s, r, i = !0) {
      if (!e) return;
      let {
        extra: a
      } = e;
      a == null && (a = {}, e.extra = a), i ? a[s] = r : Object.defineProperty(a, s, {
        enumerable: i,
        value: r
      });
    }
    isContextual(e) {
      return this.state.type === e && !this.state.containsEsc;
    }
    isUnparsedContextual(e, s) {
      let r = e + s.length;
      if (this.input.slice(e, r) === s) {
        let i = this.input.charCodeAt(r);
        return !(Sd(i) || (i & 64512) === 55296);
      }
      return !1;
    }
    isLookaheadContextual(e) {
      let s = this.nextTokenStart();
      return this.isUnparsedContextual(s, e);
    }
    eatContextual(e) {
      return this.isContextual(e) ? (this.next(), !0) : !1;
    }
    expectContextual(e, s) {
      if (!this.eatContextual(e)) {
        if (s != null)
          throw this.raise(s, this.state.startLoc);
        this.unexpected(null, e);
      }
    }
    canInsertSemicolon() {
      return this.match(140) || this.match(8) || this.hasPrecedingLineBreak();
    }
    hasPrecedingLineBreak() {
      return a$(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start);
    }
    hasFollowingLineBreak() {
      return a$(this.input, this.state.end, this.nextTokenStart());
    }
    isLineTerminator() {
      return this.eat(13) || this.canInsertSemicolon();
    }
    semicolon(e = !0) {
      (e ? this.isLineTerminator() : this.eat(13)) || this.raise(Q.MissingSemicolon, this.state.lastTokEndLoc);
    }
    expect(e, s) {
      this.eat(e) || this.unexpected(s, e);
    }
    tryParse(e, s = this.state.clone()) {
      let r = {
        node: null
      };
      try {
        let i = e((a = null) => {
          throw r.node = a, r;
        });
        if (this.state.errors.length > s.errors.length) {
          let a = this.state;
          return this.state = s, this.state.tokensLength = a.tokensLength, {
            node: i,
            error: a.errors[s.errors.length],
            thrown: !1,
            aborted: !1,
            failState: a
          };
        }
        return {
          node: i,
          error: null,
          thrown: !1,
          aborted: !1,
          failState: null
        };
      } catch (i) {
        let a = this.state;
        if (this.state = s, i instanceof SyntaxError)
          return {
            node: null,
            error: i,
            thrown: !0,
            aborted: !1,
            failState: a
          };
        if (i === r)
          return {
            node: r.node,
            error: null,
            thrown: !1,
            aborted: !0,
            failState: a
          };
        throw i;
      }
    }
    checkExpressionErrors(e, s) {
      if (!e) return !1;
      let {
        shorthandAssignLoc: r,
        doubleProtoLoc: i,
        privateKeyLoc: a,
        optionalParametersLoc: o
      } = e, l = !!r || !!i || !!o || !!a;
      if (!s)
        return l;
      r != null && this.raise(Q.InvalidCoverInitializedName, r), i != null && this.raise(Q.DuplicateProto, i), a != null && this.raise(Q.UnexpectedPrivateField,
      a), o != null && this.unexpected(o);
    }
    isLiteralPropertyName() {
      return y$(this.state.type);
    }
    isPrivateName(e) {
      return e.type === "PrivateName";
    }
    getPrivateNameSV(e) {
      return e.id.name;
    }
    hasPropertyAsPrivateName(e) {
      return (e.type === "MemberExpression" || e.type === "OptionalMemberExpression") && this.isPrivateName(e.property);
    }
    isObjectProperty(e) {
      return e.type === "ObjectProperty";
    }
    isObjectMethod(e) {
      return e.type === "ObjectMethod";
    }
    initializeScopes(e = this.options.sourceType === "module") {
      let s = this.state.labels;
      this.state.labels = [];
      let r = this.exportedIdentifiers;
      this.exportedIdentifiers = /* @__PURE__ */ new Set();
      let i = this.inModule;
      this.inModule = e;
      let a = this.scope, o = this.getScopeHandler();
      this.scope = new o(this, e);
      let l = this.prodParam;
      this.prodParam = new qk();
      let u = this.classScope;
      this.classScope = new jk(this);
      let c = this.expressionScope;
      return this.expressionScope = new Rk(this), () => {
        this.state.labels = s, this.exportedIdentifiers = r, this.inModule = i, this.scope = a, this.prodParam = l, this.classScope = u, this.
        expressionScope = c;
      };
    }
    enterInitialScopes() {
      let e = 0;
      this.inModule && (e |= 2), this.scope.enter(1), this.prodParam.enter(e);
    }
    checkDestructuringPrivate(e) {
      let {
        privateKeyLoc: s
      } = e;
      s !== null && this.expectPlugin("destructuringPrivate", s);
    }
  }, Ed = class {
    static {
      n(this, "ExpressionErrors");
    }
    constructor() {
      this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
    }
  }, Cd = class {
    static {
      n(this, "Node");
    }
    constructor(e, s, r) {
      this.type = "", this.start = s, this.end = 0, this.loc = new Ad(r), e?.optionFlags & 64 && (this.range = [s, 0]), e != null && e.filename &&
      (this.loc.filename = e.filename);
    }
  }, rD = Cd.prototype;
  rD.__clone = function() {
    let t = new Cd(void 0, this.start, this.loc.start), e = Object.keys(this);
    for (let s = 0, r = e.length; s < r; s++) {
      let i = e[s];
      i !== "leadingComments" && i !== "trailingComments" && i !== "innerComments" && (t[i] = this[i]);
    }
    return t;
  };
  function pVe(t) {
    return su(t);
  }
  n(pVe, "clonePlaceholder");
  function su(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o,
      name: l
    } = t, u = Object.create(rD);
    return u.type = e, u.start = s, u.end = r, u.loc = i, u.range = a, u.extra = o, u.name = l, e === "Placeholder" && (u.expectedNode = t.expectedNode),
    u;
  }
  n(su, "cloneIdentifier");
  function hVe(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o
    } = t;
    if (e === "Placeholder")
      return pVe(t);
    let l = Object.create(rD);
    return l.type = e, l.start = s, l.end = r, l.loc = i, l.range = a, t.raw !== void 0 ? l.raw = t.raw : l.extra = o, l.value = t.value, l;
  }
  n(hVe, "cloneStringLiteral");
  var Kk = class extends Uk {
    static {
      n(this, "NodeUtils");
    }
    startNode() {
      let e = this.state.startLoc;
      return new Cd(this, e.index, e);
    }
    startNodeAt(e) {
      return new Cd(this, e.index, e);
    }
    startNodeAtNode(e) {
      return this.startNodeAt(e.loc.start);
    }
    finishNode(e, s) {
      return this.finishNodeAt(e, s, this.state.lastTokEndLoc);
    }
    finishNodeAt(e, s, r) {
      return e.type = s, e.end = r.index, e.loc.end = r, this.optionFlags & 64 && (e.range[1] = r.index), this.optionFlags & 2048 && this.processComment(
      e), e;
    }
    resetStartLocation(e, s) {
      e.start = s.index, e.loc.start = s, this.optionFlags & 64 && (e.range[0] = s.index);
    }
    resetEndLocation(e, s = this.state.lastTokEndLoc) {
      e.end = s.index, e.loc.end = s, this.optionFlags & 64 && (e.range[1] = s.index);
    }
    resetStartLocationFromNode(e, s) {
      this.resetStartLocation(e, s.loc.start);
    }
  }, fVe = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "sta\
tic", "string", "true", "typeof", "void"]), Lt = tu`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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Cannot overwrite reserved type ${t}.`, "AssignReservedType"),
    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: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Boolean enum members need to be initialized. Use either \`${t} = true,\` or \`${t} = false,\` in enum \`${e}\`.`, "EnumBooleanMem\
berNotInitialized"),
    EnumDuplicateMemberName: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Enum member names need to be unique, but the name \`${t}\` has already been used before in enum \`${e}\`.`, "EnumDuplicateMemberN\
ame"),
    EnumInconsistentMemberValues: /* @__PURE__ */ n(({
      enumName: t
    }) => `Enum \`${t}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, num\
bers, or strings) for all member initializers.`, "EnumInconsistentMemberValues"),
    EnumInvalidExplicitType: /* @__PURE__ */ n(({
      invalidEnumType: t,
      enumName: e
    }) => `Enum type \`${t}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${e}\`.`, "EnumInvalidEx\
plicitType"),
    EnumInvalidExplicitTypeUnknownSupplied: /* @__PURE__ */ n(({
      enumName: t
    }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`, "EnumInvalidEx\
plicitTypeUnknownSupplied"),
    EnumInvalidMemberInitializerPrimaryType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      explicitType: s
    }) => `Enum \`${t}\` has type \`${s}\`, so the initializer of \`${e}\` needs to be a ${s} literal.`, "EnumInvalidMemberInitializerPrimar\
yType"),
    EnumInvalidMemberInitializerSymbolType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Symbol enum members cannot be initialized. Use \`${e},\` in enum \`${t}\`.`, "EnumInvalidMemberInitializerSymbolType"),
    EnumInvalidMemberInitializerUnknownType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `The enum member initializer for \`${e}\` needs to be a literal (either a boolean, number, or string) in enum \`${t}\`.`, "EnumInv\
alidMemberInitializerUnknownType"),
    EnumInvalidMemberName: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      suggestion: s
    }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${e}\`, consider using \`${s}\`, in enum \`${t}\
\`.`, "EnumInvalidMemberName"),
    EnumNumberMemberNotInitialized: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Number enum members need to be initialized, e.g. \`${e} = 1\` in enum \`${t}\`.`, "EnumNumberMemberNotInitialized"),
    EnumStringMemberInconsistentlyInitialized: /* @__PURE__ */ n(({
      enumName: t
    }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${t}\`.`, "EnumStringMemb\
erInconsistentlyInitialized"),
    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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Unexpected reserved type ${t}.`, "UnexpectedReservedType"),
    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: /* @__PURE__ */ n(({
      unsupportedExportKind: t,
      suggestion: e
    }) => `\`declare export ${t}\` is not supported. Use \`${e}\` instead.`, "UnsupportedDeclareExportKind"),
    UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
    UnterminatedFlowComment: "Unterminated flow-comment."
  });
  function dVe(t) {
    return t.type === "DeclareExportAllDeclaration" || t.type === "DeclareExportDeclaration" && (!t.declaration || t.declaration.type !== "T\
ypeAlias" && t.declaration.type !== "InterfaceDeclaration");
  }
  n(dVe, "isEsModuleType");
  function u$(t) {
    return t.importKind === "type" || t.importKind === "typeof";
  }
  n(u$, "hasTypeImportKind");
  var mVe = {
    const: "declare export var",
    let: "declare export var",
    type: "export type",
    interface: "export interface"
  };
  function yVe(t, e) {
    let s = [], r = [];
    for (let i = 0; i < t.length; i++)
      (e(t[i], i, t) ? s : r).push(t[i]);
    return [s, r];
  }
  n(yVe, "partition");
  var gVe = /\*?\s*@((?:no)?flow)\b/, TVe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "FlowParserMixin");
    }
    constructor(...s) {
      super(...s), this.flowPragma = void 0;
    }
    getScopeHandler() {
      return Dk;
    }
    shouldParseTypes() {
      return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
    }
    finishToken(s, r) {
      s !== 134 && s !== 13 && s !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(s, r);
    }
    addComment(s) {
      if (this.flowPragma === void 0) {
        let r = gVe.exec(s.value);
        if (r) if (r[1] === "flow")
          this.flowPragma = "flow";
        else if (r[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
      }
      super.addComment(s);
    }
    flowParseTypeInitialiser(s) {
      let r = this.state.inType;
      this.state.inType = !0, this.expect(s || 14);
      let i = this.flowParseType();
      return this.state.inType = r, i;
    }
    flowParsePredicate() {
      let s = this.startNode(), r = this.state.startLoc;
      return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > r.index + 1 && this.raise(Lt.UnexpectedSpaceBetweenModuloChecks,
      r), this.eat(10) ? (s.value = super.parseExpression(), this.expect(11), this.finishNode(s, "DeclaredPredicate")) : this.finishNode(s, "\
InferredPredicate");
    }
    flowParseTypeAndPredicateInitialiser() {
      let s = this.state.inType;
      this.state.inType = !0, this.expect(14);
      let r = null, i = null;
      return this.match(54) ? (this.state.inType = s, i = this.flowParsePredicate()) : (r = this.flowParseType(), this.state.inType = s, this.
      match(54) && (i = this.flowParsePredicate())), [r, i];
    }
    flowParseDeclareClass(s) {
      return this.next(), this.flowParseInterfaceish(s, !0), this.finishNode(s, "DeclareClass");
    }
    flowParseDeclareFunction(s) {
      this.next();
      let r = s.id = this.parseIdentifier(), i = this.startNode(), a = this.startNode();
      this.match(47) ? i.typeParameters = this.flowParseTypeParameterDeclaration() : i.typeParameters = null, this.expect(10);
      let o = this.flowParseFunctionTypeParams();
      return i.params = o.params, i.rest = o.rest, i.this = o._this, this.expect(11), [i.returnType, s.predicate] = this.flowParseTypeAndPredicateInitialiser(),
      a.typeAnnotation = this.finishNode(i, "FunctionTypeAnnotation"), r.typeAnnotation = this.finishNode(a, "TypeAnnotation"), this.resetEndLocation(
      r), this.semicolon(), this.scope.declareName(s.id.name, 2048, s.id.loc.start), this.finishNode(s, "DeclareFunction");
    }
    flowParseDeclare(s, r) {
      if (this.match(80))
        return this.flowParseDeclareClass(s);
      if (this.match(68))
        return this.flowParseDeclareFunction(s);
      if (this.match(74))
        return this.flowParseDeclareVariable(s);
      if (this.eatContextual(127))
        return this.match(16) ? this.flowParseDeclareModuleExports(s) : (r && this.raise(Lt.NestedDeclareModule, this.state.lastTokStartLoc),
        this.flowParseDeclareModule(s));
      if (this.isContextual(130))
        return this.flowParseDeclareTypeAlias(s);
      if (this.isContextual(131))
        return this.flowParseDeclareOpaqueType(s);
      if (this.isContextual(129))
        return this.flowParseDeclareInterface(s);
      if (this.match(82))
        return this.flowParseDeclareExportDeclaration(s, r);
      this.unexpected();
    }
    flowParseDeclareVariable(s) {
      return this.next(), s.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(s.id.name, 5, s.id.loc.start), this.semicolon(),
      this.finishNode(s, "DeclareVariable");
    }
    flowParseDeclareModule(s) {
      this.scope.enter(0), this.match(134) ? s.id = super.parseExprAtom() : s.id = this.parseIdentifier();
      let r = s.body = this.startNode(), i = r.body = [];
      for (this.expect(5); !this.match(8); ) {
        let l = this.startNode();
        this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(Lt.InvalidNonTypeImportInDeclareModule, this.
        state.lastTokStartLoc), super.parseImport(l)) : (this.expectContextual(125, Lt.UnsupportedStatementInDeclareModule), l = this.flowParseDeclare(
        l, !0)), i.push(l);
      }
      this.scope.exit(), this.expect(8), this.finishNode(r, "BlockStatement");
      let a = null, o = !1;
      return i.forEach((l) => {
        dVe(l) ? (a === "CommonJS" && this.raise(Lt.AmbiguousDeclareModuleKind, l), a = "ES") : l.type === "DeclareModuleExports" && (o && this.
        raise(Lt.DuplicateDeclareModuleExports, l), a === "ES" && this.raise(Lt.AmbiguousDeclareModuleKind, l), a = "CommonJS", o = !0);
      }), s.kind = a || "CommonJS", this.finishNode(s, "DeclareModule");
    }
    flowParseDeclareExportDeclaration(s, r) {
      if (this.expect(82), this.eat(65))
        return this.match(68) || this.match(80) ? s.declaration = this.flowParseDeclare(this.startNode()) : (s.declaration = this.flowParseType(),
        this.semicolon()), s.default = !0, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !r) {
        let i = this.state.value;
        throw this.raise(Lt.UnsupportedDeclareExportKind, this.state.startLoc, {
          unsupportedExportKind: i,
          suggestion: mVe[i]
        });
      }
      if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
        return s.declaration = this.flowParseDeclare(this.startNode()), s.default = !1, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
        return s = this.parseExport(s, null), s.type === "ExportNamedDeclaration" && (s.type = "ExportDeclaration", s.default = !1, delete s.
        exportKind), s.type = "Declare" + s.type, s;
      this.unexpected();
    }
    flowParseDeclareModuleExports(s) {
      return this.next(), this.expectContextual(111), s.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(s,
      "DeclareModuleExports");
    }
    flowParseDeclareTypeAlias(s) {
      this.next();
      let r = this.flowParseTypeAlias(s);
      return r.type = "DeclareTypeAlias", r;
    }
    flowParseDeclareOpaqueType(s) {
      this.next();
      let r = this.flowParseOpaqueType(s, !0);
      return r.type = "DeclareOpaqueType", r;
    }
    flowParseDeclareInterface(s) {
      return this.next(), this.flowParseInterfaceish(s, !1), this.finishNode(s, "DeclareInterface");
    }
    flowParseInterfaceish(s, r) {
      if (s.id = this.flowParseRestrictedIdentifier(!r, !0), this.scope.declareName(s.id.name, r ? 17 : 8201, s.id.loc.start), this.match(47) ?
      s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (!r && this.eat(12));
      if (r) {
        if (s.implements = [], s.mixins = [], this.eatContextual(117))
          do
            s.mixins.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
        if (this.eatContextual(113))
          do
            s.implements.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
      }
      s.body = this.flowParseObjectType({
        allowStatic: r,
        allowExact: !1,
        allowSpread: !1,
        allowProto: r,
        allowInexact: !1
      });
    }
    flowParseInterfaceExtends() {
      let s = this.startNode();
      return s.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? s.typeParameters = this.flowParseTypeParameterInstantiation() :
      s.typeParameters = null, this.finishNode(s, "InterfaceExtends");
    }
    flowParseInterface(s) {
      return this.flowParseInterfaceish(s, !1), this.finishNode(s, "InterfaceDeclaration");
    }
    checkNotUnderscore(s) {
      s === "_" && this.raise(Lt.UnexpectedReservedUnderscore, this.state.startLoc);
    }
    checkReservedType(s, r, i) {
      fVe.has(s) && this.raise(i ? Lt.AssignReservedType : Lt.UnexpectedReservedType, r, {
        reservedType: s
      });
    }
    flowParseRestrictedIdentifier(s, r) {
      return this.checkReservedType(this.state.value, this.state.startLoc, r), this.parseIdentifier(s);
    }
    flowParseTypeAlias(s) {
      return s.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.start), this.match(47) ? s.
      typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.right = this.flowParseTypeInitialiser(29), this.
      semicolon(), this.finishNode(s, "TypeAlias");
    }
    flowParseOpaqueType(s, r) {
      return this.expectContextual(130), s.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.
      start), this.match(47) ? s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.supertype = null, this.
      match(14) && (s.supertype = this.flowParseTypeInitialiser(14)), s.impltype = null, r || (s.impltype = this.flowParseTypeInitialiser(29)),
      this.semicolon(), this.finishNode(s, "OpaqueType");
    }
    flowParseTypeParameter(s = !1) {
      let r = this.state.startLoc, i = this.startNode(), a = this.flowParseVariance(), o = this.flowParseTypeAnnotatableIdentifier();
      return i.name = o.name, i.variance = a, i.bound = o.typeAnnotation, this.match(29) ? (this.eat(29), i.default = this.flowParseType()) :
      s && this.raise(Lt.MissingTypeParamDefault, r), this.finishNode(i, "TypeParameter");
    }
    flowParseTypeParameterDeclaration() {
      let s = this.state.inType, r = this.startNode();
      r.params = [], this.state.inType = !0, this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = !1;
      do {
        let a = this.flowParseTypeParameter(i);
        r.params.push(a), a.default && (i = !0), this.match(48) || this.expect(12);
      } while (!this.match(48));
      return this.expect(48), this.state.inType = s, this.finishNode(r, "TypeParameterDeclaration");
    }
    flowInTopLevelContext(s) {
      if (this.curContext() !== Js.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    flowParseTypeParameterInstantiationInExpression() {
      if (this.reScan_lt() === 47)
        return this.flowParseTypeParameterInstantiation();
    }
    flowParseTypeParameterInstantiation() {
      let s = this.startNode(), r = this.state.inType;
      return this.state.inType = !0, s.params = [], this.flowInTopLevelContext(() => {
        this.expect(47);
        let i = this.state.noAnonFunctionType;
        for (this.state.noAnonFunctionType = !1; !this.match(48); )
          s.params.push(this.flowParseType()), this.match(48) || this.expect(12);
        this.state.noAnonFunctionType = i;
      }), this.state.inType = r, !this.state.inType && this.curContext() === Js.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(
      s, "TypeParameterInstantiation");
    }
    flowParseTypeParameterInstantiationCallOrNew() {
      if (this.reScan_lt() !== 47) return;
      let s = this.startNode(), r = this.state.inType;
      for (s.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
        s.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
      return this.expect(48), this.state.inType = r, this.finishNode(s, "TypeParameterInstantiation");
    }
    flowParseInterfaceType() {
      let s = this.startNode();
      if (this.expectContextual(129), s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      return s.body = this.flowParseObjectType({
        allowStatic: !1,
        allowExact: !1,
        allowSpread: !1,
        allowProto: !1,
        allowInexact: !1
      }), this.finishNode(s, "InterfaceTypeAnnotation");
    }
    flowParseObjectPropertyKey() {
      return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(!0);
    }
    flowParseObjectTypeIndexer(s, r, i) {
      return s.static = r, this.lookahead().type === 14 ? (s.id = this.flowParseObjectPropertyKey(), s.key = this.flowParseTypeInitialiser()) :
      (s.id = null, s.key = this.flowParseType()), this.expect(3), s.value = this.flowParseTypeInitialiser(), s.variance = i, this.finishNode(
      s, "ObjectTypeIndexer");
    }
    flowParseObjectTypeInternalSlot(s, r) {
      return s.static = r, s.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (s.method =
      !0, s.optional = !1, s.value = this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start))) : (s.method = !1, this.eat(17) && (s.
      optional = !0), s.value = this.flowParseTypeInitialiser()), this.finishNode(s, "ObjectTypeInternalSlot");
    }
    flowParseObjectTypeMethodish(s) {
      for (s.params = [], s.rest = null, s.typeParameters = null, s.this = null, this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()),
      this.expect(10), this.match(78) && (s.this = this.flowParseFunctionTypeParam(!0), s.this.name = null, this.match(11) || this.expect(12)); !this.
      match(11) && !this.match(21); )
        s.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (s.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), s.returnType = this.flowParseTypeInitialiser(),
      this.finishNode(s, "FunctionTypeAnnotation");
    }
    flowParseObjectTypeCallProperty(s, r) {
      let i = this.startNode();
      return s.static = r, s.value = this.flowParseObjectTypeMethodish(i), this.finishNode(s, "ObjectTypeCallProperty");
    }
    flowParseObjectType({
      allowStatic: s,
      allowExact: r,
      allowSpread: i,
      allowProto: a,
      allowInexact: o
    }) {
      let l = this.state.inType;
      this.state.inType = !0;
      let u = this.startNode();
      u.callProperties = [], u.properties = [], u.indexers = [], u.internalSlots = [];
      let c, p, h = !1;
      for (r && this.match(6) ? (this.expect(6), c = 9, p = !0) : (this.expect(5), c = 8, p = !1), u.exact = p; !this.match(c); ) {
        let d = !1, m = null, y = null, T = this.startNode();
        if (a && this.isContextual(118)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), m = this.state.startLoc, s = !1);
        }
        if (s && this.isContextual(106)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), d = !0);
        }
        let b = this.flowParseVariance();
        if (this.eat(0))
          m != null && this.unexpected(m), this.eat(0) ? (b && this.unexpected(b.loc.start), u.internalSlots.push(this.flowParseObjectTypeInternalSlot(
          T, d))) : u.indexers.push(this.flowParseObjectTypeIndexer(T, d, b));
        else if (this.match(10) || this.match(47))
          m != null && this.unexpected(m), b && this.unexpected(b.loc.start), u.callProperties.push(this.flowParseObjectTypeCallProperty(T, d));
        else {
          let E = "init";
          if (this.isContextual(99) || this.isContextual(104)) {
            let W = this.lookahead();
            y$(W.type) && (E = this.state.value, this.next());
          }
          let V = this.flowParseObjectTypeProperty(T, d, m, b, E, i, o ?? !p);
          V === null ? (h = !0, y = this.state.lastTokStartLoc) : u.properties.push(V);
        }
        this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(Lt.UnexpectedExplicitInexactInObject, y);
      }
      this.expect(c), i && (u.inexact = h);
      let f = this.finishNode(u, "ObjectTypeAnnotation");
      return this.state.inType = l, f;
    }
    flowParseObjectTypeProperty(s, r, i, a, o, l, u) {
      if (this.eat(21))
        return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (l ? u || this.raise(Lt.InexactInsideExact, this.state.lastTokStartLoc) :
        this.raise(Lt.InexactInsideNonObject, this.state.lastTokStartLoc), a && this.raise(Lt.InexactVariance, a), null) : (l || this.raise(
        Lt.UnexpectedSpreadType, this.state.lastTokStartLoc), i != null && this.unexpected(i), a && this.raise(Lt.SpreadVariance, a), s.argument =
        this.flowParseType(), this.finishNode(s, "ObjectTypeSpreadProperty"));
      {
        s.key = this.flowParseObjectPropertyKey(), s.static = r, s.proto = i != null, s.kind = o;
        let c = !1;
        return this.match(47) || this.match(10) ? (s.method = !0, i != null && this.unexpected(i), a && this.unexpected(a.loc.start), s.value =
        this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start)), (o === "get" || o === "set") && this.flowCheckGetterSetterParams(s),
        !l && s.key.name === "constructor" && s.value.this && this.raise(Lt.ThisParamBannedInConstructor, s.value.this)) : (o !== "init" && this.
        unexpected(), s.method = !1, this.eat(17) && (c = !0), s.value = this.flowParseTypeInitialiser(), s.variance = a), s.optional = c, this.
        finishNode(s, "ObjectTypeProperty");
      }
    }
    flowCheckGetterSetterParams(s) {
      let r = s.kind === "get" ? 0 : 1, i = s.value.params.length + (s.value.rest ? 1 : 0);
      s.value.this && this.raise(s.kind === "get" ? Lt.GetterMayNotHaveThisParam : Lt.SetterMayNotHaveThisParam, s.value.this), i !== r && this.
      raise(s.kind === "get" ? Q.BadGetterArity : Q.BadSetterArity, s), s.kind === "set" && s.value.rest && this.raise(Q.BadSetterRestParameter,
      s);
    }
    flowObjectTypeSemicolon() {
      !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
    }
    flowParseQualifiedTypeIdentifier(s, r) {
      var i;
      (i = s) != null || (s = this.state.startLoc);
      let a = r || this.flowParseRestrictedIdentifier(!0);
      for (; this.eat(16); ) {
        let o = this.startNodeAt(s);
        o.qualification = a, o.id = this.flowParseRestrictedIdentifier(!0), a = this.finishNode(o, "QualifiedTypeIdentifier");
      }
      return a;
    }
    flowParseGenericType(s, r) {
      let i = this.startNodeAt(s);
      return i.typeParameters = null, i.id = this.flowParseQualifiedTypeIdentifier(s, r), this.match(47) && (i.typeParameters = this.flowParseTypeParameterInstantiation()),
      this.finishNode(i, "GenericTypeAnnotation");
    }
    flowParseTypeofType() {
      let s = this.startNode();
      return this.expect(87), s.argument = this.flowParsePrimaryType(), this.finishNode(s, "TypeofTypeAnnotation");
    }
    flowParseTupleType() {
      let s = this.startNode();
      for (s.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (s.types.push(this.flowParseType()), !this.match(
      3)); )
        this.expect(12);
      return this.expect(3), this.finishNode(s, "TupleTypeAnnotation");
    }
    flowParseFunctionTypeParam(s) {
      let r = null, i = !1, a = null, o = this.startNode(), l = this.lookahead(), u = this.state.type === 78;
      return l.type === 14 || l.type === 17 ? (u && !s && this.raise(Lt.ThisParamMustBeFirst, o), r = this.parseIdentifier(u), this.eat(17) &&
      (i = !0, u && this.raise(Lt.ThisParamMayNotBeOptional, o)), a = this.flowParseTypeInitialiser()) : a = this.flowParseType(), o.name = r,
      o.optional = i, o.typeAnnotation = a, this.finishNode(o, "FunctionTypeParam");
    }
    reinterpretTypeAsFunctionTypeParam(s) {
      let r = this.startNodeAt(s.loc.start);
      return r.name = null, r.optional = !1, r.typeAnnotation = s, this.finishNode(r, "FunctionTypeParam");
    }
    flowParseFunctionTypeParams(s = []) {
      let r = null, i = null;
      for (this.match(78) && (i = this.flowParseFunctionTypeParam(!0), i.name = null, this.match(11) || this.expect(12)); !this.match(11) &&
      !this.match(21); )
        s.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (r = this.flowParseFunctionTypeParam(!1)), {
        params: s,
        rest: r,
        _this: i
      };
    }
    flowIdentToTypeAnnotation(s, r, i) {
      switch (i.name) {
        case "any":
          return this.finishNode(r, "AnyTypeAnnotation");
        case "bool":
        case "boolean":
          return this.finishNode(r, "BooleanTypeAnnotation");
        case "mixed":
          return this.finishNode(r, "MixedTypeAnnotation");
        case "empty":
          return this.finishNode(r, "EmptyTypeAnnotation");
        case "number":
          return this.finishNode(r, "NumberTypeAnnotation");
        case "string":
          return this.finishNode(r, "StringTypeAnnotation");
        case "symbol":
          return this.finishNode(r, "SymbolTypeAnnotation");
        default:
          return this.checkNotUnderscore(i.name), this.flowParseGenericType(s, i);
      }
    }
    flowParsePrimaryType() {
      let s = this.state.startLoc, r = this.startNode(), i, a, o = !1, l = 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, a = this.flowParseTupleType(), this.state.noAnonFunctionType = l, a;
        case 47: {
          let u = this.startNode();
          return u.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), i = this.flowParseFunctionTypeParams(), u.params =
          i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), this.finishNode(
          u, "FunctionTypeAnnotation");
        }
        case 10: {
          let u = this.startNode();
          if (this.next(), !this.match(11) && !this.match(21))
            if (Ys(this.state.type) || this.match(78)) {
              let c = this.lookahead().type;
              o = c !== 17 && c !== 14;
            } else
              o = !0;
          if (o) {
            if (this.state.noAnonFunctionType = !1, a = this.flowParseType(), this.state.noAnonFunctionType = l, this.state.noAnonFunctionType ||
            !(this.match(12) || this.match(11) && this.lookahead().type === 19))
              return this.expect(11), a;
            this.eat(12);
          }
          return a ? i = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]) : i = this.flowParseFunctionTypeParams(),
          u.params = i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), u.typeParameters =
          null, this.finishNode(u, "FunctionTypeAnnotation");
        }
        case 134:
          return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
        case 85:
        case 86:
          return r.value = this.match(85), this.next(), this.finishNode(r, "BooleanLiteralTypeAnnotation");
        case 53:
          if (this.state.value === "-") {
            if (this.next(), this.match(135))
              return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", r);
            if (this.match(136))
              return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", r);
            throw this.raise(Lt.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(r, "VoidTypeAnnotation");
        case 84:
          return this.next(), this.finishNode(r, "NullLiteralTypeAnnotation");
        case 78:
          return this.next(), this.finishNode(r, "ThisTypeAnnotation");
        case 55:
          return this.next(), this.finishNode(r, "ExistsTypeAnnotation");
        case 87:
          return this.flowParseTypeofType();
        default:
          if (eD(this.state.type)) {
            let u = Kc(this.state.type);
            return this.next(), super.createIdentifier(r, u);
          } else if (Ys(this.state.type))
            return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(s, r, this.parseIdentifier());
      }
      this.unexpected();
    }
    flowParsePostfixType() {
      let s = this.state.startLoc, r = this.flowParsePrimaryType(), i = !1;
      for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
        let a = this.startNodeAt(s), o = this.eat(18);
        i = i || o, this.expect(0), !o && this.match(3) ? (a.elementType = r, this.next(), r = this.finishNode(a, "ArrayTypeAnnotation")) : (a.
        objectType = r, a.indexType = this.flowParseType(), this.expect(3), i ? (a.optional = o, r = this.finishNode(a, "OptionalIndexedAcce\
ssType")) : r = this.finishNode(a, "IndexedAccessType"));
      }
      return r;
    }
    flowParsePrefixType() {
      let s = this.startNode();
      return this.eat(17) ? (s.typeAnnotation = this.flowParsePrefixType(), this.finishNode(s, "NullableTypeAnnotation")) : this.flowParsePostfixType();
    }
    flowParseAnonFunctionWithoutParens() {
      let s = this.flowParsePrefixType();
      if (!this.state.noAnonFunctionType && this.eat(19)) {
        let r = this.startNodeAt(s.loc.start);
        return r.params = [this.reinterpretTypeAsFunctionTypeParam(s)], r.rest = null, r.this = null, r.returnType = this.flowParseType(), r.
        typeParameters = null, this.finishNode(r, "FunctionTypeAnnotation");
      }
      return s;
    }
    flowParseIntersectionType() {
      let s = this.startNode();
      this.eat(45);
      let r = this.flowParseAnonFunctionWithoutParens();
      for (s.types = [r]; this.eat(45); )
        s.types.push(this.flowParseAnonFunctionWithoutParens());
      return s.types.length === 1 ? r : this.finishNode(s, "IntersectionTypeAnnotation");
    }
    flowParseUnionType() {
      let s = this.startNode();
      this.eat(43);
      let r = this.flowParseIntersectionType();
      for (s.types = [r]; this.eat(43); )
        s.types.push(this.flowParseIntersectionType());
      return s.types.length === 1 ? r : this.finishNode(s, "UnionTypeAnnotation");
    }
    flowParseType() {
      let s = this.state.inType;
      this.state.inType = !0;
      let r = this.flowParseUnionType();
      return this.state.inType = s, r;
    }
    flowParseTypeOrImplicitInstantiation() {
      if (this.state.type === 132 && this.state.value === "_") {
        let s = this.state.startLoc, r = this.parseIdentifier();
        return this.flowParseGenericType(s, r);
      } else
        return this.flowParseType();
    }
    flowParseTypeAnnotation() {
      let s = this.startNode();
      return s.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(s, "TypeAnnotation");
    }
    flowParseTypeAnnotatableIdentifier(s) {
      let r = s ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
      return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r)), r;
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    flowParseVariance() {
      let s = null;
      return this.match(53) ? (s = this.startNode(), this.state.value === "+" ? s.kind = "plus" : s.kind = "minus", this.next(), this.finishNode(
      s, "Variance")) : s;
    }
    parseFunctionBody(s, r, i = !1) {
      if (r) {
        this.forwardNoArrowParamsConversionAt(s, () => super.parseFunctionBody(s, !0, i));
        return;
      }
      super.parseFunctionBody(s, !1, i);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      if (this.match(14)) {
        let a = this.startNode();
        [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.returnType = a.typeAnnotation ? this.finishNode(a, "\
TypeAnnotation") : null;
      }
      return super.parseFunctionBodyAndFinish(s, r, i);
    }
    parseStatementLike(s) {
      if (this.state.strict && this.isContextual(129)) {
        let i = this.lookahead();
        if (bo(i.type)) {
          let a = this.startNode();
          return this.next(), this.flowParseInterface(a);
        }
      } else if (this.isContextual(126)) {
        let i = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(i);
      }
      let r = super.parseStatementLike(s);
      return this.flowPragma === void 0 && !this.isValidDirective(r) && (this.flowPragma = null), r;
    }
    parseExpressionStatement(s, r, i) {
      if (r.type === "Identifier") {
        if (r.name === "declare") {
          if (this.match(80) || Ys(this.state.type) || this.match(68) || this.match(74) || this.match(82))
            return this.flowParseDeclare(s);
        } else if (Ys(this.state.type)) {
          if (r.name === "interface")
            return this.flowParseInterface(s);
          if (r.name === "type")
            return this.flowParseTypeAlias(s);
          if (r.name === "opaque")
            return this.flowParseOpaqueType(s, !1);
        }
      }
      return super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      let {
        type: s
      } = this.state;
      return s === 126 || n$(s) ? !this.state.containsEsc : super.shouldParseExportDeclaration();
    }
    isExportDefaultSpecifier() {
      let {
        type: s
      } = this.state;
      return s === 126 || n$(s) ? this.state.containsEsc : super.isExportDefaultSpecifier();
    }
    parseExportDefaultExpression() {
      if (this.isContextual(126)) {
        let s = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(s);
      }
      return super.parseExportDefaultExpression();
    }
    parseConditional(s, r, i) {
      if (!this.match(17)) return s;
      if (this.state.maybeInArrowParameters) {
        let f = this.lookaheadCharCode();
        if (f === 44 || f === 61 || f === 58 || f === 41)
          return this.setOptionalParametersError(i), s;
      }
      this.expect(17);
      let a = this.state.clone(), o = this.state.noArrowAt, l = this.startNodeAt(r), {
        consequent: u,
        failed: c
      } = this.tryParseConditionalConsequent(), [p, h] = this.getArrowLikeExpressions(u);
      if (c || h.length > 0) {
        let f = [...o];
        if (h.length > 0) {
          this.state = a, this.state.noArrowAt = f;
          for (let d = 0; d < h.length; d++)
            f.push(h[d].start);
          ({
            consequent: u,
            failed: c
          } = this.tryParseConditionalConsequent()), [p, h] = this.getArrowLikeExpressions(u);
        }
        c && p.length > 1 && this.raise(Lt.AmbiguousConditionalArrow, a.startLoc), c && p.length === 1 && (this.state = a, f.push(p[0].start),
        this.state.noArrowAt = f, {
          consequent: u,
          failed: c
        } = this.tryParseConditionalConsequent());
      }
      return this.getArrowLikeExpressions(u, !0), this.state.noArrowAt = o, this.expect(14), l.test = s, l.consequent = u, l.alternate = this.
      forwardNoArrowParamsConversionAt(l, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(l, "ConditionalExpression");
    }
    tryParseConditionalConsequent() {
      this.state.noArrowParamsConversionAt.push(this.state.start);
      let s = this.parseMaybeAssignAllowIn(), r = !this.match(14);
      return this.state.noArrowParamsConversionAt.pop(), {
        consequent: s,
        failed: r
      };
    }
    getArrowLikeExpressions(s, r) {
      let i = [s], a = [];
      for (; i.length !== 0; ) {
        let o = i.pop();
        o.type === "ArrowFunctionExpression" && o.body.type !== "BlockStatement" ? (o.typeParameters || !o.returnType ? this.finishArrowValidation(
        o) : a.push(o), i.push(o.body)) : o.type === "ConditionalExpression" && (i.push(o.consequent), i.push(o.alternate));
      }
      return r ? (a.forEach((o) => this.finishArrowValidation(o)), [a, []]) : yVe(a, (o) => o.params.every((l) => this.isAssignable(l, !0)));
    }
    finishArrowValidation(s) {
      var r;
      this.toAssignableList(s.params, (r = s.extra) == null ? void 0 : r.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(s, !1,
      !0), this.scope.exit();
    }
    forwardNoArrowParamsConversionAt(s, r) {
      let i;
      return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? (this.state.noArrowParamsConversionAt.push(this.
      state.start), i = r(), this.state.noArrowParamsConversionAt.pop()) : i = r(), i;
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = i, a.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(a, "TypeCastExpression");
      }
      return i;
    }
    assertModuleNodeAllowed(s) {
      s.type === "ImportDeclaration" && (s.importKind === "type" || s.importKind === "typeof") || s.type === "ExportNamedDeclaration" && s.exportKind ===
      "type" || s.type === "ExportAllDeclaration" && s.exportKind === "type" || super.assertModuleNodeAllowed(s);
    }
    parseExportDeclaration(s) {
      if (this.isContextual(130)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.match(5) ? (s.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(s), null) : this.flowParseTypeAlias(
        r);
      } else if (this.isContextual(131)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseOpaqueType(r, !1);
      } else if (this.isContextual(129)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseInterface(r);
      } else if (this.isContextual(126)) {
        s.exportKind = "value";
        let r = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(r);
      } else
        return super.parseExportDeclaration(s);
    }
    eatExportStar(s) {
      return super.eatExportStar(s) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (s.exportKind = "type", this.next(), this.
      next(), !0) : !1;
    }
    maybeParseExportNamespaceSpecifier(s) {
      let {
        startLoc: r
      } = this.state, i = super.maybeParseExportNamespaceSpecifier(s);
      return i && s.exportKind === "type" && this.unexpected(r), i;
    }
    parseClassId(s, r, i) {
      super.parseClassId(s, r, i), this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration());
    }
    parseClassMember(s, r, i) {
      let {
        startLoc: a
      } = this.state;
      if (this.isContextual(125)) {
        if (super.parseClassMemberFromModifier(s, r))
          return;
        r.declare = !0;
      }
      super.parseClassMember(s, r, i), r.declare && (r.type !== "ClassProperty" && r.type !== "ClassPrivateProperty" && r.type !== "Property\
Definition" ? this.raise(Lt.DeclareClassElement, a) : r.value && this.raise(Lt.DeclareClassFieldInitializer, r.value));
    }
    isIterator(s) {
      return s === "iterator" || s === "asyncIterator";
    }
    readIterator() {
      let s = super.readWord1(), r = "@@" + s;
      (!this.isIterator(s) || !this.state.inType) && this.raise(Q.InvalidIdentifier, this.state.curPosition(), {
        identifierName: r
      }), this.finishToken(132, r);
    }
    getTokenFromCode(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      s === 123 && r === 124 ? this.finishOp(6, 2) : this.state.inType && (s === 62 || s === 60) ? this.finishOp(s === 62 ? 48 : 47, 1) : this.
      state.inType && s === 63 ? r === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : QKe(s, r, this.input.charCodeAt(this.state.pos + 2)) ?
      (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(s);
    }
    isAssignable(s, r) {
      return s.type === "TypeCastExpression" ? this.isAssignable(s.expression, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      !r && s.type === "AssignmentExpression" && s.left.type === "TypeCastExpression" && (s.left = this.typeCastToParameter(s.left)), super.
      toAssignable(s, r);
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    toReferencedList(s, r) {
      for (let a = 0; a < s.length; a++) {
        var i;
        let o = s[a];
        o && o.type === "TypeCastExpression" && !((i = o.extra) != null && i.parenthesized) && (s.length > 1 || !r) && this.raise(Lt.TypeCastInPattern,
        o.typeAnnotation);
      }
      return s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return r && !this.state.maybeInArrowParameters && this.toReferencedList(o.elements), o;
    }
    isValidLVal(s, r, i) {
      return s === "TypeCastExpression" || super.isValidLVal(s, r, i);
    }
    parseClassProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(14) || super.isClassProperty();
    }
    isNonstaticConstructor(s) {
      return !this.match(14) && super.isNonstaticConstructor(s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      if (r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassMethod(s, r, i, a, o, l), r.params && o) {
        let u = r.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(Lt.ThisParamBannedInConstructor, r);
      } else if (r.type === "MethodDefinition" && o && r.value.params) {
        let u = r.value.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(Lt.ThisParamBannedInConstructor, r);
      }
    }
    pushClassPrivateMethod(s, r, i, a) {
      r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassPrivateMethod(s, r, i, a);
    }
    parseClassSuper(s) {
      if (super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression()),
      this.isContextual(113)) {
        this.next();
        let r = s.implements = [];
        do {
          let i = this.startNode();
          i.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? i.typeParameters = this.flowParseTypeParameterInstantiation() : i.
          typeParameters = null, r.push(this.finishNode(i, "ClassImplements"));
        } while (this.eat(12));
      }
    }
    checkGetterSetterParams(s) {
      super.checkGetterSetterParams(s);
      let r = this.getObjectOrClassMethodParams(s);
      if (r.length > 0) {
        let i = r[0];
        this.isThisParam(i) && s.kind === "get" ? this.raise(Lt.GetterMayNotHaveThisParam, i) : this.isThisParam(i) && this.raise(Lt.SetterMayNotHaveThisParam,
        i);
      }
    }
    parsePropertyNamePrefixOperator(s) {
      s.variance = this.flowParseVariance();
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      s.variance && this.unexpected(s.variance.loc.start), delete s.variance;
      let c;
      this.match(47) && !l && (c = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
      let p = super.parseObjPropValue(s, r, i, a, o, l, u);
      return c && ((p.value || p).typeParameters = c), p;
    }
    parseFunctionParamType(s) {
      return this.eat(17) && (s.type !== "Identifier" && this.raise(Lt.PatternIsOptional, s), this.isThisParam(s) && this.raise(Lt.ThisParamMayNotBeOptional,
      s), s.optional = !0), this.match(14) ? s.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(s) && this.raise(Lt.ThisParamAnnotationRequired,
      s), this.match(29) && this.isThisParam(s) && this.raise(Lt.ThisParamNoDefault, s), this.resetEndLocation(s), s;
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(Lt.TypeBeforeInitializer,
      i.typeAnnotation), i;
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(Lt.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    parseImportSpecifierLocal(s, r, i) {
      r.local = u$(s) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), s.specifiers.push(this.finishImportSpecifier(r,
      i));
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        if (!s) return !0;
        let r = this.lookaheadCharCode();
        return r === 123 || r === 42;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      if (super.applyImportPhase(s, r, i, a), r) {
        if (!i && this.match(65))
          return;
        s.exportKind = i === "type" ? i : "value";
      } else
        i === "type" && this.match(55) && this.unexpected(), s.importKind = i === "type" || i === "typeof" ? i : "value";
    }
    parseImportSpecifier(s, r, i, a, o) {
      let l = s.imported, u = null;
      l.type === "Identifier" && (l.name === "type" ? u = "type" : l.name === "typeof" && (u = "typeof"));
      let c = !1;
      if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
        let h = this.parseIdentifier(!0);
        u !== null && !bo(this.state.type) ? (s.imported = h, s.importKind = u, s.local = su(h)) : (s.imported = l, s.importKind = null, s.local =
        this.parseIdentifier());
      } else {
        if (u !== null && bo(this.state.type))
          s.imported = this.parseIdentifier(!0), s.importKind = u;
        else {
          if (r)
            throw this.raise(Q.ImportBindingIsString, s, {
              importName: l.value
            });
          s.imported = l, s.importKind = null;
        }
        this.eatContextual(93) ? s.local = this.parseIdentifier() : (c = !0, s.local = su(s.imported));
      }
      let p = u$(s);
      return i && p && this.raise(Lt.ImportTypeShorthandOnlyInPureImport, s), (i || p) && this.checkReservedType(s.local.name, s.local.loc.start,
      !0), c && !i && !p && this.checkReservedWord(s.local.name, s.loc.start, !0, !0), this.finishImportSpecifier(s, "ImportSpecifier");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 78:
          return this.parseIdentifier(!0);
        default:
          return super.parseBindingAtom();
      }
    }
    parseFunctionParams(s, r) {
      let i = s.kind;
      i !== "get" && i !== "set" && this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(
      s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), this.match(14) && (s.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      if (this.match(14)) {
        let i = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0, s.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = i;
      }
      return super.parseAsyncArrowFromCallExpression(s, r);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    parseMaybeAssign(s, r) {
      var i;
      let a = null, o;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (a = this.state.clone(), o = this.tryParse(() => super.parseMaybeAssign(s, r), a), !o.error) return o.node;
        let {
          context: c
        } = this.state, p = c[c.length - 1];
        (p === Js.j_oTag || p === Js.j_expr) && c.pop();
      }
      if ((i = o) != null && i.error || this.match(47)) {
        var l, u;
        a = a || this.state.clone();
        let c, p = this.tryParse((f) => {
          var d;
          c = this.flowParseTypeParameterDeclaration();
          let m = this.forwardNoArrowParamsConversionAt(c, () => {
            let T = super.parseMaybeAssign(s, r);
            return this.resetStartLocationFromNode(T, c), T;
          });
          (d = m.extra) != null && d.parenthesized && f();
          let y = this.maybeUnwrapTypeCastExpression(m);
          return y.type !== "ArrowFunctionExpression" && f(), y.typeParameters = c, this.resetStartLocationFromNode(y, c), m;
        }, a), h = null;
        if (p.node && this.maybeUnwrapTypeCastExpression(p.node).type === "ArrowFunctionExpression") {
          if (!p.error && !p.aborted)
            return p.node.async && this.raise(Lt.UnexpectedTypeParameterBeforeAsyncArrowFunction, c), p.node;
          h = p.node;
        }
        if ((l = o) != null && l.node)
          return this.state = o.failState, o.node;
        if (h)
          return this.state = p.failState, h;
        throw (u = o) != null && u.thrown ? o.error : p.thrown ? p.error : this.raise(Lt.UnexpectedTokenAfterTypeParameter, c);
      }
      return super.parseMaybeAssign(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse(() => {
          let i = this.state.noAnonFunctionType;
          this.state.noAnonFunctionType = !0;
          let a = this.startNode();
          return [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = i, this.canInsertSemicolon() &&
          this.unexpected(), this.match(19) || this.unexpected(), a;
        });
        if (r.thrown) return null;
        r.error && (this.state = r.failState), s.returnType = r.node.typeAnnotation ? this.finishNode(r.node, "TypeAnnotation") : null;
      }
      return super.parseArrow(s);
    }
    shouldParseArrow(s) {
      return this.match(14) || super.shouldParseArrow(s);
    }
    setArrowFunctionParameters(s, r) {
      this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? s.params = r : super.setArrowFunctionParameters(s, r);
    }
    checkParams(s, r, i, a = !0) {
      if (!(i && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)))) {
        for (let o = 0; o < s.params.length; o++)
          this.isThisParam(s.params[o]) && o > 0 && this.raise(Lt.ThisParamMustBeFirst, s.params[o]);
        super.checkParams(s, r, i, a);
      }
    }
    parseParenAndDistinguishExpression(s) {
      return super.parseParenAndDistinguishExpression(s && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)));
    }
    parseSubscripts(s, r, i) {
      if (s.type === "Identifier" && s.name === "async" && this.state.noArrowAt.includes(r.index)) {
        this.next();
        let a = this.startNodeAt(r);
        a.callee = s, a.arguments = super.parseCallExpressionArguments(11), s = this.finishNode(a, "CallExpression");
      } else if (s.type === "Identifier" && s.name === "async" && this.match(47)) {
        let a = this.state.clone(), o = this.tryParse((u) => this.parseAsyncArrowWithTypeParameters(r) || u(), a);
        if (!o.error && !o.aborted) return o.node;
        let l = this.tryParse(() => super.parseSubscripts(s, r, i), a);
        if (l.node && !l.error) return l.node;
        if (o.node)
          return this.state = o.failState, o.node;
        if (l.node)
          return this.state = l.failState, l.node;
        throw o.error || l.error;
      }
      return super.parseSubscripts(s, r, i);
    }
    parseSubscript(s, r, i, a) {
      if (this.match(18) && this.isLookaheadToken_lt()) {
        if (a.optionalChainMember = !0, i)
          return a.stop = !0, s;
        this.next();
        let o = this.startNodeAt(r);
        return o.callee = s, o.typeArguments = this.flowParseTypeParameterInstantiationInExpression(), this.expect(10), o.arguments = this.parseCallExpressionArguments(
        11), o.optional = !0, this.finishCallExpression(o, !0);
      } else if (!i && this.shouldParseTypes() && (this.match(47) || this.match(51))) {
        let o = this.startNodeAt(r);
        o.callee = s;
        let l = this.tryParse(() => (o.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), o.arguments = super.
        parseCallExpressionArguments(11), a.optionalChainMember && (o.optional = !1), this.finishCallExpression(o, a.optionalChainMember)));
        if (l.node)
          return l.error && (this.state = l.failState), l.node;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      super.parseNewCallee(s);
      let r = null;
      this.shouldParseTypes() && this.match(47) && (r = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), s.typeArguments =
      r;
    }
    parseAsyncArrowWithTypeParameters(s) {
      let r = this.startNodeAt(s);
      if (this.parseFunctionParams(r, !1), !!this.parseArrow(r))
        return super.parseArrowExpression(r, void 0, !0);
    }
    readToken_mult_modulo(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 42 && r === 47 && this.state.hasFlowComment) {
        this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
        return;
      }
      super.readToken_mult_modulo(s);
    }
    readToken_pipe_amp(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 124 && r === 125) {
        this.finishOp(9, 2);
        return;
      }
      super.readToken_pipe_amp(s);
    }
    parseTopLevel(s, r) {
      let i = super.parseTopLevel(s, r);
      return this.state.hasFlowComment && this.raise(Lt.UnterminatedFlowComment, this.state.curPosition()), i;
    }
    skipBlockComment() {
      if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
        if (this.state.hasFlowComment)
          throw this.raise(Lt.NestedFlowComment, this.state.startLoc);
        this.hasFlowCommentCompletion();
        let s = this.skipFlowComment();
        s && (this.state.pos += s, this.state.hasFlowComment = !0);
        return;
      }
      return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
    }
    skipFlowComment() {
      let {
        pos: s
      } = this.state, r = 2;
      for (; [32, 9].includes(this.input.charCodeAt(s + r)); )
        r++;
      let i = this.input.charCodeAt(r + s), a = this.input.charCodeAt(r + s + 1);
      return i === 58 && a === 58 ? r + 2 : this.input.slice(r + s, r + s + 12) === "flow-include" ? r + 12 : i === 58 && a !== 58 ? r : !1;
    }
    hasFlowCommentCompletion() {
      if (this.input.indexOf("*/", this.state.pos) === -1)
        throw this.raise(Q.UnterminatedComment, this.state.curPosition());
    }
    flowEnumErrorBooleanMemberNotInitialized(s, {
      enumName: r,
      memberName: i
    }) {
      this.raise(Lt.EnumBooleanMemberNotInitialized, s, {
        memberName: i,
        enumName: r
      });
    }
    flowEnumErrorInvalidMemberInitializer(s, r) {
      return this.raise(r.explicitType ? r.explicitType === "symbol" ? Lt.EnumInvalidMemberInitializerSymbolType : Lt.EnumInvalidMemberInitializerPrimaryType :
      Lt.EnumInvalidMemberInitializerUnknownType, s, r);
    }
    flowEnumErrorNumberMemberNotInitialized(s, r) {
      this.raise(Lt.EnumNumberMemberNotInitialized, s, r);
    }
    flowEnumErrorStringMemberInconsistentlyInitialized(s, r) {
      this.raise(Lt.EnumStringMemberInconsistentlyInitialized, s, r);
    }
    flowEnumMemberInit() {
      let s = this.state.startLoc, r = /* @__PURE__ */ n(() => this.match(12) || this.match(8), "endOfInit");
      switch (this.state.type) {
        case 135: {
          let i = this.parseNumericLiteral(this.state.value);
          return r() ? {
            type: "number",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 134: {
          let i = this.parseStringLiteral(this.state.value);
          return r() ? {
            type: "string",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 85:
        case 86: {
          let i = this.parseBooleanLiteral(this.match(85));
          return r() ? {
            type: "boolean",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        default:
          return {
            type: "invalid",
            loc: s
          };
      }
    }
    flowEnumMemberRaw() {
      let s = this.state.startLoc, r = this.parseIdentifier(!0), i = this.eat(29) ? this.flowEnumMemberInit() : {
        type: "none",
        loc: s
      };
      return {
        id: r,
        init: i
      };
    }
    flowEnumCheckExplicitTypeMismatch(s, r, i) {
      let {
        explicitType: a
      } = r;
      a !== null && a !== i && this.flowEnumErrorInvalidMemberInitializer(s, r);
    }
    flowEnumMembers({
      enumName: s,
      explicitType: r
    }) {
      let i = /* @__PURE__ */ new Set(), a = {
        booleanMembers: [],
        numberMembers: [],
        stringMembers: [],
        defaultedMembers: []
      }, o = !1;
      for (; !this.match(8); ) {
        if (this.eat(21)) {
          o = !0;
          break;
        }
        let l = this.startNode(), {
          id: u,
          init: c
        } = this.flowEnumMemberRaw(), p = u.name;
        if (p === "")
          continue;
        /^[a-z]/.test(p) && this.raise(Lt.EnumInvalidMemberName, u, {
          memberName: p,
          suggestion: p[0].toUpperCase() + p.slice(1),
          enumName: s
        }), i.has(p) && this.raise(Lt.EnumDuplicateMemberName, u, {
          memberName: p,
          enumName: s
        }), i.add(p);
        let h = {
          enumName: s,
          explicitType: r,
          memberName: p
        };
        switch (l.id = u, c.type) {
          case "boolean": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "boolean"), l.init = c.value, a.booleanMembers.push(this.finishNode(l, "EnumBoo\
leanMember"));
            break;
          }
          case "number": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "number"), l.init = c.value, a.numberMembers.push(this.finishNode(l, "EnumNumbe\
rMember"));
            break;
          }
          case "string": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "string"), l.init = c.value, a.stringMembers.push(this.finishNode(l, "EnumStrin\
gMember"));
            break;
          }
          case "invalid":
            throw this.flowEnumErrorInvalidMemberInitializer(c.loc, h);
          case "none":
            switch (r) {
              case "boolean":
                this.flowEnumErrorBooleanMemberNotInitialized(c.loc, h);
                break;
              case "number":
                this.flowEnumErrorNumberMemberNotInitialized(c.loc, h);
                break;
              default:
                a.defaultedMembers.push(this.finishNode(l, "EnumDefaultedMember"));
            }
        }
        this.match(8) || this.expect(12);
      }
      return {
        members: a,
        hasUnknownMembers: o
      };
    }
    flowEnumStringMembers(s, r, {
      enumName: i
    }) {
      if (s.length === 0)
        return r;
      if (r.length === 0)
        return s;
      if (r.length > s.length) {
        for (let a of s)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return r;
      } else {
        for (let a of r)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return s;
      }
    }
    flowEnumParseExplicitType({
      enumName: s
    }) {
      if (!this.eatContextual(102)) return null;
      if (!Ys(this.state.type))
        throw this.raise(Lt.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
          enumName: s
        });
      let {
        value: r
      } = this.state;
      return this.next(), r !== "boolean" && r !== "number" && r !== "string" && r !== "symbol" && this.raise(Lt.EnumInvalidExplicitType, this.
      state.startLoc, {
        enumName: s,
        invalidEnumType: r
      }), r;
    }
    flowEnumBody(s, r) {
      let i = r.name, a = r.loc.start, o = this.flowEnumParseExplicitType({
        enumName: i
      });
      this.expect(5);
      let {
        members: l,
        hasUnknownMembers: u
      } = this.flowEnumMembers({
        enumName: i,
        explicitType: o
      });
      switch (s.hasUnknownMembers = u, o) {
        case "boolean":
          return s.explicitType = !0, s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
        case "number":
          return s.explicitType = !0, s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
        case "string":
          return s.explicitType = !0, s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
            enumName: i
          }), this.expect(8), this.finishNode(s, "EnumStringBody");
        case "symbol":
          return s.members = l.defaultedMembers, this.expect(8), this.finishNode(s, "EnumSymbolBody");
        default: {
          let c = /* @__PURE__ */ n(() => (s.members = [], this.expect(8), this.finishNode(s, "EnumStringBody")), "empty");
          s.explicitType = !1;
          let p = l.booleanMembers.length, h = l.numberMembers.length, f = l.stringMembers.length, d = l.defaultedMembers.length;
          if (!p && !h && !f && !d)
            return c();
          if (!p && !h)
            return s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
              enumName: i
            }), this.expect(8), this.finishNode(s, "EnumStringBody");
          if (!h && !f && p >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorBooleanMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
          } else if (!p && !f && h >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorNumberMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
          } else
            return this.raise(Lt.EnumInconsistentMemberValues, a, {
              enumName: i
            }), c();
        }
      }
    }
    flowParseEnumDeclaration(s) {
      let r = this.parseIdentifier();
      return s.id = r, s.body = this.flowEnumBody(this.startNode(), r), this.finishNode(s, "EnumDeclaration");
    }
    jsxParseOpeningElementAfterName(s) {
      return this.shouldParseTypes() && (this.match(47) || this.match(51)) && (s.typeArguments = this.flowParseTypeParameterInstantiationInExpression()),
      super.jsxParseOpeningElementAfterName(s);
    }
    isLookaheadToken_lt() {
      let s = this.nextTokenStart();
      if (this.input.charCodeAt(s) === 60) {
        let r = this.input.charCodeAt(s + 1);
        return r !== 60 && r !== 61;
      }
      return !1;
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    maybeUnwrapTypeCastExpression(s) {
      return s.type === "TypeCastExpression" ? s.expression : s;
    }
  }, "flow"), bVe = {
    __proto__: null,
    quot: '"',
    amp: "&",
    apos: "'",
    lt: "<",
    gt: ">",
    nbsp: "\xA0",
    iexcl: "\xA1",
    cent: "\xA2",
    pound: "\xA3",
    curren: "\xA4",
    yen: "\xA5",
    brvbar: "\xA6",
    sect: "\xA7",
    uml: "\xA8",
    copy: "\xA9",
    ordf: "\xAA",
    laquo: "\xAB",
    not: "\xAC",
    shy: "\xAD",
    reg: "\xAE",
    macr: "\xAF",
    deg: "\xB0",
    plusmn: "\xB1",
    sup2: "\xB2",
    sup3: "\xB3",
    acute: "\xB4",
    micro: "\xB5",
    para: "\xB6",
    middot: "\xB7",
    cedil: "\xB8",
    sup1: "\xB9",
    ordm: "\xBA",
    raquo: "\xBB",
    frac14: "\xBC",
    frac12: "\xBD",
    frac34: "\xBE",
    iquest: "\xBF",
    Agrave: "\xC0",
    Aacute: "\xC1",
    Acirc: "\xC2",
    Atilde: "\xC3",
    Auml: "\xC4",
    Aring: "\xC5",
    AElig: "\xC6",
    Ccedil: "\xC7",
    Egrave: "\xC8",
    Eacute: "\xC9",
    Ecirc: "\xCA",
    Euml: "\xCB",
    Igrave: "\xCC",
    Iacute: "\xCD",
    Icirc: "\xCE",
    Iuml: "\xCF",
    ETH: "\xD0",
    Ntilde: "\xD1",
    Ograve: "\xD2",
    Oacute: "\xD3",
    Ocirc: "\xD4",
    Otilde: "\xD5",
    Ouml: "\xD6",
    times: "\xD7",
    Oslash: "\xD8",
    Ugrave: "\xD9",
    Uacute: "\xDA",
    Ucirc: "\xDB",
    Uuml: "\xDC",
    Yacute: "\xDD",
    THORN: "\xDE",
    szlig: "\xDF",
    agrave: "\xE0",
    aacute: "\xE1",
    acirc: "\xE2",
    atilde: "\xE3",
    auml: "\xE4",
    aring: "\xE5",
    aelig: "\xE6",
    ccedil: "\xE7",
    egrave: "\xE8",
    eacute: "\xE9",
    ecirc: "\xEA",
    euml: "\xEB",
    igrave: "\xEC",
    iacute: "\xED",
    icirc: "\xEE",
    iuml: "\xEF",
    eth: "\xF0",
    ntilde: "\xF1",
    ograve: "\xF2",
    oacute: "\xF3",
    ocirc: "\xF4",
    otilde: "\xF5",
    ouml: "\xF6",
    divide: "\xF7",
    oslash: "\xF8",
    ugrave: "\xF9",
    uacute: "\xFA",
    ucirc: "\xFB",
    uuml: "\xFC",
    yacute: "\xFD",
    thorn: "\xFE",
    yuml: "\xFF",
    OElig: "\u0152",
    oelig: "\u0153",
    Scaron: "\u0160",
    scaron: "\u0161",
    Yuml: "\u0178",
    fnof: "\u0192",
    circ: "\u02C6",
    tilde: "\u02DC",
    Alpha: "\u0391",
    Beta: "\u0392",
    Gamma: "\u0393",
    Delta: "\u0394",
    Epsilon: "\u0395",
    Zeta: "\u0396",
    Eta: "\u0397",
    Theta: "\u0398",
    Iota: "\u0399",
    Kappa: "\u039A",
    Lambda: "\u039B",
    Mu: "\u039C",
    Nu: "\u039D",
    Xi: "\u039E",
    Omicron: "\u039F",
    Pi: "\u03A0",
    Rho: "\u03A1",
    Sigma: "\u03A3",
    Tau: "\u03A4",
    Upsilon: "\u03A5",
    Phi: "\u03A6",
    Chi: "\u03A7",
    Psi: "\u03A8",
    Omega: "\u03A9",
    alpha: "\u03B1",
    beta: "\u03B2",
    gamma: "\u03B3",
    delta: "\u03B4",
    epsilon: "\u03B5",
    zeta: "\u03B6",
    eta: "\u03B7",
    theta: "\u03B8",
    iota: "\u03B9",
    kappa: "\u03BA",
    lambda: "\u03BB",
    mu: "\u03BC",
    nu: "\u03BD",
    xi: "\u03BE",
    omicron: "\u03BF",
    pi: "\u03C0",
    rho: "\u03C1",
    sigmaf: "\u03C2",
    sigma: "\u03C3",
    tau: "\u03C4",
    upsilon: "\u03C5",
    phi: "\u03C6",
    chi: "\u03C7",
    psi: "\u03C8",
    omega: "\u03C9",
    thetasym: "\u03D1",
    upsih: "\u03D2",
    piv: "\u03D6",
    ensp: "\u2002",
    emsp: "\u2003",
    thinsp: "\u2009",
    zwnj: "\u200C",
    zwj: "\u200D",
    lrm: "\u200E",
    rlm: "\u200F",
    ndash: "\u2013",
    mdash: "\u2014",
    lsquo: "\u2018",
    rsquo: "\u2019",
    sbquo: "\u201A",
    ldquo: "\u201C",
    rdquo: "\u201D",
    bdquo: "\u201E",
    dagger: "\u2020",
    Dagger: "\u2021",
    bull: "\u2022",
    hellip: "\u2026",
    permil: "\u2030",
    prime: "\u2032",
    Prime: "\u2033",
    lsaquo: "\u2039",
    rsaquo: "\u203A",
    oline: "\u203E",
    frasl: "\u2044",
    euro: "\u20AC",
    image: "\u2111",
    weierp: "\u2118",
    real: "\u211C",
    trade: "\u2122",
    alefsym: "\u2135",
    larr: "\u2190",
    uarr: "\u2191",
    rarr: "\u2192",
    darr: "\u2193",
    harr: "\u2194",
    crarr: "\u21B5",
    lArr: "\u21D0",
    uArr: "\u21D1",
    rArr: "\u21D2",
    dArr: "\u21D3",
    hArr: "\u21D4",
    forall: "\u2200",
    part: "\u2202",
    exist: "\u2203",
    empty: "\u2205",
    nabla: "\u2207",
    isin: "\u2208",
    notin: "\u2209",
    ni: "\u220B",
    prod: "\u220F",
    sum: "\u2211",
    minus: "\u2212",
    lowast: "\u2217",
    radic: "\u221A",
    prop: "\u221D",
    infin: "\u221E",
    ang: "\u2220",
    and: "\u2227",
    or: "\u2228",
    cap: "\u2229",
    cup: "\u222A",
    int: "\u222B",
    there4: "\u2234",
    sim: "\u223C",
    cong: "\u2245",
    asymp: "\u2248",
    ne: "\u2260",
    equiv: "\u2261",
    le: "\u2264",
    ge: "\u2265",
    sub: "\u2282",
    sup: "\u2283",
    nsub: "\u2284",
    sube: "\u2286",
    supe: "\u2287",
    oplus: "\u2295",
    otimes: "\u2297",
    perp: "\u22A5",
    sdot: "\u22C5",
    lceil: "\u2308",
    rceil: "\u2309",
    lfloor: "\u230A",
    rfloor: "\u230B",
    lang: "\u2329",
    rang: "\u232A",
    loz: "\u25CA",
    spades: "\u2660",
    clubs: "\u2663",
    hearts: "\u2665",
    diams: "\u2666"
  }, Th = tu`jsx`({
    AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
    MissingClosingTagElement: /* @__PURE__ */ n(({
      openingTagName: t
    }) => `Expected corresponding JSX closing tag for <${t}>.`, "MissingClosingTagElement"),
    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: /* @__PURE__ */ n(({
      unexpected: t,
      HTMLEntity: e
    }) => `Unexpected token \`${t}\`. Did you mean \`${e}\` or \`{'${t}'}\`?`, "UnexpectedToken"),
    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 Uc(t) {
    return t ? t.type === "JSXOpeningFragment" || t.type === "JSXClosingFragment" : !1;
  }
  n(Uc, "isFragment");
  function xd(t) {
    if (t.type === "JSXIdentifier")
      return t.name;
    if (t.type === "JSXNamespacedName")
      return t.namespace.name + ":" + t.name.name;
    if (t.type === "JSXMemberExpression")
      return xd(t.object) + "." + xd(t.property);
    throw new Error("Node had unexpected type: " + t.type);
  }
  n(xd, "getQualifiedJSXName");
  var xVe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "JSXParserMixin");
    }
    jsxReadToken() {
      let s = "", r = this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(Th.UnterminatedJsxContent, this.state.startLoc);
        let i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 60:
          case 123:
            if (this.state.pos === this.state.start) {
              i === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(143)) : super.getTokenFromCode(i);
              return;
            }
            s += this.input.slice(r, this.state.pos), this.finishToken(142, s);
            return;
          case 38:
            s += this.input.slice(r, this.state.pos), s += this.jsxReadEntity(), r = this.state.pos;
            break;
          case 62:
          case 125:
          default:
            Pd(i) ? (s += this.input.slice(r, this.state.pos), s += this.jsxReadNewLine(!0), r = this.state.pos) : ++this.state.pos;
        }
      }
    }
    jsxReadNewLine(s) {
      let r = this.input.charCodeAt(this.state.pos), i;
      return ++this.state.pos, r === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, i = s ? `
` : `\r
`) : i = String.fromCharCode(r), ++this.state.curLine, this.state.lineStart = this.state.pos, i;
    }
    jsxReadString(s) {
      let r = "", i = ++this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(Q.UnterminatedString, this.state.startLoc);
        let a = this.input.charCodeAt(this.state.pos);
        if (a === s) break;
        a === 38 ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos) : Pd(a) ? (r += this.input.slice(
        i, this.state.pos), r += this.jsxReadNewLine(!1), i = this.state.pos) : ++this.state.pos;
      }
      r += this.input.slice(i, this.state.pos++), this.finishToken(134, r);
    }
    jsxReadEntity() {
      let s = ++this.state.pos;
      if (this.codePointAtPos(this.state.pos) === 35) {
        ++this.state.pos;
        let r = 10;
        this.codePointAtPos(this.state.pos) === 120 && (r = 16, ++this.state.pos);
        let i = this.readInt(r, void 0, !1, "bail");
        if (i !== null && this.codePointAtPos(this.state.pos) === 59)
          return ++this.state.pos, String.fromCodePoint(i);
      } else {
        let r = 0, i = !1;
        for (; r++ < 10 && this.state.pos < this.length && !(i = this.codePointAtPos(this.state.pos) === 59); )
          ++this.state.pos;
        if (i) {
          let a = this.input.slice(s, this.state.pos), o = bVe[a];
          if (++this.state.pos, o)
            return o;
        }
      }
      return this.state.pos = s, "&";
    }
    jsxReadWord() {
      let s, r = this.state.pos;
      do
        s = this.input.charCodeAt(++this.state.pos);
      while (Sd(s) || s === 45);
      this.finishToken(141, this.input.slice(r, this.state.pos));
    }
    jsxParseIdentifier() {
      let s = this.startNode();
      return this.match(141) ? s.name = this.state.value : eD(this.state.type) ? s.name = Kc(this.state.type) : this.unexpected(), this.next(),
      this.finishNode(s, "JSXIdentifier");
    }
    jsxParseNamespacedName() {
      let s = this.state.startLoc, r = this.jsxParseIdentifier();
      if (!this.eat(14)) return r;
      let i = this.startNodeAt(s);
      return i.namespace = r, i.name = this.jsxParseIdentifier(), this.finishNode(i, "JSXNamespacedName");
    }
    jsxParseElementName() {
      let s = this.state.startLoc, r = this.jsxParseNamespacedName();
      if (r.type === "JSXNamespacedName")
        return r;
      for (; this.eat(16); ) {
        let i = this.startNodeAt(s);
        i.object = r, i.property = this.jsxParseIdentifier(), r = this.finishNode(i, "JSXMemberExpression");
      }
      return r;
    }
    jsxParseAttributeValue() {
      let s;
      switch (this.state.type) {
        case 5:
          return s = this.startNode(), this.setContext(Js.brace), this.next(), s = this.jsxParseExpressionContainer(s, Js.j_oTag), s.expression.
          type === "JSXEmptyExpression" && this.raise(Th.AttributeIsEmpty, s), s;
        case 143:
        case 134:
          return this.parseExprAtom();
        default:
          throw this.raise(Th.UnsupportedJsxValue, this.state.startLoc);
      }
    }
    jsxParseEmptyExpression() {
      let s = this.startNodeAt(this.state.lastTokEndLoc);
      return this.finishNodeAt(s, "JSXEmptyExpression", this.state.startLoc);
    }
    jsxParseSpreadChild(s) {
      return this.next(), s.expression = this.parseExpression(), this.setContext(Js.j_expr), this.state.canStartJSXElement = !0, this.expect(
      8), this.finishNode(s, "JSXSpreadChild");
    }
    jsxParseExpressionContainer(s, r) {
      if (this.match(8))
        s.expression = this.jsxParseEmptyExpression();
      else {
        let i = this.parseExpression();
        s.expression = i;
      }
      return this.setContext(r), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXExpressionContainer");
    }
    jsxParseAttribute() {
      let s = this.startNode();
      return this.match(5) ? (this.setContext(Js.brace), this.next(), this.expect(21), s.argument = this.parseMaybeAssignAllowIn(), this.setContext(
      Js.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXSpreadAttribute")) : (s.name = this.jsxParseNamespacedName(),
      s.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(s, "JSXAttribute"));
    }
    jsxParseOpeningElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXOpeningFragment") : (r.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(
      r));
    }
    jsxParseOpeningElementAfterName(s) {
      let r = [];
      for (; !this.match(56) && !this.match(144); )
        r.push(this.jsxParseAttribute());
      return s.attributes = r, s.selfClosing = this.eat(56), this.expect(144), this.finishNode(s, "JSXOpeningElement");
    }
    jsxParseClosingElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXClosingFragment") : (r.name = this.jsxParseElementName(), this.expect(144), this.finishNode(
      r, "JSXClosingElement"));
    }
    jsxParseElementAt(s) {
      let r = this.startNodeAt(s), i = [], a = this.jsxParseOpeningElementAt(s), o = null;
      if (!a.selfClosing) {
        e: for (; ; )
          switch (this.state.type) {
            case 143:
              if (s = this.state.startLoc, this.next(), this.eat(56)) {
                o = this.jsxParseClosingElementAt(s);
                break e;
              }
              i.push(this.jsxParseElementAt(s));
              break;
            case 142:
              i.push(this.parseLiteral(this.state.value, "JSXText"));
              break;
            case 5: {
              let l = this.startNode();
              this.setContext(Js.brace), this.next(), this.match(21) ? i.push(this.jsxParseSpreadChild(l)) : i.push(this.jsxParseExpressionContainer(
              l, Js.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
        Uc(a) && !Uc(o) && o !== null ? this.raise(Th.MissingClosingTagFragment, o) : !Uc(a) && Uc(o) ? this.raise(Th.MissingClosingTagElement,
        o, {
          openingTagName: xd(a.name)
        }) : !Uc(a) && !Uc(o) && xd(o.name) !== xd(a.name) && this.raise(Th.MissingClosingTagElement, o, {
          openingTagName: xd(a.name)
        });
      }
      if (Uc(a) ? (r.openingFragment = a, r.closingFragment = o) : (r.openingElement = a, r.closingElement = o), r.children = i, this.match(
      47))
        throw this.raise(Th.UnwrappedAdjacentJSXElements, this.state.startLoc);
      return Uc(a) ? this.finishNode(r, "JSXFragment") : this.finishNode(r, "JSXElement");
    }
    jsxParseElement() {
      let s = this.state.startLoc;
      return this.next(), this.jsxParseElementAt(s);
    }
    setContext(s) {
      let {
        context: r
      } = this.state;
      r[r.length - 1] = s;
    }
    parseExprAtom(s) {
      return this.match(143) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(
      143), this.jsxParseElement()) : super.parseExprAtom(s);
    }
    skipSpace() {
      this.curContext().preserveSpace || super.skipSpace();
    }
    getTokenFromCode(s) {
      let r = this.curContext();
      if (r === Js.j_expr) {
        this.jsxReadToken();
        return;
      }
      if (r === Js.j_oTag || r === Js.j_cTag) {
        if (eu(s)) {
          this.jsxReadWord();
          return;
        }
        if (s === 62) {
          ++this.state.pos, this.finishToken(144);
          return;
        }
        if ((s === 34 || s === 39) && r === Js.j_oTag) {
          this.jsxReadString(s);
          return;
        }
      }
      if (s === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
        ++this.state.pos, this.finishToken(143);
        return;
      }
      super.getTokenFromCode(s);
    }
    updateContext(s) {
      let {
        context: r,
        type: i
      } = this.state;
      if (i === 56 && s === 143)
        r.splice(-2, 2, Js.j_cTag), this.state.canStartJSXElement = !1;
      else if (i === 143)
        r.push(Js.j_oTag);
      else if (i === 144) {
        let a = r[r.length - 1];
        a === Js.j_oTag && s === 56 || a === Js.j_cTag ? (r.pop(), this.state.canStartJSXElement = r[r.length - 1] === Js.j_expr) : (this.setContext(
        Js.j_expr), this.state.canStartJSXElement = !0);
      } else
        this.state.canStartJSXElement = MKe(i);
    }
  }, "jsx"), Vk = class extends xg {
    static {
      n(this, "TypeScriptScope");
    }
    constructor(...e) {
      super(...e), this.tsNames = /* @__PURE__ */ new Map();
    }
  }, Wk = class extends Sg {
    static {
      n(this, "TypeScriptScopeHandler");
    }
    constructor(...e) {
      super(...e), this.importsStack = [];
    }
    createScope(e) {
      return this.importsStack.push(/* @__PURE__ */ new Set()), new Vk(e);
    }
    enter(e) {
      e === 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(e);
    }
    exit() {
      let e = super.exit();
      return e === 256 && this.importsStack.pop(), e;
    }
    hasImport(e, s) {
      let r = this.importsStack.length;
      if (this.importsStack[r - 1].has(e))
        return !0;
      if (!s && r > 1) {
        for (let i = 0; i < r - 1; i++)
          if (this.importsStack[i].has(e)) return !0;
      }
      return !1;
    }
    declareName(e, s, r) {
      if (s & 4096) {
        this.hasImport(e, !0) && this.parser.raise(Q.VarRedeclaration, r, {
          identifierName: e
        }), this.importsStack[this.importsStack.length - 1].add(e);
        return;
      }
      let i = this.currentScope(), a = i.tsNames.get(e) || 0;
      if (s & 1024) {
        this.maybeExportDefined(i, e), i.tsNames.set(e, a | 16);
        return;
      }
      super.declareName(e, s, r), s & 2 && (s & 1 || (this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e)), a = a | 1),
      s & 256 && (a = a | 2), s & 512 && (a = a | 4), s & 128 && (a = a | 8), a && i.tsNames.set(e, a);
    }
    isRedeclaredInScope(e, s, r) {
      let i = e.tsNames.get(s);
      if ((i & 2) > 0) {
        if (r & 256) {
          let a = !!(r & 512), o = (i & 4) > 0;
          return a !== o;
        }
        return !0;
      }
      return r & 128 && (i & 8) > 0 ? e.names.get(s) & 2 ? !!(r & 1) : !1 : r & 2 && (i & 1) > 0 ? !0 : super.isRedeclaredInScope(e, s, r);
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      if (this.hasImport(s)) return;
      let r = this.scopeStack.length;
      for (let i = r - 1; i >= 0; i--) {
        let o = this.scopeStack[i].tsNames.get(s);
        if ((o & 1) > 0 || (o & 16) > 0)
          return;
      }
      super.checkLocalExport(e);
    }
  }, w$ = /* @__PURE__ */ n((t) => t.type === "ParenthesizedExpression" ? w$(t.expression) : t, "unwrapParenthesizedExpression"), $k = class extends Kk {
    static {
      n(this, "LValParser");
    }
    toAssignable(e, s = !1) {
      var r, i;
      let a;
      switch ((e.type === "ParenthesizedExpression" || (r = e.extra) != null && r.parenthesized) && (a = w$(e), s ? a.type === "Identifier" ?
      this.expressionScope.recordArrowParameterBindingError(Q.InvalidParenthesizedAssignment, e) : a.type !== "MemberExpression" && !this.isOptionalMemberExpression(
      a) && this.raise(Q.InvalidParenthesizedAssignment, e) : this.raise(Q.InvalidParenthesizedAssignment, e)), e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          break;
        case "ObjectExpression":
          e.type = "ObjectPattern";
          for (let l = 0, u = e.properties.length, c = u - 1; l < u; l++) {
            var o;
            let p = e.properties[l], h = l === c;
            this.toAssignableObjectExpressionProp(p, h, s), h && p.type === "RestElement" && (o = e.extra) != null && o.trailingCommaLoc && this.
            raise(Q.RestTrailingComma, e.extra.trailingCommaLoc);
          }
          break;
        case "ObjectProperty": {
          let {
            key: l,
            value: u
          } = e;
          this.isPrivateName(l) && this.classScope.usePrivateName(this.getPrivateNameSV(l), l.loc.start), this.toAssignable(u, s);
          break;
        }
        case "SpreadElement":
          throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignabl\
e's caller.");
        case "ArrayExpression":
          e.type = "ArrayPattern", this.toAssignableList(e.elements, (i = e.extra) == null ? void 0 : i.trailingCommaLoc, s);
          break;
        case "AssignmentExpression":
          e.operator !== "=" && this.raise(Q.MissingEqInAssignment, e.left.loc.end), e.type = "AssignmentPattern", delete e.operator, this.toAssignable(
          e.left, s);
          break;
        case "ParenthesizedExpression":
          this.toAssignable(a, s);
          break;
      }
    }
    toAssignableObjectExpressionProp(e, s, r) {
      if (e.type === "ObjectMethod")
        this.raise(e.kind === "get" || e.kind === "set" ? Q.PatternHasAccessor : Q.PatternHasMethod, e.key);
      else if (e.type === "SpreadElement") {
        e.type = "RestElement";
        let i = e.argument;
        this.checkToRestConversion(i, !1), this.toAssignable(i, r), s || this.raise(Q.RestTrailingComma, e);
      } else
        this.toAssignable(e, r);
    }
    toAssignableList(e, s, r) {
      let i = e.length - 1;
      for (let a = 0; a <= i; a++) {
        let o = e[a];
        if (o) {
          if (o.type === "SpreadElement") {
            o.type = "RestElement";
            let l = o.argument;
            this.checkToRestConversion(l, !0), this.toAssignable(l, r);
          } else
            this.toAssignable(o, r);
          o.type === "RestElement" && (a < i ? this.raise(Q.RestTrailingComma, o) : s && this.raise(Q.RestTrailingComma, s));
        }
      }
    }
    isAssignable(e, s) {
      switch (e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          return !0;
        case "ObjectExpression": {
          let r = e.properties.length - 1;
          return e.properties.every((i, a) => i.type !== "ObjectMethod" && (a === r || i.type !== "SpreadElement") && this.isAssignable(i));
        }
        case "ObjectProperty":
          return this.isAssignable(e.value);
        case "SpreadElement":
          return this.isAssignable(e.argument);
        case "ArrayExpression":
          return e.elements.every((r) => r === null || this.isAssignable(r));
        case "AssignmentExpression":
          return e.operator === "=";
        case "ParenthesizedExpression":
          return this.isAssignable(e.expression);
        case "MemberExpression":
        case "OptionalMemberExpression":
          return !s;
        default:
          return !1;
      }
    }
    toReferencedList(e, s) {
      return e;
    }
    toReferencedListDeep(e, s) {
      this.toReferencedList(e, s);
      for (let r of e)
        r?.type === "ArrayExpression" && this.toReferencedListDeep(r.elements);
    }
    parseSpread(e) {
      let s = this.startNode();
      return this.next(), s.argument = this.parseMaybeAssignAllowIn(e, void 0), this.finishNode(s, "SpreadElement");
    }
    parseRestBinding() {
      let e = this.startNode();
      return this.next(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 0: {
          let e = this.startNode();
          return this.next(), e.elements = this.parseBindingList(3, 93, 1), this.finishNode(e, "ArrayPattern");
        }
        case 5:
          return this.parseObjectLike(8, !0);
      }
      return this.parseIdentifier();
    }
    parseBindingList(e, s, r) {
      let i = r & 1, a = [], o = !0;
      for (; !this.eat(e); )
        if (o ? o = !1 : this.expect(12), i && this.match(12))
          a.push(null);
        else {
          if (this.eat(e))
            break;
          if (this.match(21)) {
            let l = this.parseRestBinding();
            if ((this.hasPlugin("flow") || r & 2) && (l = this.parseFunctionParamType(l)), a.push(l), !this.checkCommaAfterRest(s)) {
              this.expect(e);
              break;
            }
          } else {
            let l = [];
            for (this.match(26) && this.hasPlugin("decorators") && this.raise(Q.UnsupportedParameterDecorator, this.state.startLoc); this.match(
            26); )
              l.push(this.parseDecorator());
            a.push(this.parseAssignableListItem(r, l));
          }
        }
      return a;
    }
    parseBindingRestProperty(e) {
      return this.next(), e.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(e, "RestElement");
    }
    parseBindingProperty() {
      let {
        type: e,
        startLoc: s
      } = this.state;
      if (e === 21)
        return this.parseBindingRestProperty(this.startNode());
      let r = this.startNode();
      return e === 139 ? (this.expectPlugin("destructuringPrivate", s), this.classScope.usePrivateName(this.state.value, s), r.key = this.parsePrivateName()) :
      this.parsePropertyName(r), r.method = !1, this.parseObjPropValue(r, s, !1, !1, !0, !1);
    }
    parseAssignableListItem(e, s) {
      let r = this.parseMaybeDefault();
      (this.hasPlugin("flow") || e & 2) && this.parseFunctionParamType(r);
      let i = this.parseMaybeDefault(r.loc.start, r);
      return s.length && (r.decorators = s), i;
    }
    parseFunctionParamType(e) {
      return e;
    }
    parseMaybeDefault(e, s) {
      var r, i;
      if ((r = e) != null || (e = this.state.startLoc), s = (i = s) != null ? i : this.parseBindingAtom(), !this.eat(29)) return s;
      let a = this.startNodeAt(e);
      return a.left = s, a.right = this.parseMaybeAssignAllowIn(), this.finishNode(a, "AssignmentPattern");
    }
    isValidLVal(e, s, r) {
      switch (e) {
        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(e) {
      return e.type === "OptionalMemberExpression";
    }
    checkLVal(e, s, r = 64, i = !1, a = !1, o = !1) {
      var l;
      let u = e.type;
      if (this.isObjectMethod(e)) return;
      let c = this.isOptionalMemberExpression(e);
      if (c || u === "MemberExpression") {
        c && (this.expectPlugin("optionalChainingAssign", e.loc.start), s.type !== "AssignmentExpression" && this.raise(Q.InvalidLhsOptionalChaining,
        e, {
          ancestor: s
        })), r !== 64 && this.raise(Q.InvalidPropertyBindingPattern, e);
        return;
      }
      if (u === "Identifier") {
        this.checkIdentifier(e, r, a);
        let {
          name: y
        } = e;
        i && (i.has(y) ? this.raise(Q.ParamDupe, e) : i.add(y));
        return;
      }
      let p = this.isValidLVal(u, !(o || (l = e.extra) != null && l.parenthesized) && s.type === "AssignmentExpression", r);
      if (p === !0) return;
      if (p === !1) {
        let y = r === 64 ? Q.InvalidLhs : Q.InvalidLhsBinding;
        this.raise(y, e, {
          ancestor: s
        });
        return;
      }
      let h, f;
      typeof p == "string" ? (h = p, f = u === "ParenthesizedExpression") : [h, f] = p;
      let d = u === "ArrayPattern" || u === "ObjectPattern" ? {
        type: u
      } : s, m = e[h];
      if (Array.isArray(m))
        for (let y of m)
          y && this.checkLVal(y, d, r, i, a, f);
      else m && this.checkLVal(m, d, r, i, a, f);
    }
    checkIdentifier(e, s, r = !1) {
      this.state.strict && (r ? P$(e.name, this.inModule) : S$(e.name)) && (s === 64 ? this.raise(Q.StrictEvalArguments, e, {
        referenceName: e.name
      }) : this.raise(Q.StrictEvalArgumentsBinding, e, {
        bindingName: e.name
      })), s & 8192 && e.name === "let" && this.raise(Q.LetInLexicalBinding, e), s & 64 || this.declareNameFromIdentifier(e, s);
    }
    declareNameFromIdentifier(e, s) {
      this.scope.declareName(e.name, s, e.loc.start);
    }
    checkToRestConversion(e, s) {
      switch (e.type) {
        case "ParenthesizedExpression":
          this.checkToRestConversion(e.expression, s);
          break;
        case "Identifier":
        case "MemberExpression":
          break;
        case "ArrayExpression":
        case "ObjectExpression":
          if (s) break;
        default:
          this.raise(Q.InvalidRestAssignmentPattern, e);
      }
    }
    checkCommaAfterRest(e) {
      return this.match(12) ? (this.raise(this.lookaheadCharCode() === e ? Q.RestTrailingComma : Q.ElementAfterRest, this.state.startLoc), !0) :
      !1;
    }
  };
  function SVe(t) {
    if (t == null)
      throw new Error(`Unexpected ${t} value.`);
    return t;
  }
  n(SVe, "nonNull");
  function c$(t) {
    if (!t)
      throw new Error("Assert fail");
  }
  n(c$, "assert");
  var ht = tu`typescript`({
    AbstractMethodHasImplementation: /* @__PURE__ */ n(({
      methodName: t
    }) => `Method '${t}' cannot have an implementation because it is marked abstract.`, "AbstractMethodHasImplementation"),
    AbstractPropertyHasInitializer: /* @__PURE__ */ n(({
      propertyName: t
    }) => `Property '${t}' cannot have an initializer because it is marked abstract.`, "AbstractPropertyHasInitializer"),
    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 num\
eric literal or literal enum reference.",
    ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
    DeclareAccessor: /* @__PURE__ */ n(({
      kind: t
    }) => `'declare' is not allowed in ${t}ters.`, "DeclareAccessor"),
    DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
    DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
    DuplicateAccessibilityModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => "Accessibility modifier already seen.", "DuplicateAccessibilityModifier"),
    DuplicateModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => `Duplicate modifier: '${t}'.`, "DuplicateModifier"),
    EmptyHeritageClauseType: /* @__PURE__ */ n(({
      token: t
    }) => `'${t}' list cannot be empty.`, "EmptyHeritageClauseType"),
    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: /* @__PURE__ */ n(({
      modifiers: t
    }) => `'${t[0]}' modifier cannot be used with '${t[1]}' modifier.`, "IncompatibleModifiers"),
    IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
    IndexSignatureHasAccessibility: /* @__PURE__ */ n(({
      modifier: t
    }) => `Index signatures cannot have an accessibility modifier ('${t}').`, "IndexSignatureHasAccessibility"),
    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: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type member.`, "InvalidModifierOnTypeMember"),
    InvalidModifierOnTypeParameter: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type parameter.`, "InvalidModifierOnTypeParameter"),
    InvalidModifierOnTypeParameterPositions: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier can only appear on a type parameter of a class, interface or type alias.`, "InvalidModifierOnTypeParameterPositio\
ns"),
    InvalidModifiersOrder: /* @__PURE__ */ n(({
      orderedModifiers: t
    }) => `'${t[0]}' modifier must precede '${t[1]}' modifier.`, "InvalidModifiersOrder"),
    InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the i\
nstantiation 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: /* @__PURE__ */ n(({
      modifier: t
    }) => `Private elements cannot have an accessibility modifier ('${t}').`, "PrivateElementHasAccessibility"),
    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: /* @__PURE__ */ n(({
      typeParameterName: t
    }) => `Single type parameter ${t} should have a trailing comma. Example usage: <${t},>.`, "SingleTypeParameterWithoutTrailingComma"),
    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 (`n\
ame?: 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 statemen\
t.",
    TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statemen\
t.",
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${t}.`, "UnsupportedSignatureParameterKind")
  });
  function PVe(t) {
    switch (t) {
      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;
    }
  }
  n(PVe, "keywordTypeFromName");
  function p$(t) {
    return t === "private" || t === "public" || t === "protected";
  }
  n(p$, "tsIsAccessModifier");
  function EVe(t) {
    return t === "in" || t === "out";
  }
  n(EVe, "tsIsVarianceAnnotations");
  var AVe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "TypeScriptParserMixin");
    }
    constructor(...s) {
      super(...s), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out"],
        disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: ht.InvalidModifierOnTypeParameter
      }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["const"],
        disallowedModifiers: ["in", "out"],
        errorTemplate: ht.InvalidModifierOnTypeParameterPositions
      }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out", "const"],
        disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: ht.InvalidModifierOnTypeParameter
      });
    }
    getScopeHandler() {
      return Wk;
    }
    tsIsIdentifier() {
      return Ys(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(s, r) {
      if (!Ys(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
        return;
      let i = this.state.value;
      if (s.includes(i)) {
        if (r && this.tsIsStartOfStaticBlocks())
          return;
        if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
          return i;
      }
    }
    tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: r,
      stopOnStartOfClassStaticBlock: i,
      errorTemplate: a = ht.InvalidModifierOnTypeMember
    }, o) {
      let l = /* @__PURE__ */ n((c, p, h, f) => {
        p === h && o[f] && this.raise(ht.InvalidModifiersOrder, c, {
          orderedModifiers: [h, f]
        });
      }, "enforceOrder"), u = /* @__PURE__ */ n((c, p, h, f) => {
        (o[h] && p === f || o[f] && p === h) && this.raise(ht.IncompatibleModifiers, c, {
          modifiers: [h, f]
        });
      }, "incompatible");
      for (; ; ) {
        let {
          startLoc: c
        } = this.state, p = this.tsParseModifier(s.concat(r ?? []), i);
        if (!p) break;
        p$(p) ? o.accessibility ? this.raise(ht.DuplicateAccessibilityModifier, c, {
          modifier: p
        }) : (l(c, p, p, "override"), l(c, p, p, "static"), l(c, p, p, "readonly"), o.accessibility = p) : EVe(p) ? (o[p] && this.raise(ht.DuplicateModifier,
        c, {
          modifier: p
        }), o[p] = !0, l(c, p, "in", "out")) : (hasOwnProperty.call(o, p) ? this.raise(ht.DuplicateModifier, c, {
          modifier: p
        }) : (l(c, p, "static", "readonly"), l(c, p, "static", "override"), l(c, p, "override", "readonly"), l(c, p, "abstract", "override"),
        u(c, p, "declare", "override"), u(c, p, "static", "abstract")), o[p] = !0), r != null && r.includes(p) && this.raise(a, c, {
          modifier: p
        });
      }
    }
    tsIsListTerminator(s) {
      switch (s) {
        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(s, r) {
      let i = [];
      for (; !this.tsIsListTerminator(s); )
        i.push(r());
      return i;
    }
    tsParseDelimitedList(s, r, i) {
      return SVe(this.tsParseDelimitedListWorker(s, r, !0, i));
    }
    tsParseDelimitedListWorker(s, r, i, a) {
      let o = [], l = -1;
      for (; !this.tsIsListTerminator(s); ) {
        l = -1;
        let u = r();
        if (u == null)
          return;
        if (o.push(u), this.eat(12)) {
          l = this.state.lastTokStartLoc.index;
          continue;
        }
        if (this.tsIsListTerminator(s))
          break;
        i && this.expect(12);
        return;
      }
      return a && (a.value = l), o;
    }
    tsParseBracketedList(s, r, i, a, o) {
      a || (i ? this.expect(0) : this.expect(47));
      let l = this.tsParseDelimitedList(s, r, o);
      return i ? this.expect(3) : this.expect(48), l;
    }
    tsParseImportType() {
      let s = this.startNode();
      return this.expect(83), this.expect(10), this.match(134) ? s.argument = this.parseStringLiteral(this.state.value) : (this.raise(ht.UnsupportedImportTypeArgument,
      this.state.startLoc), s.argument = super.parseExprAtom()), this.eat(12) && !this.match(11) ? (s.options = super.parseMaybeAssignAllowIn(),
      this.eat(12)) : s.options = null, this.expect(11), this.eat(16) && (s.qualifier = this.tsParseEntityName(3)), this.match(47) && (s.typeParameters =
      this.tsParseTypeArguments()), this.finishNode(s, "TSImportType");
    }
    tsParseEntityName(s) {
      let r;
      if (s & 1 && this.match(78))
        if (s & 2)
          r = this.parseIdentifier(!0);
        else {
          let i = this.startNode();
          this.next(), r = this.finishNode(i, "ThisExpression");
        }
      else
        r = this.parseIdentifier(!!(s & 1));
      for (; this.eat(16); ) {
        let i = this.startNodeAtNode(r);
        i.left = r, i.right = this.parseIdentifier(!!(s & 1)), r = this.finishNode(i, "TSQualifiedName");
      }
      return r;
    }
    tsParseTypeReference() {
      let s = this.startNode();
      return s.typeName = this.tsParseEntityName(1), !this.hasPrecedingLineBreak() && this.match(47) && (s.typeParameters = this.tsParseTypeArguments()),
      this.finishNode(s, "TSTypeReference");
    }
    tsParseThisTypePredicate(s) {
      this.next();
      let r = this.startNodeAtNode(s);
      return r.parameterName = s, r.typeAnnotation = this.tsParseTypeAnnotation(!1), r.asserts = !1, this.finishNode(r, "TSTypePredicate");
    }
    tsParseThisTypeNode() {
      let s = this.startNode();
      return this.next(), this.finishNode(s, "TSThisType");
    }
    tsParseTypeQuery() {
      let s = this.startNode();
      return this.expect(87), this.match(83) ? s.exprName = this.tsParseImportType() : s.exprName = this.tsParseEntityName(3), !this.hasPrecedingLineBreak() &&
      this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSTypeQuery");
    }
    tsParseTypeParameter(s) {
      let r = this.startNode();
      return s(r), r.name = this.tsParseTypeParameterName(), r.constraint = this.tsEatThenParseType(81), r.default = this.tsEatThenParseType(
      29), this.finishNode(r, "TSTypeParameter");
    }
    tsTryParseTypeParameters(s) {
      if (this.match(47))
        return this.tsParseTypeParameters(s);
    }
    tsParseTypeParameters(s) {
      let r = this.startNode();
      this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = {
        value: -1
      };
      return r.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, s), !1, !0, i), r.params.
      length === 0 && this.raise(ht.EmptyTypeParameters, r), i.value !== -1 && this.addExtra(r, "trailingComma", i.value), this.finishNode(r,
      "TSTypeParameterDeclaration");
    }
    tsFillSignature(s, r) {
      let i = s === 19, a = "parameters", o = "typeAnnotation";
      r.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), r[a] = this.tsParseBindingListForSignature(),
      i ? r[o] = this.tsParseTypeOrTypePredicateAnnotation(s) : this.match(s) && (r[o] = this.tsParseTypeOrTypePredicateAnnotation(s));
    }
    tsParseBindingListForSignature() {
      let s = super.parseBindingList(11, 41, 2);
      for (let r of s) {
        let {
          type: i
        } = r;
        (i === "AssignmentPattern" || i === "TSParameterProperty") && this.raise(ht.UnsupportedSignatureParameterKind, r, {
          type: i
        });
      }
      return s;
    }
    tsParseTypeMemberSemicolon() {
      !this.eat(12) && !this.isLineTerminator() && this.expect(13);
    }
    tsParseSignatureMember(s, r) {
      return this.tsFillSignature(14, r), this.tsParseTypeMemberSemicolon(), this.finishNode(r, s);
    }
    tsIsUnambiguouslyIndexSignature() {
      return this.next(), Ys(this.state.type) ? (this.next(), this.match(14)) : !1;
    }
    tsTryParseIndexSignature(s) {
      if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
        return;
      this.expect(0);
      let r = this.parseIdentifier();
      r.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(r), this.expect(3), s.parameters = [r];
      let i = this.tsTryParseTypeAnnotation();
      return i && (s.typeAnnotation = i), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSIndexSignature");
    }
    tsParsePropertyOrMethodSignature(s, r) {
      this.eat(17) && (s.optional = !0);
      let i = s;
      if (this.match(10) || this.match(47)) {
        r && this.raise(ht.ReadonlyForMethodSignature, s);
        let a = i;
        a.kind && this.match(47) && this.raise(ht.AccessorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, a), this.
        tsParseTypeMemberSemicolon();
        let o = "parameters", l = "typeAnnotation";
        if (a.kind === "get")
          a[o].length > 0 && (this.raise(Q.BadGetterArity, this.state.curPosition()), this.isThisParam(a[o][0]) && this.raise(ht.AccessorCannotDeclareThisParameter,
          this.state.curPosition()));
        else if (a.kind === "set") {
          if (a[o].length !== 1)
            this.raise(Q.BadSetterArity, this.state.curPosition());
          else {
            let u = a[o][0];
            this.isThisParam(u) && this.raise(ht.AccessorCannotDeclareThisParameter, this.state.curPosition()), u.type === "Identifier" && u.
            optional && this.raise(ht.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()), u.type === "RestElement" && this.raise(
            ht.SetAccessorCannotHaveRestParameter, this.state.curPosition());
          }
          a[l] && this.raise(ht.SetAccessorCannotHaveReturnType, a[l]);
        } else
          a.kind = "method";
        return this.finishNode(a, "TSMethodSignature");
      } else {
        let a = i;
        r && (a.readonly = !0);
        let o = this.tsTryParseTypeAnnotation();
        return o && (a.typeAnnotation = o), this.tsParseTypeMemberSemicolon(), this.finishNode(a, "TSPropertySignature");
      }
    }
    tsParseTypeMember() {
      let s = this.startNode();
      if (this.match(10) || this.match(47))
        return this.tsParseSignatureMember("TSCallSignatureDeclaration", s);
      if (this.match(77)) {
        let i = this.startNode();
        return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", s) : (s.key = this.
        createIdentifier(i, "new"), this.tsParsePropertyOrMethodSignature(s, !1));
      }
      this.tsParseModifiers({
        allowedModifiers: ["readonly"],
        disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
      }, s);
      let r = this.tsTryParseIndexSignature(s);
      return r || (super.parsePropertyName(s), !s.computed && s.key.type === "Identifier" && (s.key.name === "get" || s.key.name === "set") &&
      this.tsTokenCanFollowModifier() && (s.kind = s.key.name, super.parsePropertyName(s)), this.tsParsePropertyOrMethodSignature(s, !!s.readonly));
    }
    tsParseTypeLiteral() {
      let s = this.startNode();
      return s.members = this.tsParseObjectTypeMembers(), this.finishNode(s, "TSTypeLiteral");
    }
    tsParseObjectTypeMembers() {
      this.expect(5);
      let s = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
      return this.expect(8), s;
    }
    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() {
      let s = this.startNode();
      this.expect(5), this.match(53) ? (s.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) &&
      (s.readonly = !0), this.expect(0);
      {
        let r = this.startNode();
        r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), s.typeParameter = this.finishNode(r, "TSTyp\
eParameter");
      }
      return s.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (s.optional = this.state.value,
      this.next(), this.expect(17)) : this.eat(17) && (s.optional = !0), s.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(
      8), this.finishNode(s, "TSMappedType");
    }
    tsParseTupleType() {
      let s = this.startNode();
      s.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
      let r = !1;
      return s.elementTypes.forEach((i) => {
        let {
          type: a
        } = i;
        r && a !== "TSRestType" && a !== "TSOptionalType" && !(a === "TSNamedTupleMember" && i.optional) && this.raise(ht.OptionalTypeBeforeRequired,
        i), r || (r = a === "TSNamedTupleMember" && i.optional || a === "TSOptionalType");
      }), this.finishNode(s, "TSTupleType");
    }
    tsParseTupleElementType() {
      let s = this.state.startLoc, r = this.eat(21), {
        startLoc: i
      } = this.state, a, o, l, u, p = bo(this.state.type) ? this.lookaheadCharCode() : null;
      if (p === 58)
        a = !0, l = !1, o = this.parseIdentifier(!0), this.expect(14), u = this.tsParseType();
      else if (p === 63) {
        l = !0;
        let h = this.state.value, f = this.tsParseNonArrayType();
        this.lookaheadCharCode() === 58 ? (a = !0, o = this.createIdentifier(this.startNodeAt(i), h), this.expect(17), this.expect(14), u = this.
        tsParseType()) : (a = !1, u = f, this.expect(17));
      } else
        u = this.tsParseType(), l = this.eat(17), a = this.eat(14);
      if (a) {
        let h;
        o ? (h = this.startNodeAt(i), h.optional = l, h.label = o, h.elementType = u, this.eat(17) && (h.optional = !0, this.raise(ht.TupleOptionalAfterType,
        this.state.lastTokStartLoc))) : (h = this.startNodeAt(i), h.optional = l, this.raise(ht.InvalidTupleMemberLabel, u), h.label = u, h.
        elementType = this.tsParseType()), u = this.finishNode(h, "TSNamedTupleMember");
      } else if (l) {
        let h = this.startNodeAt(i);
        h.typeAnnotation = u, u = this.finishNode(h, "TSOptionalType");
      }
      if (r) {
        let h = this.startNodeAt(s);
        h.typeAnnotation = u, u = this.finishNode(h, "TSRestType");
      }
      return u;
    }
    tsParseParenthesizedType() {
      let s = this.startNode();
      return this.expect(10), s.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(s, "TSParenthesizedType");
    }
    tsParseFunctionOrConstructorType(s, r) {
      let i = this.startNode();
      return s === "TSConstructorType" && (i.abstract = !!r, r && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.
      tsFillSignature(19, i)), this.finishNode(i, s);
    }
    tsParseLiteralTypeNode() {
      let s = this.startNode();
      switch (this.state.type) {
        case 135:
        case 136:
        case 134:
        case 85:
        case 86:
          s.literal = super.parseExprAtom();
          break;
        default:
          this.unexpected();
      }
      return this.finishNode(s, "TSLiteralType");
    }
    tsParseTemplateLiteralType() {
      {
        let s = this.startNode();
        return s.literal = super.parseTemplate(!1), this.finishNode(s, "TSLiteralType");
      }
    }
    parseTemplateSubstitution() {
      return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
    }
    tsParseThisTypeOrThisTypePredicate() {
      let s = this.tsParseThisTypeNode();
      return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(s) : s;
    }
    tsParseNonArrayType() {
      switch (this.state.type) {
        case 134:
        case 135:
        case 136:
        case 85:
        case 86:
          return this.tsParseLiteralTypeNode();
        case 53:
          if (this.state.value === "-") {
            let s = this.startNode(), r = this.lookahead();
            return r.type !== 135 && r.type !== 136 && this.unexpected(), s.literal = this.parseMaybeUnary(), this.finishNode(s, "TSLiteralT\
ype");
          }
          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: {
          let {
            type: s
          } = this.state;
          if (Ys(s) || s === 88 || s === 84) {
            let r = s === 88 ? "TSVoidKeyword" : s === 84 ? "TSNullKeyword" : PVe(this.state.value);
            if (r !== void 0 && this.lookaheadCharCode() !== 46) {
              let i = this.startNode();
              return this.next(), this.finishNode(i, r);
            }
            return this.tsParseTypeReference();
          }
        }
      }
      this.unexpected();
    }
    tsParseArrayTypeOrHigher() {
      let {
        startLoc: s
      } = this.state, r = this.tsParseNonArrayType();
      for (; !this.hasPrecedingLineBreak() && this.eat(0); )
        if (this.match(3)) {
          let i = this.startNodeAt(s);
          i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
        } else {
          let i = this.startNodeAt(s);
          i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
        }
      return r;
    }
    tsParseTypeOperator() {
      let s = this.startNode(), r = this.state.value;
      return this.next(), s.operator = r, s.typeAnnotation = this.tsParseTypeOperatorOrHigher(), r === "readonly" && this.tsCheckTypeAnnotationForReadOnly(
      s), this.finishNode(s, "TSTypeOperator");
    }
    tsCheckTypeAnnotationForReadOnly(s) {
      switch (s.typeAnnotation.type) {
        case "TSTupleType":
        case "TSArrayType":
          return;
        default:
          this.raise(ht.UnexpectedReadonly, s);
      }
    }
    tsParseInferType() {
      let s = this.startNode();
      this.expectContextual(115);
      let r = this.startNode();
      return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), s.typeParameter =
      this.finishNode(r, "TSTypeParameter"), this.finishNode(s, "TSInferType");
    }
    tsParseConstraintForInferType() {
      if (this.eat(81)) {
        let s = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
        if (this.state.inDisallowConditionalTypesContext || !this.match(17))
          return s;
      }
    }
    tsParseTypeOperatorOrHigher() {
      return KKe(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() :
      this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
    }
    tsParseUnionOrIntersectionType(s, r, i) {
      let a = this.startNode(), o = this.eat(i), l = [];
      do
        l.push(r());
      while (this.eat(i));
      return l.length === 1 && !o ? l[0] : (a.types = l, this.finishNode(a, s));
    }
    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 (Ys(this.state.type) || this.match(78))
        return this.next(), !0;
      if (this.match(5)) {
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return this.parseObjectLike(8, !0), s.length === r;
        } catch {
          return !1;
        }
      }
      if (this.match(0)) {
        this.next();
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return super.parseBindingList(3, 93, 1), s.length === r;
        } 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(s) {
      return this.tsInType(() => {
        let r = this.startNode();
        this.expect(s);
        let i = this.startNode(), a = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
        if (a && this.match(78)) {
          let u = this.tsParseThisTypeOrThisTypePredicate();
          return u.type === "TSThisType" ? (i.parameterName = u, i.asserts = !0, i.typeAnnotation = null, u = this.finishNode(i, "TSTypePred\
icate")) : (this.resetStartLocationFromNode(u, i), u.asserts = !0), r.typeAnnotation = u, this.finishNode(r, "TSTypeAnnotation");
        }
        let o = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
        if (!o)
          return a ? (i.parameterName = this.parseIdentifier(), i.asserts = a, i.typeAnnotation = null, r.typeAnnotation = this.finishNode(i,
          "TSTypePredicate"), this.finishNode(r, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, r);
        let l = this.tsParseTypeAnnotation(!1);
        return i.parameterName = o, i.typeAnnotation = l, i.asserts = a, r.typeAnnotation = this.finishNode(i, "TSTypePredicate"), this.finishNode(
        r, "TSTypeAnnotation");
      });
    }
    tsTryParseTypeOrTypePredicateAnnotation() {
      if (this.match(14))
        return this.tsParseTypeOrTypePredicateAnnotation(14);
    }
    tsTryParseTypeAnnotation() {
      if (this.match(14))
        return this.tsParseTypeAnnotation();
    }
    tsTryParseType() {
      return this.tsEatThenParseType(14);
    }
    tsParseTypePredicatePrefix() {
      let s = this.parseIdentifier();
      if (this.isContextual(116) && !this.hasPrecedingLineBreak())
        return this.next(), s;
    }
    tsParseTypePredicateAsserts() {
      if (this.state.type !== 109)
        return !1;
      let s = this.state.containsEsc;
      return this.next(), !Ys(this.state.type) && !this.match(78) ? !1 : (s && this.raise(Q.InvalidEscapedReservedWord, this.state.lastTokStartLoc,
      {
        reservedWord: "asserts"
      }), !0);
    }
    tsParseTypeAnnotation(s = !0, r = this.startNode()) {
      return this.tsInType(() => {
        s && this.expect(14), r.typeAnnotation = this.tsParseType();
      }), this.finishNode(r, "TSTypeAnnotation");
    }
    tsParseType() {
      c$(this.state.inType);
      let s = this.tsParseNonConditionalType();
      if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
        return s;
      let r = this.startNodeAtNode(s);
      return r.checkType = s, r.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(
      17), r.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), r.falseType = this.tsInAllowConditionalTypesContext(
      () => this.tsParseType()), this.finishNode(r, "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(ht.ReservedTypeAssertion, this.state.startLoc);
      let s = this.startNode();
      return s.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.
      expect(48), s.expression = this.parseMaybeUnary(), this.finishNode(s, "TSTypeAssertion");
    }
    tsParseHeritageClause(s) {
      let r = this.state.startLoc, i = this.tsParseDelimitedList("HeritageClauseElement", () => {
        let a = this.startNode();
        return a.expression = this.tsParseEntityName(3), this.match(47) && (a.typeParameters = this.tsParseTypeArguments()), this.finishNode(
        a, "TSExpressionWithTypeArguments");
      });
      return i.length || this.raise(ht.EmptyHeritageClauseType, r, {
        token: s
      }), i;
    }
    tsParseInterfaceDeclaration(s, r = {}) {
      if (this.hasFollowingLineBreak()) return null;
      this.expectContextual(129), r.declare && (s.declare = !0), Ys(this.state.type) ? (s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, 130)) : (s.id = null, this.raise(ht.MissingInterfaceName, this.state.startLoc)), s.typeParameters = this.tsTryParseTypeParameters(
      this.tsParseInOutConstModifiers), this.eat(81) && (s.extends = this.tsParseHeritageClause("extends"));
      let i = this.startNode();
      return i.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), s.body = this.finishNode(i, "TSInterfaceBody"), this.finishNode(
      s, "TSInterfaceDeclaration");
    }
    tsParseTypeAliasDeclaration(s) {
      return s.id = this.parseIdentifier(), this.checkIdentifier(s.id, 2), s.typeAnnotation = this.tsInType(() => {
        if (s.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().
        type !== 16) {
          let r = this.startNode();
          return this.next(), this.finishNode(r, "TSIntrinsicKeyword");
        }
        return this.tsParseType();
      }), this.semicolon(), this.finishNode(s, "TSTypeAliasDeclaration");
    }
    tsInTopLevelContext(s) {
      if (this.curContext() !== Js.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    tsInType(s) {
      let r = this.state.inType;
      this.state.inType = !0;
      try {
        return s();
      } finally {
        this.state.inType = r;
      }
    }
    tsInDisallowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !0;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsInAllowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !1;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsEatThenParseType(s) {
      if (this.match(s))
        return this.tsNextThenParseType();
    }
    tsExpectThenParseType(s) {
      return this.tsInType(() => (this.expect(s), this.tsParseType()));
    }
    tsNextThenParseType() {
      return this.tsInType(() => (this.next(), this.tsParseType()));
    }
    tsParseEnumMember() {
      let s = this.startNode();
      return s.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (s.initializer =
      super.parseMaybeAssignAllowIn()), this.finishNode(s, "TSEnumMember");
    }
    tsParseEnumDeclaration(s, r = {}) {
      return r.const && (s.const = !0), r.declare && (s.declare = !0), this.expectContextual(126), s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, s.const ? 8971 : 8459), this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)),
      this.expect(8), this.finishNode(s, "TSEnumDeclaration");
    }
    tsParseEnumBody() {
      let s = this.startNode();
      return this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(
      s, "TSEnumBody");
    }
    tsParseModuleBlock() {
      let s = this.startNode();
      return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(s.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(
      s, "TSModuleBlock");
    }
    tsParseModuleOrNamespaceDeclaration(s, r = !1) {
      if (s.id = this.parseIdentifier(), r || this.checkIdentifier(s.id, 1024), this.eat(16)) {
        let i = this.startNode();
        this.tsParseModuleOrNamespaceDeclaration(i, !0), s.body = i;
      } else
        this.scope.enter(256), this.prodParam.enter(0), s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
      return this.finishNode(s, "TSModuleDeclaration");
    }
    tsParseAmbientExternalModuleDeclaration(s) {
      return this.isContextual(112) ? (s.kind = "global", s.global = !0, s.id = this.parseIdentifier()) : this.match(134) ? (s.kind = "modul\
e", s.id = super.parseStringLiteral(this.state.value)) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0),
      s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(s, "TSModuleDeclarat\
ion");
    }
    tsParseImportEqualsDeclaration(s, r, i) {
      s.isExport = i || !1, s.id = r || this.parseIdentifier(), this.checkIdentifier(s.id, 4096), this.expect(29);
      let a = this.tsParseModuleReference();
      return s.importKind === "type" && a.type !== "TSExternalModuleReference" && this.raise(ht.ImportAliasHasImportType, a), s.moduleReference =
      a, this.semicolon(), this.finishNode(s, "TSImportEqualsDeclaration");
    }
    tsIsExternalModuleReference() {
      return this.isContextual(119) && this.lookaheadCharCode() === 40;
    }
    tsParseModuleReference() {
      return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0);
    }
    tsParseExternalModuleReference() {
      let s = this.startNode();
      return this.expectContextual(119), this.expect(10), this.match(134) || this.unexpected(), s.expression = super.parseExprAtom(), this.expect(
      11), this.sawUnambiguousESM = !0, this.finishNode(s, "TSExternalModuleReference");
    }
    tsLookAhead(s) {
      let r = this.state.clone(), i = s();
      return this.state = r, i;
    }
    tsTryParseAndCatch(s) {
      let r = this.tryParse((i) => s() || i());
      if (!(r.aborted || !r.node))
        return r.error && (this.state = r.failState), r.node;
    }
    tsTryParse(s) {
      let r = this.state.clone(), i = s();
      if (i !== void 0 && i !== !1)
        return i;
      this.state = r;
    }
    tsTryParseDeclare(s) {
      if (this.isLineTerminator())
        return;
      let r = this.state.type, i;
      return this.isContextual(100) && (r = 74, i = "let"), this.tsInAmbientContext(() => {
        switch (r) {
          case 68:
            return s.declare = !0, super.parseFunctionStatement(s, !1, !1);
          case 80:
            return s.declare = !0, this.parseClass(s, !0, !1);
          case 126:
            return this.tsParseEnumDeclaration(s, {
              declare: !0
            });
          case 112:
            return this.tsParseAmbientExternalModuleDeclaration(s);
          case 75:
          case 74:
            return !this.match(75) || !this.isLookaheadContextual("enum") ? (s.declare = !0, this.parseVarStatement(s, i || this.state.value,
            !0)) : (this.expect(75), this.tsParseEnumDeclaration(s, {
              const: !0,
              declare: !0
            }));
          case 129: {
            let a = this.tsParseInterfaceDeclaration(s, {
              declare: !0
            });
            if (a) return a;
          }
          default:
            if (Ys(r))
              return this.tsParseDeclaration(s, this.state.value, !0, null);
        }
      });
    }
    tsTryParseExportDeclaration() {
      return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
    }
    tsParseExpressionStatement(s, r, i) {
      switch (r.name) {
        case "declare": {
          let a = this.tsTryParseDeclare(s);
          return a && (a.declare = !0), a;
        }
        case "global":
          if (this.match(5)) {
            this.scope.enter(256), this.prodParam.enter(0);
            let a = s;
            return a.kind = "global", s.global = !0, a.id = r, a.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(),
            this.finishNode(a, "TSModuleDeclaration");
          }
          break;
        default:
          return this.tsParseDeclaration(s, r.name, !1, i);
      }
    }
    tsParseDeclaration(s, r, i, a) {
      switch (r) {
        case "abstract":
          if (this.tsCheckLineTerminator(i) && (this.match(80) || Ys(this.state.type)))
            return this.tsParseAbstractDeclaration(s, a);
          break;
        case "module":
          if (this.tsCheckLineTerminator(i)) {
            if (this.match(134))
              return this.tsParseAmbientExternalModuleDeclaration(s);
            if (Ys(this.state.type))
              return s.kind = "module", this.tsParseModuleOrNamespaceDeclaration(s);
          }
          break;
        case "namespace":
          if (this.tsCheckLineTerminator(i) && Ys(this.state.type))
            return s.kind = "namespace", this.tsParseModuleOrNamespaceDeclaration(s);
          break;
        case "type":
          if (this.tsCheckLineTerminator(i) && Ys(this.state.type))
            return this.tsParseTypeAliasDeclaration(s);
          break;
      }
    }
    tsCheckLineTerminator(s) {
      return s ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
    }
    tsTryParseGenericAsyncArrowFunction(s) {
      if (!this.match(47)) return;
      let r = this.state.maybeInArrowParameters;
      this.state.maybeInArrowParameters = !0;
      let i = this.tsTryParseAndCatch(() => {
        let a = this.startNodeAt(s);
        return a.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(a), a.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(),
        this.expect(19), a;
      });
      if (this.state.maybeInArrowParameters = r, !!i)
        return super.parseArrowExpression(i, null, !0);
    }
    tsParseTypeArgumentsInExpression() {
      if (this.reScan_lt() === 47)
        return this.tsParseTypeArguments();
    }
    tsParseTypeArguments() {
      let s = this.startNode();
      return s.params = this.tsInType(() => this.tsInTopLevelContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArgu\
ments", this.tsParseType.bind(this))))), s.params.length === 0 ? this.raise(ht.EmptyTypeArguments, s) : !this.state.inType && this.curContext() ===
      Js.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(s, "TSTypeParameterInstantiation");
    }
    tsIsDeclarationStart() {
      return VKe(this.state.type);
    }
    isExportDefaultSpecifier() {
      return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
    }
    parseAssignableListItem(s, r) {
      let i = this.state.startLoc, a = {};
      this.tsParseModifiers({
        allowedModifiers: ["public", "private", "protected", "override", "readonly"]
      }, a);
      let o = a.accessibility, l = a.override, u = a.readonly;
      !(s & 4) && (o || u || l) && this.raise(ht.UnexpectedParameterModifier, i);
      let c = this.parseMaybeDefault();
      s & 2 && this.parseFunctionParamType(c);
      let p = this.parseMaybeDefault(c.loc.start, c);
      if (o || u || l) {
        let h = this.startNodeAt(i);
        return r.length && (h.decorators = r), o && (h.accessibility = o), u && (h.readonly = u), l && (h.override = l), p.type !== "Identif\
ier" && p.type !== "AssignmentPattern" && this.raise(ht.UnsupportedParameterPropertyKind, h), h.parameter = p, this.finishNode(h, "TSParamet\
erProperty");
      }
      return r.length && (c.decorators = r), p;
    }
    isSimpleParameter(s) {
      return s.type === "TSParameterProperty" && super.isSimpleParameter(s.parameter) || super.isSimpleParameter(s);
    }
    tsDisallowOptionalPattern(s) {
      for (let r of s.params)
        r.type !== "Identifier" && r.optional && !this.state.isAmbientContext && this.raise(ht.PatternIsOptional, r);
    }
    setArrowFunctionParameters(s, r, i) {
      super.setArrowFunctionParameters(s, r, i), this.tsDisallowOptionalPattern(s);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      this.match(14) && (s.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
      let a = r === "FunctionDeclaration" ? "TSDeclareFunction" : r === "ClassMethod" || r === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
      return a && !this.match(5) && this.isLineTerminator() ? this.finishNode(s, a) : a === "TSDeclareFunction" && this.state.isAmbientContext &&
      (this.raise(ht.DeclareFunctionHasImplementation, s), s.declare) ? super.parseFunctionBodyAndFinish(s, a, i) : (this.tsDisallowOptionalPattern(
      s), super.parseFunctionBodyAndFinish(s, r, i));
    }
    registerFunctionStatementId(s) {
      !s.body && s.id ? this.checkIdentifier(s.id, 1024) : super.registerFunctionStatementId(s);
    }
    tsCheckForInvalidTypeCasts(s) {
      s.forEach((r) => {
        r?.type === "TSTypeCastExpression" && this.raise(ht.UnexpectedTypeAnnotation, r.typeAnnotation);
      });
    }
    toReferencedList(s, r) {
      return this.tsCheckForInvalidTypeCasts(s), s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return o.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(o.elements), o;
    }
    parseSubscript(s, r, i, a) {
      if (!this.hasPrecedingLineBreak() && this.match(35)) {
        this.state.canStartJSXElement = !1, this.next();
        let l = this.startNodeAt(r);
        return l.expression = s, this.finishNode(l, "TSNonNullExpression");
      }
      let o = !1;
      if (this.match(18) && this.lookaheadCharCode() === 60) {
        if (i)
          return a.stop = !0, s;
        a.optionalChainMember = o = !0, this.next();
      }
      if (this.match(47) || this.match(51)) {
        let l, u = this.tsTryParseAndCatch(() => {
          if (!i && this.atPossibleAsyncArrow(s)) {
            let f = this.tsTryParseGenericAsyncArrowFunction(r);
            if (f)
              return f;
          }
          let c = this.tsParseTypeArgumentsInExpression();
          if (!c) return;
          if (o && !this.match(10)) {
            l = this.state.curPosition();
            return;
          }
          if (Xx(this.state.type)) {
            let f = super.parseTaggedTemplateExpression(s, r, a);
            return f.typeParameters = c, f;
          }
          if (!i && this.eat(10)) {
            let f = this.startNodeAt(r);
            return f.callee = s, f.arguments = this.parseCallExpressionArguments(11), this.tsCheckForInvalidTypeCasts(f.arguments), f.typeParameters =
            c, a.optionalChainMember && (f.optional = o), this.finishCallExpression(f, a.optionalChainMember);
          }
          let p = this.state.type;
          if (p === 48 || p === 52 || p !== 10 && Ik(p) && !this.hasPrecedingLineBreak())
            return;
          let h = this.startNodeAt(r);
          return h.expression = s, h.typeParameters = c, this.finishNode(h, "TSInstantiationExpression");
        });
        if (l && this.unexpected(l, 10), u)
          return u.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(
          ht.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), u;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      var r;
      super.parseNewCallee(s);
      let {
        callee: i
      } = s;
      i.type === "TSInstantiationExpression" && !((r = i.extra) != null && r.parenthesized) && (s.typeParameters = i.typeParameters, s.callee =
      i.expression);
    }
    parseExprOp(s, r, i) {
      let a;
      if (Hx(58) > i && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (a = this.isContextual(120)))) {
        let o = this.startNodeAt(r);
        return o.expression = s, o.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (a && this.raise(Q.UnexpectedKeyword,
        this.state.startLoc, {
          keyword: "const"
        }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(o, a ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(),
        this.parseExprOp(o, r, i);
      }
      return super.parseExprOp(s, r, i);
    }
    checkReservedWord(s, r, i, a) {
      this.state.isAmbientContext || super.checkReservedWord(s, r, i, a);
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(ht.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    checkDuplicateExports() {
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        let r = this.lookaheadCharCode();
        return s ? r === 123 || r === 42 : r !== 61;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      super.applyImportPhase(s, r, i, a), r ? s.exportKind = i === "type" ? "type" : "value" : s.importKind = i === "type" || i === "typeof" ?
      i : "value";
    }
    parseImport(s) {
      if (this.match(134))
        return s.importKind = "value", super.parseImport(s);
      let r;
      if (Ys(this.state.type) && this.lookaheadCharCode() === 61)
        return s.importKind = "value", this.tsParseImportEqualsDeclaration(s);
      if (this.isContextual(130)) {
        let i = this.parseMaybeImportPhase(s, !1);
        if (this.lookaheadCharCode() === 61)
          return this.tsParseImportEqualsDeclaration(s, i);
        r = super.parseImportSpecifiersAndAfter(s, i);
      } else
        r = super.parseImport(s);
      return r.importKind === "type" && r.specifiers.length > 1 && r.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(ht.TypeImportCannotSpecifyDefaultAndNamed,
      r), r;
    }
    parseExport(s, r) {
      if (this.match(83)) {
        let i = s;
        this.next();
        let a = null;
        return this.isContextual(130) && this.isPotentialImportPhase(!1) ? a = this.parseMaybeImportPhase(i, !1) : i.importKind = "value", this.
        tsParseImportEqualsDeclaration(i, a, !0);
      } else if (this.eat(29)) {
        let i = s;
        return i.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(i, "TSExportAssignment");
      } else if (this.eatContextual(93)) {
        let i = s;
        return this.expectContextual(128), i.id = this.parseIdentifier(), this.semicolon(), this.finishNode(i, "TSNamespaceExportDeclaration");
      } else
        return super.parseExport(s, r);
    }
    isAbstractClass() {
      return this.isContextual(124) && this.lookahead().type === 80;
    }
    parseExportDefaultExpression() {
      if (this.isAbstractClass()) {
        let s = this.startNode();
        return this.next(), s.abstract = !0, this.parseClass(s, !0, !0);
      }
      if (this.match(129)) {
        let s = this.tsParseInterfaceDeclaration(this.startNode());
        if (s) return s;
      }
      return super.parseExportDefaultExpression();
    }
    parseVarStatement(s, r, i = !1) {
      let {
        isAmbientContext: a
      } = this.state, o = super.parseVarStatement(s, r, i || a);
      if (!a) return o;
      for (let {
        id: l,
        init: u
      } of o.declarations)
        u && (r !== "const" || l.typeAnnotation ? this.raise(ht.InitializerNotAllowedInAmbientContext, u) : CVe(u, this.hasPlugin("estree")) ||
        this.raise(ht.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, u));
      return o;
    }
    parseStatementContent(s, r) {
      if (this.match(75) && this.isLookaheadContextual("enum")) {
        let i = this.startNode();
        return this.expect(75), this.tsParseEnumDeclaration(i, {
          const: !0
        });
      }
      if (this.isContextual(126))
        return this.tsParseEnumDeclaration(this.startNode());
      if (this.isContextual(129)) {
        let i = this.tsParseInterfaceDeclaration(this.startNode());
        if (i) return i;
      }
      return super.parseStatementContent(s, r);
    }
    parseAccessModifier() {
      return this.tsParseModifier(["public", "protected", "private"]);
    }
    tsHasSomeModifiers(s, r) {
      return r.some((i) => p$(i) ? s.accessibility === i : !!s[i]);
    }
    tsIsStartOfStaticBlocks() {
      return this.isContextual(106) && this.lookaheadCharCode() === 123;
    }
    parseClassMember(s, r, i) {
      let a = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
      this.tsParseModifiers({
        allowedModifiers: a,
        disallowedModifiers: ["in", "out"],
        stopOnStartOfClassStaticBlock: !0,
        errorTemplate: ht.InvalidModifierOnTypeParameterPositions
      }, r);
      let o = /* @__PURE__ */ n(() => {
        this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(r, a) && this.raise(ht.StaticBlockCannotHaveModifier,
        this.state.curPosition()), super.parseClassStaticBlock(s, r)) : this.parseClassMemberWithIsStatic(s, r, i, !!r.static);
      }, "callParseClassMemberWithIsStatic");
      r.declare ? this.tsInAmbientContext(o) : o();
    }
    parseClassMemberWithIsStatic(s, r, i, a) {
      let o = this.tsTryParseIndexSignature(r);
      if (o) {
        s.body.push(o), r.abstract && this.raise(ht.IndexSignatureHasAbstract, r), r.accessibility && this.raise(ht.IndexSignatureHasAccessibility,
        r, {
          modifier: r.accessibility
        }), r.declare && this.raise(ht.IndexSignatureHasDeclare, r), r.override && this.raise(ht.IndexSignatureHasOverride, r);
        return;
      }
      !this.state.inAbstractClass && r.abstract && this.raise(ht.NonAbstractClassHasAbstractMethod, r), r.override && (i.hadSuperClass || this.
      raise(ht.OverrideNotInSubClass, r)), super.parseClassMemberWithIsStatic(s, r, i, a);
    }
    parsePostMemberNameModifiers(s) {
      this.eat(17) && (s.optional = !0), s.readonly && this.match(10) && this.raise(ht.ClassMethodHasReadonly, s), s.declare && this.match(10) &&
      this.raise(ht.ClassMethodHasDeclare, s);
    }
    parseExpressionStatement(s, r, i) {
      return (r.type === "Identifier" ? this.tsParseExpressionStatement(s, r, i) : void 0) || super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
    }
    parseConditional(s, r, i) {
      if (!this.state.maybeInArrowParameters || !this.match(17))
        return super.parseConditional(s, r, i);
      let a = this.tryParse(() => super.parseConditional(s, r));
      return a.node ? (a.error && (this.state = a.failState), a.node) : (a.error && super.setOptionalParametersError(i, a.error), s);
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = s, a.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(a, "TSTypeCastExpression");
      }
      return s;
    }
    parseExportDeclaration(s) {
      if (!this.state.isAmbientContext && this.isContextual(125))
        return this.tsInAmbientContext(() => this.parseExportDeclaration(s));
      let r = this.state.startLoc, i = this.eatContextual(125);
      if (i && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
        throw this.raise(ht.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
      let o = Ys(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(s);
      return o ? ((o.type === "TSInterfaceDeclaration" || o.type === "TSTypeAliasDeclaration" || i) && (s.exportKind = "type"), i && o.type !==
      "TSImportEqualsDeclaration" && (this.resetStartLocation(o, r), o.declare = !0), o) : null;
    }
    parseClassId(s, r, i, a) {
      if ((!r || i) && this.isContextual(113))
        return;
      super.parseClassId(s, r, i, s.declare ? 1024 : 8331);
      let o = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
      o && (s.typeParameters = o);
    }
    parseClassPropertyAnnotation(s) {
      s.optional || (this.eat(35) ? s.definite = !0 : this.eat(17) && (s.optional = !0));
      let r = this.tsTryParseTypeAnnotation();
      r && (s.typeAnnotation = r);
    }
    parseClassProperty(s) {
      if (this.parseClassPropertyAnnotation(s), this.state.isAmbientContext && !(s.readonly && !s.typeAnnotation) && this.match(29) && this.
      raise(ht.DeclareClassFieldHasInitializer, this.state.startLoc), s.abstract && this.match(29)) {
        let {
          key: r
        } = s;
        this.raise(ht.AbstractPropertyHasInitializer, this.state.startLoc, {
          propertyName: r.type === "Identifier" && !s.computed ? r.name : `[${this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(
          r.end))}]`
        });
      }
      return super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return s.abstract && this.raise(ht.PrivateElementHasAbstract, s), s.accessibility && this.raise(ht.PrivateElementHasAccessibility, s, {
        modifier: s.accessibility
      }), this.parseClassPropertyAnnotation(s), super.parseClassPrivateProperty(s);
    }
    parseClassAccessorProperty(s) {
      return this.parseClassPropertyAnnotation(s), s.optional && this.raise(ht.AccessorCannotBeOptional, s), super.parseClassAccessorProperty(
      s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      let u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      u && o && this.raise(ht.ConstructorHasTypeParameters, u);
      let {
        declare: c = !1,
        kind: p
      } = r;
      c && (p === "get" || p === "set") && this.raise(ht.DeclareAccessor, r, {
        kind: p
      }), u && (r.typeParameters = u), super.pushClassMethod(s, r, i, a, o, l);
    }
    pushClassPrivateMethod(s, r, i, a) {
      let o = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      o && (r.typeParameters = o), super.pushClassPrivateMethod(s, r, i, a);
    }
    declareClassPrivateMethodInScope(s, r) {
      s.type !== "TSDeclareMethod" && (s.type === "MethodDefinition" && !hasOwnProperty.call(s.value, "body") || super.declareClassPrivateMethodInScope(
      s, r));
    }
    parseClassSuper(s) {
      super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.tsParseTypeArgumentsInExpression()),
      this.eatContextual(113) && (s.implements = this.tsParseHeritageClause("implements"));
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      let c = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      return c && (s.typeParameters = c), super.parseObjPropValue(s, r, i, a, o, l, u);
    }
    parseFunctionParams(s, r) {
      let i = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      i && (s.typeParameters = i), super.parseFunctionParams(s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), s.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (s.definite = !0);
      let i = this.tsTryParseTypeAnnotation();
      i && (s.id.typeAnnotation = i, this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      return this.match(14) && (s.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(s, r);
    }
    parseMaybeAssign(s, r) {
      var i, a, o, l, u;
      let c, p, h;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (c = this.state.clone(), p = this.tryParse(() => super.parseMaybeAssign(s, r), c), !p.error) return p.node;
        let {
          context: m
        } = this.state, y = m[m.length - 1];
        (y === Js.j_oTag || y === Js.j_expr) && m.pop();
      }
      if (!((i = p) != null && i.error) && !this.match(47))
        return super.parseMaybeAssign(s, r);
      (!c || c === this.state) && (c = this.state.clone());
      let f, d = this.tryParse((m) => {
        var y, T;
        f = this.tsParseTypeParameters(this.tsParseConstModifier);
        let b = super.parseMaybeAssign(s, r);
        return (b.type !== "ArrowFunctionExpression" || (y = b.extra) != null && y.parenthesized) && m(), ((T = f) == null ? void 0 : T.params.
        length) !== 0 && this.resetStartLocationFromNode(b, f), b.typeParameters = f, b;
      }, c);
      if (!d.error && !d.aborted)
        return f && this.reportReservedArrowTypeParam(f), d.node;
      if (!p && (c$(!this.hasPlugin("jsx")), h = this.tryParse(() => super.parseMaybeAssign(s, r), c), !h.error))
        return h.node;
      if ((a = p) != null && a.node)
        return this.state = p.failState, p.node;
      if (d.node)
        return this.state = d.failState, f && this.reportReservedArrowTypeParam(f), d.node;
      if ((o = h) != null && o.node)
        return this.state = h.failState, h.node;
      throw ((l = p) == null ? void 0 : l.error) || d.error || ((u = h) == null ? void 0 : u.error);
    }
    reportReservedArrowTypeParam(s) {
      var r;
      s.params.length === 1 && !s.params[0].constraint && !((r = s.extra) != null && r.trailingComma) && this.getPluginOption("typescript", "\
disallowAmbiguousJSXLike") && this.raise(ht.ReservedArrowTypeParam, s);
    }
    parseMaybeUnary(s, r) {
      return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse((i) => {
          let a = this.tsParseTypeOrTypePredicateAnnotation(14);
          return (this.canInsertSemicolon() || !this.match(19)) && i(), a;
        });
        if (r.aborted) return;
        r.thrown || (r.error && (this.state = r.failState), s.returnType = r.node);
      }
      return super.parseArrow(s);
    }
    parseFunctionParamType(s) {
      this.eat(17) && (s.optional = !0);
      let r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r), this.resetEndLocation(s), s;
    }
    isAssignable(s, r) {
      switch (s.type) {
        case "TSTypeCastExpression":
          return this.isAssignable(s.expression, r);
        case "TSParameterProperty":
          return !0;
        default:
          return super.isAssignable(s, r);
      }
    }
    toAssignable(s, r = !1) {
      switch (s.type) {
        case "ParenthesizedExpression":
          this.toAssignableParenthesizedExpression(s, r);
          break;
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
          r ? this.expressionScope.recordArrowParameterBindingError(ht.UnexpectedTypeCastInParameter, s) : this.raise(ht.UnexpectedTypeCastInParameter,
          s), this.toAssignable(s.expression, r);
          break;
        case "AssignmentExpression":
          !r && s.left.type === "TSTypeCastExpression" && (s.left = this.typeCastToParameter(s.left));
        default:
          super.toAssignable(s, r);
      }
    }
    toAssignableParenthesizedExpression(s, r) {
      switch (s.expression.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
        case "ParenthesizedExpression":
          this.toAssignable(s.expression, r);
          break;
        default:
          super.toAssignable(s, r);
      }
    }
    checkToRestConversion(s, r) {
      switch (s.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
        case "TSNonNullExpression":
          this.checkToRestConversion(s.expression, !1);
          break;
        default:
          super.checkToRestConversion(s, r);
      }
    }
    isValidLVal(s, r, i) {
      switch (s) {
        case "TSTypeCastExpression":
          return !0;
        case "TSParameterProperty":
          return "parameter";
        case "TSNonNullExpression":
        case "TSInstantiationExpression":
          return "expression";
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
          return (i !== 64 || !r) && ["expression", !0];
        default:
          return super.isValidLVal(s, r, i);
      }
    }
    parseBindingAtom() {
      return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
    }
    parseMaybeDecoratorArguments(s, r) {
      if (this.match(47) || this.match(51)) {
        let i = this.tsParseTypeArgumentsInExpression();
        if (this.match(10)) {
          let a = super.parseMaybeDecoratorArguments(s, r);
          return a.typeParameters = i, a;
        }
        this.unexpected(null, 10);
      }
      return super.parseMaybeDecoratorArguments(s, r);
    }
    checkCommaAfterRest(s) {
      return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === s ? (this.next(), !1) : super.checkCommaAfterRest(
      s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(35) || this.match(14) || super.isClassProperty();
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(ht.TypeAnnotationAfterAssign,
      i.typeAnnotation), i;
    }
    getTokenFromCode(s) {
      if (this.state.inType) {
        if (s === 62) {
          this.finishOp(48, 1);
          return;
        }
        if (s === 60) {
          this.finishOp(47, 1);
          return;
        }
      }
      super.getTokenFromCode(s);
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TSTypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    shouldParseArrow(s) {
      return this.match(14) ? s.every((r) => this.isAssignable(r, !0)) : super.shouldParseArrow(s);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    canHaveLeadingDecorator() {
      return super.canHaveLeadingDecorator() || this.isAbstractClass();
    }
    jsxParseOpeningElementAfterName(s) {
      if (this.match(47) || this.match(51)) {
        let r = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
        r && (s.typeParameters = r);
      }
      return super.jsxParseOpeningElementAfterName(s);
    }
    getGetterSetterExpectedParamCount(s) {
      let r = super.getGetterSetterExpectedParamCount(s), a = this.getObjectOrClassMethodParams(s)[0];
      return a && this.isThisParam(a) ? r + 1 : r;
    }
    parseCatchClauseParam() {
      let s = super.parseCatchClauseParam(), r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r, this.resetEndLocation(s)), s;
    }
    tsInAmbientContext(s) {
      let {
        isAmbientContext: r,
        strict: i
      } = this.state;
      this.state.isAmbientContext = !0, this.state.strict = !1;
      try {
        return s();
      } finally {
        this.state.isAmbientContext = r, this.state.strict = i;
      }
    }
    parseClass(s, r, i) {
      let a = this.state.inAbstractClass;
      this.state.inAbstractClass = !!s.abstract;
      try {
        return super.parseClass(s, r, i);
      } finally {
        this.state.inAbstractClass = a;
      }
    }
    tsParseAbstractDeclaration(s, r) {
      if (this.match(80))
        return s.abstract = !0, this.maybeTakeDecorators(r, this.parseClass(s, !0, !1));
      if (this.isContextual(129)) {
        if (!this.hasFollowingLineBreak())
          return s.abstract = !0, this.raise(ht.NonClassMethodPropertyHasAbstractModifer, s), this.tsParseInterfaceDeclaration(s);
      } else
        this.unexpected(null, 80);
    }
    parseMethod(s, r, i, a, o, l, u) {
      let c = super.parseMethod(s, r, i, a, o, l, u);
      if (c.abstract && (this.hasPlugin("estree") ? c.value : c).body) {
        let {
          key: f
        } = c;
        this.raise(ht.AbstractMethodHasImplementation, c, {
          methodName: f.type === "Identifier" && !c.computed ? f.name : `[${this.input.slice(this.offsetToSourcePos(f.start), this.offsetToSourcePos(
          f.end))}]`
        });
      }
      return c;
    }
    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(s, r, i, a) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !1, i), this.finishNode(s, "ExportSpecifier")) : (s.exportKind = "value",
      super.parseExportSpecifier(s, r, i, a));
    }
    parseImportSpecifier(s, r, i, a, o) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !0, i), this.finishNode(s, "ImportSpecifier")) : (s.importKind = "value",
      super.parseImportSpecifier(s, r, i, a, i ? 4098 : 4096));
    }
    parseTypeOnlyImportExportSpecifier(s, r, i) {
      let a = r ? "imported" : "local", o = r ? "local" : "exported", l = s[a], u, c = !1, p = !0, h = l.loc.start;
      if (this.isContextual(93)) {
        let d = this.parseIdentifier();
        if (this.isContextual(93)) {
          let m = this.parseIdentifier();
          bo(this.state.type) ? (c = !0, l = d, u = r ? this.parseIdentifier() : this.parseModuleExportName(), p = !1) : (u = m, p = !1);
        } else bo(this.state.type) ? (p = !1, u = r ? this.parseIdentifier() : this.parseModuleExportName()) : (c = !0, l = d);
      } else bo(this.state.type) && (c = !0, r ? (l = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(l.name, l.loc.
      start, !0, !0)) : l = this.parseModuleExportName());
      c && i && this.raise(r ? ht.TypeModifierIsUsedInTypeImports : ht.TypeModifierIsUsedInTypeExports, h), s[a] = l, s[o] = u;
      let f = r ? "importKind" : "exportKind";
      s[f] = c ? "type" : "value", p && this.eatContextual(93) && (s[o] = r ? this.parseIdentifier() : this.parseModuleExportName()), s[o] ||
      (s[o] = su(s[a])), r && this.checkIdentifier(s[o], c ? 4098 : 4096);
    }
  }, "typescript");
  function vVe(t) {
    if (t.type !== "MemberExpression") return !1;
    let {
      computed: e,
      property: s
    } = t;
    return e && s.type !== "StringLiteral" && (s.type !== "TemplateLiteral" || s.expressions.length > 0) ? !1 : N$(t.object);
  }
  n(vVe, "isPossiblyLiteralEnum");
  function CVe(t, e) {
    var s;
    let {
      type: r
    } = t;
    if ((s = t.extra) != null && s.parenthesized)
      return !1;
    if (e) {
      if (r === "Literal") {
        let {
          value: i
        } = t;
        if (typeof i == "string" || typeof i == "boolean")
          return !0;
      }
    } else if (r === "StringLiteral" || r === "BooleanLiteral")
      return !0;
    return !!(I$(t, e) || wVe(t, e) || r === "TemplateLiteral" && t.expressions.length === 0 || vVe(t));
  }
  n(CVe, "isValidAmbientConstInitializer");
  function I$(t, e) {
    return e ? t.type === "Literal" && (typeof t.value == "number" || "bigint" in t) : t.type === "NumericLiteral" || t.type === "BigIntLite\
ral";
  }
  n(I$, "isNumber");
  function wVe(t, e) {
    if (t.type === "UnaryExpression") {
      let {
        operator: s,
        argument: r
      } = t;
      if (s === "-" && I$(r, e))
        return !0;
    }
    return !1;
  }
  n(wVe, "isNegativeNumber");
  function N$(t) {
    return t.type === "Identifier" ? !0 : t.type !== "MemberExpression" || t.computed ? !1 : N$(t.object);
  }
  n(N$, "isUncomputedMemberExpressionChain");
  var h$ = tu`placeholders`({
    ClassNameIsRequired: "A class name is required.",
    UnexpectedSpace: "Unexpected space in placeholder."
  }), IVe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "PlaceholdersParserMixin");
    }
    parsePlaceholder(s) {
      if (this.match(133)) {
        let r = this.startNode();
        return this.next(), this.assertNoSpace(), r.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(133), this.finishPlaceholder(
        r, s);
      }
    }
    finishPlaceholder(s, r) {
      let i = s;
      return (!i.expectedNode || !i.type) && (i = this.finishNode(i, "Placeholder")), i.expectedNode = r, i;
    }
    getTokenFromCode(s) {
      s === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(133, 2) : super.getTokenFromCode(s);
    }
    parseExprAtom(s) {
      return this.parsePlaceholder("Expression") || super.parseExprAtom(s);
    }
    parseIdentifier(s) {
      return this.parsePlaceholder("Identifier") || super.parseIdentifier(s);
    }
    checkReservedWord(s, r, i, a) {
      s !== void 0 && super.checkReservedWord(s, r, i, a);
    }
    parseBindingAtom() {
      return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
    }
    isValidLVal(s, r, i) {
      return s === "Placeholder" || super.isValidLVal(s, r, i);
    }
    toAssignable(s, r) {
      s && s.type === "Placeholder" && s.expectedNode === "Expression" ? s.expectedNode = "Pattern" : super.toAssignable(s, r);
    }
    chStartsBindingIdentifier(s, r) {
      return !!(super.chStartsBindingIdentifier(s, r) || this.lookahead().type === 133);
    }
    verifyBreakContinue(s, r) {
      s.label && s.label.type === "Placeholder" || super.verifyBreakContinue(s, r);
    }
    parseExpressionStatement(s, r) {
      var i;
      if (r.type !== "Placeholder" || (i = r.extra) != null && i.parenthesized)
        return super.parseExpressionStatement(s, r);
      if (this.match(14)) {
        let o = s;
        return o.label = this.finishPlaceholder(r, "Identifier"), this.next(), o.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(),
        this.finishNode(o, "LabeledStatement");
      }
      this.semicolon();
      let a = s;
      return a.name = r.name, this.finishPlaceholder(a, "Statement");
    }
    parseBlock(s, r, i) {
      return this.parsePlaceholder("BlockStatement") || super.parseBlock(s, r, i);
    }
    parseFunctionId(s) {
      return this.parsePlaceholder("Identifier") || super.parseFunctionId(s);
    }
    parseClass(s, r, i) {
      let a = r ? "ClassDeclaration" : "ClassExpression";
      this.next();
      let o = this.state.strict, l = this.parsePlaceholder("Identifier");
      if (l)
        if (this.match(81) || this.match(133) || this.match(5))
          s.id = l;
        else {
          if (i || !r)
            return s.id = null, s.body = this.finishPlaceholder(l, "ClassBody"), this.finishNode(s, a);
          throw this.raise(h$.ClassNameIsRequired, this.state.startLoc);
        }
      else
        this.parseClassId(s, r, i);
      return super.parseClassSuper(s), s.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!s.superClass, o), this.finishNode(
      s, a);
    }
    parseExport(s, r) {
      let i = this.parsePlaceholder("Identifier");
      if (!i) return super.parseExport(s, r);
      let a = s;
      if (!this.isContextual(98) && !this.match(12))
        return a.specifiers = [], a.source = null, a.declaration = this.finishPlaceholder(i, "Declaration"), this.finishNode(a, "ExportNamed\
Declaration");
      this.expectPlugin("exportDefaultFrom");
      let o = this.startNode();
      return o.exported = i, a.specifiers = [this.finishNode(o, "ExportDefaultSpecifier")], super.parseExport(a, r);
    }
    isExportDefaultSpecifier() {
      if (this.match(65)) {
        let s = this.nextTokenStart();
        if (this.isUnparsedContextual(s, "from") && this.input.startsWith(Kc(133), this.nextTokenStartSince(s + 4)))
          return !0;
      }
      return super.isExportDefaultSpecifier();
    }
    maybeParseExportDefaultSpecifier(s, r) {
      var i;
      return (i = s.specifiers) != null && i.length ? !0 : super.maybeParseExportDefaultSpecifier(s, r);
    }
    checkExport(s) {
      let {
        specifiers: r
      } = s;
      r != null && r.length && (s.specifiers = r.filter((i) => i.exported.type === "Placeholder")), super.checkExport(s), s.specifiers = r;
    }
    parseImport(s) {
      let r = this.parsePlaceholder("Identifier");
      if (!r) return super.parseImport(s);
      if (s.specifiers = [], !this.isContextual(98) && !this.match(12))
        return s.source = this.finishPlaceholder(r, "StringLiteral"), this.semicolon(), this.finishNode(s, "ImportDeclaration");
      let i = this.startNodeAtNode(r);
      return i.local = r, s.specifiers.push(this.finishNode(i, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(
      s) || this.parseNamedImportSpecifiers(s)), this.expectContextual(98), s.source = this.parseImportSource(), this.semicolon(), this.finishNode(
      s, "ImportDeclaration");
    }
    parseImportSource() {
      return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
    }
    assertNoSpace() {
      this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index) && this.raise(h$.UnexpectedSpace, this.state.lastTokEndLoc);
    }
  }, "placeholders"), NVe = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "V8IntrinsicMixin");
    }
    parseV8Intrinsic() {
      if (this.match(54)) {
        let s = this.state.startLoc, r = this.startNode();
        if (this.next(), Ys(this.state.type)) {
          let i = this.parseIdentifierName(), a = this.createIdentifier(r, i);
          if (a.type = "V8IntrinsicIdentifier", this.match(10))
            return a;
        }
        this.unexpected(s);
      }
    }
    parseExprAtom(s) {
      return this.parseV8Intrinsic() || super.parseExprAtom(s);
    }
  }, "v8intrinsic"), f$ = ["minimal", "fsharp", "hack", "smart"], d$ = ["^^", "@@", "^", "%", "#"];
  function kVe(t) {
    if (t.has("decorators")) {
      if (t.has("decorators-legacy"))
        throw new Error("Cannot use the decorators and decorators-legacy plugin together");
      let s = t.get("decorators").decoratorsBeforeExport;
      if (s != null && typeof s != "boolean")
        throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
      let r = t.get("decorators").allowCallParenthesized;
      if (r != null && typeof r != "boolean")
        throw new Error("'allowCallParenthesized' must be a boolean.");
    }
    if (t.has("flow") && t.has("typescript"))
      throw new Error("Cannot combine flow and typescript plugins.");
    if (t.has("placeholders") && t.has("v8intrinsic"))
      throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
    if (t.has("pipelineOperator")) {
      var e;
      let s = t.get("pipelineOperator").proposal;
      if (!f$.includes(s)) {
        let i = f$.map((a) => `"${a}"`).join(", ");
        throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${i}.`);
      }
      let r = ((e = t.get("recordAndTuple")) == null ? void 0 : e.syntaxType) === "hash";
      if (s === "hack") {
        if (t.has("placeholders"))
          throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
        if (t.has("v8intrinsic"))
          throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
        let i = t.get("pipelineOperator").topicToken;
        if (!d$.includes(i)) {
          let a = d$.map((o) => `"${o}"`).join(", ");
          throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${a}\
.`);
        }
        if (i === "#" && r)
          throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["\
recordAndTuple", t.get("recordAndTuple")])}\`.`);
      } else if (s === "smart" && r)
        throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", t.
        get("recordAndTuple")])}\`.`);
    }
    if (t.has("moduleAttributes")) {
      if (t.has("deprecatedImportAssert") || t.has("importAssertions"))
        throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");
      if (t.get("moduleAttributes").version !== "may-2020")
        throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the on\
ly supported value is 'may-2020'.");
    }
    if (t.has("importAssertions") && t.has("deprecatedImportAssert"))
      throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");
    if (!t.has("deprecatedImportAssert") && t.has("importAttributes") && t.get("importAttributes").deprecatedAssertSyntax && t.set("deprecat\
edImportAssert", {}), t.has("recordAndTuple")) {
      let s = t.get("recordAndTuple").syntaxType;
      if (s != null) {
        let r = ["hash", "bar"];
        if (!r.includes(s))
          throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + r.map((i) => `'${i}'`).join(", "));
      }
    }
    if (t.has("asyncDoExpressions") && !t.has("doExpressions")) {
      let s = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
      throw s.missingPlugins = "doExpressions", s;
    }
    if (t.has("optionalChainingAssign") && t.get("optionalChainingAssign").version !== "2023-07")
      throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, th\
e only supported value is '2023-07'.");
  }
  n(kVe, "validatePlugins");
  var k$ = {
    estree: OKe,
    jsx: xVe,
    flow: TVe,
    typescript: AVe,
    v8intrinsic: NVe,
    placeholders: IVe
  }, DVe = Object.keys(k$), Hk = class extends $k {
    static {
      n(this, "ExpressionParser");
    }
    checkProto(e, s, r, i) {
      if (e.type === "SpreadElement" || this.isObjectMethod(e) || e.computed || e.shorthand)
        return;
      let a = e.key;
      if ((a.type === "Identifier" ? a.name : a.value) === "__proto__") {
        if (s) {
          this.raise(Q.RecordNoProto, a);
          return;
        }
        r.used && (i ? i.doubleProtoLoc === null && (i.doubleProtoLoc = a.loc.start) : this.raise(Q.DuplicateProto, a)), r.used = !0;
      }
    }
    shouldExitDescending(e, s) {
      return e.type === "ArrowFunctionExpression" && this.offsetToSourcePos(e.start) === s;
    }
    getExpression() {
      this.enterInitialScopes(), this.nextToken();
      let e = this.parseExpression();
      return this.match(140) || this.unexpected(), this.finalizeRemainingComments(), e.comments = this.comments, e.errors = this.state.errors,
      this.optionFlags & 128 && (e.tokens = this.tokens), e;
    }
    parseExpression(e, s) {
      return e ? this.disallowInAnd(() => this.parseExpressionBase(s)) : this.allowInAnd(() => this.parseExpressionBase(s));
    }
    parseExpressionBase(e) {
      let s = this.state.startLoc, r = this.parseMaybeAssign(e);
      if (this.match(12)) {
        let i = this.startNodeAt(s);
        for (i.expressions = [r]; this.eat(12); )
          i.expressions.push(this.parseMaybeAssign(e));
        return this.toReferencedList(i.expressions), this.finishNode(i, "SequenceExpression");
      }
      return r;
    }
    parseMaybeAssignDisallowIn(e, s) {
      return this.disallowInAnd(() => this.parseMaybeAssign(e, s));
    }
    parseMaybeAssignAllowIn(e, s) {
      return this.allowInAnd(() => this.parseMaybeAssign(e, s));
    }
    setOptionalParametersError(e, s) {
      var r;
      e.optionalParametersLoc = (r = s?.loc) != null ? r : this.state.startLoc;
    }
    parseMaybeAssign(e, s) {
      let r = this.state.startLoc;
      if (this.isContextual(108) && this.prodParam.hasYield) {
        let l = this.parseYield();
        return s && (l = s.call(this, l, r)), l;
      }
      let i;
      e ? i = !1 : (e = new Ed(), i = !0);
      let {
        type: a
      } = this.state;
      (a === 10 || Ys(a)) && (this.state.potentialArrowAt = this.state.start);
      let o = this.parseMaybeConditional(e);
      if (s && (o = s.call(this, o, r)), FKe(this.state.type)) {
        let l = this.startNodeAt(r), u = this.state.value;
        if (l.operator = u, this.match(29)) {
          this.toAssignable(o, !0), l.left = o;
          let c = r.index;
          e.doubleProtoLoc != null && e.doubleProtoLoc.index >= c && (e.doubleProtoLoc = null), e.shorthandAssignLoc != null && e.shorthandAssignLoc.
          index >= c && (e.shorthandAssignLoc = null), e.privateKeyLoc != null && e.privateKeyLoc.index >= c && (this.checkDestructuringPrivate(
          e), e.privateKeyLoc = null);
        } else
          l.left = o;
        return this.next(), l.right = this.parseMaybeAssign(), this.checkLVal(o, this.finishNode(l, "AssignmentExpression")), l;
      } else i && this.checkExpressionErrors(e, !0);
      return o;
    }
    parseMaybeConditional(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprOps(e);
      return this.shouldExitDescending(i, r) ? i : this.parseConditional(i, s, e);
    }
    parseConditional(e, s, r) {
      if (this.eat(17)) {
        let i = this.startNodeAt(s);
        return i.test = e, i.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), i.alternate = this.parseMaybeAssign(), this.finishNode(
        i, "ConditionalExpression");
      }
      return e;
    }
    parseMaybeUnaryOrPrivate(e) {
      return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(e);
    }
    parseExprOps(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseMaybeUnaryOrPrivate(e);
      return this.shouldExitDescending(i, r) ? i : this.parseExprOp(i, s, -1);
    }
    parseExprOp(e, s, r) {
      if (this.isPrivateName(e)) {
        let a = this.getPrivateNameSV(e);
        (r >= Hx(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(Q.PrivateInExpectedIn, e, {
          identifierName: a
        }), this.classScope.usePrivateName(a, e.loc.start);
      }
      let i = this.state.type;
      if (RKe(i) && (this.prodParam.hasIn || !this.match(58))) {
        let a = Hx(i);
        if (a > r) {
          if (i === 39) {
            if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
              return e;
            this.checkPipelineAtInfixOperator(e, s);
          }
          let o = this.startNodeAt(s);
          o.left = e, o.operator = this.state.value;
          let l = i === 41 || i === 42, u = i === 40;
          if (u && (a = Hx(42)), this.next(), i === 39 && this.hasPlugin(["pipelineOperator", {
            proposal: "minimal"
          }]) && this.state.type === 96 && this.prodParam.hasAwait)
            throw this.raise(Q.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
          o.right = this.parseExprOpRightExpr(i, a);
          let c = this.finishNode(o, l || u ? "LogicalExpression" : "BinaryExpression"), p = this.state.type;
          if (u && (p === 41 || p === 42) || l && p === 40)
            throw this.raise(Q.MixingCoalesceWithLogical, this.state.startLoc);
          return this.parseExprOp(c, s, r);
        }
      }
      return e;
    }
    parseExprOpRightExpr(e, s) {
      let r = this.state.startLoc;
      switch (e) {
        case 39:
          switch (this.getPluginOption("pipelineOperator", "proposal")) {
            case "hack":
              return this.withTopicBindingContext(() => this.parseHackPipeBody());
            case "fsharp":
              return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(s));
          }
          if (this.getPluginOption("pipelineOperator", "proposal") === "smart")
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(108))
                throw this.raise(Q.PipeBodyIsTighter, this.state.startLoc);
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(e, s), r);
            });
        default:
          return this.parseExprOpBaseRightExpr(e, s);
      }
    }
    parseExprOpBaseRightExpr(e, s) {
      let r = this.state.startLoc;
      return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, WKe(e) ? s - 1 : s);
    }
    parseHackPipeBody() {
      var e;
      let {
        startLoc: s
      } = this.state, r = this.parseMaybeAssign();
      return vKe.has(r.type) && !((e = r.extra) != null && e.parenthesized) && this.raise(Q.PipeUnparenthesizedBody, s, {
        type: r.type
      }), this.topicReferenceWasUsedInCurrentContext() || this.raise(Q.PipeTopicUnused, s), r;
    }
    checkExponentialAfterUnary(e) {
      this.match(57) && this.raise(Q.UnexpectedTokenUnaryExponentiation, e.argument);
    }
    parseMaybeUnary(e, s) {
      let r = this.state.startLoc, i = this.isContextual(96);
      if (i && this.recordAwaitIfAllowed()) {
        this.next();
        let u = this.parseAwait(r);
        return s || this.checkExponentialAfterUnary(u), u;
      }
      let a = this.match(34), o = this.startNode();
      if (UKe(this.state.type)) {
        o.operator = this.state.value, o.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
        let u = this.match(89);
        if (this.next(), o.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(e, !0), this.state.strict && u) {
          let c = o.argument;
          c.type === "Identifier" ? this.raise(Q.StrictDelete, o) : this.hasPropertyAsPrivateName(c) && this.raise(Q.DeletePrivateField, o);
        }
        if (!a)
          return s || this.checkExponentialAfterUnary(o), this.finishNode(o, "UnaryExpression");
      }
      let l = this.parseUpdate(o, a, e);
      if (i) {
        let {
          type: u
        } = this.state;
        if ((this.hasPlugin("v8intrinsic") ? Ik(u) : Ik(u) && !this.match(54)) && !this.isAmbiguousAwait())
          return this.raiseOverwrite(Q.AwaitNotInAsyncContext, r), this.parseAwait(r);
      }
      return l;
    }
    parseUpdate(e, s, r) {
      if (s) {
        let o = e;
        return this.checkLVal(o.argument, this.finishNode(o, "UpdateExpression")), e;
      }
      let i = this.state.startLoc, a = this.parseExprSubscripts(r);
      if (this.checkExpressionErrors(r, !1)) return a;
      for (; qKe(this.state.type) && !this.canInsertSemicolon(); ) {
        let o = this.startNodeAt(i);
        o.operator = this.state.value, o.prefix = !1, o.argument = a, this.next(), this.checkLVal(a, a = this.finishNode(o, "UpdateExpressio\
n"));
      }
      return a;
    }
    parseExprSubscripts(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprAtom(e);
      return this.shouldExitDescending(i, r) ? i : this.parseSubscripts(i, s);
    }
    parseSubscripts(e, s, r) {
      let i = {
        optionalChainMember: !1,
        maybeAsyncArrow: this.atPossibleAsyncArrow(e),
        stop: !1
      };
      do
        e = this.parseSubscript(e, s, r, i), i.maybeAsyncArrow = !1;
      while (!i.stop);
      return e;
    }
    parseSubscript(e, s, r, i) {
      let {
        type: a
      } = this.state;
      if (!r && a === 15)
        return this.parseBind(e, s, r, i);
      if (Xx(a))
        return this.parseTaggedTemplateExpression(e, s, i);
      let o = !1;
      if (a === 18) {
        if (r && (this.raise(Q.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
          return i.stop = !0, e;
        i.optionalChainMember = o = !0, this.next();
      }
      if (!r && this.match(10))
        return this.parseCoverCallAndAsyncArrowHead(e, s, i, o);
      {
        let l = this.eat(0);
        return l || o || this.eat(16) ? this.parseMember(e, s, i, l, o) : (i.stop = !0, e);
      }
    }
    parseMember(e, s, r, i, a) {
      let o = this.startNodeAt(s);
      return o.object = e, o.computed = i, i ? (o.property = this.parseExpression(), this.expect(3)) : this.match(139) ? (e.type === "Super" &&
      this.raise(Q.SuperPrivateField, s), this.classScope.usePrivateName(this.state.value, this.state.startLoc), o.property = this.parsePrivateName()) :
      o.property = this.parseIdentifier(!0), r.optionalChainMember ? (o.optional = a, this.finishNode(o, "OptionalMemberExpression")) : this.
      finishNode(o, "MemberExpression");
    }
    parseBind(e, s, r, i) {
      let a = this.startNodeAt(s);
      return a.object = e, this.next(), a.callee = this.parseNoCallExpr(), i.stop = !0, this.parseSubscripts(this.finishNode(a, "BindExpress\
ion"), s, r);
    }
    parseCoverCallAndAsyncArrowHead(e, s, r, i) {
      let a = this.state.maybeInArrowParameters, o = null;
      this.state.maybeInArrowParameters = !0, this.next();
      let l = this.startNodeAt(s);
      l.callee = e;
      let {
        maybeAsyncArrow: u,
        optionalChainMember: c
      } = r;
      u && (this.expressionScope.enter(cVe()), o = new Ed()), c && (l.optional = i), i ? l.arguments = this.parseCallExpressionArguments(11) :
      l.arguments = this.parseCallExpressionArguments(11, e.type !== "Super", l, o);
      let p = this.finishCallExpression(l, c);
      return u && this.shouldParseAsyncArrow() && !i ? (r.stop = !0, this.checkDestructuringPrivate(o), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), p = this.parseAsyncArrowFromCallExpression(this.startNodeAt(s), p)) : (u && (this.checkExpressionErrors(o,
      !0), this.expressionScope.exit()), this.toReferencedArguments(p)), this.state.maybeInArrowParameters = a, p;
    }
    toReferencedArguments(e, s) {
      this.toReferencedListDeep(e.arguments, s);
    }
    parseTaggedTemplateExpression(e, s, r) {
      let i = this.startNodeAt(s);
      return i.tag = e, i.quasi = this.parseTemplate(!0), r.optionalChainMember && this.raise(Q.OptionalChainingNoTemplate, s), this.finishNode(
      i, "TaggedTemplateExpression");
    }
    atPossibleAsyncArrow(e) {
      return e.type === "Identifier" && e.name === "async" && this.state.lastTokEndLoc.index === e.end && !this.canInsertSemicolon() && e.end -
      e.start === 5 && this.offsetToSourcePos(e.start) === this.state.potentialArrowAt;
    }
    finishCallExpression(e, s) {
      if (e.callee.type === "Import")
        if (e.arguments.length === 0 || e.arguments.length > 2)
          this.raise(Q.ImportCallArity, e);
        else
          for (let r of e.arguments)
            r.type === "SpreadElement" && this.raise(Q.ImportCallSpreadArgument, r);
      return this.finishNode(e, s ? "OptionalCallExpression" : "CallExpression");
    }
    parseCallExpressionArguments(e, s, r, i) {
      let a = [], o = !0, l = this.state.inFSharpPipelineDirectBody;
      for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          r && this.addTrailingCommaExtraToNode(r), this.next();
          break;
        }
        a.push(this.parseExprListItem(!1, i, s));
      }
      return this.state.inFSharpPipelineDirectBody = l, a;
    }
    shouldParseAsyncArrow() {
      return this.match(19) && !this.canInsertSemicolon();
    }
    parseAsyncArrowFromCallExpression(e, s) {
      var r;
      return this.resetPreviousNodeTrailingComments(s), this.expect(19), this.parseArrowExpression(e, s.arguments, !0, (r = s.extra) == null ?
      void 0 : r.trailingCommaLoc), s.innerComments && Pg(e, s.innerComments), s.callee.trailingComments && Pg(e, s.callee.trailingComments),
      e;
    }
    parseNoCallExpr() {
      let e = this.state.startLoc;
      return this.parseSubscripts(this.parseExprAtom(), e, !0);
    }
    parseExprAtom(e) {
      let s, r = null, {
        type: i
      } = this.state;
      switch (i) {
        case 79:
          return this.parseSuper();
        case 83:
          return s = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(s) : this.match(10) ? this.optionFlags & 256 ?
          this.parseImportCall(s) : this.finishNode(s, "Import") : (this.raise(Q.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(
          s, "Import"));
        case 78:
          return s = this.startNode(), this.next(), this.finishNode(s, "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: {
          let a = this.state.potentialArrowAt === this.state.start;
          return this.parseParenAndDistinguishExpression(a);
        }
        case 2:
        case 1:
          return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
        case 0:
          return this.parseArrayLike(3, !0, !1, e);
        case 6:
        case 7:
          return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
        case 5:
          return this.parseObjectLike(8, !1, !1, e);
        case 68:
          return this.parseFunctionOrFunctionSent();
        case 26:
          r = this.parseDecorators();
        case 80:
          return this.parseClass(this.maybeTakeDecorators(r, this.startNode()), !1);
        case 77:
          return this.parseNewOrNewTarget();
        case 25:
        case 24:
          return this.parseTemplate(!1);
        case 15: {
          s = this.startNode(), this.next(), s.object = null;
          let a = s.callee = this.parseNoCallExpr();
          if (a.type === "MemberExpression")
            return this.finishNode(s, "BindExpression");
          throw this.raise(Q.UnsupportedBind, a);
        }
        case 139:
          return this.raise(Q.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: {
          let a = this.getPluginOption("pipelineOperator", "proposal");
          if (a)
            return this.parseTopicReference(a);
          this.unexpected();
          break;
        }
        case 47: {
          let a = this.input.codePointAt(this.nextTokenStart());
          eu(a) || a === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
          break;
        }
        default:
          if (i === 137)
            return this.parseDecimalLiteral(this.state.value);
          if (Ys(i)) {
            if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
              return this.parseModuleExpression();
            let a = this.state.potentialArrowAt === this.state.start, o = this.state.containsEsc, l = this.parseIdentifier();
            if (!o && l.name === "async" && !this.canInsertSemicolon()) {
              let {
                type: u
              } = this.state;
              if (u === 68)
                return this.resetPreviousNodeTrailingComments(l), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(l));
              if (Ys(u))
                return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(l)) : l;
              if (u === 90)
                return this.resetPreviousNodeTrailingComments(l), this.parseDo(this.startNodeAtNode(l), !0);
            }
            return a && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(l), [l],
            !1)) : l;
          } else
            this.unexpected();
      }
    }
    parseTopicReferenceThenEqualsSign(e, s) {
      let r = this.getPluginOption("pipelineOperator", "proposal");
      if (r)
        return this.state.type = e, this.state.value = s, this.state.pos--, this.state.end--, this.state.endLoc = Sn(this.state.endLoc, -1),
        this.parseTopicReference(r);
      this.unexpected();
    }
    parseTopicReference(e) {
      let s = this.startNode(), r = this.state.startLoc, i = this.state.type;
      return this.next(), this.finishTopicReference(s, r, e, i);
    }
    finishTopicReference(e, s, r, i) {
      if (this.testTopicReferenceConfiguration(r, s, i))
        return r === "hack" ? (this.topicReferenceIsAllowedInCurrentContext() || this.raise(Q.PipeTopicUnbound, s), this.registerTopicReference(),
        this.finishNode(e, "TopicReference")) : (this.topicReferenceIsAllowedInCurrentContext() || this.raise(Q.PrimaryTopicNotAllowed, s), this.
        registerTopicReference(), this.finishNode(e, "PipelinePrimaryTopicReference"));
      throw this.raise(Q.PipeTopicUnconfiguredToken, s, {
        token: Kc(i)
      });
    }
    testTopicReferenceConfiguration(e, s, r) {
      switch (e) {
        case "hack":
          return this.hasPlugin(["pipelineOperator", {
            topicToken: Kc(r)
          }]);
        case "smart":
          return r === 27;
        default:
          throw this.raise(Q.PipeTopicRequiresHackPipes, s);
      }
    }
    parseAsyncArrowUnaryFunction(e) {
      this.prodParam.enter(Jx(!0, this.prodParam.hasYield));
      let s = [this.parseIdentifier()];
      return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(Q.LineTerminatorBeforeArrow, this.state.curPosition()), this.
      expect(19), this.parseArrowExpression(e, s, !0);
    }
    parseDo(e, s) {
      this.expectPlugin("doExpressions"), s && this.expectPlugin("asyncDoExpressions"), e.async = s, this.next();
      let r = this.state.labels;
      return this.state.labels = [], s ? (this.prodParam.enter(2), e.body = this.parseBlock(), this.prodParam.exit()) : e.body = this.parseBlock(),
      this.state.labels = r, this.finishNode(e, "DoExpression");
    }
    parseSuper() {
      let e = this.startNode();
      return this.next(), this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16) ? this.raise(Q.SuperNotAllowed, e) : !this.
      scope.allowSuper && !(this.optionFlags & 16) && this.raise(Q.UnexpectedSuper, e), !this.match(10) && !this.match(0) && !this.match(16) &&
      this.raise(Q.UnsupportedSuper, e), this.finishNode(e, "Super");
    }
    parsePrivateName() {
      let e = this.startNode(), s = this.startNodeAt(Sn(this.state.startLoc, 1)), r = this.state.value;
      return this.next(), e.id = this.createIdentifier(s, r), this.finishNode(e, "PrivateName");
    }
    parseFunctionOrFunctionSent() {
      let e = this.startNode();
      if (this.next(), this.prodParam.hasYield && this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "function");
        return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.
        parseMetaProperty(e, s, "sent");
      }
      return this.parseFunction(e);
    }
    parseMetaProperty(e, s, r) {
      e.meta = s;
      let i = this.state.containsEsc;
      return e.property = this.parseIdentifier(!0), (e.property.name !== r || i) && this.raise(Q.UnsupportedMetaProperty, e.property, {
        target: s.name,
        onlyValidPropertyName: r
      }), this.finishNode(e, "MetaProperty");
    }
    parseImportMetaProperty(e) {
      let s = this.createIdentifier(this.startNodeAtNode(e), "import");
      if (this.next(), this.isContextual(101))
        this.inModule || this.raise(Q.ImportMetaOutsideModule, s), this.sawUnambiguousESM = !0;
      else if (this.isContextual(105) || this.isContextual(97)) {
        let r = this.isContextual(105);
        if (this.expectPlugin(r ? "sourcePhaseImports" : "deferredImportEvaluation"), !(this.optionFlags & 256))
          throw this.raise(Q.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
            phase: this.state.value
          });
        return this.next(), e.phase = r ? "source" : "defer", this.parseImportCall(e);
      }
      return this.parseMetaProperty(e, s, "meta");
    }
    parseLiteralAtNode(e, s, r) {
      return this.addExtra(r, "rawValue", e), this.addExtra(r, "raw", this.input.slice(this.offsetToSourcePos(r.start), this.state.end)), r.
      value = e, this.next(), this.finishNode(r, s);
    }
    parseLiteral(e, s) {
      let r = this.startNode();
      return this.parseLiteralAtNode(e, s, r);
    }
    parseStringLiteral(e) {
      return this.parseLiteral(e, "StringLiteral");
    }
    parseNumericLiteral(e) {
      return this.parseLiteral(e, "NumericLiteral");
    }
    parseBigIntLiteral(e) {
      return this.parseLiteral(e, "BigIntLiteral");
    }
    parseDecimalLiteral(e) {
      return this.parseLiteral(e, "DecimalLiteral");
    }
    parseRegExpLiteral(e) {
      let s = this.startNode();
      return this.addExtra(s, "raw", this.input.slice(this.offsetToSourcePos(s.start), this.state.end)), s.pattern = e.pattern, s.flags = e.
      flags, this.next(), this.finishNode(s, "RegExpLiteral");
    }
    parseBooleanLiteral(e) {
      let s = this.startNode();
      return s.value = e, this.next(), this.finishNode(s, "BooleanLiteral");
    }
    parseNullLiteral() {
      let e = this.startNode();
      return this.next(), this.finishNode(e, "NullLiteral");
    }
    parseParenAndDistinguishExpression(e) {
      let s = this.state.startLoc, r;
      this.next(), this.expressionScope.enter(uVe());
      let i = this.state.maybeInArrowParameters, a = this.state.inFSharpPipelineDirectBody;
      this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
      let o = this.state.startLoc, l = [], u = new Ed(), c = !0, p, h;
      for (; !this.match(11); ) {
        if (c)
          c = !1;
        else if (this.expect(12, u.optionalParametersLoc === null ? null : u.optionalParametersLoc), this.match(11)) {
          h = this.state.startLoc;
          break;
        }
        if (this.match(21)) {
          let m = this.state.startLoc;
          if (p = this.state.startLoc, l.push(this.parseParenItem(this.parseRestBinding(), m)), !this.checkCommaAfterRest(41))
            break;
        } else
          l.push(this.parseMaybeAssignAllowIn(u, this.parseParenItem));
      }
      let f = this.state.lastTokEndLoc;
      this.expect(11), this.state.maybeInArrowParameters = i, this.state.inFSharpPipelineDirectBody = a;
      let d = this.startNodeAt(s);
      return e && this.shouldParseArrow(l) && (d = this.parseArrow(d)) ? (this.checkDestructuringPrivate(u), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), this.parseArrowExpression(d, l, !1), d) : (this.expressionScope.exit(), l.length || this.unexpected(this.
      state.lastTokStartLoc), h && this.unexpected(h), p && this.unexpected(p), this.checkExpressionErrors(u, !0), this.toReferencedListDeep(
      l, !0), l.length > 1 ? (r = this.startNodeAt(o), r.expressions = l, this.finishNode(r, "SequenceExpression"), this.resetEndLocation(r,
      f)) : r = l[0], this.wrapParenthesis(s, r));
    }
    wrapParenthesis(e, s) {
      if (!(this.optionFlags & 512))
        return this.addExtra(s, "parenthesized", !0), this.addExtra(s, "parenStart", e.index), this.takeSurroundingComments(s, e.index, this.
        state.lastTokEndLoc.index), s;
      let r = this.startNodeAt(e);
      return r.expression = s, this.finishNode(r, "ParenthesizedExpression");
    }
    shouldParseArrow(e) {
      return !this.canInsertSemicolon();
    }
    parseArrow(e) {
      if (this.eat(19))
        return e;
    }
    parseParenItem(e, s) {
      return e;
    }
    parseNewOrNewTarget() {
      let e = this.startNode();
      if (this.next(), this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "new");
        this.next();
        let r = this.parseMetaProperty(e, s, "target");
        return !this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4) && this.raise(Q.UnexpectedNewTarget, r), r;
      }
      return this.parseNew(e);
    }
    parseNew(e) {
      if (this.parseNewCallee(e), this.eat(10)) {
        let s = this.parseExprList(11);
        this.toReferencedList(s), e.arguments = s;
      } else
        e.arguments = [];
      return this.finishNode(e, "NewExpression");
    }
    parseNewCallee(e) {
      let s = this.match(83), r = this.parseNoCallExpr();
      e.callee = r, s && (r.type === "Import" || r.type === "ImportExpression") && this.raise(Q.ImportCallNotNewExpression, r);
    }
    parseTemplateElement(e) {
      let {
        start: s,
        startLoc: r,
        end: i,
        value: a
      } = this.state, o = s + 1, l = this.startNodeAt(Sn(r, 1));
      a === null && (e || this.raise(Q.InvalidEscapeSequenceTemplate, Sn(this.state.firstInvalidTemplateEscapePos, 1)));
      let u = this.match(24), c = u ? -1 : -2, p = i + c;
      l.value = {
        raw: this.input.slice(o, p).replace(/\r\n?/g, `
`),
        cooked: a === null ? null : a.slice(1, c)
      }, l.tail = u, this.next();
      let h = this.finishNode(l, "TemplateElement");
      return this.resetEndLocation(h, Sn(this.state.lastTokEndLoc, c)), h;
    }
    parseTemplate(e) {
      let s = this.startNode(), r = this.parseTemplateElement(e), i = [r], a = [];
      for (; !r.tail; )
        a.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), i.push(r = this.parseTemplateElement(e));
      return s.expressions = a, s.quasis = i, this.finishNode(s, "TemplateLiteral");
    }
    parseTemplateSubstitution() {
      return this.parseExpression();
    }
    parseObjectLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = /* @__PURE__ */ Object.create(null), l = !0, u = this.startNode();
      for (u.properties = [], this.next(); !this.match(e); ) {
        if (l)
          l = !1;
        else if (this.expect(12), this.match(e)) {
          this.addTrailingCommaExtraToNode(u);
          break;
        }
        let p;
        s ? p = this.parseBindingProperty() : (p = this.parsePropertyDefinition(i), this.checkProto(p, r, o, i)), r && !this.isObjectProperty(
        p) && p.type !== "SpreadElement" && this.raise(Q.InvalidRecordProperty, p), p.shorthand && this.addExtra(p, "shorthand", !0), u.properties.
        push(p);
      }
      this.next(), this.state.inFSharpPipelineDirectBody = a;
      let c = "ObjectExpression";
      return s ? c = "ObjectPattern" : r && (c = "RecordExpression"), this.finishNode(u, c);
    }
    addTrailingCommaExtraToNode(e) {
      this.addExtra(e, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(e, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
    }
    maybeAsyncOrAccessorProp(e) {
      return !e.computed && e.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
    }
    parsePropertyDefinition(e) {
      let s = [];
      if (this.match(26))
        for (this.hasPlugin("decorators") && this.raise(Q.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
          s.push(this.parseDecorator());
      let r = this.startNode(), i = !1, a = !1, o;
      if (this.match(21))
        return s.length && this.unexpected(), this.parseSpread();
      s.length && (r.decorators = s, s = []), r.method = !1, e && (o = this.state.startLoc);
      let l = this.eat(55);
      this.parsePropertyNamePrefixOperator(r);
      let u = this.state.containsEsc;
      if (this.parsePropertyName(r, e), !l && !u && this.maybeAsyncOrAccessorProp(r)) {
        let {
          key: c
        } = r, p = c.name;
        p === "async" && !this.hasPrecedingLineBreak() && (i = !0, this.resetPreviousNodeTrailingComments(c), l = this.eat(55), this.parsePropertyName(
        r)), (p === "get" || p === "set") && (a = !0, this.resetPreviousNodeTrailingComments(c), r.kind = p, this.match(55) && (l = !0, this.
        raise(Q.AccessorIsGenerator, this.state.curPosition(), {
          kind: p
        }), this.next()), this.parsePropertyName(r));
      }
      return this.parseObjPropValue(r, o, l, i, !1, a, e);
    }
    getGetterSetterExpectedParamCount(e) {
      return e.kind === "get" ? 0 : 1;
    }
    getObjectOrClassMethodParams(e) {
      return e.params;
    }
    checkGetterSetterParams(e) {
      var s;
      let r = this.getGetterSetterExpectedParamCount(e), i = this.getObjectOrClassMethodParams(e);
      i.length !== r && this.raise(e.kind === "get" ? Q.BadGetterArity : Q.BadSetterArity, e), e.kind === "set" && ((s = i[i.length - 1]) ==
      null ? void 0 : s.type) === "RestElement" && this.raise(Q.BadSetterRestParameter, e);
    }
    parseObjectMethod(e, s, r, i, a) {
      if (a) {
        let o = this.parseMethod(e, s, !1, !1, !1, "ObjectMethod");
        return this.checkGetterSetterParams(o), o;
      }
      if (r || s || this.match(10))
        return i && this.unexpected(), e.kind = "method", e.method = !0, this.parseMethod(e, s, r, !1, !1, "ObjectMethod");
    }
    parseObjectProperty(e, s, r, i) {
      if (e.shorthand = !1, this.eat(14))
        return e.value = r ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(i), this.finishNode(e, "ObjectProper\
ty");
      if (!e.computed && e.key.type === "Identifier") {
        if (this.checkReservedWord(e.key.name, e.key.loc.start, !0, !1), r)
          e.value = this.parseMaybeDefault(s, su(e.key));
        else if (this.match(29)) {
          let a = this.state.startLoc;
          i != null ? i.shorthandAssignLoc === null && (i.shorthandAssignLoc = a) : this.raise(Q.InvalidCoverInitializedName, a), e.value = this.
          parseMaybeDefault(s, su(e.key));
        } else
          e.value = su(e.key);
        return e.shorthand = !0, this.finishNode(e, "ObjectProperty");
      }
    }
    parseObjPropValue(e, s, r, i, a, o, l) {
      let u = this.parseObjectMethod(e, r, i, a, o) || this.parseObjectProperty(e, s, a, l);
      return u || this.unexpected(), u;
    }
    parsePropertyName(e, s) {
      if (this.eat(0))
        e.computed = !0, e.key = this.parseMaybeAssignAllowIn(), this.expect(3);
      else {
        let {
          type: r,
          value: i
        } = this.state, a;
        if (bo(r))
          a = this.parseIdentifier(!0);
        else
          switch (r) {
            case 135:
              a = this.parseNumericLiteral(i);
              break;
            case 134:
              a = this.parseStringLiteral(i);
              break;
            case 136:
              a = this.parseBigIntLiteral(i);
              break;
            case 139: {
              let o = this.state.startLoc;
              s != null ? s.privateKeyLoc === null && (s.privateKeyLoc = o) : this.raise(Q.UnexpectedPrivateField, o), a = this.parsePrivateName();
              break;
            }
            default:
              if (r === 137) {
                a = this.parseDecimalLiteral(i);
                break;
              }
              this.unexpected();
          }
        e.key = a, r !== 139 && (e.computed = !1);
      }
    }
    initFunction(e, s) {
      e.id = null, e.generator = !1, e.async = s;
    }
    parseMethod(e, s, r, i, a, o, l = !1) {
      this.initFunction(e, r), e.generator = s, this.scope.enter(18 | (l ? 64 : 0) | (a ? 32 : 0)), this.prodParam.enter(Jx(r, e.generator)),
      this.parseFunctionParams(e, i);
      let u = this.parseFunctionBodyAndFinish(e, o, !0);
      return this.prodParam.exit(), this.scope.exit(), u;
    }
    parseArrayLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = this.startNode();
      return this.next(), o.elements = this.parseExprList(e, !r, i, o), this.state.inFSharpPipelineDirectBody = a, this.finishNode(o, r ? "T\
upleExpression" : "ArrayExpression");
    }
    parseArrowExpression(e, s, r, i) {
      this.scope.enter(6);
      let a = Jx(r, !1);
      !this.match(5) && this.prodParam.hasIn && (a |= 8), this.prodParam.enter(a), this.initFunction(e, r);
      let o = this.state.maybeInArrowParameters;
      return s && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(e, s, i)), this.state.maybeInArrowParameters = !1,
      this.parseFunctionBody(e, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = o, this.finishNode(e, "Ar\
rowFunctionExpression");
    }
    setArrowFunctionParameters(e, s, r) {
      this.toAssignableList(s, r, !1), e.params = s;
    }
    parseFunctionBodyAndFinish(e, s, r = !1) {
      return this.parseFunctionBody(e, !1, r), this.finishNode(e, s);
    }
    parseFunctionBody(e, s, r = !1) {
      let i = s && !this.match(5);
      if (this.expressionScope.enter(C$()), i)
        e.body = this.parseMaybeAssign(), this.checkParams(e, !1, s, !1);
      else {
        let a = this.state.strict, o = this.state.labels;
        this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), e.body = this.parseBlock(!0, !1, (l) => {
          let u = !this.isSimpleParamList(e.params);
          l && u && this.raise(Q.IllegalLanguageModeDirective, (e.kind === "method" || e.kind === "constructor") && e.key ? e.key.loc.end : e);
          let c = !a && this.state.strict;
          this.checkParams(e, !this.state.strict && !s && !r && !u, s, c), this.state.strict && e.id && this.checkIdentifier(e.id, 65, c);
        }), this.prodParam.exit(), this.state.labels = o;
      }
      this.expressionScope.exit();
    }
    isSimpleParameter(e) {
      return e.type === "Identifier";
    }
    isSimpleParamList(e) {
      for (let s = 0, r = e.length; s < r; s++)
        if (!this.isSimpleParameter(e[s])) return !1;
      return !0;
    }
    checkParams(e, s, r, i = !0) {
      let a = !s && /* @__PURE__ */ new Set(), o = {
        type: "FormalParameters"
      };
      for (let l of e.params)
        this.checkLVal(l, o, 5, a, i);
    }
    parseExprList(e, s, r, i) {
      let a = [], o = !0;
      for (; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          i && this.addTrailingCommaExtraToNode(i), this.next();
          break;
        }
        a.push(this.parseExprListItem(s, r));
      }
      return a;
    }
    parseExprListItem(e, s, r) {
      let i;
      if (this.match(12))
        e || this.raise(Q.UnexpectedToken, this.state.curPosition(), {
          unexpected: ","
        }), i = null;
      else if (this.match(21)) {
        let a = this.state.startLoc;
        i = this.parseParenItem(this.parseSpread(s), a);
      } else if (this.match(17)) {
        this.expectPlugin("partialApplication"), r || this.raise(Q.UnexpectedArgumentPlaceholder, this.state.startLoc);
        let a = this.startNode();
        this.next(), i = this.finishNode(a, "ArgumentPlaceholder");
      } else
        i = this.parseMaybeAssignAllowIn(s, this.parseParenItem);
      return i;
    }
    parseIdentifier(e) {
      let s = this.startNode(), r = this.parseIdentifierName(e);
      return this.createIdentifier(s, r);
    }
    createIdentifier(e, s) {
      return e.name = s, e.loc.identifierName = s, this.finishNode(e, "Identifier");
    }
    parseIdentifierName(e) {
      let s, {
        startLoc: r,
        type: i
      } = this.state;
      bo(i) ? s = this.state.value : this.unexpected();
      let a = BKe(i);
      return e ? a && this.replaceToken(132) : this.checkReservedWord(s, r, a, !1), this.next(), s;
    }
    checkReservedWord(e, s, r, i) {
      if (e.length > 10 || !eVe(e))
        return;
      if (r && GKe(e)) {
        this.raise(Q.UnexpectedKeyword, s, {
          keyword: e
        });
        return;
      }
      if ((this.state.strict ? i ? P$ : x$ : b$)(e, this.inModule)) {
        this.raise(Q.UnexpectedReservedWord, s, {
          reservedWord: e
        });
        return;
      } else if (e === "yield") {
        if (this.prodParam.hasYield) {
          this.raise(Q.YieldBindingIdentifier, s);
          return;
        }
      } else if (e === "await") {
        if (this.prodParam.hasAwait) {
          this.raise(Q.AwaitBindingIdentifier, s);
          return;
        }
        if (this.scope.inStaticBlock) {
          this.raise(Q.AwaitBindingIdentifierInStaticBlock, s);
          return;
        }
        this.expressionScope.recordAsyncArrowParametersError(s);
      } else if (e === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
        this.raise(Q.ArgumentsInClass, s);
        return;
      }
    }
    recordAwaitIfAllowed() {
      let e = this.prodParam.hasAwait || this.optionFlags & 1 && !this.scope.inFunction;
      return e && !this.scope.inFunction && (this.state.hasTopLevelAwait = !0), e;
    }
    parseAwait(e) {
      let s = this.startNodeAt(e);
      return this.expressionScope.recordParameterInitializerError(Q.AwaitExpressionFormalParameter, s), this.eat(55) && this.raise(Q.ObsoleteAwaitStar,
      s), !this.scope.inFunction && !(this.optionFlags & 1) && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM =
      !0), this.state.soloAwait || (s.argument = this.parseMaybeUnary(null, !0)), this.finishNode(s, "AwaitExpression");
    }
    isAmbiguousAwait() {
      if (this.hasPrecedingLineBreak()) return !0;
      let {
        type: e
      } = this.state;
      return e === 53 || e === 10 || e === 0 || Xx(e) || e === 102 && !this.state.containsEsc || e === 138 || e === 56 || this.hasPlugin("v8\
intrinsic") && e === 54;
    }
    parseYield() {
      let e = this.startNode();
      this.expressionScope.recordParameterInitializerError(Q.YieldInParameter, e), this.next();
      let s = !1, r = null;
      if (!this.hasPrecedingLineBreak())
        switch (s = this.eat(55), this.state.type) {
          case 13:
          case 140:
          case 8:
          case 11:
          case 3:
          case 9:
          case 14:
          case 12:
            if (!s) break;
          default:
            r = this.parseMaybeAssign();
        }
      return e.delegate = s, e.argument = r, this.finishNode(e, "YieldExpression");
    }
    parseImportCall(e) {
      if (this.next(), e.source = this.parseMaybeAssignAllowIn(), e.options = null, this.eat(12) && !this.match(11) && (e.options = this.parseMaybeAssignAllowIn(),
      this.eat(12) && !this.match(11))) {
        do
          this.parseMaybeAssignAllowIn();
        while (this.eat(12) && !this.match(11));
        this.raise(Q.ImportCallArity, e);
      }
      return this.expect(11), this.finishNode(e, "ImportExpression");
    }
    checkPipelineAtInfixOperator(e, s) {
      this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }]) && e.type === "SequenceExpression" && this.raise(Q.PipelineHeadSequenceExpression, s);
    }
    parseSmartPipelineBodyInStyle(e, s) {
      if (this.isSimpleReference(e)) {
        let r = this.startNodeAt(s);
        return r.callee = e, this.finishNode(r, "PipelineBareFunction");
      } else {
        let r = this.startNodeAt(s);
        return this.checkSmartPipeTopicBodyEarlyErrors(s), r.expression = e, this.finishNode(r, "PipelineTopicExpression");
      }
    }
    isSimpleReference(e) {
      switch (e.type) {
        case "MemberExpression":
          return !e.computed && this.isSimpleReference(e.object);
        case "Identifier":
          return !0;
        default:
          return !1;
      }
    }
    checkSmartPipeTopicBodyEarlyErrors(e) {
      if (this.match(19))
        throw this.raise(Q.PipelineBodyNoArrow, this.state.startLoc);
      this.topicReferenceWasUsedInCurrentContext() || this.raise(Q.PipelineTopicUnused, e);
    }
    withTopicBindingContext(e) {
      let s = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 1,
        maxTopicIndex: null
      };
      try {
        return e();
      } finally {
        this.state.topicContext = s;
      }
    }
    withSmartMixTopicForbiddingContext(e) {
      if (this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }])) {
        let s = this.state.topicContext;
        this.state.topicContext = {
          maxNumOfResolvableTopics: 0,
          maxTopicIndex: null
        };
        try {
          return e();
        } finally {
          this.state.topicContext = s;
        }
      } else
        return e();
    }
    withSoloAwaitPermittingContext(e) {
      let s = this.state.soloAwait;
      this.state.soloAwait = !0;
      try {
        return e();
      } finally {
        this.state.soloAwait = s;
      }
    }
    allowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & ~s) {
        this.prodParam.enter(s | 8);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    disallowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & s) {
        this.prodParam.enter(s & -9);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    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(e) {
      let s = this.state.startLoc;
      this.state.potentialArrowAt = this.state.start;
      let r = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !0;
      let i = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), s, e);
      return this.state.inFSharpPipelineDirectBody = r, i;
    }
    parseModuleExpression() {
      this.expectPlugin("moduleBlocks");
      let e = this.startNode();
      this.next(), this.match(5) || this.unexpected(null, 5);
      let s = this.startNodeAt(this.state.endLoc);
      this.next();
      let r = this.initializeScopes(!0);
      this.enterInitialScopes();
      try {
        e.body = this.parseProgram(s, 8, "module");
      } finally {
        r();
      }
      return this.finishNode(e, "ModuleExpression");
    }
    parsePropertyNamePrefixOperator(e) {
    }
  }, Ck = {
    kind: 1
  }, OVe = {
    kind: 2
  }, _Ve = /[\uD800-\uDFFF]/u, wk = /in(?:stanceof)?/y;
  function LVe(t, e, s) {
    for (let r = 0; r < t.length; r++) {
      let i = t[r], {
        type: a
      } = i;
      if (typeof a == "number") {
        {
          if (a === 139) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Sn(o.start, 1);
            t.splice(r, 1, new sl({
              type: Ql(27),
              value: "#",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }), new sl({
              type: Ql(132),
              value: u,
              start: p,
              end: c,
              startLoc: h,
              endLoc: o.end
            })), r++;
            continue;
          }
          if (Xx(a)) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Sn(o.start, 1), f;
            e.charCodeAt(l - s) === 96 ? f = new sl({
              type: Ql(22),
              value: "`",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }) : f = new sl({
              type: Ql(8),
              value: "}",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            });
            let d, m, y, T;
            a === 24 ? (m = c - 1, y = Sn(o.end, -1), d = u === null ? null : u.slice(1, -1), T = new sl({
              type: Ql(22),
              value: "`",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })) : (m = c - 2, y = Sn(o.end, -2), d = u === null ? null : u.slice(1, -2), T = new sl({
              type: Ql(23),
              value: "${",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })), t.splice(r, 1, f, new sl({
              type: Ql(20),
              value: d,
              start: p,
              end: m,
              startLoc: h,
              endLoc: y
            }), T), r += 2;
            continue;
          }
        }
        i.type = Ql(a);
      }
    }
    return t;
  }
  n(LVe, "babel7CompatTokens");
  var Jk = class extends Hk {
    static {
      n(this, "StatementParser");
    }
    parseTopLevel(e, s) {
      return e.program = this.parseProgram(s), e.comments = this.comments, this.optionFlags & 128 && (e.tokens = LVe(this.tokens, this.input,
      this.startIndex)), this.finishNode(e, "File");
    }
    parseProgram(e, s = 140, r = this.options.sourceType) {
      if (e.sourceType = r, e.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(e, !0, !0, s), this.inModule) {
        if (!(this.optionFlags & 32) && this.scope.undefinedExports.size > 0)
          for (let [a, o] of Array.from(this.scope.undefinedExports))
            this.raise(Q.ModuleExportUndefined, o, {
              localName: a
            });
        this.addExtra(e, "topLevelAwait", this.state.hasTopLevelAwait);
      }
      let i;
      return s === 140 ? i = this.finishNode(e, "Program") : i = this.finishNodeAt(e, "Program", Sn(this.state.startLoc, -1)), i;
    }
    stmtToDirective(e) {
      let s = e;
      s.type = "Directive", s.value = s.expression, delete s.expression;
      let r = s.value, i = r.value, a = this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(r.end)), o = r.value = a.slice(
      1, -1);
      return this.addExtra(r, "raw", a), this.addExtra(r, "rawValue", o), this.addExtra(r, "expressionValue", i), r.type = "DirectiveLiteral",
      s;
    }
    parseInterpreterDirective() {
      if (!this.match(28))
        return null;
      let e = this.startNode();
      return e.value = this.state.value, this.next(), this.finishNode(e, "InterpreterDirective");
    }
    isLet() {
      return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
    }
    chStartsBindingIdentifier(e, s) {
      if (eu(e)) {
        if (wk.lastIndex = s, wk.test(this.input)) {
          let r = this.codePointAtPos(wk.lastIndex);
          if (!Sd(r) && r !== 92)
            return !1;
        }
        return !0;
      } else return e === 92;
    }
    chStartsBindingPattern(e) {
      return e === 91 || e === 123;
    }
    hasFollowingBindingAtom() {
      let e = this.nextTokenStart(), s = this.codePointAtPos(e);
      return this.chStartsBindingPattern(s) || this.chStartsBindingIdentifier(s, e);
    }
    hasInLineFollowingBindingIdentifierOrBrace() {
      let e = this.nextTokenInLineStart(), s = this.codePointAtPos(e);
      return s === 123 || this.chStartsBindingIdentifier(s, e);
    }
    startsUsingForOf() {
      let {
        type: e,
        containsEsc: s
      } = this.lookahead();
      if (e === 102 && !s)
        return !1;
      if (Ys(e) && !this.hasFollowingLineBreak())
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    startsAwaitUsing() {
      let e = this.nextTokenInLineStart();
      if (this.isUnparsedContextual(e, "using")) {
        e = this.nextTokenInLineStartSince(e + 5);
        let s = this.codePointAtPos(e);
        if (this.chStartsBindingIdentifier(s, e))
          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(e = !1) {
      let s = 0;
      return this.options.annexB && !this.state.strict && (s |= 4, e && (s |= 8)), this.parseStatementLike(s);
    }
    parseStatement() {
      return this.parseStatementLike(0);
    }
    parseStatementLike(e) {
      let s = null;
      return this.match(26) && (s = this.parseDecorators(!0)), this.parseStatementContent(e, s);
    }
    parseStatementContent(e, s) {
      let r = this.state.type, i = this.startNode(), a = !!(e & 2), o = !!(e & 4), l = e & 1;
      switch (r) {
        case 60:
          return this.parseBreakContinueStatement(i, !0);
        case 63:
          return this.parseBreakContinueStatement(i, !1);
        case 64:
          return this.parseDebuggerStatement(i);
        case 90:
          return this.parseDoWhileStatement(i);
        case 91:
          return this.parseForStatement(i);
        case 68:
          if (this.lookaheadCharCode() === 46) break;
          return o || this.raise(this.state.strict ? Q.StrictFunction : this.options.annexB ? Q.SloppyFunctionAnnexB : Q.SloppyFunction, this.
          state.startLoc), this.parseFunctionStatement(i, !1, !a && o);
        case 80:
          return a || this.unexpected(), this.parseClass(this.maybeTakeDecorators(s, i), !0);
        case 69:
          return this.parseIfStatement(i);
        case 70:
          return this.parseReturnStatement(i);
        case 71:
          return this.parseSwitchStatement(i);
        case 72:
          return this.parseThrowStatement(i);
        case 73:
          return this.parseTryStatement(i);
        case 96:
          if (!this.state.containsEsc && this.startsAwaitUsing())
            return this.recordAwaitIfAllowed() ? a || this.raise(Q.UnexpectedLexicalDeclaration, i) : this.raise(Q.AwaitUsingNotInAsyncContext,
            i), this.next(), this.parseVarStatement(i, "await using");
          break;
        case 107:
          if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace())
            break;
          return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(Q.UnexpectedUsingDeclaration,
          this.state.startLoc) : a || this.raise(Q.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(i, "using");
        case 100: {
          if (this.state.containsEsc)
            break;
          let p = this.nextTokenStart(), h = this.codePointAtPos(p);
          if (h !== 91 && (!a && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(h, p) && h !== 123))
            break;
        }
        case 75:
          a || this.raise(Q.UnexpectedLexicalDeclaration, this.state.startLoc);
        case 74: {
          let p = this.state.value;
          return this.parseVarStatement(i, p);
        }
        case 92:
          return this.parseWhileStatement(i);
        case 76:
          return this.parseWithStatement(i);
        case 5:
          return this.parseBlock();
        case 13:
          return this.parseEmptyStatement(i);
        case 83: {
          let p = this.lookaheadCharCode();
          if (p === 40 || p === 46)
            break;
        }
        case 82: {
          !(this.optionFlags & 8) && !l && this.raise(Q.UnexpectedImportExport, this.state.startLoc), this.next();
          let p;
          return r === 83 ? (p = this.parseImport(i), p.type === "ImportDeclaration" && (!p.importKind || p.importKind === "value") && (this.
          sawUnambiguousESM = !0)) : (p = this.parseExport(i, s), (p.type === "ExportNamedDeclaration" && (!p.exportKind || p.exportKind ===
          "value") || p.type === "ExportAllDeclaration" && (!p.exportKind || p.exportKind === "value") || p.type === "ExportDefaultDeclarati\
on") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(p), p;
        }
        default:
          if (this.isAsyncFunction())
            return a || this.raise(Q.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(i,
            !0, !a && o);
      }
      let u = this.state.value, c = this.parseExpression();
      return Ys(r) && c.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(i, u, c, e) : this.parseExpressionStatement(i, c,
      s);
    }
    assertModuleNodeAllowed(e) {
      !(this.optionFlags & 8) && !this.inModule && this.raise(Q.ImportOutsideModule, e);
    }
    decoratorsEnabledBeforeExport() {
      return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBefore\
Export") !== !1;
    }
    maybeTakeDecorators(e, s, r) {
      if (e) {
        var i;
        (i = s.decorators) != null && i.length ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(
        Q.DecoratorsBeforeAfterExport, s.decorators[0]), s.decorators.unshift(...e)) : s.decorators = e, this.resetStartLocationFromNode(s, e[0]),
        r && this.resetStartLocationFromNode(r, s);
      }
      return s;
    }
    canHaveLeadingDecorator() {
      return this.match(80);
    }
    parseDecorators(e) {
      let s = [];
      do
        s.push(this.parseDecorator());
      while (this.match(26));
      if (this.match(82))
        e || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(Q.DecoratorExportClass, this.state.startLoc);
      else if (!this.canHaveLeadingDecorator())
        throw this.raise(Q.UnexpectedLeadingDecorator, this.state.startLoc);
      return s;
    }
    parseDecorator() {
      this.expectOnePlugin(["decorators", "decorators-legacy"]);
      let e = this.startNode();
      if (this.next(), this.hasPlugin("decorators")) {
        let s = this.state.startLoc, r;
        if (this.match(10)) {
          let i = this.state.startLoc;
          this.next(), r = this.parseExpression(), this.expect(11), r = this.wrapParenthesis(i, r);
          let a = this.state.startLoc;
          e.expression = this.parseMaybeDecoratorArguments(r, i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && e.expression !==
          r && this.raise(Q.DecoratorArgumentsOutsideParentheses, a);
        } else {
          for (r = this.parseIdentifier(!1); this.eat(16); ) {
            let i = this.startNodeAt(s);
            i.object = r, this.match(139) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), i.property = this.parsePrivateName()) :
            i.property = this.parseIdentifier(!0), i.computed = !1, r = this.finishNode(i, "MemberExpression");
          }
          e.expression = this.parseMaybeDecoratorArguments(r, s);
        }
      } else
        e.expression = this.parseExprSubscripts();
      return this.finishNode(e, "Decorator");
    }
    parseMaybeDecoratorArguments(e, s) {
      if (this.eat(10)) {
        let r = this.startNodeAt(s);
        return r.callee = e, r.arguments = this.parseCallExpressionArguments(11), this.toReferencedList(r.arguments), this.finishNode(r, "Ca\
llExpression");
      }
      return e;
    }
    parseBreakContinueStatement(e, s) {
      return this.next(), this.isLineTerminator() ? e.label = null : (e.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(
      e, s), this.finishNode(e, s ? "BreakStatement" : "ContinueStatement");
    }
    verifyBreakContinue(e, s) {
      let r;
      for (r = 0; r < this.state.labels.length; ++r) {
        let i = this.state.labels[r];
        if ((e.label == null || i.name === e.label.name) && (i.kind != null && (s || i.kind === 1) || e.label && s))
          break;
      }
      if (r === this.state.labels.length) {
        let i = s ? "BreakStatement" : "ContinueStatement";
        this.raise(Q.IllegalBreakContinue, e, {
          type: i
        });
      }
    }
    parseDebuggerStatement(e) {
      return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
    }
    parseHeaderExpression() {
      this.expect(10);
      let e = this.parseExpression();
      return this.expect(11), e;
    }
    parseDoWhileStatement(e) {
      return this.next(), this.state.labels.push(Ck), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.
      labels.pop(), this.expect(92), e.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(e, "DoWhileStatement");
    }
    parseForStatement(e) {
      this.next(), this.state.labels.push(Ck);
      let s = null;
      if (this.isContextual(96) && this.recordAwaitIfAllowed() && (s = this.state.startLoc, this.next()), this.scope.enter(0), this.expect(10),
      this.match(13))
        return s !== null && this.unexpected(s), this.parseFor(e, null);
      let r = this.isContextual(100);
      {
        let u = this.isContextual(96) && this.startsAwaitUsing(), c = u || this.isContextual(107) && this.startsUsingForOf(), p = r && this.
        hasFollowingBindingAtom() || c;
        if (this.match(74) || this.match(75) || p) {
          let h = this.startNode(), f;
          u ? (f = "await using", this.recordAwaitIfAllowed() || this.raise(Q.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) :
          f = this.state.value, this.next(), this.parseVar(h, !0, f);
          let d = this.finishNode(h, "VariableDeclaration"), m = this.match(58);
          return m && c && this.raise(Q.ForInUsing, d), (m || this.isContextual(102)) && d.declarations.length === 1 ? this.parseForIn(e, d,
          s) : (s !== null && this.unexpected(s), this.parseFor(e, d));
        }
      }
      let i = this.isContextual(95), a = new Ed(), o = this.parseExpression(!0, a), l = this.isContextual(102);
      if (l && (r && this.raise(Q.ForOfLet, o), s === null && i && o.type === "Identifier" && this.raise(Q.ForOfAsync, o)), l || this.match(
      58)) {
        this.checkDestructuringPrivate(a), this.toAssignable(o, !0);
        let u = l ? "ForOfStatement" : "ForInStatement";
        return this.checkLVal(o, {
          type: u
        }), this.parseForIn(e, o, s);
      } else
        this.checkExpressionErrors(a, !0);
      return s !== null && this.unexpected(s), this.parseFor(e, o);
    }
    parseFunctionStatement(e, s, r) {
      return this.next(), this.parseFunction(e, 1 | (r ? 2 : 0) | (s ? 8 : 0));
    }
    parseIfStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), e.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), e.alternate =
      this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(e, "IfStatement");
    }
    parseReturnStatement(e) {
      return !this.prodParam.hasReturn && !(this.optionFlags & 2) && this.raise(Q.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ?
      e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
    }
    parseSwitchStatement(e) {
      this.next(), e.discriminant = this.parseHeaderExpression();
      let s = e.cases = [];
      this.expect(5), this.state.labels.push(OVe), this.scope.enter(0);
      let r;
      for (let i; !this.match(8); )
        if (this.match(61) || this.match(65)) {
          let a = this.match(61);
          r && this.finishNode(r, "SwitchCase"), s.push(r = this.startNode()), r.consequent = [], this.next(), a ? r.test = this.parseExpression() :
          (i && this.raise(Q.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), i = !0, r.test = null), this.expect(14);
        } else
          r ? r.consequent.push(this.parseStatementListItem()) : this.unexpected();
      return this.scope.exit(), r && this.finishNode(r, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(e, "SwitchState\
ment");
    }
    parseThrowStatement(e) {
      return this.next(), this.hasPrecedingLineBreak() && this.raise(Q.NewlineAfterThrow, this.state.lastTokEndLoc), e.argument = this.parseExpression(),
      this.semicolon(), this.finishNode(e, "ThrowStatement");
    }
    parseCatchClauseParam() {
      let e = this.parseBindingAtom();
      return this.scope.enter(this.options.annexB && e.type === "Identifier" ? 8 : 0), this.checkLVal(e, {
        type: "CatchClause"
      }, 9), e;
    }
    parseTryStatement(e) {
      if (this.next(), e.block = this.parseBlock(), e.handler = null, this.match(62)) {
        let s = this.startNode();
        this.next(), this.match(10) ? (this.expect(10), s.param = this.parseCatchClauseParam(), this.expect(11)) : (s.param = null, this.scope.
        enter(0)), s.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), e.handler = this.finishNode(
        s, "CatchClause");
      }
      return e.finalizer = this.eat(67) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(Q.NoCatchOrFinally, e), this.finishNode(
      e, "TryStatement");
    }
    parseVarStatement(e, s, r = !1) {
      return this.next(), this.parseVar(e, !1, s, r), this.semicolon(), this.finishNode(e, "VariableDeclaration");
    }
    parseWhileStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), this.state.labels.push(Ck), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.state.labels.pop(), this.finishNode(e, "WhileStatement");
    }
    parseWithStatement(e) {
      return this.state.strict && this.raise(Q.StrictWith, this.state.startLoc), this.next(), e.object = this.parseHeaderExpression(), e.body =
      this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(e, "WithStatement");
    }
    parseEmptyStatement(e) {
      return this.next(), this.finishNode(e, "EmptyStatement");
    }
    parseLabeledStatement(e, s, r, i) {
      for (let o of this.state.labels)
        o.name === s && this.raise(Q.LabelRedeclaration, r, {
          labelName: s
        });
      let a = jKe(this.state.type) ? 1 : this.match(71) ? 2 : null;
      for (let o = this.state.labels.length - 1; o >= 0; o--) {
        let l = this.state.labels[o];
        if (l.statementStart === e.start)
          l.statementStart = this.sourceToOffsetPos(this.state.start), l.kind = a;
        else
          break;
      }
      return this.state.labels.push({
        name: s,
        kind: a,
        statementStart: this.sourceToOffsetPos(this.state.start)
      }), e.body = i & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), e.label =
      r, this.finishNode(e, "LabeledStatement");
    }
    parseExpressionStatement(e, s, r) {
      return e.expression = s, this.semicolon(), this.finishNode(e, "ExpressionStatement");
    }
    parseBlock(e = !1, s = !0, r) {
      let i = this.startNode();
      return e && this.state.strictErrors.clear(), this.expect(5), s && this.scope.enter(0), this.parseBlockBody(i, e, !1, 8, r), s && this.
      scope.exit(), this.finishNode(i, "BlockStatement");
    }
    isValidDirective(e) {
      return e.type === "ExpressionStatement" && e.expression.type === "StringLiteral" && !e.expression.extra.parenthesized;
    }
    parseBlockBody(e, s, r, i, a) {
      let o = e.body = [], l = e.directives = [];
      this.parseBlockOrModuleBlockBody(o, s ? l : void 0, r, i, a);
    }
    parseBlockOrModuleBlockBody(e, s, r, i, a) {
      let o = this.state.strict, l = !1, u = !1;
      for (; !this.match(i); ) {
        let c = r ? this.parseModuleItem() : this.parseStatementListItem();
        if (s && !u) {
          if (this.isValidDirective(c)) {
            let p = this.stmtToDirective(c);
            s.push(p), !l && p.value.value === "use strict" && (l = !0, this.setStrict(!0));
            continue;
          }
          u = !0, this.state.strictErrors.clear();
        }
        e.push(c);
      }
      a?.call(this, l), o || this.setStrict(!1), this.next();
    }
    parseFor(e, s) {
      return e.init = s, this.semicolon(!1), e.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), e.update = this.match(
      11) ? null : this.parseExpression(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.
      scope.exit(), this.state.labels.pop(), this.finishNode(e, "ForStatement");
    }
    parseForIn(e, s, r) {
      let i = this.match(58);
      return this.next(), i ? r !== null && this.unexpected(r) : e.await = r !== null, s.type === "VariableDeclaration" && s.declarations[0].
      init != null && (!i || !this.options.annexB || this.state.strict || s.kind !== "var" || s.declarations[0].id.type !== "Identifier") &&
      this.raise(Q.ForInOfLoopInitializer, s, {
        type: i ? "ForInStatement" : "ForOfStatement"
      }), s.type === "AssignmentPattern" && this.raise(Q.InvalidLhs, s, {
        ancestor: {
          type: "ForStatement"
        }
      }), e.left = s, e.right = i ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement");
    }
    parseVar(e, s, r, i = !1) {
      let a = e.declarations = [];
      for (e.kind = r; ; ) {
        let o = this.startNode();
        if (this.parseVarId(o, r), o.init = this.eat(29) ? s ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, o.
        init === null && !i && (o.id.type !== "Identifier" && !(s && (this.match(58) || this.isContextual(102))) ? this.raise(Q.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: "destructuring"
        }) : (r === "const" || r === "using" || r === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(Q.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: r
        })), a.push(this.finishNode(o, "VariableDeclarator")), !this.eat(12)) break;
      }
      return e;
    }
    parseVarId(e, s) {
      let r = this.parseBindingAtom();
      (s === "using" || s === "await using") && (r.type === "ArrayPattern" || r.type === "ObjectPattern") && this.raise(Q.UsingDeclarationHasBindingPattern,
      r.loc.start), this.checkLVal(r, {
        type: "VariableDeclarator"
      }, s === "var" ? 5 : 8201), e.id = r;
    }
    parseAsyncFunctionExpression(e) {
      return this.parseFunction(e, 8);
    }
    parseFunction(e, s = 0) {
      let r = s & 2, i = !!(s & 1), a = i && !(s & 4), o = !!(s & 8);
      this.initFunction(e, o), this.match(55) && (r && this.raise(Q.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), e.
      generator = !0), i && (e.id = this.parseFunctionId(a));
      let l = this.state.maybeInArrowParameters;
      return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(Jx(o, e.generator)), i || (e.id = this.parseFunctionId()),
      this.parseFunctionParams(e, !1), this.withSmartMixTopicForbiddingContext(() => {
        this.parseFunctionBodyAndFinish(e, i ? "FunctionDeclaration" : "FunctionExpression");
      }), this.prodParam.exit(), this.scope.exit(), i && !r && this.registerFunctionStatementId(e), this.state.maybeInArrowParameters = l, e;
    }
    parseFunctionId(e) {
      return e || Ys(this.state.type) ? this.parseIdentifier() : null;
    }
    parseFunctionParams(e, s) {
      this.expect(10), this.expressionScope.enter(lVe()), e.params = this.parseBindingList(11, 41, 2 | (s ? 4 : 0)), this.expressionScope.exit();
    }
    registerFunctionStatementId(e) {
      e.id && this.scope.declareName(e.id.name, !this.options.annexB || this.state.strict || e.generator || e.async ? this.scope.treatFunctionsAsVar ?
      5 : 8201 : 17, e.id.loc.start);
    }
    parseClass(e, s, r) {
      this.next();
      let i = this.state.strict;
      return this.state.strict = !0, this.parseClassId(e, s, r), this.parseClassSuper(e), e.body = this.parseClassBody(!!e.superClass, i), this.
      finishNode(e, s ? "ClassDeclaration" : "ClassExpression");
    }
    isClassProperty() {
      return this.match(29) || this.match(13) || this.match(8);
    }
    isClassMethod() {
      return this.match(10);
    }
    nameIsConstructor(e) {
      return e.type === "Identifier" && e.name === "constructor" || e.type === "StringLiteral" && e.value === "constructor";
    }
    isNonstaticConstructor(e) {
      return !e.computed && !e.static && this.nameIsConstructor(e.key);
    }
    parseClassBody(e, s) {
      this.classScope.enter();
      let r = {
        hadConstructor: !1,
        hadSuperClass: e
      }, i = [], a = this.startNode();
      if (a.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
        for (; !this.match(8); ) {
          if (this.eat(13)) {
            if (i.length > 0)
              throw this.raise(Q.DecoratorSemicolon, this.state.lastTokEndLoc);
            continue;
          }
          if (this.match(26)) {
            i.push(this.parseDecorator());
            continue;
          }
          let o = this.startNode();
          i.length && (o.decorators = i, this.resetStartLocationFromNode(o, i[0]), i = []), this.parseClassMember(a, o, r), o.kind === "cons\
tructor" && o.decorators && o.decorators.length > 0 && this.raise(Q.DecoratorConstructor, o);
        }
      }), this.state.strict = s, this.next(), i.length)
        throw this.raise(Q.TrailingDecorator, this.state.startLoc);
      return this.classScope.exit(), this.finishNode(a, "ClassBody");
    }
    parseClassMemberFromModifier(e, s) {
      let r = this.parseIdentifier(!0);
      if (this.isClassMethod()) {
        let i = s;
        return i.kind = "method", i.computed = !1, i.key = r, i.static = !1, this.pushClassMethod(e, i, !1, !1, !1, !1), !0;
      } else if (this.isClassProperty()) {
        let i = s;
        return i.computed = !1, i.key = r, i.static = !1, e.body.push(this.parseClassProperty(i)), !0;
      }
      return this.resetPreviousNodeTrailingComments(r), !1;
    }
    parseClassMember(e, s, r) {
      let i = this.isContextual(106);
      if (i) {
        if (this.parseClassMemberFromModifier(e, s))
          return;
        if (this.eat(5)) {
          this.parseClassStaticBlock(e, s);
          return;
        }
      }
      this.parseClassMemberWithIsStatic(e, s, r, i);
    }
    parseClassMemberWithIsStatic(e, s, r, i) {
      let a = s, o = s, l = s, u = s, c = s, p = a, h = a;
      if (s.static = i, this.parsePropertyNamePrefixOperator(s), this.eat(55)) {
        p.kind = "method";
        let b = this.match(139);
        if (this.parseClassElementName(p), b) {
          this.pushClassPrivateMethod(e, o, !0, !1);
          return;
        }
        this.isNonstaticConstructor(a) && this.raise(Q.ConstructorIsGenerator, a.key), this.pushClassMethod(e, a, !0, !1, !1, !1);
        return;
      }
      let f = !this.state.containsEsc && Ys(this.state.type), d = this.parseClassElementName(s), m = f ? d.name : null, y = this.isPrivateName(
      d), T = this.state.startLoc;
      if (this.parsePostMemberNameModifiers(h), this.isClassMethod()) {
        if (p.kind = "method", y) {
          this.pushClassPrivateMethod(e, o, !1, !1);
          return;
        }
        let b = this.isNonstaticConstructor(a), E = !1;
        b && (a.kind = "constructor", r.hadConstructor && !this.hasPlugin("typescript") && this.raise(Q.DuplicateConstructor, d), b && this.
        hasPlugin("typescript") && s.override && this.raise(Q.OverrideOnConstructor, d), r.hadConstructor = !0, E = r.hadSuperClass), this.pushClassMethod(
        e, a, !1, !1, b, E);
      } else if (this.isClassProperty())
        y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l);
      else if (m === "async" && !this.isLineTerminator()) {
        this.resetPreviousNodeTrailingComments(d);
        let b = this.eat(55);
        h.optional && this.unexpected(T), p.kind = "method";
        let E = this.match(139);
        this.parseClassElementName(p), this.parsePostMemberNameModifiers(h), E ? this.pushClassPrivateMethod(e, o, b, !0) : (this.isNonstaticConstructor(
        a) && this.raise(Q.ConstructorIsAsync, a.key), this.pushClassMethod(e, a, b, !0, !1, !1));
      } else if ((m === "get" || m === "set") && !(this.match(55) && this.isLineTerminator())) {
        this.resetPreviousNodeTrailingComments(d), p.kind = m;
        let b = this.match(139);
        this.parseClassElementName(a), b ? this.pushClassPrivateMethod(e, o, !1, !1) : (this.isNonstaticConstructor(a) && this.raise(Q.ConstructorIsAccessor,
        a.key), this.pushClassMethod(e, a, !1, !1, !1, !1)), this.checkGetterSetterParams(a);
      } else if (m === "accessor" && !this.isLineTerminator()) {
        this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(d);
        let b = this.match(139);
        this.parseClassElementName(l), this.pushClassAccessorProperty(e, c, b);
      } else this.isLineTerminator() ? y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l) : this.unexpected();
    }
    parseClassElementName(e) {
      let {
        type: s,
        value: r
      } = this.state;
      if ((s === 132 || s === 134) && e.static && r === "prototype" && this.raise(Q.StaticPrototype, this.state.startLoc), s === 139) {
        r === "constructor" && this.raise(Q.ConstructorClassPrivateField, this.state.startLoc);
        let i = this.parsePrivateName();
        return e.key = i, i;
      }
      return this.parsePropertyName(e), e.key;
    }
    parseClassStaticBlock(e, s) {
      var r;
      this.scope.enter(208);
      let i = this.state.labels;
      this.state.labels = [], this.prodParam.enter(0);
      let a = s.body = [];
      this.parseBlockOrModuleBlockBody(a, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = i, e.body.push(this.
      finishNode(s, "StaticBlock")), (r = s.decorators) != null && r.length && this.raise(Q.DecoratorStaticBlock, s);
    }
    pushClassProperty(e, s) {
      !s.computed && this.nameIsConstructor(s.key) && this.raise(Q.ConstructorClassField, s.key), e.body.push(this.parseClassProperty(s));
    }
    pushClassPrivateProperty(e, s) {
      let r = this.parseClassPrivateProperty(s);
      e.body.push(r), this.classScope.declarePrivateName(this.getPrivateNameSV(r.key), 0, r.key.loc.start);
    }
    pushClassAccessorProperty(e, s, r) {
      !r && !s.computed && this.nameIsConstructor(s.key) && this.raise(Q.ConstructorClassField, s.key);
      let i = this.parseClassAccessorProperty(s);
      e.body.push(i), r && this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
    }
    pushClassMethod(e, s, r, i, a, o) {
      e.body.push(this.parseMethod(s, r, i, a, o, "ClassMethod", !0));
    }
    pushClassPrivateMethod(e, s, r, i) {
      let a = this.parseMethod(s, r, i, !1, !1, "ClassPrivateMethod", !0);
      e.body.push(a);
      let o = a.kind === "get" ? a.static ? 6 : 2 : a.kind === "set" ? a.static ? 5 : 1 : 0;
      this.declareClassPrivateMethodInScope(a, o);
    }
    declareClassPrivateMethodInScope(e, s) {
      this.classScope.declarePrivateName(this.getPrivateNameSV(e.key), s, e.key.loc.start);
    }
    parsePostMemberNameModifiers(e) {
    }
    parseClassPrivateProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassPrivateProperty");
    }
    parseClassProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassProperty");
    }
    parseClassAccessorProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassAccessorProperty");
    }
    parseInitializer(e) {
      this.scope.enter(80), this.expressionScope.enter(C$()), this.prodParam.enter(0), e.value = this.eat(29) ? this.parseMaybeAssignAllowIn() :
      null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
    }
    parseClassId(e, s, r, i = 8331) {
      if (Ys(this.state.type))
        e.id = this.parseIdentifier(), s && this.declareNameFromIdentifier(e.id, i);
      else if (r || !s)
        e.id = null;
      else
        throw this.raise(Q.MissingClassName, this.state.startLoc);
    }
    parseClassSuper(e) {
      e.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
    }
    parseExport(e, s) {
      let r = this.parseMaybeImportPhase(e, !0), i = this.maybeParseExportDefaultSpecifier(e, r), a = !i || this.eat(12), o = a && this.eatExportStar(
      e), l = o && this.maybeParseExportNamespaceSpecifier(e), u = a && (!l || this.eat(12)), c = i || o;
      if (o && !l) {
        if (i && this.unexpected(), s)
          throw this.raise(Q.UnsupportedDecoratorExport, e);
        return this.parseExportFrom(e, !0), this.finishNode(e, "ExportAllDeclaration");
      }
      let p = this.maybeParseExportNamedSpecifiers(e);
      i && a && !o && !p && this.unexpected(null, 5), l && u && this.unexpected(null, 98);
      let h;
      if (c || p) {
        if (h = !1, s)
          throw this.raise(Q.UnsupportedDecoratorExport, e);
        this.parseExportFrom(e, c);
      } else
        h = this.maybeParseExportDeclaration(e);
      if (c || p || h) {
        var f;
        let d = e;
        if (this.checkExport(d, !0, !1, !!d.source), ((f = d.declaration) == null ? void 0 : f.type) === "ClassDeclaration")
          this.maybeTakeDecorators(s, d.declaration, d);
        else if (s)
          throw this.raise(Q.UnsupportedDecoratorExport, e);
        return this.finishNode(d, "ExportNamedDeclaration");
      }
      if (this.eat(65)) {
        let d = e, m = this.parseExportDefaultExpression();
        if (d.declaration = m, m.type === "ClassDeclaration")
          this.maybeTakeDecorators(s, m, d);
        else if (s)
          throw this.raise(Q.UnsupportedDecoratorExport, e);
        return this.checkExport(d, !0, !0), this.finishNode(d, "ExportDefaultDeclaration");
      }
      this.unexpected(null, 5);
    }
    eatExportStar(e) {
      return this.eat(55);
    }
    maybeParseExportDefaultSpecifier(e, s) {
      if (s || this.isExportDefaultSpecifier()) {
        this.expectPlugin("exportDefaultFrom", s?.loc.start);
        let r = s || this.parseIdentifier(!0), i = this.startNodeAtNode(r);
        return i.exported = r, e.specifiers = [this.finishNode(i, "ExportDefaultSpecifier")], !0;
      }
      return !1;
    }
    maybeParseExportNamespaceSpecifier(e) {
      if (this.isContextual(93)) {
        var s, r;
        (r = (s = e).specifiers) != null || (s.specifiers = []);
        let i = this.startNodeAt(this.state.lastTokStartLoc);
        return this.next(), i.exported = this.parseModuleExportName(), e.specifiers.push(this.finishNode(i, "ExportNamespaceSpecifier")), !0;
      }
      return !1;
    }
    maybeParseExportNamedSpecifiers(e) {
      if (this.match(5)) {
        let s = e;
        s.specifiers || (s.specifiers = []);
        let r = s.exportKind === "type";
        return s.specifiers.push(...this.parseExportSpecifiers(r)), s.source = null, s.declaration = null, this.hasPlugin("importAssertions") &&
        (s.assertions = []), !0;
      }
      return !1;
    }
    maybeParseExportDeclaration(e) {
      return this.shouldParseExportDeclaration() ? (e.specifiers = [], e.source = null, this.hasPlugin("importAssertions") && (e.assertions =
      []), e.declaration = this.parseExportDeclaration(e), !0) : !1;
    }
    isAsyncFunction() {
      if (!this.isContextual(95)) return !1;
      let e = this.nextTokenInLineStart();
      return this.isUnparsedContextual(e, "function");
    }
    parseExportDefaultExpression() {
      let e = this.startNode();
      if (this.match(68))
        return this.next(), this.parseFunction(e, 5);
      if (this.isAsyncFunction())
        return this.next(), this.next(), this.parseFunction(e, 13);
      if (this.match(80))
        return this.parseClass(e, !0, !0);
      if (this.match(26))
        return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(Q.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(Q.UnsupportedDefaultExport, this.state.startLoc);
      let s = this.parseMaybeAssignAllowIn();
      return this.semicolon(), s;
    }
    parseExportDeclaration(e) {
      return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
    }
    isExportDefaultSpecifier() {
      let {
        type: e
      } = this.state;
      if (Ys(e)) {
        if (e === 95 && !this.state.containsEsc || e === 100)
          return !1;
        if ((e === 130 || e === 129) && !this.state.containsEsc) {
          let {
            type: i
          } = this.lookahead();
          if (Ys(i) && i !== 98 || i === 5)
            return this.expectOnePlugin(["flow", "typescript"]), !1;
        }
      } else if (!this.match(65))
        return !1;
      let s = this.nextTokenStart(), r = this.isUnparsedContextual(s, "from");
      if (this.input.charCodeAt(s) === 44 || Ys(this.state.type) && r)
        return !0;
      if (this.match(65) && r) {
        let i = this.input.charCodeAt(this.nextTokenStartSince(s + 4));
        return i === 34 || i === 39;
      }
      return !1;
    }
    parseExportFrom(e, s) {
      this.eatContextual(98) ? (e.source = this.parseImportSource(), this.checkExport(e), this.maybeParseImportAttributes(e), this.checkJSONModuleImport(
      e)) : s && this.unexpected(), this.semicolon();
    }
    shouldParseExportDeclaration() {
      let {
        type: e
      } = this.state;
      return e === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("\
decorators", "decoratorsBeforeExport") === !0 && this.raise(Q.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.
      raise(Q.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(Q.UsingDeclarationExport,
      this.state.startLoc), !0) : e === 74 || e === 75 || e === 68 || e === 80 || this.isLet() || this.isAsyncFunction();
    }
    checkExport(e, s, r, i) {
      if (s) {
        var a;
        if (r) {
          if (this.checkDuplicateExports(e, "default"), this.hasPlugin("exportDefaultFrom")) {
            var o;
            let l = e.declaration;
            l.type === "Identifier" && l.name === "from" && l.end - l.start === 4 && !((o = l.extra) != null && o.parenthesized) && this.raise(
            Q.ExportDefaultFromAsIdentifier, l);
          }
        } else if ((a = e.specifiers) != null && a.length)
          for (let l of e.specifiers) {
            let {
              exported: u
            } = l, c = u.type === "Identifier" ? u.name : u.value;
            if (this.checkDuplicateExports(l, c), !i && l.local) {
              let {
                local: p
              } = l;
              p.type !== "Identifier" ? this.raise(Q.ExportBindingIsString, l, {
                localName: p.value,
                exportName: c
              }) : (this.checkReservedWord(p.name, p.loc.start, !0, !1), this.scope.checkLocalExport(p));
            }
          }
        else if (e.declaration) {
          let l = e.declaration;
          if (l.type === "FunctionDeclaration" || l.type === "ClassDeclaration") {
            let {
              id: u
            } = l;
            if (!u) throw new Error("Assertion failure");
            this.checkDuplicateExports(e, u.name);
          } else if (l.type === "VariableDeclaration")
            for (let u of l.declarations)
              this.checkDeclaration(u.id);
        }
      }
    }
    checkDeclaration(e) {
      if (e.type === "Identifier")
        this.checkDuplicateExports(e, e.name);
      else if (e.type === "ObjectPattern")
        for (let s of e.properties)
          this.checkDeclaration(s);
      else if (e.type === "ArrayPattern")
        for (let s of e.elements)
          s && this.checkDeclaration(s);
      else e.type === "ObjectProperty" ? this.checkDeclaration(e.value) : e.type === "RestElement" ? this.checkDeclaration(e.argument) : e.type ===
      "AssignmentPattern" && this.checkDeclaration(e.left);
    }
    checkDuplicateExports(e, s) {
      this.exportedIdentifiers.has(s) && (s === "default" ? this.raise(Q.DuplicateDefaultExport, e) : this.raise(Q.DuplicateExport, e, {
        exportName: s
      })), this.exportedIdentifiers.add(s);
    }
    parseExportSpecifiers(e) {
      let s = [], r = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (r)
          r = !1;
        else if (this.expect(12), this.eat(8)) break;
        let i = this.isContextual(130), a = this.match(134), o = this.startNode();
        o.local = this.parseModuleExportName(), s.push(this.parseExportSpecifier(o, a, e, i));
      }
      return s;
    }
    parseExportSpecifier(e, s, r, i) {
      return this.eatContextual(93) ? e.exported = this.parseModuleExportName() : s ? e.exported = hVe(e.local) : e.exported || (e.exported =
      su(e.local)), this.finishNode(e, "ExportSpecifier");
    }
    parseModuleExportName() {
      if (this.match(134)) {
        let e = this.parseStringLiteral(this.state.value), s = _Ve.exec(e.value);
        return s && this.raise(Q.ModuleExportNameHasLoneSurrogate, e, {
          surrogateCharCode: s[0].charCodeAt(0)
        }), e;
      }
      return this.parseIdentifier(!0);
    }
    isJSONModuleImport(e) {
      return e.assertions != null ? e.assertions.some(({
        key: s,
        value: r
      }) => r.value === "json" && (s.type === "Identifier" ? s.name === "type" : s.value === "type")) : !1;
    }
    checkImportReflection(e) {
      let {
        specifiers: s
      } = e, r = s.length === 1 ? s[0].type : null;
      if (e.phase === "source")
        r !== "ImportDefaultSpecifier" && this.raise(Q.SourcePhaseImportRequiresDefault, s[0].loc.start);
      else if (e.phase === "defer")
        r !== "ImportNamespaceSpecifier" && this.raise(Q.DeferImportRequiresNamespace, s[0].loc.start);
      else if (e.module) {
        var i;
        r !== "ImportDefaultSpecifier" && this.raise(Q.ImportReflectionNotBinding, s[0].loc.start), ((i = e.assertions) == null ? void 0 : i.
        length) > 0 && this.raise(Q.ImportReflectionHasAssertion, s[0].loc.start);
      }
    }
    checkJSONModuleImport(e) {
      if (this.isJSONModuleImport(e) && e.type !== "ExportAllDeclaration") {
        let {
          specifiers: s
        } = e;
        if (s != null) {
          let r = s.find((i) => {
            let a;
            if (i.type === "ExportSpecifier" ? a = i.local : i.type === "ImportSpecifier" && (a = i.imported), a !== void 0)
              return a.type === "Identifier" ? a.name !== "default" : a.value !== "default";
          });
          r !== void 0 && this.raise(Q.ImportJSONBindingNotDefault, r.loc.start);
        }
      }
    }
    isPotentialImportPhase(e) {
      return e ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
    }
    applyImportPhase(e, s, r, i) {
      s || (r === "module" ? (this.expectPlugin("importReflection", i), e.module = !0) : this.hasPlugin("importReflection") && (e.module = !1),
      r === "source" ? (this.expectPlugin("sourcePhaseImports", i), e.phase = "source") : r === "defer" ? (this.expectPlugin("deferredImport\
Evaluation", i), e.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (e.phase = null));
    }
    parseMaybeImportPhase(e, s) {
      if (!this.isPotentialImportPhase(s))
        return this.applyImportPhase(e, s, null), null;
      let r = this.parseIdentifier(!0), {
        type: i
      } = this.state;
      return (bo(i) ? i !== 98 || this.lookaheadCharCode() === 102 : i !== 12) ? (this.resetPreviousIdentifierLeadingComments(r), this.applyImportPhase(
      e, s, r.name, r.loc.start), null) : (this.applyImportPhase(e, s, null), r);
    }
    isPrecedingIdImportPhase(e) {
      let {
        type: s
      } = this.state;
      return Ys(s) ? s !== 98 || this.lookaheadCharCode() === 102 : s !== 12;
    }
    parseImport(e) {
      return this.match(134) ? this.parseImportSourceAndAttributes(e) : this.parseImportSpecifiersAndAfter(e, this.parseMaybeImportPhase(e, !1));
    }
    parseImportSpecifiersAndAfter(e, s) {
      e.specifiers = [];
      let i = !this.maybeParseDefaultImportSpecifier(e, s) || this.eat(12), a = i && this.maybeParseStarImportSpecifier(e);
      return i && !a && this.parseNamedImportSpecifiers(e), this.expectContextual(98), this.parseImportSourceAndAttributes(e);
    }
    parseImportSourceAndAttributes(e) {
      var s;
      return (s = e.specifiers) != null || (e.specifiers = []), e.source = this.parseImportSource(), this.maybeParseImportAttributes(e), this.
      checkImportReflection(e), this.checkJSONModuleImport(e), this.semicolon(), this.finishNode(e, "ImportDeclaration");
    }
    parseImportSource() {
      return this.match(134) || this.unexpected(), this.parseExprAtom();
    }
    parseImportSpecifierLocal(e, s, r) {
      s.local = this.parseIdentifier(), e.specifiers.push(this.finishImportSpecifier(s, r));
    }
    finishImportSpecifier(e, s, r = 8201) {
      return this.checkLVal(e.local, {
        type: s
      }, r), this.finishNode(e, s);
    }
    parseImportAttributes() {
      this.expect(5);
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        if (this.match(8))
          break;
        let r = this.startNode(), i = this.state.value;
        if (s.has(i) && this.raise(Q.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
          key: i
        }), s.add(i), this.match(134) ? r.key = this.parseStringLiteral(i) : r.key = this.parseIdentifier(!0), this.expect(14), !this.match(
        134))
          throw this.raise(Q.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return this.expect(8), e;
    }
    parseModuleAttributes() {
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        let r = this.startNode();
        if (r.key = this.parseIdentifier(!0), r.key.name !== "type" && this.raise(Q.ModuleAttributeDifferentFromType, r.key), s.has(r.key.name) &&
        this.raise(Q.ModuleAttributesWithDuplicateKeys, r.key, {
          key: r.key.name
        }), s.add(r.key.name), this.expect(14), !this.match(134))
          throw this.raise(Q.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return e;
    }
    maybeParseImportAttributes(e) {
      let s;
      var r = !1;
      if (this.match(76)) {
        if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
          return;
        this.next(), this.hasPlugin("moduleAttributes") ? s = this.parseModuleAttributes() : s = this.parseImportAttributes(), r = !0;
      } else this.isContextual(94) && !this.hasPrecedingLineBreak() ? (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importA\
ssertions") && this.raise(Q.ImportAttributesUseAssert, this.state.startLoc), this.hasPlugin("importAssertions") || this.addExtra(e, "depreca\
tedAssertSyntax", !0), this.next(), s = this.parseImportAttributes()) : s = [];
      !r && this.hasPlugin("importAssertions") ? e.assertions = s : e.attributes = s;
    }
    maybeParseDefaultImportSpecifier(e, s) {
      if (s) {
        let r = this.startNodeAtNode(s);
        return r.local = s, e.specifiers.push(this.finishImportSpecifier(r, "ImportDefaultSpecifier")), !0;
      } else if (bo(this.state.type))
        return this.parseImportSpecifierLocal(e, this.startNode(), "ImportDefaultSpecifier"), !0;
      return !1;
    }
    maybeParseStarImportSpecifier(e) {
      if (this.match(55)) {
        let s = this.startNode();
        return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(e, s, "ImportNamespaceSpecifier"), !0;
      }
      return !1;
    }
    parseNamedImportSpecifiers(e) {
      let s = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (s)
          s = !1;
        else {
          if (this.eat(14))
            throw this.raise(Q.DestructureNamedImport, this.state.startLoc);
          if (this.expect(12), this.eat(8)) break;
        }
        let r = this.startNode(), i = this.match(134), a = this.isContextual(130);
        r.imported = this.parseModuleExportName();
        let o = this.parseImportSpecifier(r, i, e.importKind === "type" || e.importKind === "typeof", a, void 0);
        e.specifiers.push(o);
      }
    }
    parseImportSpecifier(e, s, r, i, a) {
      if (this.eatContextual(93))
        e.local = this.parseIdentifier();
      else {
        let {
          imported: o
        } = e;
        if (s)
          throw this.raise(Q.ImportBindingIsString, e, {
            importName: o.value
          });
        this.checkReservedWord(o.name, e.loc.start, !0, !0), e.local || (e.local = su(o));
      }
      return this.finishImportSpecifier(e, "ImportSpecifier", a);
    }
    isThisParam(e) {
      return e.type === "Identifier" && e.name === "this";
    }
  }, Gx = class extends Jk {
    static {
      n(this, "Parser");
    }
    constructor(e, s, r) {
      e = kKe(e), super(e, s), this.options = e, this.initializeScopes(), this.plugins = r, this.filename = e.sourceFilename, this.startIndex =
      e.startIndex;
      let i = 0;
      e.allowAwaitOutsideFunction && (i |= 1), e.allowReturnOutsideFunction && (i |= 2), e.allowImportExportEverywhere && (i |= 8), e.allowSuperOutsideMethod &&
      (i |= 16), e.allowUndeclaredExports && (i |= 32), e.allowNewTargetOutsideFunction && (i |= 4), e.ranges && (i |= 64), e.tokens && (i |=
      128), e.createImportExpressions && (i |= 256), e.createParenthesizedExpressions && (i |= 512), e.errorRecovery && (i |= 1024), e.attachComment &&
      (i |= 2048), e.annexB && (i |= 4096), this.optionFlags = i;
    }
    getScopeHandler() {
      return Sg;
    }
    parse() {
      this.enterInitialScopes();
      let e = this.startNode(), s = this.startNode();
      return this.nextToken(), e.errors = null, this.parseTopLevel(e, s), e.errors = this.state.errors, e.comments.length = this.state.commentsLen,
      e;
    }
  };
  function BVe(t, e) {
    var s;
    if (((s = e) == null ? void 0 : s.sourceType) === "unambiguous") {
      e = Object.assign({}, e);
      try {
        e.sourceType = "module";
        let r = Tg(e, t), i = r.parse();
        if (r.sawUnambiguousESM)
          return i;
        if (r.ambiguousScriptDifferentAst)
          try {
            return e.sourceType = "script", Tg(e, t).parse();
          } catch {
          }
        else
          i.program.sourceType = "script";
        return i;
      } catch (r) {
        try {
          return e.sourceType = "script", Tg(e, t).parse();
        } catch {
        }
        throw r;
      }
    } else
      return Tg(e, t).parse();
  }
  n(BVe, "parse");
  function MVe(t, e) {
    let s = Tg(e, t);
    return s.options.strictMode && (s.state.strict = !0), s.getExpression();
  }
  n(MVe, "parseExpression");
  function FVe(t) {
    let e = {};
    for (let s of Object.keys(t))
      e[s] = Ql(t[s]);
    return e;
  }
  n(FVe, "generateExportedTokenTypes");
  var jVe = FVe(LKe);
  function Tg(t, e) {
    let s = Gx, r = /* @__PURE__ */ new Map();
    if (t != null && t.plugins) {
      for (let i of t.plugins) {
        let a, o;
        typeof i == "string" ? a = i : [a, o] = i, r.has(a) || r.set(a, o || {});
      }
      kVe(r), s = RVe(r);
    }
    return new s(t, e, r);
  }
  n(Tg, "getParser");
  var m$ = /* @__PURE__ */ new Map();
  function RVe(t) {
    let e = [];
    for (let i of DVe)
      t.has(i) && e.push(i);
    let s = e.join("|"), r = m$.get(s);
    if (!r) {
      r = Gx;
      for (let i of e)
        r = k$[i](r);
      m$.set(s, r);
    }
    return r;
  }
  n(RVe, "getParserClass");
  Eg.parse = BVe;
  Eg.parseExpression = MVe;
  Eg.tokTypes = jVe;
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/replacement.js
var mk = g((Vc) => {
  "use strict";
  Object.defineProperty(Vc, "__esModule", {
    value: !0
  });
  Vc._replaceWith = j$;
  Vc.replaceExpressionWithStatements = fWe;
  Vc.replaceInline = dWe;
  Vc.replaceWith = hWe;
  Vc.replaceWithMultiple = cWe;
  Vc.replaceWithSourceString = pWe;
  var qVe = Hl(), nD = Yl(), UVe = Rc(), B$ = ch(), aD = qx(), KVe = Qx(), VVe = fe(), wd = tl(), {
    FUNCTION_TYPES: D$,
    arrowFunctionExpression: WVe,
    assignmentExpression: M$,
    awaitExpression: $Ve,
    blockStatement: HVe,
    buildUndefinedNode: iD,
    callExpression: JVe,
    cloneNode: oD,
    conditionalExpression: YVe,
    expressionStatement: XVe,
    getBindingIdentifiers: zVe,
    identifier: GVe,
    inheritLeadingComments: QVe,
    inheritTrailingComments: ZVe,
    inheritsComments: eWe,
    isBlockStatement: tWe,
    isEmptyStatement: O$,
    isExpression: F$,
    isExpressionStatement: sWe,
    isIfStatement: rWe,
    isProgram: iWe,
    isStatement: nWe,
    isVariableDeclaration: aWe,
    removeComments: oWe,
    returnStatement: _$,
    sequenceExpression: lWe,
    validate: L$,
    yieldExpression: uWe
  } = VVe;
  function cWe(t) {
    var e;
    wd.resync.call(this), t = aD._verifyNodeList.call(this, t), QVe(t[0], this.node), ZVe(t[t.length - 1], this.node), (e = (0, B$.getCachedPaths)(
    this.hub, this.parent)) == null || e.delete(this.node), this.node = this.container[this.key] = null;
    let s = this.insertAfter(t);
    return this.node ? this.requeue() : this.remove(), s;
  }
  n(cWe, "replaceWithMultiple");
  function pWe(t) {
    wd.resync.call(this);
    let e;
    try {
      t = `(${t})`, e = (0, KVe.parse)(t);
    } catch (r) {
      let i = r.loc;
      throw i && (r.message += ` - make sure this is an expression.
` + (0, qVe.codeFrameColumns)(t, {
        start: {
          line: i.line,
          column: i.column + 1
        }
      }), r.code = "BABEL_REPLACE_SOURCE_ERROR"), r;
    }
    let s = e.program.body[0].expression;
    return nD.default.removeProperties(s), this.replaceWith(s);
  }
  n(pWe, "replaceWithSourceString");
  function hWe(t) {
    if (wd.resync.call(this), this.removed)
      throw new Error("You can't replace this node, we've already removed it");
    let e = t instanceof UVe.default ? t.node : t;
    if (!e)
      throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");
    if (this.node === e)
      return [this];
    if (this.isProgram() && !iWe(e))
      throw new Error("You can only replace a Program root node with another Program node");
    if (Array.isArray(e))
      throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");
    if (typeof e == "string")
      throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");
    let s = "";
    if (this.isNodeType("Statement") && F$(e) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(
    e) && !this.parentPath.isExportDefaultDeclaration() && (e = XVe(e), s = "expression"), this.isNodeType("Expression") && nWe(e) && !this.
    canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(e))
      return this.replaceExpressionWithStatements([e]);
    let r = this.node;
    return r && (eWe(e, r), oWe(r)), j$.call(this, e), this.type = e.type, wd.setScope.call(this), this.requeue(), [s ? this.get(s) : this];
  }
  n(hWe, "replaceWith");
  function j$(t) {
    var e;
    if (!this.container)
      throw new ReferenceError("Container is falsy");
    this.inList ? L$(this.parent, this.key, [t]) : L$(this.parent, this.key, t), this.debug(`Replace with ${t?.type}`), (e = (0, B$.getCachedPaths)(
    this.hub, this.parent)) == null || e.set(t, this).delete(this.node), this.node = this.container[this.key] = t;
  }
  n(j$, "_replaceWith");
  function fWe(t) {
    wd.resync.call(this);
    let e = [], s = Zx(t, e);
    if (s) {
      for (let f of e) this.scope.push({
        id: f
      });
      return this.replaceWith(s)[0].get("expressions");
    }
    let r = this.getFunctionParent(), i = r?.node.async, a = r?.node.generator, o = WVe([], HVe(t));
    this.replaceWith(JVe(o, []));
    let l = this.get("callee");
    l.get("body").scope.hoistVariables((f) => this.scope.push({
      id: f
    }));
    let u = l.getCompletionRecords();
    for (let f of u) {
      if (!f.isExpressionStatement()) continue;
      let d = f.findParent((m) => m.isLoop());
      if (d) {
        let m = d.getData("expressionReplacementReturnUid");
        m ? m = GVe(m.name) : (m = l.scope.generateDeclaredUidIdentifier("ret"), l.get("body").pushContainer("body", _$(oD(m))), d.setData("\
expressionReplacementReturnUid", m)), f.get("expression").replaceWith(M$("=", oD(m), f.node.expression));
      } else
        f.replaceWith(_$(f.node.expression));
    }
    l.arrowFunctionToExpression();
    let c = l, p = i && nD.default.hasType(this.get("callee.body").node, "AwaitExpression", D$), h = a && nD.default.hasType(this.get("calle\
e.body").node, "YieldExpression", D$);
    return p && (c.set("async", !0), h || this.replaceWith($Ve(this.node))), h && (c.set("generator", !0), this.replaceWith(uWe(this.node, !0))),
    c.get("body.body");
  }
  n(fWe, "replaceExpressionWithStatements");
  function Zx(t, e) {
    let s = [], r = !0;
    for (let i of t)
      if (O$(i) || (r = !1), F$(i))
        s.push(i);
      else if (sWe(i))
        s.push(i.expression);
      else if (aWe(i)) {
        if (i.kind !== "var") return;
        for (let a of i.declarations) {
          let o = zVe(a);
          for (let l of Object.keys(o))
            e.push(oD(o[l]));
          a.init && s.push(M$("=", a.id, a.init));
        }
        r = !0;
      } else if (rWe(i)) {
        let a = i.consequent ? Zx([i.consequent], e) : iD(), o = i.alternate ? Zx([i.alternate], e) : iD();
        if (!a || !o) return;
        s.push(YVe(i.test, a, o));
      } else if (tWe(i)) {
        let a = Zx(i.body, e);
        if (!a) return;
        s.push(a);
      } else if (O$(i))
        t.indexOf(i) === 0 && (r = !0);
      else
        return;
    return r && s.push(iD()), s.length === 1 ? s[0] : lWe(s);
  }
  n(Zx, "gatherSequenceExpressions");
  function dWe(t) {
    if (wd.resync.call(this), Array.isArray(t))
      if (Array.isArray(this.container)) {
        t = aD._verifyNodeList.call(this, t);
        let e = aD._containerInsertAfter.call(this, t);
        return this.remove(), e;
      } else
        return this.replaceWithMultiple(t);
    else
      return this.replaceWith(t);
  }
  n(dWe, "replaceInline");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/evaluation.js
var K$ = g((eS) => {
  "use strict";
  Object.defineProperty(eS, "__esModule", {
    value: !0
  });
  eS.evaluate = PWe;
  eS.evaluateTruthy = xWe;
  var mWe = ["Number", "String", "Math"], yWe = ["isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeUR\
I", "encodeURIComponent", null, null], gWe = ["random"];
  function R$(t) {
    return mWe.includes(t);
  }
  n(R$, "isValidObjectCallee");
  function TWe(t) {
    return yWe.includes(t);
  }
  n(TWe, "isValidIdentifierCallee");
  function bWe(t) {
    return gWe.includes(t);
  }
  n(bWe, "isInvalidMethod");
  function xWe() {
    let t = this.evaluate();
    if (t.confident) return !!t.value;
  }
  n(xWe, "evaluateTruthy");
  function ru(t, e) {
    e.confident && (e.deoptPath = t, e.confident = !1);
  }
  n(ru, "deopt");
  var q$ = /* @__PURE__ */ new Map([["undefined", void 0], ["Infinity", 1 / 0], ["NaN", NaN]]);
  function Pn(t, e) {
    let {
      node: s
    } = t, {
      seen: r
    } = e;
    if (r.has(s)) {
      let i = r.get(s);
      if (i.resolved)
        return i.value;
      ru(t, e);
      return;
    } else {
      let i = {
        resolved: !1
      };
      r.set(s, i);
      let a = SWe(t, e);
      return e.confident && (i.resolved = !0, i.value = a), a;
    }
  }
  n(Pn, "evaluateCached");
  function SWe(t, e) {
    if (e.confident) {
      if (t.isSequenceExpression()) {
        let s = t.get("expressions");
        return Pn(s[s.length - 1], e);
      }
      if (t.isStringLiteral() || t.isNumericLiteral() || t.isBooleanLiteral())
        return t.node.value;
      if (t.isNullLiteral())
        return null;
      if (t.isTemplateLiteral())
        return U$(t, t.node.quasis, e);
      if (t.isTaggedTemplateExpression() && t.get("tag").isMemberExpression()) {
        let s = t.get("tag.object"), {
          node: {
            name: r
          }
        } = s, i = t.get("tag.property");
        if (s.isIdentifier() && r === "String" && !t.scope.getBinding(r) && i.isIdentifier() && i.node.name === "raw")
          return U$(t, t.node.quasi.quasis, e, !0);
      }
      if (t.isConditionalExpression()) {
        let s = Pn(t.get("test"), e);
        return e.confident ? Pn(s ? t.get("consequent") : t.get("alternate"), e) : void 0;
      }
      if (t.isExpressionWrapper())
        return Pn(t.get("expression"), e);
      if (t.isMemberExpression() && !t.parentPath.isCallExpression({
        callee: t.node
      })) {
        let s = t.get("property"), r = t.get("object");
        if (r.isLiteral()) {
          let i = r.node.value, a = typeof i, o = null;
          if (t.node.computed) {
            if (o = Pn(s, e), !e.confident) return;
          } else s.isIdentifier() && (o = s.node.name);
          if ((a === "number" || a === "string") && o != null && (typeof o == "number" || typeof o == "string"))
            return i[o];
        }
      }
      if (t.isReferencedIdentifier()) {
        let s = t.scope.getBinding(t.node.name);
        if (s) {
          if (s.constantViolations.length > 0 || t.node.start < s.path.node.end) {
            ru(s.path, e);
            return;
          }
          if (s.hasValue)
            return s.value;
        }
        let r = t.node.name;
        if (q$.has(r)) {
          if (!s)
            return q$.get(r);
          ru(s.path, e);
          return;
        }
        let i = t.resolve();
        if (i === t) {
          ru(t, e);
          return;
        } else
          return Pn(i, e);
      }
      if (t.isUnaryExpression({
        prefix: !0
      })) {
        if (t.node.operator === "void")
          return;
        let s = t.get("argument");
        if (t.node.operator === "typeof" && (s.isFunction() || s.isClass()))
          return "function";
        let r = Pn(s, e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "!":
            return !r;
          case "+":
            return +r;
          case "-":
            return -r;
          case "~":
            return ~r;
          case "typeof":
            return typeof r;
        }
      }
      if (t.isArrayExpression()) {
        let s = [], r = t.get("elements");
        for (let i of r) {
          let a = i.evaluate();
          if (a.confident)
            s.push(a.value);
          else {
            ru(a.deopt, e);
            return;
          }
        }
        return s;
      }
      if (t.isObjectExpression()) {
        let s = {}, r = t.get("properties");
        for (let i of r) {
          if (i.isObjectMethod() || i.isSpreadElement()) {
            ru(i, e);
            return;
          }
          let a = i.get("key"), o;
          if (i.node.computed) {
            if (o = a.evaluate(), !o.confident) {
              ru(o.deopt, e);
              return;
            }
            o = o.value;
          } else a.isIdentifier() ? o = a.node.name : o = a.node.value;
          let u = i.get("value").evaluate();
          if (!u.confident) {
            ru(u.deopt, e);
            return;
          }
          u = u.value, s[o] = u;
        }
        return s;
      }
      if (t.isLogicalExpression()) {
        let s = e.confident, r = Pn(t.get("left"), e), i = e.confident;
        e.confident = s;
        let a = Pn(t.get("right"), e), o = e.confident;
        switch (t.node.operator) {
          case "||":
            return e.confident = i && (!!r || o), e.confident ? r || a : void 0;
          case "&&":
            return e.confident = i && (!r || o), e.confident ? r && a : void 0;
          case "??":
            return e.confident = i && (r != null || o), e.confident ? r ?? a : void 0;
        }
      }
      if (t.isBinaryExpression()) {
        let s = Pn(t.get("left"), e);
        if (!e.confident) return;
        let r = Pn(t.get("right"), e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "-":
            return s - r;
          case "+":
            return s + r;
          case "/":
            return s / r;
          case "*":
            return s * r;
          case "%":
            return s % r;
          case "**":
            return Math.pow(s, r);
          case "<":
            return s < r;
          case ">":
            return s > r;
          case "<=":
            return s <= r;
          case ">=":
            return s >= r;
          case "==":
            return s == r;
          case "!=":
            return s != r;
          case "===":
            return s === r;
          case "!==":
            return s !== r;
          case "|":
            return s | r;
          case "&":
            return s & r;
          case "^":
            return s ^ r;
          case "<<":
            return s << r;
          case ">>":
            return s >> r;
          case ">>>":
            return s >>> r;
        }
      }
      if (t.isCallExpression()) {
        let s = t.get("callee"), r, i;
        if (s.isIdentifier() && !t.scope.getBinding(s.node.name) && (R$(s.node.name) || TWe(s.node.name)) && (i = global[s.node.name]), s.isMemberExpression()) {
          let a = s.get("object"), o = s.get("property");
          if (a.isIdentifier() && o.isIdentifier() && R$(a.node.name) && !bWe(o.node.name)) {
            r = global[a.node.name];
            let l = o.node.name;
            hasOwnProperty.call(r, l) && (i = r[l]);
          }
          if (a.isLiteral() && o.isIdentifier()) {
            let l = typeof a.node.value;
            (l === "string" || l === "number") && (r = a.node.value, i = r[o.node.name]);
          }
        }
        if (i) {
          let a = t.get("arguments").map((o) => Pn(o, e));
          return e.confident ? i.apply(r, a) : void 0;
        }
      }
      ru(t, e);
    }
  }
  n(SWe, "_evaluate");
  function U$(t, e, s, r = !1) {
    let i = "", a = 0, o = t.isTemplateLiteral() ? t.get("expressions") : t.get("quasi.expressions");
    for (let l of e) {
      if (!s.confident) break;
      i += r ? l.value.raw : l.value.cooked;
      let u = o[a++];
      u && (i += String(Pn(u, s)));
    }
    if (s.confident)
      return i;
  }
  n(U$, "evaluateQuasis");
  function PWe() {
    let t = {
      confident: !0,
      deoptPath: null,
      seen: /* @__PURE__ */ new Map()
    }, e = Pn(this, t);
    return t.confident || (e = void 0), {
      confident: t.confident,
      deopt: t.deoptPath,
      value: e
    };
  }
  n(PWe, "evaluate");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js
var z$ = g((iu) => {
  "use strict";
  Object.defineProperty(iu, "__esModule", {
    value: !0
  });
  iu.arrowFunctionToExpression = QWe;
  iu.ensureBlock = XWe;
  iu.ensureFunctionName = c$e;
  iu.splitExportDeclaration = l$e;
  iu.toComputedKey = YWe;
  iu.unwrapFunctionEnvironment = zWe;
  var EWe = fe(), AWe = Jl(), cD = lg(), vWe = tl(), {
    arrowFunctionExpression: pD,
    assignmentExpression: xh,
    binaryExpression: lD,
    blockStatement: CWe,
    callExpression: Id,
    conditionalExpression: wWe,
    expressionStatement: $$,
    identifier: dr,
    isIdentifier: IWe,
    jsxIdentifier: NWe,
    logicalExpression: kWe,
    LOGICAL_OPERATORS: DWe,
    memberExpression: xo,
    metaProperty: OWe,
    numericLiteral: _We,
    objectExpression: LWe,
    restElement: BWe,
    returnStatement: MWe,
    sequenceExpression: FWe,
    spreadElement: jWe,
    stringLiteral: H$,
    super: uD,
    thisExpression: Ag,
    toExpression: J$,
    unaryExpression: RWe,
    toBindingIdentifierName: qWe,
    isFunction: UWe,
    isAssignmentPattern: KWe,
    isRestElement: VWe,
    getFunctionName: WWe,
    cloneNode: Sh,
    variableDeclaration: $We,
    variableDeclarator: HWe,
    exportNamedDeclaration: V$,
    exportSpecifier: W$,
    inherits: JWe
  } = EWe;
  function YWe() {
    let t;
    if (this.isMemberExpression())
      t = this.node.property;
    else if (this.isProperty() || this.isMethod())
      t = this.node.key;
    else
      throw new ReferenceError("todo");
    return this.node.computed || IWe(t) && (t = H$(t.name)), t;
  }
  n(YWe, "toComputedKey");
  function XWe() {
    let t = this.get("body"), e = t.node;
    if (Array.isArray(t))
      throw new Error("Can't convert array path to a block statement");
    if (!e)
      throw new Error("Can't convert node without a body");
    if (t.isBlockStatement())
      return e;
    let s = [], r = "body", i, a;
    t.isStatement() ? (a = "body", i = 0, s.push(t.node)) : (r += ".body.0", this.isFunction() ? (i = "argument", s.push(MWe(t.node))) : (i =
    "expression", s.push($$(t.node)))), this.node.body = CWe(s);
    let o = this.get(r);
    return vWe.setup.call(t, o, a ? o.node[a] : o.node, a, i), this.node;
  }
  n(XWe, "ensureBlock");
  iu.arrowFunctionToShadowed = function() {
    this.isArrowFunctionExpression() && this.arrowFunctionToExpression();
  };
  function zWe() {
    if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration())
      throw this.buildCodeFrameError("Can only unwrap the environment of a function.");
    Y$(this);
  }
  n(zWe, "unwrapFunctionEnvironment");
  function GWe(t, e) {
    t.node.type = e;
  }
  n(GWe, "setType");
  function QWe({
    allowInsertArrow: t = !0,
    allowInsertArrowWithRest: e = t,
    noNewArrows: s = !((r) => (r = arguments[0]) == null ? void 0 : r.specCompliant)()
  } = {}) {
    if (!this.isArrowFunctionExpression())
      throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");
    let r = this;
    if (!s) {
      var i;
      r = (i = r.ensureFunctionName(!1)) != null ? i : r;
    }
    let {
      thisBinding: a,
      fnPath: o
    } = Y$(r, s, t, e);
    if (o.ensureBlock(), GWe(o, "FunctionExpression"), !s) {
      let l = a ? null : o.scope.generateUidIdentifier("arrowCheckId");
      return l && o.parentPath.scope.push({
        id: l,
        init: LWe([])
      }), o.get("body").unshiftContainer("body", $$(Id(this.hub.addHelper("newArrowCheck"), [Ag(), dr(l ? l.name : a)]))), o.replaceWith(Id(
      xo(o.node, dr("bind")), [l ? dr(l.name) : Ag()])), o.get("callee.object");
    }
    return o;
  }
  n(QWe, "arrowFunctionToExpression");
  var ZWe = (0, cD.environmentVisitor)({
    CallExpression(t, {
      allSuperCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    }
  });
  function Y$(t, e = !0, s = !0, r = !0) {
    let i, a = t.findParent((d) => {
      if (d.isArrowFunctionExpression()) {
        var m;
        return (m = i) != null || (i = d), !1;
      }
      return d.isFunction() || d.isProgram() || d.isClassProperty({
        static: !1
      }) || d.isClassPrivateProperty({
        static: !1
      });
    }), o = a.isClassMethod({
      kind: "constructor"
    });
    if (a.isClassProperty() || a.isClassPrivateProperty())
      if (i)
        a = i;
      else if (s)
        t.replaceWith(Id(pD([], J$(t.node)), [])), a = t.get("callee"), t = a.get("body");
      else
        throw t.buildCodeFrameError("Unable to transform arrow inside class property");
    let {
      thisPaths: l,
      argumentsPaths: u,
      newTargetPaths: c,
      superProps: p,
      superCalls: h
    } = o$e(t);
    if (o && h.length > 0) {
      if (!s)
        throw h[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an a\
rrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      if (!r)
        throw h[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\
.");
      let d = [];
      a.traverse(ZWe, {
        allSuperCalls: d
      });
      let m = i$e(a);
      d.forEach((y) => {
        let T = dr(m);
        T.loc = y.node.callee.loc, y.get("callee").replaceWith(T);
      });
    }
    if (u.length > 0) {
      let d = vg(a, "arguments", () => {
        let m = /* @__PURE__ */ n(() => dr("arguments"), "args");
        return a.scope.path.isProgram() ? wWe(lD("===", RWe("typeof", m()), H$("undefined")), a.scope.buildUndefinedNode(), m()) : m();
      });
      u.forEach((m) => {
        let y = dr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (c.length > 0) {
      let d = vg(a, "newtarget", () => OWe(dr("new"), dr("target")));
      c.forEach((m) => {
        let y = dr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (p.length > 0) {
      if (!s)
        throw p[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in a\
n arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      p.reduce((m, y) => m.concat(t$e(y)), []).forEach((m) => {
        let y = m.node.computed ? "" : m.get("property").node.name, T = m.parentPath, b = T.isAssignmentExpression({
          left: m.node
        }), E = T.isCallExpression({
          callee: m.node
        }), V = T.isTaggedTemplateExpression({
          tag: m.node
        }), W = n$e(a, b, y), oe = [];
        if (m.node.computed && oe.push(m.get("property").node), b) {
          let ye = T.node.right;
          oe.push(ye);
        }
        let de = Id(dr(W), oe);
        E ? (T.unshiftContainer("arguments", Ag()), m.replaceWith(xo(de, dr("call"))), l.push(T.get("arguments.0"))) : b ? T.replaceWith(de) :
        V ? (m.replaceWith(Id(xo(de, dr("bind"), !1), [Ag()])), l.push(m.get("arguments.0"))) : m.replaceWith(de);
      });
    }
    let f;
    return (l.length > 0 || !e) && (f = r$e(a, o), (e || o && X$(a)) && (l.forEach((d) => {
      let m = d.isJSX() ? NWe(f) : dr(f);
      m.loc = d.node.loc, d.replaceWith(m);
    }), e || (f = null))), {
      thisBinding: f,
      fnPath: t
    };
  }
  n(Y$, "hoistFunctionEnvironment");
  function e$e(t) {
    return DWe.includes(t);
  }
  n(e$e, "isLogicalOp");
  function t$e(t) {
    if (t.parentPath.isAssignmentExpression() && t.parentPath.node.operator !== "=") {
      let s = t.parentPath, r = s.node.operator.slice(0, -1), i = s.node.right, a = e$e(r);
      if (t.node.computed) {
        let o = t.scope.generateDeclaredUidIdentifier("tmp"), l = t.node.object, u = t.node.property;
        s.get("left").replaceWith(xo(l, xh("=", o, u), !0)), s.get("right").replaceWith(e(a ? "=" : r, xo(l, dr(o.name), !0), i));
      } else {
        let o = t.node.object, l = t.node.property;
        s.get("left").replaceWith(xo(o, l)), s.get("right").replaceWith(e(a ? "=" : r, xo(o, dr(l.name)), i));
      }
      return a ? s.replaceWith(kWe(r, s.node.left, s.node.right)) : s.node.operator = "=", [s.get("left"), s.get("right").get("left")];
    } else if (t.parentPath.isUpdateExpression()) {
      let s = t.parentPath, r = t.scope.generateDeclaredUidIdentifier("tmp"), i = t.node.computed ? t.scope.generateDeclaredUidIdentifier("p\
rop") : null, a = [xh("=", r, xo(t.node.object, i ? xh("=", i, t.node.property) : t.node.property, t.node.computed)), xh("=", xo(t.node.object,
      i ? dr(i.name) : t.node.property, t.node.computed), lD(t.parentPath.node.operator[0], dr(r.name), _We(1)))];
      t.parentPath.node.prefix || a.push(dr(r.name)), s.replaceWith(FWe(a));
      let o = s.get("expressions.0.right"), l = s.get("expressions.1.left");
      return [o, l];
    }
    return [t];
    function e(s, r, i) {
      return s === "=" ? xh("=", r, i) : lD(s, r, i);
    }
  }
  n(t$e, "standardizeSuperProperty");
  function X$(t) {
    return t.isClassMethod() && !!t.parentPath.parentPath.node.superClass;
  }
  n(X$, "hasSuperClass");
  var s$e = (0, cD.environmentVisitor)({
    CallExpression(t, {
      supers: e,
      thisBinding: s
    }) {
      t.get("callee").isSuper() && (e.has(t.node) || (e.add(t.node), t.replaceWithMultiple([t.node, xh("=", dr(s), dr("this"))])));
    }
  });
  function r$e(t, e) {
    return vg(t, "this", (s) => {
      if (!e || !X$(t)) return Ag();
      t.traverse(s$e, {
        supers: /* @__PURE__ */ new WeakSet(),
        thisBinding: s
      });
    });
  }
  n(r$e, "getThisBinding");
  function i$e(t) {
    return vg(t, "supercall", () => {
      let e = t.scope.generateUidIdentifier("args");
      return pD([BWe(e)], Id(uD(), [jWe(dr(e.name))]));
    });
  }
  n(i$e, "getSuperBinding");
  function n$e(t, e, s) {
    return vg(t, `superprop_${e ? "set" : "get"}:${s || ""}`, () => {
      let i = [], a;
      if (s)
        a = xo(uD(), dr(s));
      else {
        let o = t.scope.generateUidIdentifier("prop");
        i.unshift(o), a = xo(uD(), dr(o.name), !0);
      }
      if (e) {
        let o = t.scope.generateUidIdentifier("value");
        i.push(o), a = xh("=", a, dr(o.name));
      }
      return pD(i, a);
    });
  }
  n(n$e, "getSuperPropBinding");
  function vg(t, e, s) {
    let r = "binding:" + e, i = t.getData(r);
    if (!i) {
      let a = t.scope.generateUidIdentifier(e);
      i = a.name, t.setData(r, i), t.scope.push({
        id: a,
        init: s(i)
      });
    }
    return i;
  }
  n(vg, "getBinding");
  var a$e = (0, cD.environmentVisitor)({
    ThisExpression(t, {
      thisPaths: e
    }) {
      e.push(t);
    },
    JSXIdentifier(t, {
      thisPaths: e
    }) {
      t.node.name === "this" && (!t.parentPath.isJSXMemberExpression({
        object: t.node
      }) && !t.parentPath.isJSXOpeningElement({
        name: t.node
      }) || e.push(t));
    },
    CallExpression(t, {
      superCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    },
    MemberExpression(t, {
      superProps: e
    }) {
      t.get("object").isSuper() && e.push(t);
    },
    Identifier(t, {
      argumentsPaths: e
    }) {
      if (!t.isReferencedIdentifier({
        name: "arguments"
      })) return;
      let s = t.scope;
      do {
        if (s.hasOwnBinding("arguments")) {
          s.rename("arguments");
          return;
        }
        if (s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
      } while (s = s.parent);
      e.push(t);
    },
    MetaProperty(t, {
      newTargetPaths: e
    }) {
      t.get("meta").isIdentifier({
        name: "new"
      }) && t.get("property").isIdentifier({
        name: "target"
      }) && e.push(t);
    }
  });
  function o$e(t) {
    let e = [], s = [], r = [], i = [], a = [];
    return t.traverse(a$e, {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    }), {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    };
  }
  n(o$e, "getScopeInformation");
  function l$e() {
    if (!this.isExportDeclaration() || this.isExportAllDeclaration())
      throw new Error("Only default and named export declarations can be split.");
    if (this.isExportNamedDeclaration() && this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let t = this.get("declaration");
    if (this.isExportDefaultDeclaration()) {
      let i = t.isFunctionDeclaration() || t.isClassDeclaration(), a = t.isFunctionExpression() || t.isClassExpression(), o = t.isScope() ? t.
      scope.parent : t.scope, l = t.node.id, u = !1;
      l ? a && o.hasBinding(l.name) && (u = !0, l = o.generateUidIdentifier(l.name)) : (u = !0, l = o.generateUidIdentifier("default"), (i ||
      a) && (t.node.id = Sh(l)));
      let c = i ? t.node : $We("var", [HWe(Sh(l), t.node)]), p = V$(null, [W$(Sh(l), dr("default"))]);
      return this.insertAfter(p), this.replaceWith(c), u && o.registerDeclaration(this), this;
    } else if (this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let e = t.getOuterBindingIdentifiers(), s = Object.keys(e).map((i) => W$(dr(i), dr(i))), r = V$(null, s);
    return this.insertAfter(r), this.replaceWith(t.node), this;
  }
  n(l$e, "splitExportDeclaration");
  var u$e = {
    "ReferencedIdentifier|BindingIdentifier"(t, e) {
      t.node.name === e.name && (e.needsRename = !0, t.stop());
    },
    Scope(t, e) {
      t.scope.hasOwnBinding(e.name) && t.skip();
    }
  };
  function c$e(t) {
    if (this.node.id) return this;
    let e = WWe(this.node, this.parent);
    if (e == null) return this;
    let {
      name: s
    } = e;
    if (!t && /[\uD800-\uDFFF]/.test(s) || s.startsWith("get ") || s.startsWith("set "))
      return null;
    s = qWe(s.replace(/[/ ]/g, "_"));
    let r = dr(s);
    JWe(r, e.originalNode);
    let i = {
      needsRename: !1,
      name: s
    }, {
      scope: a
    } = this, o = a.getOwnBinding(s);
    if (o ? o.kind === "param" && (i.needsRename = !0) : (a.parent.hasBinding(s) || a.hasGlobal(s)) && this.traverse(u$e, i), !i.needsRename)
      return this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (a.hasBinding(r.name) && !a.hasGlobal(r.name))
      return a.rename(r.name), this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (!UWe(this.node)) return null;
    let l = a.generateUidIdentifier(r.name), u = [];
    for (let p = 0, h = p$e(this.node); p < h; p++)
      u.push(a.generateUidIdentifier("x"));
    let c = AWe.default.expression.ast`
    (function (${l}) {
      function ${r}(${u}) {
        return ${Sh(l)}.apply(this, arguments);
      }

      ${Sh(r)}.toString = function () {
        return ${Sh(l)}.toString();
      }

      return ${Sh(r)};
    })(${J$(this.node)})
  `;
    return this.replaceWith(c)[0].get("arguments.0");
  }
  n(c$e, "ensureFunctionName");
  function p$e(t) {
    let e = t.params.findIndex((s) => KWe(s) || VWe(s));
    return e === -1 ? t.params.length : e;
  }
  n(p$e, "getFunctionArity");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/introspection.js
var sH = g((si) => {
  "use strict";
  Object.defineProperty(si, "__esModule", {
    value: !0
  });
  si._guessExecutionStatusRelativeTo = O$e;
  si._resolve = tH;
  si.canHaveVariableDeclarationOrExpression = A$e;
  si.canSwapBetweenExpressionAndStatement = v$e;
  si.getSource = N$e;
  si.isCompletionRecord = C$e;
  si.isConstantExpression = M$e;
  si.isInStrictMode = F$e;
  si.isNodeType = E$e;
  si.isStatementOrBlock = w$e;
  si.isStatic = P$e;
  si.matchesPattern = S$e;
  si.referencesImport = I$e;
  si.resolve = B$e;
  si.willIMaybeExecuteBefore = k$e;
  var h$e = fe(), {
    STATEMENT_OR_BLOCK_KEYS: f$e,
    VISITOR_KEYS: d$e,
    isBlockStatement: eH,
    isExpression: m$e,
    isIdentifier: y$e,
    isLiteral: g$e,
    isStringLiteral: T$e,
    isType: b$e,
    matchesPattern: x$e
  } = h$e;
  function S$e(t, e) {
    return x$e(this.node, t, e);
  }
  n(S$e, "matchesPattern");
  si.has = /* @__PURE__ */ n(function(e) {
    var s;
    let r = (s = this.node) == null ? void 0 : s[e];
    return r && Array.isArray(r) ? !!r.length : !!r;
  }, "has");
  function P$e() {
    return this.scope.isStatic(this.node);
  }
  n(P$e, "isStatic");
  si.is = si.has, si.isnt = /* @__PURE__ */ n(function(e) {
    return !this.has(e);
  }, "isnt"), si.equals = /* @__PURE__ */ n(function(e, s) {
    return this.node[e] === s;
  }, "equals");
  function E$e(t) {
    return b$e(this.type, t);
  }
  n(E$e, "isNodeType");
  function A$e() {
    return (this.key === "init" || this.key === "left") && this.parentPath.isFor();
  }
  n(A$e, "canHaveVariableDeclarationOrExpression");
  function v$e(t) {
    return this.key !== "body" || !this.parentPath.isArrowFunctionExpression() ? !1 : this.isExpression() ? eH(t) : this.isBlockStatement() ?
    m$e(t) : !1;
  }
  n(v$e, "canSwapBetweenExpressionAndStatement");
  function C$e(t) {
    let e = this, s = !0;
    do {
      let {
        type: r,
        container: i
      } = e;
      if (!s && (e.isFunction() || r === "StaticBlock"))
        return !!t;
      if (s = !1, Array.isArray(i) && e.key !== i.length - 1)
        return !1;
    } while ((e = e.parentPath) && !e.isProgram() && !e.isDoExpression());
    return !0;
  }
  n(C$e, "isCompletionRecord");
  function w$e() {
    return this.parentPath.isLabeledStatement() || eH(this.container) ? !1 : f$e.includes(this.key);
  }
  n(w$e, "isStatementOrBlock");
  function I$e(t, e) {
    if (!this.isReferencedIdentifier()) {
      if (this.isJSXMemberExpression() && this.node.property.name === e || (this.isMemberExpression() || this.isOptionalMemberExpression()) &&
      (this.node.computed ? T$e(this.node.property, {
        value: e
      }) : this.node.property.name === e)) {
        let a = this.get("object");
        return a.isReferencedIdentifier() && a.referencesImport(t, "*");
      }
      return !1;
    }
    let s = this.scope.getBinding(this.node.name);
    if (!s || s.kind !== "module") return !1;
    let r = s.path, i = r.parentPath;
    if (!i.isImportDeclaration()) return !1;
    if (i.node.source.value === t) {
      if (!e) return !0;
    } else
      return !1;
    return !!(r.isImportDefaultSpecifier() && e === "default" || r.isImportNamespaceSpecifier() && e === "*" || r.isImportSpecifier() && y$e(
    r.node.imported, {
      name: e
    }));
  }
  n(I$e, "referencesImport");
  function N$e() {
    let t = this.node;
    if (t.end) {
      let e = this.hub.getCode();
      if (e) return e.slice(t.start, t.end);
    }
    return "";
  }
  n(N$e, "getSource");
  function k$e(t) {
    return this._guessExecutionStatusRelativeTo(t) !== "after";
  }
  n(k$e, "willIMaybeExecuteBefore");
  function G$(t) {
    return t.isProgram() ? t : (t.parentPath.scope.getFunctionParent() || t.parentPath.scope.getProgramParent()).path;
  }
  n(G$, "getOuterFunction");
  function D$e(t, e) {
    switch (t) {
      case "LogicalExpression":
        return e === "right";
      case "ConditionalExpression":
      case "IfStatement":
        return e === "consequent" || e === "alternate";
      case "WhileStatement":
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForOfStatement":
        return e === "body";
      case "ForStatement":
        return e === "body" || e === "update";
      case "SwitchStatement":
        return e === "cases";
      case "TryStatement":
        return e === "handler";
      case "AssignmentPattern":
        return e === "right";
      case "OptionalMemberExpression":
        return e === "property";
      case "OptionalCallExpression":
        return e === "arguments";
      default:
        return !1;
    }
  }
  n(D$e, "isExecutionUncertain");
  function Q$(t, e) {
    for (let s = 0; s < e; s++) {
      let r = t[s];
      if (D$e(r.parent.type, r.parentKey))
        return !0;
    }
    return !1;
  }
  n(Q$, "isExecutionUncertainInList");
  var Z$ = Symbol();
  function O$e(t) {
    return hD(this, t, /* @__PURE__ */ new Map());
  }
  n(O$e, "_guessExecutionStatusRelativeTo");
  function hD(t, e, s) {
    let r = {
      this: G$(t),
      target: G$(e)
    };
    if (r.target.node !== r.this.node)
      return L$e(t, r.target, s);
    let i = {
      target: e.getAncestry(),
      this: t.getAncestry()
    };
    if (i.target.includes(t)) return "after";
    if (i.this.includes(e)) return "before";
    let a, o = {
      target: 0,
      this: 0
    };
    for (; !a && o.this < i.this.length; ) {
      let p = i.this[o.this];
      o.target = i.target.indexOf(p), o.target >= 0 ? a = p : o.this++;
    }
    if (!a)
      throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");
    if (Q$(i.this, o.this - 1) || Q$(i.target, o.target - 1))
      return "unknown";
    let l = {
      this: i.this[o.this - 1],
      target: i.target[o.target - 1]
    };
    if (l.target.listKey && l.this.listKey && l.target.container === l.this.container)
      return l.target.key > l.this.key ? "before" : "after";
    let u = d$e[a.type], c = {
      this: u.indexOf(l.this.parentKey),
      target: u.indexOf(l.target.parentKey)
    };
    return c.target > c.this ? "before" : "after";
  }
  n(hD, "_guessExecutionStatusRelativeToCached");
  function _$e(t, e, s) {
    if (e.isFunctionDeclaration()) {
      if (e.parentPath.isExportDeclaration())
        return "unknown";
    } else return hD(t, e, s) === "before" ? "before" : "unknown";
    let r = e.scope.getBinding(e.node.id.name);
    if (!r.references) return "before";
    let i = r.referencePaths, a;
    for (let o of i) {
      if (!!o.find((c) => c.node === e.node)) continue;
      if (o.key !== "callee" || !o.parentPath.isCallExpression())
        return "unknown";
      let u = hD(t, o, s);
      if (a && a !== u)
        return "unknown";
      a = u;
    }
    return a;
  }
  n(_$e, "_guessExecutionStatusRelativeToDifferentFunctionsInternal");
  function L$e(t, e, s) {
    let r = s.get(t.node), i;
    if (!r)
      s.set(t.node, r = /* @__PURE__ */ new Map());
    else if (i = r.get(e.node))
      return i === Z$ ? "unknown" : i;
    r.set(e.node, Z$);
    let a = _$e(t, e, s);
    return r.set(e.node, a), a;
  }
  n(L$e, "_guessExecutionStatusRelativeToDifferentFunctionsCached");
  function B$e(t, e) {
    return tH.call(this, t, e) || this;
  }
  n(B$e, "resolve");
  function tH(t, e) {
    var s;
    if (!((s = e) != null && s.includes(this)))
      if (e = e || [], e.push(this), this.isVariableDeclarator()) {
        if (this.get("id").isIdentifier())
          return this.get("init").resolve(t, e);
      } else if (this.isReferencedIdentifier()) {
        let r = this.scope.getBinding(this.node.name);
        if (!r || !r.constant || r.kind === "module") return;
        if (r.path !== this) {
          let i = r.path.resolve(t, e);
          return this.find((a) => a.node === i.node) ? void 0 : i;
        }
      } else {
        if (this.isTypeCastExpression())
          return this.get("expression").resolve(t, e);
        if (t && this.isMemberExpression()) {
          let r = this.toComputedKey();
          if (!g$e(r)) return;
          let i = r.value, a = this.get("object").resolve(t, e);
          if (a.isObjectExpression()) {
            let o = a.get("properties");
            for (let l of o) {
              if (!l.isProperty()) continue;
              let u = l.get("key"), c = l.isnt("computed") && u.isIdentifier({
                name: i
              });
              if (c = c || u.isLiteral({
                value: i
              }), c) return l.get("value").resolve(t, e);
            }
          } else if (a.isArrayExpression() && !isNaN(+i)) {
            let l = a.get("elements")[i];
            if (l) return l.resolve(t, e);
          }
        }
      }
  }
  n(tH, "_resolve");
  function M$e() {
    if (this.isIdentifier()) {
      let t = this.scope.getBinding(this.node.name);
      return t ? t.constant : !1;
    }
    if (this.isLiteral())
      return this.isRegExpLiteral() ? !1 : this.isTemplateLiteral() ? this.get("expressions").every((t) => t.isConstantExpression()) : !0;
    if (this.isUnaryExpression())
      return this.node.operator !== "void" ? !1 : this.get("argument").isConstantExpression();
    if (this.isBinaryExpression()) {
      let {
        operator: t
      } = this.node;
      return t !== "in" && t !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression();
    }
    return this.isMemberExpression() ? !this.node.computed && this.get("object").isIdentifier({
      name: "Symbol"
    }) && !this.scope.hasBinding("Symbol", {
      noGlobals: !0
    }) : this.isCallExpression() ? this.node.arguments.length === 1 && this.get("callee").matchesPattern("Symbol.for") && !this.scope.hasBinding(
    "Symbol", {
      noGlobals: !0
    }) && this.get("arguments")[0].isStringLiteral() : !1;
  }
  n(M$e, "isConstantExpression");
  function F$e() {
    return !!(this.isProgram() ? this : this.parentPath).find((s) => {
      if (s.isProgram({
        sourceType: "module"
      }) || s.isClass()) return !0;
      if (s.isArrowFunctionExpression() && !s.get("body").isBlockStatement())
        return !1;
      let r;
      if (s.isFunction())
        r = s.node.body;
      else if (s.isProgram())
        r = s.node;
      else
        return !1;
      for (let i of r.directives)
        if (i.value.value === "use strict")
          return !0;
    });
  }
  n(F$e, "isInStrictMode");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/family.js
var oH = g((Ki) => {
  "use strict";
  Object.defineProperty(Ki, "__esModule", {
    value: !0
  });
  Ki._getKey = nH;
  Ki._getPattern = aH;
  Ki.get = eHe;
  Ki.getAllNextSiblings = Q$e;
  Ki.getAllPrevSiblings = Z$e;
  Ki.getAssignmentIdentifiers = tHe;
  Ki.getBindingIdentifierPaths = iHe;
  Ki.getBindingIdentifiers = sHe;
  Ki.getCompletionRecords = Y$e;
  Ki.getNextSibling = G$e;
  Ki.getOpposite = $$e;
  Ki.getOuterBindingIdentifierPaths = nHe;
  Ki.getOuterBindingIdentifiers = rHe;
  Ki.getPrevSibling = z$e;
  Ki.getSibling = X$e;
  var dD = Rc(), j$e = fe(), {
    getAssignmentIdentifiers: R$e,
    getBindingIdentifiers: iH,
    getOuterBindingIdentifiers: q$e,
    numericLiteral: U$e,
    unaryExpression: K$e
  } = j$e, mD = 0, Cg = 1;
  function V$e(t) {
    return {
      type: mD,
      path: t
    };
  }
  n(V$e, "NormalCompletion");
  function W$e(t) {
    return {
      type: Cg,
      path: t
    };
  }
  n(W$e, "BreakCompletion");
  function $$e() {
    return this.key === "left" ? this.getSibling("right") : this.key === "right" ? this.getSibling("left") : null;
  }
  n($$e, "getOpposite");
  function Nd(t, e, s) {
    return t && e.push(...kd(t, s)), e;
  }
  n(Nd, "addCompletionRecords");
  function H$e(t, e, s) {
    let r = [];
    for (let i = 0; i < t.length; i++) {
      let a = t[i], o = kd(a, s), l = [], u = [];
      for (let c of o)
        c.type === mD && l.push(c), c.type === Cg && u.push(c);
      l.length && (r = l), e.push(...u);
    }
    return e.push(...r), e;
  }
  n(H$e, "completionRecordForSwitch");
  function J$e(t) {
    t.forEach((e) => {
      e.type = Cg;
    });
  }
  n(J$e, "normalCompletionToBreak");
  function fD(t, e) {
    t.forEach((s) => {
      s.path.isBreakStatement({
        label: null
      }) && (e ? s.path.replaceWith(K$e("void", U$e(0))) : s.path.remove());
    });
  }
  n(fD, "replaceBreakStatementInBreakCompletion");
  function rH(t, e) {
    let s = [];
    if (e.canHaveBreak) {
      let r = [];
      for (let i = 0; i < t.length; i++) {
        let a = t[i], o = Object.assign({}, e, {
          inCaseClause: !1
        });
        a.isBlockStatement() && (e.inCaseClause || e.shouldPopulateBreak) ? o.shouldPopulateBreak = !0 : o.shouldPopulateBreak = !1;
        let l = kd(a, o);
        if (l.length > 0 && l.every((u) => u.type === Cg)) {
          r.length > 0 && l.every((u) => u.path.isBreakStatement({
            label: null
          })) ? (J$e(r), s.push(...r), r.some((u) => u.path.isDeclaration()) && (s.push(...l), fD(l, !0)), fD(l, !1)) : (s.push(...l), e.shouldPopulateBreak ||
          fD(l, !0));
          break;
        }
        if (i === t.length - 1)
          s.push(...l);
        else {
          r = [];
          for (let u = 0; u < l.length; u++) {
            let c = l[u];
            c.type === Cg && s.push(c), c.type === mD && r.push(c);
          }
        }
      }
    } else if (t.length)
      for (let r = t.length - 1; r >= 0; r--) {
        let i = kd(t[r], e);
        if (i.length > 1 || i.length === 1 && !i[0].path.isVariableDeclaration()) {
          s.push(...i);
          break;
        }
      }
    return s;
  }
  n(rH, "getStatementListCompletion");
  function kd(t, e) {
    let s = [];
    if (t.isIfStatement())
      s = Nd(t.get("consequent"), s, e), s = Nd(t.get("alternate"), s, e);
    else {
      if (t.isDoExpression() || t.isFor() || t.isWhile() || t.isLabeledStatement())
        return Nd(t.get("body"), s, e);
      if (t.isProgram() || t.isBlockStatement())
        return rH(t.get("body"), e);
      if (t.isFunction())
        return kd(t.get("body"), e);
      if (t.isTryStatement())
        s = Nd(t.get("block"), s, e), s = Nd(t.get("handler"), s, e);
      else {
        if (t.isCatchClause())
          return Nd(t.get("body"), s, e);
        if (t.isSwitchStatement())
          return H$e(t.get("cases"), s, e);
        if (t.isSwitchCase())
          return rH(t.get("consequent"), {
            canHaveBreak: !0,
            shouldPopulateBreak: !1,
            inCaseClause: !0
          });
        t.isBreakStatement() ? s.push(W$e(t)) : s.push(V$e(t));
      }
    }
    return s;
  }
  n(kd, "_getCompletionRecords");
  function Y$e() {
    return kd(this, {
      canHaveBreak: !1,
      shouldPopulateBreak: !1,
      inCaseClause: !1
    }).map((e) => e.path);
  }
  n(Y$e, "getCompletionRecords");
  function X$e(t) {
    return dD.default.get({
      parentPath: this.parentPath,
      parent: this.parent,
      container: this.container,
      listKey: this.listKey,
      key: t
    }).setContext(this.context);
  }
  n(X$e, "getSibling");
  function z$e() {
    return this.getSibling(this.key - 1);
  }
  n(z$e, "getPrevSibling");
  function G$e() {
    return this.getSibling(this.key + 1);
  }
  n(G$e, "getNextSibling");
  function Q$e() {
    let t = this.key, e = this.getSibling(++t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(++t);
    return s;
  }
  n(Q$e, "getAllNextSiblings");
  function Z$e() {
    let t = this.key, e = this.getSibling(--t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(--t);
    return s;
  }
  n(Z$e, "getAllPrevSiblings");
  function eHe(t, e = !0) {
    e === !0 && (e = this.context);
    let s = t.split(".");
    return s.length === 1 ? nH.call(this, t, e) : aH.call(this, s, e);
  }
  n(eHe, "get");
  function nH(t, e) {
    let s = this.node, r = s[t];
    return Array.isArray(r) ? r.map((i, a) => dD.default.get({
      listKey: t,
      parentPath: this,
      parent: s,
      container: r,
      key: a
    }).setContext(e)) : dD.default.get({
      parentPath: this,
      parent: s,
      container: s,
      key: t
    }).setContext(e);
  }
  n(nH, "_getKey");
  function aH(t, e) {
    let s = this;
    for (let r of t)
      r === "." ? s = s.parentPath : Array.isArray(s) ? s = s[r] : s = s.get(r, e);
    return s;
  }
  n(aH, "_getPattern");
  function tHe() {
    return R$e(this.node);
  }
  n(tHe, "getAssignmentIdentifiers");
  function sHe(t) {
    return iH(this.node, t);
  }
  n(sHe, "getBindingIdentifiers");
  function rHe(t) {
    return q$e(this.node, t);
  }
  n(rHe, "getOuterBindingIdentifiers");
  function iHe(t = !1, e = !1) {
    let r = [this], i = /* @__PURE__ */ Object.create(null);
    for (; r.length; ) {
      let a = r.shift();
      if (!a || !a.node) continue;
      let o = iH.keys[a.node.type];
      if (a.isIdentifier()) {
        t ? (i[a.node.name] = i[a.node.name] || []).push(a) : i[a.node.name] = a;
        continue;
      }
      if (a.isExportDeclaration()) {
        let l = a.get("declaration");
        l.isDeclaration() && r.push(l);
        continue;
      }
      if (e) {
        if (a.isFunctionDeclaration()) {
          r.push(a.get("id"));
          continue;
        }
        if (a.isFunctionExpression())
          continue;
      }
      if (o)
        for (let l = 0; l < o.length; l++) {
          let u = o[l], c = a.get(u);
          Array.isArray(c) ? r.push(...c) : c.node && r.push(c);
        }
    }
    return i;
  }
  n(iHe, "getBindingIdentifierPaths");
  function nHe(t = !1) {
    return this.getBindingIdentifierPaths(t, !0);
  }
  n(nHe, "getOuterBindingIdentifierPaths");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/comments.js
var uH = g((wg) => {
  "use strict";
  Object.defineProperty(wg, "__esModule", {
    value: !0
  });
  wg.addComment = cHe;
  wg.addComments = pHe;
  wg.shareCommentsWithSiblings = uHe;
  var aHe = fe(), {
    addComment: oHe,
    addComments: lHe
  } = aHe;
  function uHe() {
    if (typeof this.key == "string") return;
    let t = this.node;
    if (!t) return;
    let e = t.trailingComments, s = t.leadingComments;
    if (!e && !s) return;
    let r = this.getSibling(this.key - 1), i = this.getSibling(this.key + 1), a = !!r.node, o = !!i.node;
    a && (s && r.addComments("trailing", lH(s, r.node.trailingComments)), e && !o && r.addComments("trailing", e)), o && (e && i.addComments(
    "leading", lH(e, i.node.leadingComments)), s && !a && i.addComments("leading", s));
  }
  n(uHe, "shareCommentsWithSiblings");
  function lH(t, e) {
    if (!(e != null && e.length)) return t;
    let s = new Set(e);
    return t.filter((r) => !s.has(r));
  }
  n(lH, "removeIfExisting");
  function cHe(t, e, s) {
    oHe(this.node, t, e, s);
  }
  n(cHe, "addComment");
  function pHe(t, e) {
    lHe(this.node, t, e);
  }
  n(pHe, "addComments");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js
var Rc = g((al) => {
  "use strict";
  Object.defineProperty(al, "__esModule", {
    value: !0
  });
  al.default = al.SHOULD_STOP = al.SHOULD_SKIP = al.REMOVED = void 0;
  var hHe = TN(), fHe = go(), dHe = Yl(), mHe = DN(), hH = fe(), tS = hH, yHe = ch(), gHe = Bx(), il = xW(), Dd = qW(), Od = mk(), cH = K$(),
  Ph = z$(), xi = sH(), fH = tl(), ri = fH, _d = Rx(), nl = qx(), En = oH(), yD = uH(), THe = AN(), {
    validate: bHe
  } = hH, pH = fHe("babel"), S7s = al.REMOVED = 1, P7s = al.SHOULD_STOP = 2, E7s = al.SHOULD_SKIP = 4, nu = al.default = class dH {
    static {
      n(this, "NodePath");
    }
    constructor(e, s) {
      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 = s, this.hub = e, this.data = null, this.
      context = null, this.scope = null;
    }
    get removed() {
      return (this._traverseFlags & 1) > 0;
    }
    set removed(e) {
      e ? this._traverseFlags |= 1 : this._traverseFlags &= -2;
    }
    get shouldStop() {
      return (this._traverseFlags & 2) > 0;
    }
    set shouldStop(e) {
      e ? this._traverseFlags |= 2 : this._traverseFlags &= -3;
    }
    get shouldSkip() {
      return (this._traverseFlags & 4) > 0;
    }
    set shouldSkip(e) {
      e ? this._traverseFlags |= 4 : this._traverseFlags &= -5;
    }
    static get({
      hub: e,
      parentPath: s,
      parent: r,
      container: i,
      listKey: a,
      key: o
    }) {
      if (!e && s && (e = s.hub), !r)
        throw new Error("To get a node path the parent needs to exist");
      let l = i[o], u = yHe.getOrCreateCachedPaths(e, r), c = u.get(l);
      return c || (c = new dH(e, r), l && u.set(l, c)), fH.setup.call(c, s, i, a, o), c;
    }
    getScope(e) {
      return this.isScope() ? new mHe.default(this) : e;
    }
    setData(e, s) {
      return this.data == null && (this.data = /* @__PURE__ */ Object.create(null)), this.data[e] = s;
    }
    getData(e, s) {
      this.data == null && (this.data = /* @__PURE__ */ Object.create(null));
      let r = this.data[e];
      return r === void 0 && s !== void 0 && (r = this.data[e] = s), r;
    }
    hasNode() {
      return this.node != null;
    }
    buildCodeFrameError(e, s = SyntaxError) {
      return this.hub.buildError(this.node, e, s);
    }
    traverse(e, s) {
      (0, dHe.default)(this.node, e, this.scope, s, this);
    }
    set(e, s) {
      bHe(this.node, e, s), this.node[e] = s;
    }
    getPathLocation() {
      let e = [], s = this;
      do {
        let r = s.key;
        s.inList && (r = `${s.listKey}[${r}]`), e.unshift(r);
      } while (s = s.parentPath);
      return e.join(".");
    }
    debug(e) {
      pH.enabled && pH(`${this.getPathLocation()} ${this.type}: ${e}`);
    }
    toString() {
      return (0, gHe.default)(this.node).code;
    }
    get inList() {
      return !!this.listKey;
    }
    set inList(e) {
      e || (this.listKey = null);
    }
    get parentKey() {
      return this.listKey || this.key;
    }
  }, xHe = {
    findParent: il.findParent,
    find: il.find,
    getFunctionParent: il.getFunctionParent,
    getStatementParent: il.getStatementParent,
    getEarliestCommonAncestorFrom: il.getEarliestCommonAncestorFrom,
    getDeepestCommonAncestorFrom: il.getDeepestCommonAncestorFrom,
    getAncestry: il.getAncestry,
    isAncestor: il.isAncestor,
    isDescendant: il.isDescendant,
    inType: il.inType,
    getTypeAnnotation: Dd.getTypeAnnotation,
    isBaseType: Dd.isBaseType,
    couldBeBaseType: Dd.couldBeBaseType,
    baseTypeStrictlyMatches: Dd.baseTypeStrictlyMatches,
    isGenericType: Dd.isGenericType,
    replaceWithMultiple: Od.replaceWithMultiple,
    replaceWithSourceString: Od.replaceWithSourceString,
    replaceWith: Od.replaceWith,
    replaceExpressionWithStatements: Od.replaceExpressionWithStatements,
    replaceInline: Od.replaceInline,
    evaluateTruthy: cH.evaluateTruthy,
    evaluate: cH.evaluate,
    toComputedKey: Ph.toComputedKey,
    ensureBlock: Ph.ensureBlock,
    unwrapFunctionEnvironment: Ph.unwrapFunctionEnvironment,
    arrowFunctionToExpression: Ph.arrowFunctionToExpression,
    splitExportDeclaration: Ph.splitExportDeclaration,
    ensureFunctionName: Ph.ensureFunctionName,
    matchesPattern: xi.matchesPattern,
    isStatic: xi.isStatic,
    isNodeType: xi.isNodeType,
    canHaveVariableDeclarationOrExpression: xi.canHaveVariableDeclarationOrExpression,
    canSwapBetweenExpressionAndStatement: xi.canSwapBetweenExpressionAndStatement,
    isCompletionRecord: xi.isCompletionRecord,
    isStatementOrBlock: xi.isStatementOrBlock,
    referencesImport: xi.referencesImport,
    getSource: xi.getSource,
    willIMaybeExecuteBefore: xi.willIMaybeExecuteBefore,
    _guessExecutionStatusRelativeTo: xi._guessExecutionStatusRelativeTo,
    resolve: xi.resolve,
    isConstantExpression: xi.isConstantExpression,
    isInStrictMode: xi.isInStrictMode,
    isDenylisted: ri.isDenylisted,
    visit: ri.visit,
    skip: ri.skip,
    skipKey: ri.skipKey,
    stop: ri.stop,
    setContext: ri.setContext,
    requeue: ri.requeue,
    requeueComputedKeyAndDecorators: ri.requeueComputedKeyAndDecorators,
    remove: _d.remove,
    insertBefore: nl.insertBefore,
    insertAfter: nl.insertAfter,
    unshiftContainer: nl.unshiftContainer,
    pushContainer: nl.pushContainer,
    getOpposite: En.getOpposite,
    getCompletionRecords: En.getCompletionRecords,
    getSibling: En.getSibling,
    getPrevSibling: En.getPrevSibling,
    getNextSibling: En.getNextSibling,
    getAllNextSiblings: En.getAllNextSiblings,
    getAllPrevSiblings: En.getAllPrevSiblings,
    get: En.get,
    getAssignmentIdentifiers: En.getAssignmentIdentifiers,
    getBindingIdentifiers: En.getBindingIdentifiers,
    getOuterBindingIdentifiers: En.getOuterBindingIdentifiers,
    getBindingIdentifierPaths: En.getBindingIdentifierPaths,
    getOuterBindingIdentifierPaths: En.getOuterBindingIdentifierPaths,
    shareCommentsWithSiblings: yD.shareCommentsWithSiblings,
    addComment: yD.addComment,
    addComments: yD.addComments
  };
  Object.assign(nu.prototype, xHe);
  nu.prototype.arrowFunctionToShadowed = Ph.arrowFunctionToShadowed, Object.assign(nu.prototype, {
    has: xi.has,
    is: xi.is,
    isnt: xi.isnt,
    equals: xi.equals,
    hoist: nl.hoist,
    updateSiblingKeys: nl.updateSiblingKeys,
    call: ri.call,
    isBlacklisted: ri.isBlacklisted,
    setScope: ri.setScope,
    resync: ri.resync,
    popContext: ri.popContext,
    pushContext: ri.pushContext,
    setup: ri.setup,
    setKey: ri.setKey
  });
  nu.prototype._guessExecutionStatusRelativeToDifferentFunctions = xi._guessExecutionStatusRelativeTo, nu.prototype._guessExecutionStatusRelativeToDifferentFunctions =
  xi._guessExecutionStatusRelativeTo, Object.assign(nu.prototype, {
    _getTypeAnnotation: Dd._getTypeAnnotation,
    _replaceWith: Od._replaceWith,
    _resolve: xi._resolve,
    _call: ri._call,
    _resyncParent: ri._resyncParent,
    _resyncKey: ri._resyncKey,
    _resyncList: ri._resyncList,
    _resyncRemoved: ri._resyncRemoved,
    _getQueueContexts: ri._getQueueContexts,
    _removeFromScope: _d._removeFromScope,
    _callRemovalHooks: _d._callRemovalHooks,
    _remove: _d._remove,
    _markRemoved: _d._markRemoved,
    _assertUnremoved: _d._assertUnremoved,
    _containerInsert: nl._containerInsert,
    _containerInsertBefore: nl._containerInsertBefore,
    _containerInsertAfter: nl._containerInsertAfter,
    _verifyNodeList: nl._verifyNodeList,
    _getKey: En._getKey,
    _getPattern: En._getPattern
  });
  for (let t of tS.TYPES) {
    let e = `is${t}`, s = tS[e];
    nu.prototype[e] = function(r) {
      return s(this.node, r);
    }, nu.prototype[`assert${t}`] = function(r) {
      if (!s(this.node, r))
        throw new TypeError(`Expected node path of type ${t}`);
    };
  }
  Object.assign(nu.prototype, THe);
  for (let t of Object.keys(hHe))
    t[0] !== "_" && (tS.TYPES.includes(t) || tS.TYPES.push(t));
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js
var mH = g((sS) => {
  "use strict";
  Object.defineProperty(sS, "__esModule", {
    value: !0
  });
  sS.default = void 0;
  var SHe = Rc(), PHe = fe(), gD = tl(), {
    VISITOR_KEYS: EHe
  } = PHe, TD = class {
    static {
      n(this, "TraversalContext");
    }
    constructor(e, s, r, i) {
      this.queue = null, this.priorityQueue = null, this.parentPath = i, this.scope = e, this.state = r, this.opts = s;
    }
    shouldVisit(e) {
      let s = this.opts;
      if (s.enter || s.exit || s[e.type]) return !0;
      let r = EHe[e.type];
      if (!(r != null && r.length)) return !1;
      for (let i of r)
        if (e[i])
          return !0;
      return !1;
    }
    create(e, s, r, i) {
      return SHe.default.get({
        parentPath: this.parentPath,
        parent: e,
        container: s,
        key: r,
        listKey: i
      });
    }
    maybeQueue(e, s) {
      this.queue && (s ? this.queue.push(e) : this.priorityQueue.push(e));
    }
    visitMultiple(e, s, r) {
      if (e.length === 0) return !1;
      let i = [];
      for (let a = 0; a < e.length; a++) {
        let o = e[a];
        o && this.shouldVisit(o) && i.push(this.create(s, e, a, r));
      }
      return this.visitQueue(i);
    }
    visitSingle(e, s) {
      return this.shouldVisit(e[s]) ? this.visitQueue([this.create(e, e, s)]) : !1;
    }
    visitQueue(e) {
      this.queue = e, this.priorityQueue = [];
      let s = /* @__PURE__ */ new WeakSet(), r = !1, i = 0;
      for (; i < e.length; ) {
        let a = e[i];
        if (i++, gD.resync.call(a), (a.contexts.length === 0 || a.contexts[a.contexts.length - 1] !== this) && gD.pushContext.call(a, this),
        a.key === null) continue;
        let {
          node: o
        } = a;
        if (!s.has(o)) {
          if (o && s.add(o), a.visit()) {
            r = !0;
            break;
          }
          if (this.priorityQueue.length && (r = this.visitQueue(this.priorityQueue), this.priorityQueue = [], this.queue = e, r))
            break;
        }
      }
      for (let a = 0; a < i; a++)
        gD.popContext.call(e[a]);
      return this.queue = null, r;
    }
    visit(e, s) {
      let r = e[s];
      return r ? Array.isArray(r) ? this.visitMultiple(r, e, s) : this.visitSingle(e, s) : !1;
    }
  };
  sS.default = TD;
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/traverse-node.js
var cx = g((bD) => {
  "use strict";
  Object.defineProperty(bD, "__esModule", {
    value: !0
  });
  bD.traverseNode = wHe;
  var AHe = mH(), vHe = fe(), {
    VISITOR_KEYS: CHe
  } = vHe;
  function wHe(t, e, s, r, i, a, o) {
    let l = CHe[t.type];
    if (!l) return !1;
    let u = new AHe.default(s, e, r, i);
    if (o)
      return a != null && a[i.parentKey] ? !1 : u.visitQueue([i]);
    for (let c of l)
      if (!(a != null && a[c]) && u.visit(t, c))
        return !0;
    return !1;
  }
  n(wHe, "traverseNode");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js
var tl = g((qr) => {
  "use strict";
  Object.defineProperty(qr, "__esModule", {
    value: !0
  });
  qr._call = SD;
  qr._getQueueContexts = VHe;
  qr._resyncKey = SH;
  qr._resyncList = PH;
  qr._resyncParent = xH;
  qr._resyncRemoved = FHe;
  qr.call = xD;
  qr.isDenylisted = TH;
  qr.popContext = jHe;
  qr.pushContext = RHe;
  qr.requeue = UHe;
  qr.requeueComputedKeyAndDecorators = KHe;
  qr.resync = MHe;
  qr.setContext = BHe;
  qr.setKey = rS;
  qr.setScope = bH;
  qr.setup = qHe;
  qr.skip = OHe;
  qr.skipKey = _He;
  qr.stop = LHe;
  qr.visit = DHe;
  var IHe = cx(), yH = Rc(), NHe = Rx(), kHe = fe();
  function xD(t) {
    let e = this.opts;
    if (this.debug(t), this.node && SD.call(this, e[t]))
      return !0;
    if (this.node) {
      var s;
      return SD.call(this, (s = e[this.node.type]) == null ? void 0 : s[t]);
    }
    return !1;
  }
  n(xD, "call");
  function SD(t) {
    if (!t) return !1;
    for (let e of t) {
      if (!e) continue;
      let s = this.node;
      if (!s) return !0;
      let r = e.call(this.state, this, this.state);
      if (r && typeof r == "object" && typeof r.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 suppo\
rt. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      if (r)
        throw new Error(`Unexpected return value from visitor method ${e}`);
      if (this.node !== s || this._traverseFlags > 0) return !0;
    }
    return !1;
  }
  n(SD, "_call");
  function TH() {
    var t;
    let e = (t = this.opts.denylist) != null ? t : this.opts.blacklist;
    return e?.includes(this.node.type);
  }
  n(TH, "isDenylisted");
  qr.isBlacklisted = TH;
  function gH(t, e) {
    t.context !== e && (t.context = e, t.state = e.state, t.opts = e.opts);
  }
  n(gH, "restoreContext");
  function DHe() {
    var t, e;
    if (!this.node || this.isDenylisted() || (t = (e = this.opts).shouldSkip) != null && t.call(e, this))
      return !1;
    let s = this.context;
    return this.shouldSkip || xD.call(this, "enter") ? (this.debug("Skip..."), this.shouldStop) : (gH(this, s), this.debug("Recursing into..\
."), this.shouldStop = (0, IHe.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys), gH(this, s), xD.call(this, "\
exit"), this.shouldStop);
  }
  n(DHe, "visit");
  function OHe() {
    this.shouldSkip = !0;
  }
  n(OHe, "skip");
  function _He(t) {
    this.skipKeys == null && (this.skipKeys = {}), this.skipKeys[t] = !0;
  }
  n(_He, "skipKey");
  function LHe() {
    this._traverseFlags |= yH.SHOULD_SKIP | yH.SHOULD_STOP;
  }
  n(LHe, "stop");
  function bH() {
    var t, e;
    if ((t = this.opts) != null && t.noScope) return;
    let s = this.parentPath;
    ((this.key === "key" || this.listKey === "decorators") && s.isMethod() || this.key === "discriminant" && s.isSwitchStatement()) && (s = s.
    parentPath);
    let r;
    for (; s && !r; ) {
      var i;
      if ((i = s.opts) != null && i.noScope) return;
      r = s.scope, s = s.parentPath;
    }
    this.scope = this.getScope(r), (e = this.scope) == null || e.init();
  }
  n(bH, "setScope");
  function BHe(t) {
    return this.skipKeys != null && (this.skipKeys = {}), this._traverseFlags = 0, t && (this.context = t, this.state = t.state, this.opts =
    t.opts), bH.call(this), this;
  }
  n(BHe, "setContext");
  function MHe() {
    this.removed || (xH.call(this), PH.call(this), SH.call(this));
  }
  n(MHe, "resync");
  function xH() {
    this.parentPath && (this.parent = this.parentPath.node);
  }
  n(xH, "_resyncParent");
  function SH() {
    if (this.container && this.node !== this.container[this.key]) {
      if (Array.isArray(this.container)) {
        for (let t = 0; t < this.container.length; t++)
          if (this.container[t] === this.node) {
            rS.call(this, t);
            return;
          }
      } else
        for (let t of Object.keys(this.container))
          if (this.container[t] === this.node) {
            rS.call(this, t);
            return;
          }
      this.key = null;
    }
  }
  n(SH, "_resyncKey");
  function PH() {
    if (!this.parent || !this.inList) return;
    let t = this.parent[this.listKey];
    this.container !== t && (this.container = t || null);
  }
  n(PH, "_resyncList");
  function FHe() {
    (this.key == null || !this.container || this.container[this.key] !== this.node) && NHe._markRemoved.call(this);
  }
  n(FHe, "_resyncRemoved");
  function jHe() {
    this.contexts.pop(), this.contexts.length > 0 ? this.setContext(this.contexts[this.contexts.length - 1]) : this.setContext(void 0);
  }
  n(jHe, "popContext");
  function RHe(t) {
    this.contexts.push(t), this.setContext(t);
  }
  n(RHe, "pushContext");
  function qHe(t, e, s, r) {
    this.listKey = s, this.container = e, this.parentPath = t || this.parentPath, rS.call(this, r);
  }
  n(qHe, "setup");
  function rS(t) {
    var e;
    this.key = t, this.node = this.container[this.key], this.type = (e = this.node) == null ? void 0 : e.type;
  }
  n(rS, "setKey");
  function UHe(t = this) {
    if (t.removed) return;
    let e = this.contexts;
    for (let s of e)
      s.maybeQueue(t);
  }
  n(UHe, "requeue");
  function KHe() {
    let {
      context: t,
      node: e
    } = this;
    if (!kHe.isPrivate(e) && e.computed && t.maybeQueue(this.get("key")), e.decorators)
      for (let s of this.get("decorators"))
        t.maybeQueue(s);
  }
  n(KHe, "requeueComputedKeyAndDecorators");
  function VHe() {
    let t = this, e = this.contexts;
    for (; !e.length && (t = t.parentPath, !!t); )
      e = t.contexts;
    return e;
  }
  n(VHe, "_getQueueContexts");
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/hub.js
var EH = g((iS) => {
  "use strict";
  Object.defineProperty(iS, "__esModule", {
    value: !0
  });
  iS.default = void 0;
  var PD = class {
    static {
      n(this, "Hub");
    }
    getCode() {
    }
    getScope() {
    }
    addHelper() {
      throw new Error("Helpers are not supported by the default hub.");
    }
    buildError(e, s, r = TypeError) {
      return new r(s);
    }
  };
  iS.default = PD;
});

// ../node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js
var Yl = g((au) => {
  "use strict";
  Object.defineProperty(au, "__esModule", {
    value: !0
  });
  Object.defineProperty(au, "Hub", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return YHe.default;
    }, "get")
  });
  Object.defineProperty(au, "NodePath", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return HHe.default;
    }, "get")
  });
  Object.defineProperty(au, "Scope", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return JHe.default;
    }, "get")
  });
  au.visitors = au.default = void 0;
  tl();
  var Ig = lg();
  au.visitors = Ig;
  var WHe = fe(), $He = ch(), AH = cx(), HHe = Rc(), JHe = DN(), YHe = EH(), {
    VISITOR_KEYS: XHe,
    removeProperties: zHe,
    traverseFast: vH
  } = WHe;
  function ka(t, e = {}, s, r, i, a) {
    if (t) {
      if (!e.noScope && !s && t.type !== "Program" && t.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 ${t.
        type} node without passing scope and parentPath.`);
      if (!i && a)
        throw new Error("visitSelf can only be used when providing a NodePath.");
      XHe[t.type] && (Ig.explode(e), (0, AH.traverseNode)(t, e, s, r, i, null, a));
    }
  }
  n(ka, "traverse");
  var L7s = au.default = ka;
  ka.visitors = Ig;
  ka.verify = Ig.verify;
  ka.explode = Ig.explode;
  ka.cheap = function(t, e) {
    vH(t, e);
  };
  ka.node = function(t, e, s, r, i, a) {
    (0, AH.traverseNode)(t, e, s, r, i, a);
  };
  ka.clearNode = function(t, e) {
    zHe(t, e);
  };
  ka.removeProperties = function(t, e) {
    return vH(t, ka.clearNode, e), t;
  };
  function GHe(t, e) {
    t.node.type === e.type && (e.has = !0, t.stop());
  }
  n(GHe, "hasDenylistedType");
  ka.hasType = function(t, e, s) {
    if (s != null && s.includes(t.type)) return !1;
    if (t.type === e) return !0;
    let r = {
      has: !1,
      type: e
    };
    return ka(t, {
      noScope: !0,
      denylist: s,
      enter: GHe
    }, null, r), r.has;
  };
  ka.cache = $He;
});

// ../node_modules/@babel/helper-module-imports/lib/import-builder.js
var IH = g((aS) => {
  "use strict";
  Object.defineProperty(aS, "__esModule", {
    value: !0
  });
  aS.default = void 0;
  var So = Je("assert"), QHe = fe(), {
    callExpression: ED,
    cloneNode: nS,
    expressionStatement: CH,
    identifier: Ng,
    importDeclaration: ZHe,
    importDefaultSpecifier: eJe,
    importNamespaceSpecifier: tJe,
    importSpecifier: sJe,
    memberExpression: AD,
    stringLiteral: wH,
    variableDeclaration: rJe,
    variableDeclarator: iJe
  } = QHe, vD = class {
    static {
      n(this, "ImportBuilder");
    }
    constructor(e, s, r) {
      this._statements = [], this._resultName = null, this._importedSource = void 0, this._scope = s, this._hub = r, this._importedSource = e;
    }
    done() {
      return {
        statements: this._statements,
        resultName: this._resultName
      };
    }
    import() {
      return this._statements.push(ZHe([], wH(this._importedSource))), this;
    }
    require() {
      return this._statements.push(CH(ED(Ng("require"), [wH(this._importedSource)]))), this;
    }
    namespace(e = "namespace") {
      let s = this._scope.generateUidIdentifier(e), r = this._statements[this._statements.length - 1];
      return So(r.type === "ImportDeclaration"), So(r.specifiers.length === 0), r.specifiers = [tJe(s)], this._resultName = nS(s), this;
    }
    default(e) {
      let s = this._scope.generateUidIdentifier(e), r = this._statements[this._statements.length - 1];
      return So(r.type === "ImportDeclaration"), So(r.specifiers.length === 0), r.specifiers = [eJe(s)], this._resultName = nS(s), this;
    }
    named(e, s) {
      if (s === "default") return this.default(e);
      let r = this._scope.generateUidIdentifier(e), i = this._statements[this._statements.length - 1];
      return So(i.type === "ImportDeclaration"), So(i.specifiers.length === 0), i.specifiers = [sJe(r, Ng(s))], this._resultName = nS(r), this;
    }
    var(e) {
      let s = this._scope.generateUidIdentifier(e), r = this._statements[this._statements.length - 1];
      return r.type !== "ExpressionStatement" && (So(this._resultName), r = CH(this._resultName), this._statements.push(r)), this._statements[this.
      _statements.length - 1] = rJe("var", [iJe(s, r.expression)]), this._resultName = nS(s), this;
    }
    defaultInterop() {
      return this._interop(this._hub.addHelper("interopRequireDefault"));
    }
    wildcardInterop() {
      return this._interop(this._hub.addHelper("interopRequireWildcard"));
    }
    _interop(e) {
      let s = this._statements[this._statements.length - 1];
      return s.type === "ExpressionStatement" ? s.expression = ED(e, [s.expression]) : s.type === "VariableDeclaration" ? (So(s.declarations.
      length === 1), s.declarations[0].init = ED(e, [s.declarations[0].init])) : So.fail("Unexpected type."), this;
    }
    prop(e) {
      let s = this._statements[this._statements.length - 1];
      return s.type === "ExpressionStatement" ? s.expression = AD(s.expression, Ng(e)) : s.type === "VariableDeclaration" ? (So(s.declarations.
      length === 1), s.declarations[0].init = AD(s.declarations[0].init, Ng(e))) : So.fail("Unexpected type:" + s.type), this;
    }
    read(e) {
      this._resultName = AD(this._resultName, Ng(e));
    }
  };
  aS.default = vD;
});

// ../node_modules/@babel/helper-module-imports/lib/is-module.js
var wD = g((CD) => {
  "use strict";
  Object.defineProperty(CD, "__esModule", {
    value: !0
  });
  CD.default = nJe;
  function nJe(t) {
    return t.node.sourceType === "module";
  }
  n(nJe, "isModule");
});

// ../node_modules/@babel/helper-module-imports/lib/import-injector.js
var LH = g((lS) => {
  "use strict";
  Object.defineProperty(lS, "__esModule", {
    value: !0
  });
  lS.default = void 0;
  var NH = Je("assert"), aJe = fe(), oJe = IH(), lJe = wD(), {
    identifier: uJe,
    importSpecifier: cJe,
    numericLiteral: pJe,
    sequenceExpression: hJe,
    isImportDeclaration: kH
  } = aJe, ID = class {
    static {
      n(this, "ImportInjector");
    }
    constructor(e, s, r) {
      this._defaultOpts = {
        importedSource: null,
        importedType: "commonjs",
        importedInterop: "babel",
        importingInterop: "babel",
        ensureLiveReference: !1,
        ensureNoContext: !1,
        importPosition: "before"
      };
      let i = e.find((a) => a.isProgram());
      this._programPath = i, this._programScope = i.scope, this._hub = i.hub, this._defaultOpts = this._applyDefaults(s, r, !0);
    }
    addDefault(e, s) {
      return this.addNamed("default", e, s);
    }
    addNamed(e, s, r) {
      return NH(typeof e == "string"), this._generateImport(this._applyDefaults(s, r), e);
    }
    addNamespace(e, s) {
      return this._generateImport(this._applyDefaults(e, s), null);
    }
    addSideEffect(e, s) {
      return this._generateImport(this._applyDefaults(e, s), void 0);
    }
    _applyDefaults(e, s, r = !1) {
      let i;
      return typeof e == "string" ? i = Object.assign({}, this._defaultOpts, {
        importedSource: e
      }, s) : (NH(!s, "Unexpected secondary arguments."), i = Object.assign({}, this._defaultOpts, e)), !r && s && (s.nameHint !== void 0 &&
      (i.nameHint = s.nameHint), s.blockHoist !== void 0 && (i.blockHoist = s.blockHoist)), i;
    }
    _generateImport(e, s) {
      let r = s === "default", i = !!s && !r, a = s === null, {
        importedSource: o,
        importedType: l,
        importedInterop: u,
        importingInterop: c,
        ensureLiveReference: p,
        ensureNoContext: h,
        nameHint: f,
        importPosition: d,
        blockHoist: m
      } = e, y = f || s, T = (0, lJe.default)(this._programPath), b = T && c === "node", E = T && c === "babel";
      if (d === "after" && !T)
        throw new Error('"importPosition": "after" is only supported in modules');
      let V = new oJe.default(o, this._programScope, this._hub);
      if (l === "es6") {
        if (!b && !E)
          throw new Error("Cannot import an ES6 module from CommonJS");
        V.import(), a ? V.namespace(f || o) : (r || i) && V.named(y, s);
      } else {
        if (l !== "commonjs")
          throw new Error(`Unexpected interopType "${l}"`);
        if (u === "babel")
          if (b) {
            y = y !== "default" ? y : o;
            let de = `${o}$es6Default`;
            V.import(), a ? V.default(de).var(y || o).wildcardInterop() : r ? p ? V.default(de).var(y || o).defaultInterop().read("default") :
            V.default(de).var(y).defaultInterop().prop(s) : i && V.default(de).read(s);
          } else E ? (V.import(), a ? V.namespace(y || o) : (r || i) && V.named(y, s)) : (V.require(), a ? V.var(y || o).wildcardInterop() :
          (r || i) && p ? r ? (y = y !== "default" ? y : o, V.var(y).read(s), V.defaultInterop()) : V.var(o).read(s) : r ? V.var(y).defaultInterop().
          prop(s) : i && V.var(y).prop(s));
        else if (u === "compiled")
          b ? (V.import(), a ? V.default(y || o) : (r || i) && V.default(o).read(y)) : E ? (V.import(), a ? V.namespace(y || o) : (r || i) &&
          V.named(y, s)) : (V.require(), a ? V.var(y || o) : (r || i) && (p ? V.var(o).read(y) : V.prop(s).var(y)));
        else if (u === "uncompiled") {
          if (r && p)
            throw new Error("No live reference for commonjs default");
          b ? (V.import(), a ? V.default(y || o) : r ? V.default(y) : i && V.default(o).read(y)) : E ? (V.import(), a ? V.default(y || o) : r ?
          V.default(y) : i && V.named(y, s)) : (V.require(), a ? V.var(y || o) : r ? V.var(y) : i && (p ? V.var(o).read(y) : V.var(y).prop(s)));
        } else
          throw new Error(`Unknown importedInterop "${u}".`);
      }
      let {
        statements: W,
        resultName: oe
      } = V.done();
      return this._insertStatements(W, d, m), (r || i) && h && oe.type !== "Identifier" ? hJe([pJe(0), oe]) : oe;
    }
    _insertStatements(e, s = "before", r = 3) {
      if (s === "after") {
        if (this._insertStatementsAfter(e)) return;
      } else if (this._insertStatementsBefore(e, r)) return;
      this._programPath.unshiftContainer("body", e);
    }
    _insertStatementsBefore(e, s) {
      if (e.length === 1 && kH(e[0]) && oS(e[0])) {
        let i = this._programPath.get("body").find((a) => a.isImportDeclaration() && oS(a.node));
        if (i?.node.source.value === e[0].source.value && _H(i.node, e[0]))
          return !0;
      }
      e.forEach((i) => {
        i._blockHoist = s;
      });
      let r = this._programPath.get("body").find((i) => {
        let a = i.node._blockHoist;
        return Number.isFinite(a) && a < 4;
      });
      return r ? (r.insertBefore(e), !0) : !1;
    }
    _insertStatementsAfter(e) {
      let s = new Set(e), r = /* @__PURE__ */ new Map();
      for (let a of e)
        if (kH(a) && oS(a)) {
          let o = a.source.value;
          r.has(o) || r.set(o, []), r.get(o).push(a);
        }
      let i = null;
      for (let a of this._programPath.get("body"))
        if (a.isImportDeclaration() && oS(a.node)) {
          i = a;
          let o = a.node.source.value, l = r.get(o);
          if (!l) continue;
          for (let u of l)
            s.has(u) && _H(a.node, u) && s.delete(u);
        }
      return s.size === 0 ? !0 : (i && i.insertAfter(Array.from(s)), !!i);
    }
  };
  lS.default = ID;
  function oS(t) {
    return t.importKind !== "type" && t.importKind !== "typeof";
  }
  n(oS, "isValueImport");
  function DH(t) {
    return t.specifiers.length === 1 && t.specifiers[0].type === "ImportNamespaceSpecifier" || t.specifiers.length === 2 && t.specifiers[1].
    type === "ImportNamespaceSpecifier";
  }
  n(DH, "hasNamespaceImport");
  function OH(t) {
    return t.specifiers.length > 0 && t.specifiers[0].type === "ImportDefaultSpecifier";
  }
  n(OH, "hasDefaultImport");
  function _H(t, e) {
    return t.specifiers.length ? e.specifiers.length ? DH(t) || DH(e) ? !1 : (OH(e) && (OH(t) ? e.specifiers[0] = cJe(e.specifiers[0].local,
    uJe("default")) : t.specifiers.unshift(e.specifiers.shift())), t.specifiers.push(...e.specifiers), !0) : !0 : (t.specifiers = e.specifiers,
    !0);
  }
  n(_H, "maybeAppendImportSpecifiers");
});

// ../node_modules/@babel/helper-module-imports/lib/index.js
var BH = g((Wc) => {
  "use strict";
  Object.defineProperty(Wc, "__esModule", {
    value: !0
  });
  Object.defineProperty(Wc, "ImportInjector", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return kg.default;
    }, "get")
  });
  Wc.addDefault = dJe;
  Wc.addNamed = mJe;
  Wc.addNamespace = yJe;
  Wc.addSideEffect = gJe;
  Object.defineProperty(Wc, "isModule", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fJe.default;
    }, "get")
  });
  var kg = LH(), fJe = wD();
  function dJe(t, e, s) {
    return new kg.default(t).addDefault(e, s);
  }
  n(dJe, "addDefault");
  function mJe(t, e, s, r) {
    return new kg.default(t).addNamed(e, s, r);
  }
  n(mJe, "addNamed");
  function yJe(t, e, s) {
    return new kg.default(t).addNamespace(e, s);
  }
  n(yJe, "addNamespace");
  function gJe(t, e, s) {
    return new kg.default(t).addSideEffect(e, s);
  }
  n(gJe, "addSideEffect");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/lib/virtual-types.js
var ND = g((gs) => {
  "use strict";
  Object.defineProperty(gs, "__esModule", {
    value: !0
  });
  gs.Var = gs.User = gs.Statement = gs.SpreadProperty = gs.Scope = gs.RestProperty = gs.ReferencedMemberExpression = gs.ReferencedIdentifier =
  gs.Referenced = gs.Pure = gs.NumericLiteralTypeAnnotation = gs.Generated = gs.ForAwaitStatement = gs.Flow = gs.Expression = gs.ExistentialTypeParam =
  gs.BlockScoped = gs.BindingIdentifier = void 0;
  var $7s = gs.ReferencedIdentifier = ["Identifier", "JSXIdentifier"], H7s = gs.ReferencedMemberExpression = ["MemberExpression"], J7s = gs.
  BindingIdentifier = ["Identifier"], Y7s = gs.Statement = ["Statement"], X7s = gs.Expression = ["Expression"], z7s = gs.Scope = ["Scopable",
  "Pattern"], G7s = gs.Referenced = null, Q7s = gs.BlockScoped = null, Z7s = gs.Var = ["VariableDeclaration"], eqs = gs.User = null, tqs = gs.
  Generated = null, sqs = gs.Pure = null, rqs = gs.Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"], iqs = gs.RestProperty =
  ["RestElement"], nqs = gs.SpreadProperty = ["RestElement"], aqs = gs.ExistentialTypeParam = ["ExistsTypeAnnotation"], oqs = gs.NumericLiteralTypeAnnotation =
  ["NumberLiteralTypeAnnotation"], lqs = gs.ForAwaitStatement = ["ForOfStatement"];
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js
var DD = g((wi) => {
  "use strict";
  Object.defineProperty(wi, "__esModule", {
    value: !0
  });
  wi.isBindingIdentifier = qJe;
  wi.isBlockScoped = $Je;
  wi.isExpression = KJe;
  wi.isFlow = zJe;
  wi.isForAwaitStatement = ZJe;
  wi.isGenerated = YJe;
  wi.isPure = XJe;
  wi.isReferenced = WJe;
  wi.isReferencedIdentifier = jJe;
  wi.isReferencedMemberExpression = RJe;
  wi.isRestProperty = GJe;
  wi.isScope = VJe;
  wi.isSpreadProperty = QJe;
  wi.isStatement = UJe;
  wi.isUser = JJe;
  wi.isVar = HJe;
  var TJe = fe(), {
    isBinding: bJe,
    isBlockScoped: xJe,
    isExportDeclaration: SJe,
    isExpression: PJe,
    isFlow: EJe,
    isForStatement: AJe,
    isForXStatement: vJe,
    isIdentifier: MH,
    isImportDeclaration: CJe,
    isImportSpecifier: wJe,
    isJSXIdentifier: IJe,
    isJSXMemberExpression: NJe,
    isMemberExpression: kJe,
    isRestElement: FH,
    isReferenced: kD,
    isScope: DJe,
    isStatement: OJe,
    isVar: _Je,
    isVariableDeclaration: LJe,
    react: BJe,
    isForOfStatement: MJe
  } = TJe, {
    isCompatTag: FJe
  } = BJe;
  function jJe(t) {
    let {
      node: e,
      parent: s
    } = this;
    if (!MH(e, t) && !NJe(s, t))
      if (IJe(e, t)) {
        if (FJe(e.name)) return !1;
      } else
        return !1;
    return kD(e, s, this.parentPath.parent);
  }
  n(jJe, "isReferencedIdentifier");
  function RJe() {
    let {
      node: t,
      parent: e
    } = this;
    return kJe(t) && kD(t, e);
  }
  n(RJe, "isReferencedMemberExpression");
  function qJe() {
    let {
      node: t,
      parent: e
    } = this, s = this.parentPath.parent;
    return MH(t) && bJe(t, e, s);
  }
  n(qJe, "isBindingIdentifier");
  function UJe() {
    let {
      node: t,
      parent: e
    } = this;
    return OJe(t) ? !(LJe(t) && (vJe(e, {
      left: t
    }) || AJe(e, {
      init: t
    }))) : !1;
  }
  n(UJe, "isStatement");
  function KJe() {
    return this.isIdentifier() ? this.isReferencedIdentifier() : PJe(this.node);
  }
  n(KJe, "isExpression");
  function VJe() {
    return DJe(this.node, this.parent);
  }
  n(VJe, "isScope");
  function WJe() {
    return kD(this.node, this.parent);
  }
  n(WJe, "isReferenced");
  function $Je() {
    return xJe(this.node);
  }
  n($Je, "isBlockScoped");
  function HJe() {
    return _Je(this.node);
  }
  n(HJe, "isVar");
  function JJe() {
    return this.node && !!this.node.loc;
  }
  n(JJe, "isUser");
  function YJe() {
    return !this.isUser();
  }
  n(YJe, "isGenerated");
  function XJe(t) {
    return this.scope.isPure(this.node, t);
  }
  n(XJe, "isPure");
  function zJe() {
    let {
      node: t
    } = this;
    return EJe(t) ? !0 : CJe(t) ? t.importKind === "type" || t.importKind === "typeof" : SJe(t) ? t.exportKind === "type" : wJe(t) ? t.importKind ===
    "type" || t.importKind === "typeof" : !1;
  }
  n(zJe, "isFlow");
  function GJe() {
    var t;
    return FH(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectPattern());
  }
  n(GJe, "isRestProperty");
  function QJe() {
    var t;
    return FH(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectExpression());
  }
  n(QJe, "isSpreadProperty");
  function ZJe() {
    return MJe(this.node, {
      await: !0
    });
  }
  n(ZJe, "isForAwaitStatement");
  wi.isExistentialTypeParam = /* @__PURE__ */ n(function() {
    throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.");
  }, "isExistentialTypeParam"), wi.isNumericLiteralTypeAnnotation = /* @__PURE__ */ n(function() {
    throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.");
  }, "isNumericLiteralTypeAnnotation");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/visitors.js
var Og = g((Ah) => {
  "use strict";
  Object.defineProperty(Ah, "__esModule", {
    value: !0
  });
  Ah.environmentVisitor = oYe;
  Ah.explode = YH;
  Ah.isExplodedVisitor = JH;
  Ah.merge = zH;
  Ah.verify = XH;
  var HH = ND(), eYe = DD(), tYe = fe(), jH = ol(), {
    DEPRECATED_KEYS: RH,
    DEPRECATED_ALIASES: qH,
    FLIPPED_ALIAS_KEYS: UH,
    TYPES: sYe,
    __internal__deprecationWarning: KH
  } = tYe;
  function rYe(t) {
    return t in HH;
  }
  n(rYe, "isVirtualType");
  function JH(t) {
    return t?._exploded;
  }
  n(JH, "isExplodedVisitor");
  function YH(t) {
    if (JH(t)) return t;
    t._exploded = !0;
    for (let e of Object.keys(t)) {
      if (Eh(e)) continue;
      let s = e.split("|");
      if (s.length === 1) continue;
      let r = t[e];
      delete t[e];
      for (let i of s)
        t[i] = r;
    }
    XH(t), delete t.__esModule, iYe(t), $H(t);
    for (let e of Object.keys(t)) {
      if (Eh(e) || !rYe(e)) continue;
      let s = t[e];
      for (let i of Object.keys(s))
        s[i] = nYe(e, s[i]);
      delete t[e];
      let r = HH[e];
      if (r !== null)
        for (let i of r)
          t[i] ? Dg(t[i], s) : t[i] = s;
      else
        Dg(t, s);
    }
    for (let e of Object.keys(t)) {
      if (Eh(e)) continue;
      let s = UH[e];
      if (e in RH) {
        let i = RH[e];
        KH(e, i, "Visitor "), s = [i];
      } else if (e in qH) {
        let i = qH[e];
        KH(e, i, "Visitor "), s = UH[i];
      }
      if (!s) continue;
      let r = t[e];
      delete t[e];
      for (let i of s) {
        let a = t[i];
        a ? Dg(a, r) : t[i] = Object.assign({}, r);
      }
    }
    for (let e of Object.keys(t))
      Eh(e) || $H(t[e]);
    return t;
  }
  n(YH, "explode$1");
  function XH(t) {
    if (!t._verified) {
      if (typeof t == "function")
        throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Functi\
on }`?");
      for (let e of Object.keys(t)) {
        if ((e === "enter" || e === "exit") && VH(e, t[e]), Eh(e)) continue;
        if (!sYe.includes(e))
          throw new Error(`You gave us a visitor for the node type ${e} but it's not a valid type in @babel/traverse 7.26.9`);
        let s = t[e];
        if (typeof s == "object")
          for (let r of Object.keys(s))
            if (r === "enter" || r === "exit")
              VH(`${e}.${r}`, s[r]);
            else
              throw new Error(`You passed \`traverse()\` a visitor object with the property ${e} that has the invalid property ${r}`);
      }
      t._verified = !0;
    }
  }
  n(XH, "verify$1");
  function VH(t, e) {
    let s = [].concat(e);
    for (let r of s)
      if (typeof r != "function")
        throw new TypeError(`Non-function found defined in ${t} with type ${typeof r}`);
  }
  n(VH, "validateVisitorMethods");
  function zH(t, e = [], s) {
    let r = {
      _verified: !0,
      _exploded: !0
    };
    Object.defineProperty(r, "_exploded", {
      enumerable: !1
    }), Object.defineProperty(r, "_verified", {
      enumerable: !1
    });
    for (let i = 0; i < t.length; i++) {
      let a = YH(t[i]), o = e[i], l = a;
      (o || s) && (l = WH(l, o, s)), Dg(r, l);
      for (let u of Object.keys(a)) {
        if (Eh(u)) continue;
        let c = a[u];
        (o || s) && (c = WH(c, o, s));
        let p = r[u] || (r[u] = {});
        Dg(p, c);
      }
    }
    return r;
  }
  n(zH, "merge");
  function WH(t, e, s) {
    let r = {};
    for (let i of ["enter", "exit"]) {
      let a = t[i];
      Array.isArray(a) && (a = a.map(function(o) {
        let l = o;
        return e && (l = /* @__PURE__ */ n(function(u) {
          o.call(e, u, e);
        }, "newFn")), s && (l = s(e?.key, i, l)), l !== o && (l.toString = () => o.toString()), l;
      }), r[i] = a);
    }
    return r;
  }
  n(WH, "wrapWithStateOrWrapper");
  function iYe(t) {
    for (let e of Object.keys(t)) {
      if (Eh(e)) continue;
      let s = t[e];
      typeof s == "function" && (t[e] = {
        enter: s
      });
    }
  }
  n(iYe, "ensureEntranceObjects");
  function $H(t) {
    t.enter && !Array.isArray(t.enter) && (t.enter = [t.enter]), t.exit && !Array.isArray(t.exit) && (t.exit = [t.exit]);
  }
  n($H, "ensureCallbackArrays");
  function nYe(t, e) {
    let s = `is${t}`, r = eYe[s], i = /* @__PURE__ */ n(function(a) {
      if (r.call(a))
        return e.apply(this, arguments);
    }, "newFn");
    return i.toString = () => e.toString(), i;
  }
  n(nYe, "wrapCheck");
  function Eh(t) {
    return t[0] === "_" || t === "enter" || t === "exit" || t === "shouldSkip" || t === "denylist" || t === "noScope" || t === "skipKeys" ||
    t === "blacklist";
  }
  n(Eh, "shouldIgnoreKey");
  function Dg(t, e) {
    for (let s of ["enter", "exit"])
      e[s] && (t[s] = [].concat(t[s] || [], e[s]));
  }
  n(Dg, "mergePair");
  var aYe = {
    FunctionParent(t) {
      t.isArrowFunctionExpression() || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() :
      jH.requeueComputedKeyAndDecorators.call(t)));
    },
    Property(t) {
      t.isObjectProperty() || (t.skip(), t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() : jH.requeueComputedKeyAndDecorators.
      call(t));
    }
  };
  function oYe(t) {
    return zH([aYe, t]);
  }
  n(oYe, "environmentVisitor");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/scope/lib/renamer.js
var GH = g((cS) => {
  "use strict";
  Object.defineProperty(cS, "__esModule", {
    value: !0
  });
  cS.default = void 0;
  var uS = fe(), lYe = uS, uYe = pS(), cYe = Og(), pYe = ol(), {
    getAssignmentIdentifiers: hYe
  } = lYe, fYe = {
    ReferencedIdentifier({
      node: t
    }, e) {
      t.name === e.oldName && (t.name = e.newName);
    },
    Scope(t, e) {
      t.scope.bindingIdentifierEquals(e.oldName, e.binding.identifier) || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.
      requeueComputedKeyAndDecorators() : pYe.requeueComputedKeyAndDecorators.call(t)));
    },
    ObjectProperty({
      node: t,
      scope: e
    }, s) {
      let {
        name: r
      } = t.key;
      if (t.shorthand && (r === s.oldName || r === s.newName) && e.getBindingIdentifier(r) === s.binding.identifier) {
        t.shorthand = !1;
        {
          var i;
          (i = t.extra) != null && i.shorthand && (t.extra.shorthand = !1);
        }
      }
    },
    "AssignmentExpression|Declaration|VariableDeclarator"(t, e) {
      if (t.isVariableDeclaration()) return;
      let s = t.isAssignmentExpression() ? hYe(t.node) : t.getOuterBindingIdentifiers();
      for (let r in s)
        r === e.oldName && (s[r].name = e.newName);
    }
  }, OD = class {
    static {
      n(this, "Renamer");
    }
    constructor(e, s, r) {
      this.newName = r, this.oldName = s, this.binding = e;
    }
    maybeConvertFromExportDeclaration(e) {
      let s = e.parentPath;
      if (s.isExportDeclaration()) {
        if (s.isExportDefaultDeclaration()) {
          let {
            declaration: r
          } = s.node;
          if (uS.isDeclaration(r) && !r.id)
            return;
        }
        s.isExportAllDeclaration() || s.splitExportDeclaration();
      }
    }
    maybeConvertFromClassFunctionDeclaration(e) {
      return e;
    }
    maybeConvertFromClassFunctionExpression(e) {
      return e;
    }
    rename() {
      let {
        binding: e,
        oldName: s,
        newName: r
      } = this, {
        scope: i,
        path: a
      } = e, o = a.find((c) => c.isDeclaration() || c.isFunctionExpression() || c.isClassExpression());
      o && o.getOuterBindingIdentifiers()[s] === e.identifier && this.maybeConvertFromExportDeclaration(o);
      let l = arguments[0] || i.block, u = {
        discriminant: !0
      };
      uS.isMethod(l) && (l.computed && (u.key = !0), uS.isObjectMethod(l) || (u.decorators = !0)), (0, uYe.traverseNode)(l, (0, cYe.explode)(
      fYe), i, this, i.path, u), arguments[0] || (i.removeOwnBinding(s), i.bindings[r] = e, this.binding.identifier.name = r), o && (this.maybeConvertFromClassFunctionDeclaration(
      a), this.maybeConvertFromClassFunctionExpression(a));
    }
  };
  cS.default = OD;
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/scope/binding.js
var QH = g((hS) => {
  "use strict";
  Object.defineProperty(hS, "__esModule", {
    value: !0
  });
  hS.default = void 0;
  var _D = class {
    static {
      n(this, "Binding");
    }
    constructor({
      identifier: e,
      scope: s,
      path: r,
      kind: i
    }) {
      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 = e, this.scope = s, this.path = r, this.kind = i,
      (i === "var" || i === "hoisted") && dYe(r) && this.reassign(r), this.clearValue();
    }
    deoptValue() {
      this.clearValue(), this.hasDeoptedValue = !0;
    }
    setValue(e) {
      this.hasDeoptedValue || (this.hasValue = !0, this.value = e);
    }
    clearValue() {
      this.hasDeoptedValue = !1, this.hasValue = !1, this.value = null;
    }
    reassign(e) {
      this.constant = !1, !this.constantViolations.includes(e) && this.constantViolations.push(e);
    }
    reference(e) {
      this.referencePaths.includes(e) || (this.referenced = !0, this.references++, this.referencePaths.push(e));
    }
    dereference() {
      this.references--, this.referenced = !!this.references;
    }
  };
  hS.default = _D;
  function dYe(t) {
    for (let {
      parentPath: e,
      key: s
    } = t; e; {
      parentPath: e,
      key: s
    } = e) {
      if (e.isFunctionParent()) return !1;
      if (e.isWhile() || e.isForXStatement() || e.isForStatement() && s === "body")
        return !0;
    }
    return !1;
  }
  n(dYe, "isDeclaredInLoop");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/cache.js
var vh = g((ua) => {
  "use strict";
  Object.defineProperty(ua, "__esModule", {
    value: !0
  });
  ua.clear = yYe;
  ua.clearPath = ZH;
  ua.clearScope = eJ;
  ua.getCachedPaths = gYe;
  ua.getOrCreateCachedPaths = TYe;
  ua.scope = ua.path = void 0;
  var fS = ua.path = /* @__PURE__ */ new WeakMap(), mYe = ua.scope = /* @__PURE__ */ new WeakMap();
  function yYe() {
    ZH(), eJ();
  }
  n(yYe, "clear");
  function ZH() {
    ua.path = fS = /* @__PURE__ */ new WeakMap();
  }
  n(ZH, "clearPath");
  function eJ() {
    ua.scope = mYe = /* @__PURE__ */ new WeakMap();
  }
  n(eJ, "clearScope");
  var LD = Object.freeze({});
  function gYe(t, e) {
    var s, r;
    return t = null, (s = fS.get((r = t) != null ? r : LD)) == null ? void 0 : s.get(e);
  }
  n(gYe, "getCachedPaths");
  function TYe(t, e) {
    var s, r;
    t = null;
    let i = fS.get((s = t) != null ? s : LD);
    i || fS.set((r = t) != null ? r : LD, i = /* @__PURE__ */ new WeakMap());
    let a = i.get(e);
    return a || i.set(e, a = /* @__PURE__ */ new Map()), a;
  }
  n(TYe, "getOrCreateCachedPaths");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/scope/index.js
var jD = g((mS) => {
  "use strict";
  Object.defineProperty(mS, "__esModule", {
    value: !0
  });
  mS.default = void 0;
  var bYe = GH(), xYe = Ld(), SYe = QH(), PYe = md(), uJ = fe(), cJ = uJ, tJ = vh(), EYe = Og(), {
    NOT_LOCAL_BINDING: sJ,
    assignmentExpression: AYe,
    callExpression: rJ,
    cloneNode: iJ,
    getBindingIdentifiers: pJ,
    identifier: wh,
    isArrayExpression: hJ,
    isBinary: vYe,
    isCallExpression: nJ,
    isClass: CYe,
    isClassBody: wYe,
    isClassDeclaration: IYe,
    isExportAllDeclaration: fJ,
    isExportDefaultDeclaration: NYe,
    isExportNamedDeclaration: BD,
    isFunctionDeclaration: kYe,
    isIdentifier: Ch,
    isImportDeclaration: MD,
    isLiteral: DYe,
    isMemberExpression: OYe,
    isMethod: _Ye,
    isModuleSpecifier: LYe,
    isNullLiteral: BYe,
    isObjectExpression: MYe,
    isProperty: FYe,
    isPureish: jYe,
    isRegExpLiteral: RYe,
    isSuper: qYe,
    isTaggedTemplateExpression: UYe,
    isTemplateLiteral: dJ,
    isThisExpression: aJ,
    isUnaryExpression: KYe,
    isVariableDeclaration: VYe,
    expressionStatement: WYe,
    matchesPattern: oJ,
    memberExpression: FD,
    numericLiteral: $Ye,
    toIdentifier: HYe,
    variableDeclaration: JYe,
    variableDeclarator: YYe,
    isRecordExpression: XYe,
    isTupleExpression: zYe,
    isObjectProperty: GYe,
    isTopicReference: lJ,
    isMetaProperty: QYe,
    isPrivateName: ZYe,
    isExportDeclaration: eXe,
    buildUndefinedNode: tXe,
    sequenceExpression: sXe
  } = uJ;
  function wr(t, e) {
    switch (t?.type) {
      default:
        if (MD(t) || eXe(t)) {
          var s;
          if ((fJ(t) || BD(t) || MD(t)) && t.source)
            wr(t.source, e);
          else if ((BD(t) || MD(t)) && (s = t.specifiers) != null && s.length)
            for (let r of t.specifiers) wr(r, e);
          else (NYe(t) || BD(t)) && t.declaration && wr(t.declaration, e);
        } else LYe(t) ? wr(t.local, e) : DYe(t) && !BYe(t) && !RYe(t) && !dJ(t) && e.push(t.value);
        break;
      case "MemberExpression":
      case "OptionalMemberExpression":
      case "JSXMemberExpression":
        wr(t.object, e), wr(t.property, e);
        break;
      case "Identifier":
      case "JSXIdentifier":
        e.push(t.name);
        break;
      case "CallExpression":
      case "OptionalCallExpression":
      case "NewExpression":
        wr(t.callee, e);
        break;
      case "ObjectExpression":
      case "ObjectPattern":
        for (let r of t.properties)
          wr(r, e);
        break;
      case "SpreadElement":
      case "RestElement":
        wr(t.argument, e);
        break;
      case "ObjectProperty":
      case "ObjectMethod":
      case "ClassProperty":
      case "ClassMethod":
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
        wr(t.key, e);
        break;
      case "ThisExpression":
        e.push("this");
        break;
      case "Super":
        e.push("super");
        break;
      case "Import":
        e.push("import");
        break;
      case "DoExpression":
        e.push("do");
        break;
      case "YieldExpression":
        e.push("yield"), wr(t.argument, e);
        break;
      case "AwaitExpression":
        e.push("await"), wr(t.argument, e);
        break;
      case "AssignmentExpression":
        wr(t.left, e);
        break;
      case "VariableDeclarator":
        wr(t.id, e);
        break;
      case "FunctionExpression":
      case "FunctionDeclaration":
      case "ClassExpression":
      case "ClassDeclaration":
        wr(t.id, e);
        break;
      case "PrivateName":
        wr(t.id, e);
        break;
      case "ParenthesizedExpression":
        wr(t.expression, e);
        break;
      case "UnaryExpression":
      case "UpdateExpression":
        wr(t.argument, e);
        break;
      case "MetaProperty":
        wr(t.meta, e), wr(t.property, e);
        break;
      case "JSXElement":
        wr(t.openingElement, e);
        break;
      case "JSXOpeningElement":
        wr(t.name, e);
        break;
      case "JSXFragment":
        wr(t.openingFragment, e);
        break;
      case "JSXOpeningFragment":
        e.push("Fragment");
        break;
      case "JSXNamespacedName":
        wr(t.namespace, e), wr(t.name, e);
        break;
    }
  }
  n(wr, "gatherNodeParts");
  var dS = {
    ForStatement(t) {
      let e = t.get("init");
      if (e.isVar()) {
        let {
          scope: s
        } = t;
        (s.getFunctionParent() || s.getProgramParent()).registerBinding("var", e);
      }
    },
    Declaration(t) {
      if (t.isBlockScoped() || t.isImportDeclaration() || t.isExportDeclaration()) return;
      (t.scope.getFunctionParent() || t.scope.getProgramParent()).registerDeclaration(t);
    },
    ImportDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    TSImportEqualsDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    ReferencedIdentifier(t, e) {
      cJ.isTSQualifiedName(t.parent) && t.parent.right === t.node || t.parentPath.isTSImportEqualsDeclaration() || e.references.push(t);
    },
    ForXStatement(t, e) {
      let s = t.get("left");
      if (s.isPattern() || s.isIdentifier())
        e.constantViolations.push(t);
      else if (s.isVar()) {
        let {
          scope: r
        } = t;
        (r.getFunctionParent() || r.getProgramParent()).registerBinding("var", s);
      }
    },
    ExportDeclaration: {
      exit(t) {
        let {
          node: e,
          scope: s
        } = t;
        if (fJ(e)) return;
        let r = e.declaration;
        if (IYe(r) || kYe(r)) {
          let i = r.id;
          if (!i) return;
          let a = s.getBinding(i.name);
          a?.reference(t);
        } else if (VYe(r))
          for (let i of r.declarations)
            for (let a of Object.keys(pJ(i))) {
              let o = s.getBinding(a);
              o?.reference(t);
            }
      }
    },
    LabeledStatement(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    AssignmentExpression(t, e) {
      e.assignments.push(t);
    },
    UpdateExpression(t, e) {
      e.constantViolations.push(t);
    },
    UnaryExpression(t, e) {
      t.node.operator === "delete" && e.constantViolations.push(t);
    },
    BlockScoped(t) {
      let e = t.scope;
      if (e.path === t && (e = e.parent), e.getBlockParent().registerDeclaration(t), t.isClassDeclaration() && t.node.id) {
        let i = t.node.id.name;
        t.scope.bindings[i] = t.scope.parent.getBinding(i);
      }
    },
    CatchClause(t) {
      t.scope.registerBinding("let", t);
    },
    Function(t) {
      let e = t.get("params");
      for (let s of e)
        t.scope.registerBinding("param", s);
      t.isFunctionExpression() && t.node.id && !t.node.id[sJ] && t.scope.registerBinding("local", t.get("id"), t);
    },
    ClassExpression(t) {
      t.node.id && !t.node.id[sJ] && t.scope.registerBinding("local", t.get("id"), t);
    },
    TSTypeAnnotation(t) {
      t.skip();
    }
  }, rXe = 0, Po = class t {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.uid = void 0, this.path = void 0, this.block = void 0, this.inited = void 0, this.labels = 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;
      let {
        node: s
      } = e, r = tJ.scope.get(s);
      if (r?.path === e)
        return r;
      tJ.scope.set(s, this), this.uid = rXe++, this.block = s, this.path = e, this.labels = /* @__PURE__ */ new Map(), this.inited = !1;
    }
    get parent() {
      var e;
      let s, r = this.path;
      do {
        var i;
        let a = r.key === "key" || r.listKey === "decorators";
        r = r.parentPath, a && r.isMethod() && (r = r.parentPath), (i = r) != null && i.isScope() && (s = r);
      } while (r && !s);
      return (e = s) == null ? void 0 : e.scope;
    }
    generateDeclaredUidIdentifier(e) {
      let s = this.generateUidIdentifier(e);
      return this.push({
        id: s
      }), iJ(s);
    }
    generateUidIdentifier(e) {
      return wh(this.generateUid(e));
    }
    generateUid(e = "temp") {
      e = HYe(e).replace(/^_+/, "").replace(/\d+$/g, "");
      let s, r = 1;
      do
        s = `_${e}`, r > 1 && (s += r), r++;
      while (this.hasLabel(s) || this.hasBinding(s) || this.hasGlobal(s) || this.hasReference(s));
      let i = this.getProgramParent();
      return i.references[s] = !0, i.uids[s] = !0, s;
    }
    generateUidBasedOnNode(e, s) {
      let r = [];
      wr(e, r);
      let i = r.join("$");
      return i = i.replace(/^_/, "") || s || "ref", this.generateUid(i.slice(0, 20));
    }
    generateUidIdentifierBasedOnNode(e, s) {
      return wh(this.generateUidBasedOnNode(e, s));
    }
    isStatic(e) {
      if (aJ(e) || qYe(e) || lJ(e))
        return !0;
      if (Ch(e)) {
        let s = this.getBinding(e.name);
        return s ? s.constant : this.hasBinding(e.name);
      }
      return !1;
    }
    maybeGenerateMemoised(e, s) {
      if (this.isStatic(e))
        return null;
      {
        let r = this.generateUidIdentifierBasedOnNode(e);
        return s ? r : (this.push({
          id: r
        }), iJ(r));
      }
    }
    checkBlockScopedCollisions(e, s, r, i) {
      if (s === "param" || e.kind === "local") return;
      if (s === "let" || e.kind === "let" || e.kind === "const" || e.kind === "module" || e.kind === "param" && s === "const")
        throw this.path.hub.buildError(i, `Duplicate declaration "${r}"`, TypeError);
    }
    rename(e, s) {
      let r = this.getBinding(e);
      r && (s || (s = this.generateUidIdentifier(e).name), new bYe.default(r, e, s).rename(arguments[2]));
    }
    dump() {
      let e = "-".repeat(60);
      console.log(e);
      let s = this;
      do {
        console.log("#", s.block.type);
        for (let r of Object.keys(s.bindings)) {
          let i = s.bindings[r];
          console.log(" -", r, {
            constant: i.constant,
            references: i.references,
            violations: i.constantViolations.length,
            kind: i.kind
          });
        }
      } while (s = s.parent);
      console.log(e);
    }
    hasLabel(e) {
      return !!this.getLabel(e);
    }
    getLabel(e) {
      return this.labels.get(e);
    }
    registerLabel(e) {
      this.labels.set(e.node.label.name, e);
    }
    registerDeclaration(e) {
      if (e.isLabeledStatement())
        this.registerLabel(e);
      else if (e.isFunctionDeclaration())
        this.registerBinding("hoisted", e.get("id"), e);
      else if (e.isVariableDeclaration()) {
        let s = e.get("declarations"), {
          kind: r
        } = e.node;
        for (let i of s)
          this.registerBinding(r === "using" || r === "await using" ? "const" : r, i);
      } else if (e.isClassDeclaration()) {
        if (e.node.declare) return;
        this.registerBinding("let", e);
      } else if (e.isImportDeclaration()) {
        let s = e.node.importKind === "type" || e.node.importKind === "typeof", r = e.get("specifiers");
        for (let i of r) {
          let a = s || i.isImportSpecifier() && (i.node.importKind === "type" || i.node.importKind === "typeof");
          this.registerBinding(a ? "unknown" : "module", i);
        }
      } else if (e.isExportDeclaration()) {
        let s = e.get("declaration");
        (s.isClassDeclaration() || s.isFunctionDeclaration() || s.isVariableDeclaration()) && this.registerDeclaration(s);
      } else
        this.registerBinding("unknown", e);
    }
    buildUndefinedNode() {
      return tXe();
    }
    registerConstantViolation(e) {
      let s = e.getAssignmentIdentifiers();
      for (let i of Object.keys(s)) {
        var r;
        (r = this.getBinding(i)) == null || r.reassign(e);
      }
    }
    registerBinding(e, s, r = s) {
      if (!e) throw new ReferenceError("no `kind`");
      if (s.isVariableDeclaration()) {
        let o = s.get("declarations");
        for (let l of o)
          this.registerBinding(e, l);
        return;
      }
      let i = this.getProgramParent(), a = s.getOuterBindingIdentifiers(!0);
      for (let o of Object.keys(a)) {
        i.references[o] = !0;
        for (let l of a[o]) {
          let u = this.getOwnBinding(o);
          if (u) {
            if (u.identifier === l) continue;
            this.checkBlockScopedCollisions(u, e, o, l);
          }
          u ? u.reassign(r) : this.bindings[o] = new SYe.default({
            identifier: l,
            scope: this,
            path: r,
            kind: e
          });
        }
      }
    }
    addGlobal(e) {
      this.globals[e.name] = e;
    }
    hasUid(e) {
      let s = this;
      do
        if (s.uids[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasGlobal(e) {
      let s = this;
      do
        if (s.globals[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasReference(e) {
      return !!this.getProgramParent().references[e];
    }
    isPure(e, s) {
      if (Ch(e)) {
        let o = this.getBinding(e.name);
        return o ? s ? o.constant : !0 : !1;
      } else {
        if (aJ(e) || QYe(e) || lJ(e) || ZYe(e))
          return !0;
        if (CYe(e)) {
          var r;
          return e.superClass && !this.isPure(e.superClass, s) || ((r = e.decorators) == null ? void 0 : r.length) > 0 ? !1 : this.isPure(e.
          body, s);
        } else if (wYe(e)) {
          for (let o of e.body)
            if (!this.isPure(o, s)) return !1;
          return !0;
        } else {
          if (vYe(e))
            return this.isPure(e.left, s) && this.isPure(e.right, s);
          if (hJ(e) || zYe(e)) {
            for (let o of e.elements)
              if (o !== null && !this.isPure(o, s)) return !1;
            return !0;
          } else if (MYe(e) || XYe(e)) {
            for (let o of e.properties)
              if (!this.isPure(o, s)) return !1;
            return !0;
          } else if (_Ye(e)) {
            var i;
            return !(e.computed && !this.isPure(e.key, s) || ((i = e.decorators) == null ? void 0 : i.length) > 0);
          } else if (FYe(e)) {
            var a;
            return !(e.computed && !this.isPure(e.key, s) || ((a = e.decorators) == null ? void 0 : a.length) > 0 || (GYe(e) || e.static) &&
            e.value !== null && !this.isPure(e.value, s));
          } else {
            if (KYe(e))
              return this.isPure(e.argument, s);
            if (dJ(e)) {
              for (let o of e.expressions)
                if (!this.isPure(o, s)) return !1;
              return !0;
            } else return UYe(e) ? oJ(e.tag, "String.raw") && !this.hasBinding("String", {
              noGlobals: !0
            }) && this.isPure(e.quasi, s) : OYe(e) ? !e.computed && Ch(e.object) && e.object.name === "Symbol" && Ch(e.property) && e.property.
            name !== "for" && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) : nJ(e) ? oJ(e.callee, "Symbol.for") && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) && e.arguments.length === 1 && cJ.isStringLiteral(e.arguments[0]) : jYe(e);
          }
        }
      }
    }
    setData(e, s) {
      return this.data[e] = s;
    }
    getData(e) {
      let s = this;
      do {
        let r = s.data[e];
        if (r != null) return r;
      } while (s = s.parent);
    }
    removeData(e) {
      let s = this;
      do
        s.data[e] != null && (s.data[e] = null);
      while (s = s.parent);
    }
    init() {
      this.inited || (this.inited = !0, this.crawl());
    }
    crawl() {
      let e = 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);
      let s = this;
      do {
        if (s.crawling) return;
        if (s.path.isProgram())
          break;
      } while (s = s.parent);
      let r = s, i = {
        references: [],
        constantViolations: [],
        assignments: []
      };
      if (this.crawling = !0, e.type !== "Program" && (0, EYe.isExplodedVisitor)(dS)) {
        for (let o of dS.enter)
          o.call(i, e, i);
        let a = dS[e.type];
        if (a)
          for (let o of a.enter)
            o.call(i, e, i);
      }
      e.traverse(dS, i), this.crawling = !1;
      for (let a of i.assignments) {
        let o = a.getAssignmentIdentifiers();
        for (let l of Object.keys(o))
          a.scope.getBinding(l) || r.addGlobal(o[l]);
        a.scope.registerConstantViolation(a);
      }
      for (let a of i.references) {
        let o = a.scope.getBinding(a.node.name);
        o ? o.reference(a) : r.addGlobal(a.node);
      }
      for (let a of i.constantViolations)
        a.scope.registerConstantViolation(a);
    }
    push(e) {
      let s = this.path;
      s.isPattern() ? s = this.getPatternParent().path : !s.isBlockStatement() && !s.isProgram() && (s = this.getBlockParent().path), s.isSwitchStatement() &&
      (s = (this.getFunctionParent() || this.getProgramParent()).path);
      let {
        init: r,
        unique: i,
        kind: a = "var",
        id: o
      } = e;
      if (!r && !i && (a === "var" || a === "let") && s.isFunction() && !s.node.name && nJ(s.parent, {
        callee: s.node
      }) && s.parent.arguments.length <= s.node.params.length && Ch(o)) {
        s.pushContainer("params", o), s.scope.registerBinding("param", s.get("params")[s.node.params.length - 1]);
        return;
      }
      (s.isLoop() || s.isCatchClause() || s.isFunction()) && (s.ensureBlock(), s = s.get("body"));
      let l = e._blockHoist == null ? 2 : e._blockHoist, u = `declaration:${a}:${l}`, c = !i && s.getData(u);
      if (!c) {
        let f = JYe(a, []);
        f._blockHoist = l, [c] = s.unshiftContainer("body", [f]), i || s.setData(u, c);
      }
      let p = YYe(o, r), h = c.node.declarations.push(p);
      s.scope.registerBinding(a, c.get("declarations")[h - 1]);
    }
    getProgramParent() {
      let e = this;
      do
        if (e.path.isProgram())
          return e;
      while (e = e.parent);
      throw new Error("Couldn't find a Program");
    }
    getFunctionParent() {
      let e = this;
      do
        if (e.path.isFunctionParent())
          return e;
      while (e = e.parent);
      return null;
    }
    getBlockParent() {
      let e = this;
      do
        if (e.path.isBlockParent())
          return e;
      while (e = e.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getPatternParent() {
      let e = this;
      do
        if (!e.path.isPattern())
          return e.getBlockParent();
      while (e = e.parent.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getAllBindings() {
      let e = /* @__PURE__ */ Object.create(null), s = this;
      do {
        for (let r of Object.keys(s.bindings))
          r in e || (e[r] = s.bindings[r]);
        s = s.parent;
      } while (s);
      return e;
    }
    bindingIdentifierEquals(e, s) {
      return this.getBindingIdentifier(e) === s;
    }
    getBinding(e) {
      let s = this, r;
      do {
        let a = s.getOwnBinding(e);
        if (a) {
          var i;
          if (!((i = r) != null && i.isPattern() && a.kind !== "param" && a.kind !== "local"))
            return a;
        } else if (!a && e === "arguments" && s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
        r = s.path;
      } while (s = s.parent);
    }
    getOwnBinding(e) {
      return this.bindings[e];
    }
    getBindingIdentifier(e) {
      var s;
      return (s = this.getBinding(e)) == null ? void 0 : s.identifier;
    }
    getOwnBindingIdentifier(e) {
      let s = this.bindings[e];
      return s?.identifier;
    }
    hasOwnBinding(e) {
      return !!this.getOwnBinding(e);
    }
    hasBinding(e, s) {
      if (!e) return !1;
      let r = this;
      do
        if (r.hasOwnBinding(e))
          return !0;
      while (r = r.parent);
      let i, a;
      return typeof s == "object" ? (i = s.noGlobals, a = s.noUids) : typeof s == "boolean" && (i = s), !!(!a && this.hasUid(e) || !i && t.globals.
      includes(e) || !i && t.contextVariables.includes(e));
    }
    parentHasBinding(e, s) {
      var r;
      return (r = this.parent) == null ? void 0 : r.hasBinding(e, s);
    }
    moveBindingTo(e, s) {
      let r = this.getBinding(e);
      r && (r.scope.removeOwnBinding(e), r.scope = s, s.bindings[e] = r);
    }
    removeOwnBinding(e) {
      delete this.bindings[e];
    }
    removeBinding(e) {
      var s;
      (s = this.getBinding(e)) == null || s.scope.removeOwnBinding(e);
      let r = this;
      do
        r.uids[e] && (r.uids[e] = !1);
      while (r = r.parent);
    }
    hoistVariables(e = (s) => this.push({
      id: s
    })) {
      this.crawl();
      let s = /* @__PURE__ */ new Set();
      for (let i of Object.keys(this.bindings)) {
        let a = this.bindings[i];
        if (!a) continue;
        let {
          path: o
        } = a;
        if (!o.isVariableDeclarator()) continue;
        let {
          parent: l,
          parentPath: u
        } = o;
        if (l.kind !== "var" || s.has(l)) continue;
        s.add(o.parent);
        let c, p = [];
        for (let h of l.declarations) {
          var r;
          (r = c) != null || (c = h.id), h.init && p.push(AYe("=", h.id, h.init));
          let f = Object.keys(pJ(h, !1, !0, !0));
          for (let d of f)
            e(wh(d), h.init != null);
        }
        if (u.parentPath.isFor({
          left: l
        }))
          u.replaceWith(c);
        else if (p.length === 0)
          u.remove();
        else {
          let h = p.length === 1 ? p[0] : sXe(p);
          u.parentPath.isForStatement({
            init: l
          }) ? u.replaceWith(h) : u.replaceWith(WYe(h));
        }
      }
    }
  };
  mS.default = Po;
  Po.globals = Object.keys(PYe.builtin);
  Po.contextVariables = ["arguments", "undefined", "Infinity", "NaN"];
  Po.prototype._renameFromMap = /* @__PURE__ */ n(function(e, s, r, i) {
    e[s] && (e[r] = i, e[s] = null);
  }, "_renameFromMap"), Po.prototype.traverse = function(t, e, s) {
    (0, xYe.default)(t, e, this, s, this.path);
  }, Po.prototype._generateUid = /* @__PURE__ */ n(function(e, s) {
    let r = e;
    return s > 1 && (r += s), `_${r}`;
  }, "_generateUid"), Po.prototype.toArray = /* @__PURE__ */ n(function(e, s, r) {
    if (Ch(e)) {
      let o = this.getBinding(e.name);
      if (o != null && o.constant && o.path.isGenericType("Array"))
        return e;
    }
    if (hJ(e))
      return e;
    if (Ch(e, {
      name: "arguments"
    }))
      return rJ(FD(FD(FD(wh("Array"), wh("prototype")), wh("slice")), wh("call")), [e]);
    let i, a = [e];
    return s === !0 ? i = "toConsumableArray" : typeof s == "number" ? (a.push($Ye(s)), i = "slicedToArray") : i = "toArray", r && (a.unshift(
    this.path.hub.addHelper(i)), i = "maybeArrayLike"), rJ(this.path.hub.addHelper(i), a);
  }, "toArray"), Po.prototype.getAllBindingsOfKind = /* @__PURE__ */ n(function(...e) {
    let s = /* @__PURE__ */ Object.create(null);
    for (let r of e) {
      let i = this;
      do {
        for (let a of Object.keys(i.bindings)) {
          let o = i.bindings[a];
          o.kind === r && (s[a] = o);
        }
        i = i.parent;
      } while (i);
    }
    return s;
  }, "getAllBindingsOfKind"), Object.defineProperties(Po.prototype, {
    parentBlock: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.parent;
      }
    },
    hub: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.hub;
      }
    }
  });
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/source-map.js
var mJ = g((yS) => {
  "use strict";
  Object.defineProperty(yS, "__esModule", {
    value: !0
  });
  yS.default = void 0;
  var $c = fh(), RD = Oc(), qD = class {
    static {
      n(this, "SourceMap");
    }
    constructor(e, s) {
      var r;
      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;
      let i = this._map = new $c.GenMapping({
        sourceRoot: e.sourceRoot
      });
      if (this._sourceFileName = (r = e.sourceFileName) == null ? void 0 : r.replace(/\\/g, "/"), this._rawMappings = void 0, e.inputSourceMap) {
        this._inputMap = new RD.TraceMap(e.inputSourceMap);
        let o = this._inputMap.resolvedSources;
        if (o.length)
          for (let l = 0; l < o.length; l++) {
            var a;
            (0, $c.setSourceContent)(i, o[l], (a = this._inputMap.sourcesContent) == null ? void 0 : a[l]);
          }
      }
      if (typeof s == "string" && !e.inputSourceMap)
        (0, $c.setSourceContent)(i, this._sourceFileName, s);
      else if (typeof s == "object")
        for (let o of Object.keys(s))
          (0, $c.setSourceContent)(i, o.replace(/\\/g, "/"), s[o]);
    }
    get() {
      return (0, $c.toEncodedMap)(this._map);
    }
    getDecoded() {
      return (0, $c.toDecodedMap)(this._map);
    }
    getRawMappings() {
      return this._rawMappings || (this._rawMappings = (0, $c.allMappings)(this._map));
    }
    mark(e, s, r, i, a, o) {
      var l;
      this._rawMappings = void 0;
      let u;
      if (s != null)
        if (this._inputMap) {
          if (u = (0, RD.originalPositionFor)(this._inputMap, {
            line: s,
            column: r
          }), !u.name && a) {
            let c = (0, RD.originalPositionFor)(this._inputMap, a);
            c.name && (i = c.name);
          }
        } else
          u = {
            source: o?.replace(/\\/g, "/") || this._sourceFileName,
            line: s,
            column: r
          };
      (0, $c.maybeAddMapping)(this._map, {
        name: i,
        generated: e,
        source: (l = u) == null ? void 0 : l.source,
        original: u
      });
    }
  };
  yS.default = qD;
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/buffer.js
var yJ = g((gS) => {
  "use strict";
  Object.defineProperty(gS, "__esModule", {
    value: !0
  });
  gS.default = void 0;
  var UD = class {
    static {
      n(this, "Buffer");
    }
    constructor(e, s) {
      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 = e, this._indentChar = s;
      for (let r = 0; r < 64; r++)
        this._fastIndentations.push(s.repeat(r));
      this._allocQueue();
    }
    _allocQueue() {
      let e = this._queue;
      for (let s = 0; s < 16; s++)
        e.push({
          char: 0,
          repeat: 1,
          line: void 0,
          column: void 0,
          identifierName: void 0,
          identifierNamePos: void 0,
          filename: ""
        });
    }
    _pushQueue(e, s, r, i, a) {
      let o = this._queueCursor;
      o === this._queue.length && this._allocQueue();
      let l = this._queue[o];
      l.char = e, l.repeat = s, l.line = r, l.column = i, 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();
      let e = this._map, s = {
        code: (this._buf + this._str).trimRight(),
        decodedMap: e?.getDecoded(),
        get __mergedMap() {
          return this.map;
        },
        get map() {
          let r = e ? e.get() : null;
          return s.map = r, r;
        },
        set map(r) {
          Object.defineProperty(s, "map", {
            value: r,
            writable: !0
          });
        },
        get rawMappings() {
          let r = e?.getRawMappings();
          return s.rawMappings = r, r;
        },
        set rawMappings(r) {
          Object.defineProperty(s, "rawMappings", {
            value: r,
            writable: !0
          });
        }
      };
      return s;
    }
    append(e, s) {
      this._flush(), this._append(e, this._sourcePosition, s);
    }
    appendChar(e) {
      this._flush(), this._appendChar(e, 1, this._sourcePosition);
    }
    queue(e) {
      if (e === 10)
        for (; this._queueCursor !== 0; ) {
          let r = this._queue[this._queueCursor - 1].char;
          if (r !== 32 && r !== 9)
            break;
          this._queueCursor--;
        }
      let s = this._sourcePosition;
      this._pushQueue(e, 1, s.line, s.column, s.filename);
    }
    queueIndentation(e) {
      e !== 0 && this._pushQueue(-1, e, void 0, void 0, void 0);
    }
    _flush() {
      let e = this._queueCursor, s = this._queue;
      for (let r = 0; r < e; r++) {
        let i = s[r];
        this._appendChar(i.char, i.repeat, i);
      }
      this._queueCursor = 0;
    }
    _appendChar(e, s, r) {
      if (this._last = e, e === -1) {
        let i = this._fastIndentations[s];
        i !== void 0 ? this._str += i : this._str += s > 1 ? this._indentChar.repeat(s) : this._indentChar;
      } else
        this._str += s > 1 ? String.fromCharCode(e).repeat(s) : String.fromCharCode(e);
      e !== 10 ? (this._mark(r.line, r.column, r.identifierName, r.identifierNamePos, r.filename), this._position.column += s) : (this._position.
      line++, this._position.column = 0), this._canMarkIdName && (r.identifierName = void 0, r.identifierNamePos = void 0);
    }
    _append(e, s, r) {
      let i = e.length, a = this._position;
      if (this._last = e.charCodeAt(i - 1), ++this._appendCount > 4096 ? (+this._str, this._buf += this._str, this._str = e, this._appendCount =
      0) : this._str += e, !r && !this._map) {
        a.column += i;
        return;
      }
      let {
        column: o,
        identifierName: l,
        identifierNamePos: u,
        filename: c
      } = s, p = s.line;
      (l != null || u != null) && this._canMarkIdName && (s.identifierName = void 0, s.identifierNamePos = void 0);
      let h = e.indexOf(`
`), f = 0;
      for (h !== 0 && this._mark(p, o, l, u, c); h !== -1; )
        a.line++, a.column = 0, f = h + 1, f < i && p !== void 0 && this._mark(++p, 0, null, null, c), h = e.indexOf(`
`, f);
      a.column += i - f;
    }
    _mark(e, s, r, i, a) {
      var o;
      (o = this._map) == null || o.mark(this._position, e, s, r, i, a);
    }
    removeTrailingNewline() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 10 && this._queueCursor--;
    }
    removeLastSemicolon() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 59 && this._queueCursor--;
    }
    getLastChar() {
      let e = this._queueCursor;
      return e !== 0 ? this._queue[e - 1].char : this._last;
    }
    getNewlineCount() {
      let e = this._queueCursor, s = 0;
      if (e === 0) return this._last === 10 ? 1 : 0;
      for (let r = e - 1; r >= 0 && this._queue[r].char === 10; r--)
        s++;
      return s === e && this._last === 10 ? s + 1 : s;
    }
    endsWithCharAndNewline() {
      let e = this._queue, s = this._queueCursor;
      if (s !== 0)
        return e[s - 1].char !== 10 ? void 0 : s > 1 ? e[s - 2].char : this._last;
    }
    hasContent() {
      return this._queueCursor !== 0 || !!this._last;
    }
    exactSource(e, s) {
      if (!this._map) {
        s();
        return;
      }
      this.source("start", e);
      let r = e.identifierName, i = this._sourcePosition;
      r && (this._canMarkIdName = !1, i.identifierName = r), s(), r && (this._canMarkIdName = !0, i.identifierName = void 0, i.identifierNamePos =
      void 0), this.source("end", e);
    }
    source(e, s) {
      this._map && this._normalizePosition(e, s, 0);
    }
    sourceWithOffset(e, s, r) {
      this._map && this._normalizePosition(e, s, r);
    }
    _normalizePosition(e, s, r) {
      let i = s[e], a = this._sourcePosition;
      i && (a.line = i.line, a.column = Math.max(i.column + r, 0), a.filename = s.filename);
    }
    getCurrentColumn() {
      let e = this._queue, s = this._queueCursor, r = -1, i = 0;
      for (let a = 0; a < s; a++) {
        let o = e[a];
        o.char === 10 && (r = i), i += o.repeat;
      }
      return r === -1 ? this._position.column + i : i - 1 - r;
    }
    getCurrentLine() {
      let e = 0, s = this._queue;
      for (let r = 0; r < this._queueCursor; r++)
        s[r].char === 10 && e++;
      return this._position.line + e;
    }
  };
  gS.default = UD;
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/node/whitespace.js
var SJ = g((bS) => {
  "use strict";
  Object.defineProperty(bS, "__esModule", {
    value: !0
  });
  bS.nodes = void 0;
  var iXe = fe(), {
    FLIPPED_ALIAS_KEYS: nXe,
    isArrayExpression: aXe,
    isAssignmentExpression: TJ,
    isBinary: bJ,
    isBlockStatement: oXe,
    isCallExpression: xJ,
    isFunction: _g,
    isIdentifier: TS,
    isLiteral: lXe,
    isMemberExpression: KD,
    isObjectExpression: uXe,
    isOptionalCallExpression: cXe,
    isOptionalMemberExpression: pXe,
    isStringLiteral: hXe
  } = iXe;
  function Bd(t, e) {
    return t && (KD(t) || pXe(t) ? (Bd(t.object, e), t.computed && Bd(t.property, e)) : bJ(t) || TJ(t) ? (Bd(t.left, e), Bd(t.right, e)) : xJ(
    t) || cXe(t) ? (e.hasCall = !0, Bd(t.callee, e)) : _g(t) ? e.hasFunction = !0 : TS(t) && (e.hasHelper = e.hasHelper || t.callee && ou(t.
    callee))), e;
  }
  n(Bd, "crawlInternal");
  function gJ(t) {
    return Bd(t, {
      hasCall: !1,
      hasFunction: !1,
      hasHelper: !1
    });
  }
  n(gJ, "crawl");
  function ou(t) {
    return t ? KD(t) ? ou(t.object) || ou(t.property) : TS(t) ? t.name === "require" || t.name.charCodeAt(0) === 95 : xJ(t) ? ou(t.callee) :
    bJ(t) || TJ(t) ? TS(t.left) && ou(t.left) || ou(t.right) : !1 : !1;
  }
  n(ou, "isHelper");
  function fXe(t) {
    return lXe(t) || uXe(t) || aXe(t) || TS(t) || KD(t);
  }
  n(fXe, "isType");
  var Ih = bS.nodes = {
    AssignmentExpression(t) {
      let e = gJ(t.right);
      if (e.hasCall && e.hasHelper || e.hasFunction)
        return e.hasFunction ? 3 : 2;
    },
    SwitchCase(t, e) {
      return (t.consequent.length || e.cases[0] === t ? 1 : 0) | (!t.consequent.length && e.cases[e.cases.length - 1] === t ? 2 : 0);
    },
    LogicalExpression(t) {
      if (_g(t.left) || _g(t.right))
        return 2;
    },
    Literal(t) {
      if (hXe(t) && t.value === "use strict")
        return 2;
    },
    CallExpression(t) {
      if (_g(t.callee) || ou(t))
        return 3;
    },
    OptionalCallExpression(t) {
      if (_g(t.callee))
        return 3;
    },
    VariableDeclaration(t) {
      for (let e = 0; e < t.declarations.length; e++) {
        let s = t.declarations[e], r = ou(s.id) && !fXe(s.init);
        if (!r && s.init) {
          let i = gJ(s.init);
          r = ou(s.init) && i.hasCall || i.hasFunction;
        }
        if (r)
          return 3;
      }
    },
    IfStatement(t) {
      if (oXe(t.consequent))
        return 3;
    }
  };
  Ih.ObjectProperty = Ih.ObjectTypeProperty = Ih.ObjectMethod = function(t, e) {
    if (e.properties[0] === t)
      return 1;
  };
  Ih.ObjectTypeCallProperty = function(t, e) {
    var s;
    if (e.callProperties[0] === t && !((s = e.properties) != null && s.length))
      return 1;
  };
  Ih.ObjectTypeIndexer = function(t, e) {
    var s, r;
    if (e.indexers[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length))
      return 1;
  };
  Ih.ObjectTypeInternalSlot = function(t, e) {
    var s, r, i;
    if (e.internalSlots[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length) && !((i = e.indexers) !=
    null && i.length))
      return 1;
  };
  [["Function", !0], ["Class", !0], ["Loop", !0], ["LabeledStatement", !0], ["SwitchStatement", !0], ["TryStatement", !0]].forEach(function([
  t, e]) {
    [t].concat(nXe[t] || []).forEach(function(s) {
      let r = e ? 3 : 0;
      Ih[s] = () => r;
    });
  });
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/node/parentheses.js
var NJ = g((Ps) => {
  "use strict";
  Object.defineProperty(Ps, "__esModule", {
    value: !0
  });
  Ps.AssignmentExpression = $Xe;
  Ps.Binary = CJ;
  Ps.BinaryExpression = RXe;
  Ps.ClassExpression = KXe;
  Ps.ArrowFunctionExpression = Ps.ConditionalExpression = IJ;
  Ps.DoExpression = IXe;
  Ps.FunctionExpression = VXe;
  Ps.FunctionTypeAnnotation = vXe;
  Ps.Identifier = JXe;
  Ps.LogicalExpression = HXe;
  Ps.NullableTypeAnnotation = AXe;
  Ps.ObjectExpression = wXe;
  Ps.OptionalIndexedAccessType = kXe;
  Ps.OptionalCallExpression = Ps.OptionalMemberExpression = WXe;
  Ps.SequenceExpression = qXe;
  Ps.TSSatisfiesExpression = Ps.TSAsExpression = DXe;
  Ps.TSConditionalType = OXe;
  Ps.TSConstructorType = Ps.TSFunctionType = jXe;
  Ps.TSInferType = BXe;
  Ps.TSInstantiationExpression = FXe;
  Ps.TSIntersectionType = LXe;
  Ps.UnaryLike = Ps.TSTypeAssertion = wJ;
  Ps.TSTypeOperator = MXe;
  Ps.TSUnionType = _Xe;
  Ps.IntersectionTypeAnnotation = Ps.UnionTypeAnnotation = NXe;
  Ps.UpdateExpression = CXe;
  Ps.AwaitExpression = Ps.YieldExpression = UXe;
  var dXe = fe(), Da = Hc(), {
    isArrayTypeAnnotation: mXe,
    isBinaryExpression: yXe,
    isCallExpression: gXe,
    isForOfStatement: TXe,
    isIndexedAccessType: bXe,
    isMemberExpression: AJ,
    isObjectPattern: xXe,
    isOptionalMemberExpression: SXe,
    isYieldExpression: PXe,
    isStatement: EXe
  } = dXe, PJ = /* @__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 EJ(t, e) {
    if (e === "BinaryExpression" || e === "LogicalExpression")
      return PJ.get(t.operator);
    if (e === "TSAsExpression" || e === "TSSatisfiesExpression")
      return PJ.get("in");
  }
  n(EJ, "getBinaryPrecedence");
  function VD(t) {
    return t === "TSAsExpression" || t === "TSSatisfiesExpression" || t === "TSTypeAssertion";
  }
  n(VD, "isTSTypeExpression");
  var xS = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "ClassDeclaration" || s === "ClassExpression") && e.superClass === t;
  }, "isClassExtendsClause"), SS = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "MemberExpression" || s === "OptionalMemberExpression") && e.object === t || (s === "CallExpression" || s === "OptionalCal\
lExpression" || s === "NewExpression") && e.callee === t || s === "TaggedTemplateExpression" && e.tag === t || s === "TSNonNullExpression";
  }, "hasPostfixPart");
  function AXe(t, e) {
    return mXe(e);
  }
  n(AXe, "NullableTypeAnnotation");
  function vXe(t, e, s) {
    let r = e.type;
    return r === "UnionTypeAnnotation" || r === "IntersectionTypeAnnotation" || r === "ArrayTypeAnnotation" || !!(s & Da.TokenContext.arrowFlowReturnType);
  }
  n(vXe, "FunctionTypeAnnotation");
  function CXe(t, e) {
    return SS(t, e) || xS(t, e);
  }
  n(CXe, "UpdateExpression");
  function vJ(t) {
    return !!(t & (Da.TokenContext.expressionStatement | Da.TokenContext.arrowBody));
  }
  n(vJ, "needsParenBeforeExpressionBrace");
  function wXe(t, e, s) {
    return vJ(s);
  }
  n(wXe, "ObjectExpression");
  function IXe(t, e, s) {
    return !t.async && !!(s & Da.TokenContext.expressionStatement);
  }
  n(IXe, "DoExpression");
  function CJ(t, e) {
    let s = e.type;
    if (t.type === "BinaryExpression" && t.operator === "**" && s === "BinaryExpression" && e.operator === "**")
      return e.left === t;
    if (xS(t, e) || SS(t, e) || s === "UnaryExpression" || s === "SpreadElement" || s === "AwaitExpression")
      return !0;
    let r = EJ(e, s);
    if (r != null) {
      let i = EJ(t, t.type);
      if (r === i && s === "BinaryExpression" && e.right === t || r > i)
        return !0;
    }
  }
  n(CJ, "Binary");
  function NXe(t, e) {
    let s = e.type;
    return s === "ArrayTypeAnnotation" || s === "NullableTypeAnnotation" || s === "IntersectionTypeAnnotation" || s === "UnionTypeAnnotation";
  }
  n(NXe, "UnionTypeAnnotation");
  function kXe(t, e) {
    return bXe(e) && e.objectType === t;
  }
  n(kXe, "OptionalIndexedAccessType");
  function DXe(t, e) {
    return (e.type === "AssignmentExpression" || e.type === "AssignmentPattern") && e.left === t || e.type === "BinaryExpression" && (e.operator ===
    "|" || e.operator === "&") && t === e.left ? !0 : CJ(t, e);
  }
  n(DXe, "TSAsExpression");
  function OXe(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType" || s === "TSTypeOperator" || s ===
    "TSTypeParameter" || (s === "TSIntersectionType" || s === "TSUnionType") && e.types[0] === t || s === "TSConditionalType" && (e.checkType ===
    t || e.extendsType === t);
  }
  n(OXe, "TSConditionalType");
  function _Xe(t, e) {
    let s = e.type;
    return s === "TSIntersectionType" || s === "TSTypeOperator" || s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t ||
    s === "TSOptionalType";
  }
  n(_Xe, "TSUnionType");
  function LXe(t, e) {
    let s = e.type;
    return s === "TSTypeOperator" || s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType";
  }
  n(LXe, "TSIntersectionType");
  function BXe(t, e) {
    let s = e.type;
    return !!(s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType" || t.typeParameter.constraint &&
    (s === "TSIntersectionType" || s === "TSUnionType") && e.types[0] === t);
  }
  n(BXe, "TSInferType");
  function MXe(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType";
  }
  n(MXe, "TSTypeOperator");
  function FXe(t, e) {
    let s = e.type;
    return (s === "CallExpression" || s === "OptionalCallExpression" || s === "NewExpression" || s === "TSInstantiationExpression") && !!e.typeParameters;
  }
  n(FXe, "TSInstantiationExpression");
  function jXe(t, e) {
    let s = e.type;
    return s === "TSIntersectionType" || s === "TSUnionType" || s === "TSTypeOperator" || s === "TSOptionalType" || s === "TSArrayType" || s ===
    "TSIndexedAccessType" && e.objectType === t || s === "TSConditionalType" && (e.checkType === t || e.extendsType === t);
  }
  n(jXe, "TSFunctionType");
  function RXe(t, e, s, r) {
    return t.operator === "in" && r;
  }
  n(RXe, "BinaryExpression");
  function qXe(t, e) {
    let s = e.type;
    return s === "SequenceExpression" || s === "ParenthesizedExpression" || s === "MemberExpression" && e.property === t || s === "OptionalM\
emberExpression" && e.property === t || s === "TemplateLiteral" ? !1 : s === "ClassDeclaration" ? !0 : s === "ForOfStatement" ? e.right === t :
    s === "ExportDefaultDeclaration" ? !0 : !EXe(e);
  }
  n(qXe, "SequenceExpression");
  function UXe(t, e) {
    let s = e.type;
    return s === "BinaryExpression" || s === "LogicalExpression" || s === "UnaryExpression" || s === "SpreadElement" || SS(t, e) || s === "A\
waitExpression" && PXe(t) || s === "ConditionalExpression" && t === e.test || xS(t, e) || VD(s);
  }
  n(UXe, "YieldExpression");
  function KXe(t, e, s) {
    return !!(s & (Da.TokenContext.expressionStatement | Da.TokenContext.exportDefault));
  }
  n(KXe, "ClassExpression");
  function wJ(t, e) {
    return SS(t, e) || yXe(e) && e.operator === "**" && e.left === t || xS(t, e);
  }
  n(wJ, "UnaryLike");
  function VXe(t, e, s) {
    return !!(s & (Da.TokenContext.expressionStatement | Da.TokenContext.exportDefault));
  }
  n(VXe, "FunctionExpression");
  function IJ(t, e) {
    let s = e.type;
    return s === "UnaryExpression" || s === "SpreadElement" || s === "BinaryExpression" || s === "LogicalExpression" || s === "ConditionalEx\
pression" && e.test === t || s === "AwaitExpression" || VD(s) ? !0 : wJ(t, e);
  }
  n(IJ, "ConditionalExpression");
  function WXe(t, e) {
    return gXe(e) && e.callee === t || AJ(e) && e.object === t;
  }
  n(WXe, "OptionalMemberExpression");
  function $Xe(t, e, s) {
    return vJ(s) && xXe(t.left) ? !0 : IJ(t, e);
  }
  n($Xe, "AssignmentExpression");
  function HXe(t, e) {
    let s = e.type;
    if (VD(s)) return !0;
    if (s !== "LogicalExpression") return !1;
    switch (t.operator) {
      case "||":
        return e.operator === "??" || e.operator === "&&";
      case "&&":
        return e.operator === "??";
      case "??":
        return e.operator !== "??";
    }
  }
  n(HXe, "LogicalExpression");
  function JXe(t, e, s, r, i) {
    var a;
    let o = e.type;
    if ((a = t.extra) != null && a.parenthesized && o === "AssignmentExpression" && e.left === t) {
      let l = e.right.type;
      if ((l === "FunctionExpression" || l === "ClassExpression") && e.right.id == null)
        return !0;
    }
    return i && i(t) !== t.name ? !1 : t.name === "let" ? (AJ(e, {
      object: t,
      computed: !0
    }) || SXe(e, {
      object: t,
      computed: !0,
      optional: !1
    })) && s & (Da.TokenContext.expressionStatement | Da.TokenContext.forHead | Da.TokenContext.forInHead) ? !0 : !!(s & Da.TokenContext.forOfHead) :
    t.name === "async" && TXe(e, {
      left: t,
      await: !1
    });
  }
  n(JXe, "Identifier");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/node/index.js
var Hc = g((lu) => {
  "use strict";
  Object.defineProperty(lu, "__esModule", {
    value: !0
  });
  lu.TokenContext = void 0;
  lu.isLastChild = uze;
  lu.needsParens = lze;
  lu.needsWhitespace = $D;
  lu.needsWhitespaceAfter = oze;
  lu.needsWhitespaceBefore = aze;
  var YXe = SJ(), XXe = NJ(), zXe = fe(), {
    FLIPPED_ALIAS_KEYS: GXe,
    VISITOR_KEYS: QXe,
    isCallExpression: kJ,
    isDecorator: ZXe,
    isExpressionStatement: eze,
    isMemberExpression: tze,
    isNewExpression: sze,
    isParenthesizedExpression: rze
  } = zXe, kqs = lu.TokenContext = {
    expressionStatement: 1,
    arrowBody: 2,
    exportDefault: 4,
    forHead: 8,
    forInHead: 16,
    forOfHead: 32,
    arrowFlowReturnType: 64
  };
  function DJ(t) {
    let e = /* @__PURE__ */ new Map();
    function s(r, i) {
      let a = e.get(r);
      e.set(r, a ? function(o, l, u, c, p) {
        var h;
        return (h = a(o, l, u, c, p)) != null ? h : i(o, l, u, c, p);
      } : i);
    }
    n(s, "add");
    for (let r of Object.keys(t)) {
      let i = GXe[r];
      if (i)
        for (let a of i)
          s(a, t[r]);
      else
        s(r, t[r]);
    }
    return e;
  }
  n(DJ, "expandAliases");
  var ize = DJ(XXe), nze = DJ(YXe.nodes);
  function OJ(t) {
    return kJ(t) ? !0 : tze(t) && OJ(t.object);
  }
  n(OJ, "isOrHasCallExpression");
  function $D(t, e, s) {
    var r;
    if (!t) return !1;
    eze(t) && (t = t.expression);
    let i = (r = nze.get(t.type)) == null ? void 0 : r(t, e);
    return typeof i == "number" ? (i & s) !== 0 : !1;
  }
  n($D, "needsWhitespace");
  function aze(t, e) {
    return $D(t, e, 1);
  }
  n(aze, "needsWhitespaceBefore");
  function oze(t, e) {
    return $D(t, e, 2);
  }
  n(oze, "needsWhitespaceAfter");
  function lze(t, e, s, r, i) {
    var a;
    return e ? sze(e) && e.callee === t && OJ(t) ? !0 : ZXe(e) ? !WD(t) && !(kJ(t) && WD(t.callee)) && !rze(t) : (a = ize.get(t.type)) == null ?
    void 0 : a(t, e, s, r, i) : !1;
  }
  n(lze, "needsParens");
  function WD(t) {
    switch (t.type) {
      case "Identifier":
        return !0;
      case "MemberExpression":
        return !t.computed && t.property.type === "Identifier" && WD(t.object);
      default:
        return !1;
    }
  }
  n(WD, "isDecoratorMemberExpression");
  function uze(t, e) {
    let s = QXe[t.type];
    for (let r = s.length - 1; r >= 0; r--) {
      let i = t[s[r]];
      if (i === e)
        return !0;
      if (Array.isArray(i)) {
        let a = i.length - 1;
        for (; a >= 0 && i[a] === null; ) a--;
        return a >= 0 && i[a] === e;
      } else if (i)
        return !1;
    }
    return !1;
  }
  n(uze, "isLastChild");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/token-map.js
var _J = g((PS) => {
  "use strict";
  Object.defineProperty(PS, "__esModule", {
    value: !0
  });
  PS.TokenMap = void 0;
  var cze = fe(), {
    traverseFast: pze,
    VISITOR_KEYS: hze
  } = cze, HD = class {
    static {
      n(this, "TokenMap");
    }
    constructor(e, s, r) {
      this._tokens = void 0, this._source = void 0, this._nodesToTokenIndexes = /* @__PURE__ */ new Map(), this._nodesOccurrencesCountCache =
      /* @__PURE__ */ new Map(), this._tokensCache = /* @__PURE__ */ new Map(), this._tokens = s, this._source = r, pze(e, (i) => {
        let a = this._getTokensIndexesOfNode(i);
        a.length > 0 && this._nodesToTokenIndexes.set(i, a);
      }), this._tokensCache = null;
    }
    has(e) {
      return this._nodesToTokenIndexes.has(e);
    }
    getIndexes(e) {
      return this._nodesToTokenIndexes.get(e);
    }
    find(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = 0; i < r.length; i++) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return o;
        }
      return null;
    }
    findLastIndex(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = r.length - 1; i >= 0; i--) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return a;
        }
      return -1;
    }
    findMatching(e, s, r = 0) {
      let i = this._nodesToTokenIndexes.get(e);
      if (i) {
        let a = 0, o = r;
        if (o > 1) {
          let l = this._nodesOccurrencesCountCache.get(e);
          l && l.test === s && l.count < o && (a = l.i + 1, r -= l.count + 1);
        }
        for (; a < i.length; a++) {
          let l = this._tokens[i[a]];
          if (this.matchesOriginal(l, s)) {
            if (r === 0)
              return o > 0 && this._nodesOccurrencesCountCache.set(e, {
                test: s,
                count: o,
                i: a
              }), l;
            r--;
          }
        }
      }
      return null;
    }
    matchesOriginal(e, s) {
      return e.end - e.start !== s.length ? !1 : e.value != null ? e.value === s : this._source.startsWith(s, e.start);
    }
    startMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[0]];
      return i.start !== e.start ? !1 : this.matchesOriginal(i, s);
    }
    endMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[r.length - 1]];
      return i.end !== e.end ? !1 : this.matchesOriginal(i, s);
    }
    _getTokensIndexesOfNode(e) {
      if (e.start == null || e.end == null) return [];
      let {
        first: s,
        last: r
      } = this._findTokensOfNode(e, 0, this._tokens.length - 1), i = s, a = fze(e);
      (e.type === "ExportNamedDeclaration" || e.type === "ExportDefaultDeclaration") && e.declaration && e.declaration.type === "ClassDeclar\
ation" && a.next();
      let o = [];
      for (let l of a) {
        if (l == null || l.start == null || l.end == null) continue;
        let u = this._findTokensOfNode(l, i, r), c = u.first;
        for (let p = i; p < c; p++) o.push(p);
        i = u.last + 1;
      }
      for (let l = i; l <= r; l++) o.push(l);
      return o;
    }
    _findTokensOfNode(e, s, r) {
      let i = this._tokensCache.get(e);
      if (i) return i;
      let a = this._findFirstTokenOfNode(e.start, s, r), o = this._findLastTokenOfNode(e.end, a, r);
      return this._tokensCache.set(e, {
        first: a,
        last: o
      }), {
        first: a,
        last: o
      };
    }
    _findFirstTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].start)
          r = i - 1;
        else if (e > this._tokens[i].start)
          s = i + 1;
        else
          return i;
      }
      return s;
    }
    _findLastTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].end)
          r = i - 1;
        else if (e > this._tokens[i].end)
          s = i + 1;
        else
          return i;
      }
      return r;
    }
  };
  PS.TokenMap = HD;
  function* fze(t) {
    if (t.type === "TemplateLiteral") {
      yield t.quasis[0];
      for (let s = 1; s < t.quasis.length; s++)
        yield t.expressions[s - 1], yield t.quasis[s];
      return;
    }
    let e = hze[t.type];
    for (let s of e) {
      let r = t[s];
      r && (Array.isArray(r) ? yield* r : yield r);
    }
  }
  n(fze, "childrenIterator");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/template-literals.js
var LJ = g((Md) => {
  "use strict";
  Object.defineProperty(Md, "__esModule", {
    value: !0
  });
  Md.TaggedTemplateExpression = dze;
  Md.TemplateElement = mze;
  Md.TemplateLiteral = gze;
  Md._printTemplate = yze;
  function dze(t) {
    this.print(t.tag), this.print(t.typeParameters), this.print(t.quasi);
  }
  n(dze, "TaggedTemplateExpression");
  function mze() {
    throw new Error("TemplateElement printing is handled in TemplateLiteral");
  }
  n(mze, "TemplateElement");
  function yze(t, e) {
    let s = t.quasis, r = "`";
    for (let i = 0; i < s.length - 1; i++)
      if (r += s[i].value.raw, this.token(r + "${", !0), this.print(e[i]), r = "}", this.tokenMap) {
        let a = this.tokenMap.findMatching(t, "}", i);
        a && this._catchUpTo(a.loc.start);
      }
    r += s[s.length - 1].value.raw, this.token(r + "`", !0);
  }
  n(yze, "_printTemplate");
  function gze(t) {
    this._printTemplate(t, t.expressions);
  }
  n(gze, "TemplateLiteral");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/expressions.js
var MJ = g((cr) => {
  "use strict";
  Object.defineProperty(cr, "__esModule", {
    value: !0
  });
  cr.LogicalExpression = cr.BinaryExpression = cr.AssignmentExpression = Vze;
  cr.AssignmentPattern = Kze;
  cr.AwaitExpression = jze;
  cr.BindExpression = Wze;
  cr.CallExpression = Mze;
  cr.ConditionalExpression = wze;
  cr.Decorator = _ze;
  cr.DoExpression = Aze;
  cr.EmptyStatement = qze;
  cr.ExpressionStatement = Uze;
  cr.Import = Fze;
  cr.MemberExpression = $ze;
  cr.MetaProperty = Hze;
  cr.ModuleExpression = Xze;
  cr.NewExpression = Ize;
  cr.OptionalCallExpression = Bze;
  cr.OptionalMemberExpression = Lze;
  cr.ParenthesizedExpression = vze;
  cr.PrivateName = Jze;
  cr.SequenceExpression = Nze;
  cr.Super = Dze;
  cr.ThisExpression = kze;
  cr.UnaryExpression = Eze;
  cr.UpdateExpression = Cze;
  cr.V8IntrinsicIdentifier = Yze;
  cr.YieldExpression = Rze;
  cr._shouldPrintDecoratorsBeforeExport = Oze;
  var Tze = fe(), bze = Hc(), {
    isCallExpression: xze,
    isLiteral: BJ,
    isMemberExpression: JD,
    isNewExpression: Sze,
    isPattern: Pze
  } = Tze;
  function Eze(t) {
    let {
      operator: e
    } = t;
    e === "void" || e === "delete" || e === "typeof" || e === "throw" ? (this.word(e), this.space()) : this.token(e), this.print(t.argument);
  }
  n(Eze, "UnaryExpression");
  function Aze(t) {
    t.async && (this.word("async", !0), this.space()), this.word("do"), this.space(), this.print(t.body);
  }
  n(Aze, "DoExpression");
  function vze(t) {
    this.tokenChar(40);
    let e = this.enterDelimited();
    this.print(t.expression), e(), this.rightParens(t);
  }
  n(vze, "ParenthesizedExpression");
  function Cze(t) {
    t.prefix ? (this.token(t.operator), this.print(t.argument)) : (this.print(t.argument, !0), this.token(t.operator));
  }
  n(Cze, "UpdateExpression");
  function wze(t) {
    this.print(t.test), this.space(), this.tokenChar(63), this.space(), this.print(t.consequent), this.space(), this.tokenChar(58), this.space(),
    this.print(t.alternate);
  }
  n(wze, "ConditionalExpression");
  function Ize(t, e) {
    if (this.word("new"), this.space(), this.print(t.callee), this.format.minified && t.arguments.length === 0 && !t.optional && !xze(e, {
      callee: t
    }) && !JD(e) && !Sze(e) || (this.print(t.typeArguments), this.print(t.typeParameters), t.optional && this.token("?."), t.arguments.length ===
    0 && this.tokenMap && !this.tokenMap.endMatches(t, ")")))
      return;
    this.tokenChar(40);
    let s = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), s(), this.rightParens(t);
  }
  n(Ize, "NewExpression");
  function Nze(t) {
    this.printList(t.expressions);
  }
  n(Nze, "SequenceExpression");
  function kze() {
    this.word("this");
  }
  n(kze, "ThisExpression");
  function Dze() {
    this.word("super");
  }
  n(Dze, "Super");
  function Oze(t) {
    return typeof this.format.decoratorsBeforeExport == "boolean" ? this.format.decoratorsBeforeExport : typeof t.start == "number" && t.start ===
    t.declaration.start;
  }
  n(Oze, "_shouldPrintDecoratorsBeforeExport");
  function _ze(t) {
    this.tokenChar(64), this.print(t.expression), this.newline();
  }
  n(_ze, "Decorator");
  function Lze(t) {
    let {
      computed: e
    } = t, {
      optional: s,
      property: r
    } = t;
    if (this.print(t.object), !e && JD(r))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    BJ(r) && typeof r.value == "number" && (e = !0), s && this.token("?."), e ? (this.tokenChar(91), this.print(r), this.tokenChar(93)) : (s ||
    this.tokenChar(46), this.print(r));
  }
  n(Lze, "OptionalMemberExpression");
  function Bze(t) {
    this.print(t.callee), this.print(t.typeParameters), t.optional && this.token("?."), this.print(t.typeArguments), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments), e(), this.rightParens(t);
  }
  n(Bze, "OptionalCallExpression");
  function Mze(t) {
    this.print(t.callee), this.print(t.typeArguments), this.print(t.typeParameters), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), e(), this.rightParens(t);
  }
  n(Mze, "CallExpression");
  function Fze() {
    this.word("import");
  }
  n(Fze, "Import");
  function jze(t) {
    this.word("await"), t.argument && (this.space(), this.printTerminatorless(t.argument));
  }
  n(jze, "AwaitExpression");
  function Rze(t) {
    this.word("yield", !0), t.delegate ? (this.tokenChar(42), t.argument && (this.space(), this.print(t.argument))) : t.argument && (this.space(),
    this.printTerminatorless(t.argument));
  }
  n(Rze, "YieldExpression");
  function qze() {
    this.semicolon(!0);
  }
  n(qze, "EmptyStatement");
  function Uze(t) {
    this.tokenContext |= bze.TokenContext.expressionStatement, this.print(t.expression), this.semicolon();
  }
  n(Uze, "ExpressionStatement");
  function Kze(t) {
    this.print(t.left), (t.left.type === "Identifier" || Pze(t.left)) && (t.left.optional && this.tokenChar(63), this.print(t.left.typeAnnotation)),
    this.space(), this.tokenChar(61), this.space(), this.print(t.right);
  }
  n(Kze, "AssignmentPattern");
  function Vze(t) {
    this.print(t.left), this.space(), t.operator === "in" || t.operator === "instanceof" ? this.word(t.operator) : (this.token(t.operator), this.
    _endsWithDiv = t.operator === "/"), this.space(), this.print(t.right);
  }
  n(Vze, "AssignmentExpression");
  function Wze(t) {
    this.print(t.object), this.token("::"), this.print(t.callee);
  }
  n(Wze, "BindExpression");
  function $ze(t) {
    if (this.print(t.object), !t.computed && JD(t.property))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    let e = t.computed;
    if (BJ(t.property) && typeof t.property.value == "number" && (e = !0), e) {
      let s = this.enterDelimited();
      this.tokenChar(91), this.print(t.property), this.tokenChar(93), s();
    } else
      this.tokenChar(46), this.print(t.property);
  }
  n($ze, "MemberExpression");
  function Hze(t) {
    this.print(t.meta), this.tokenChar(46), this.print(t.property);
  }
  n(Hze, "MetaProperty");
  function Jze(t) {
    this.tokenChar(35), this.print(t.id);
  }
  n(Jze, "PrivateName");
  function Yze(t) {
    this.tokenChar(37), this.word(t.name);
  }
  n(Yze, "V8IntrinsicIdentifier");
  function Xze(t) {
    this.word("module", !0), this.space(), this.tokenChar(123), this.indent();
    let {
      body: e
    } = t;
    (e.body.length || e.directives.length) && this.newline(), this.print(e), this.dedent(), this.rightBrace(t);
  }
  n(Xze, "ModuleExpression");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/statements.js
var qJ = g((Xr) => {
  "use strict";
  Object.defineProperty(Xr, "__esModule", {
    value: !0
  });
  Xr.BreakStatement = nGe;
  Xr.CatchClause = pGe;
  Xr.ContinueStatement = aGe;
  Xr.DebuggerStatement = dGe;
  Xr.DoWhileStatement = iGe;
  Xr.ForOfStatement = Xr.ForInStatement = void 0;
  Xr.ForStatement = sGe;
  Xr.IfStatement = tGe;
  Xr.LabeledStatement = uGe;
  Xr.ReturnStatement = oGe;
  Xr.SwitchCase = fGe;
  Xr.SwitchStatement = hGe;
  Xr.ThrowStatement = lGe;
  Xr.TryStatement = cGe;
  Xr.VariableDeclaration = mGe;
  Xr.VariableDeclarator = yGe;
  Xr.WhileStatement = rGe;
  Xr.WithStatement = eGe;
  var zze = fe(), YD = Hc(), {
    isFor: FJ,
    isForStatement: Gze,
    isIfStatement: Qze,
    isStatement: Zze
  } = zze;
  function eGe(t) {
    this.word("with"), this.space(), this.tokenChar(40), this.print(t.object), this.tokenChar(41), this.printBlock(t);
  }
  n(eGe, "WithStatement");
  function tGe(t) {
    this.word("if"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.space();
    let e = t.alternate && Qze(jJ(t.consequent));
    e && (this.tokenChar(123), this.newline(), this.indent()), this.printAndIndentOnComments(t.consequent), e && (this.dedent(), this.newline(),
    this.tokenChar(125)), t.alternate && (this.endsWith(125) && this.space(), this.word("else"), this.space(), this.printAndIndentOnComments(
    t.alternate));
  }
  n(tGe, "IfStatement");
  function jJ(t) {
    let {
      body: e
    } = t;
    return Zze(e) === !1 ? t : jJ(e);
  }
  n(jJ, "getLastStatement");
  function sGe(t) {
    this.word("for"), this.space(), this.tokenChar(40);
    {
      let e = this.enterForStatementInit();
      this.tokenContext |= YD.TokenContext.forHead, this.print(t.init), e();
    }
    this.tokenChar(59), t.test && (this.space(), this.print(t.test)), this.token(";", !1, 1), t.update && (this.space(), this.print(t.update)),
    this.tokenChar(41), this.printBlock(t);
  }
  n(sGe, "ForStatement");
  function rGe(t) {
    this.word("while"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.printBlock(t);
  }
  n(rGe, "WhileStatement");
  function RJ(t) {
    this.word("for"), this.space();
    let e = t.type === "ForOfStatement";
    e && t.await && (this.word("await"), this.space()), this.noIndentInnerCommentsHere(), this.tokenChar(40);
    {
      let s = e ? null : this.enterForStatementInit();
      this.tokenContext |= e ? YD.TokenContext.forOfHead : YD.TokenContext.forInHead, this.print(t.left), s?.();
    }
    this.space(), this.word(e ? "of" : "in"), this.space(), this.print(t.right), this.tokenChar(41), this.printBlock(t);
  }
  n(RJ, "ForXStatement");
  var Rqs = Xr.ForInStatement = RJ, qqs = Xr.ForOfStatement = RJ;
  function iGe(t) {
    this.word("do"), this.space(), this.print(t.body), this.space(), this.word("while"), this.space(), this.tokenChar(40), this.print(t.test),
    this.tokenChar(41), this.semicolon();
  }
  n(iGe, "DoWhileStatement");
  function ES(t, e) {
    e && (t.space(), t.printTerminatorless(e)), t.semicolon();
  }
  n(ES, "printStatementAfterKeyword");
  function nGe(t) {
    this.word("break"), ES(this, t.label);
  }
  n(nGe, "BreakStatement");
  function aGe(t) {
    this.word("continue"), ES(this, t.label);
  }
  n(aGe, "ContinueStatement");
  function oGe(t) {
    this.word("return"), ES(this, t.argument);
  }
  n(oGe, "ReturnStatement");
  function lGe(t) {
    this.word("throw"), ES(this, t.argument);
  }
  n(lGe, "ThrowStatement");
  function uGe(t) {
    this.print(t.label), this.tokenChar(58), this.space(), this.print(t.body);
  }
  n(uGe, "LabeledStatement");
  function cGe(t) {
    this.word("try"), this.space(), this.print(t.block), this.space(), t.handlers ? this.print(t.handlers[0]) : this.print(t.handler), t.finalizer &&
    (this.space(), this.word("finally"), this.space(), this.print(t.finalizer));
  }
  n(cGe, "TryStatement");
  function pGe(t) {
    this.word("catch"), this.space(), t.param && (this.tokenChar(40), this.print(t.param), this.print(t.param.typeAnnotation), this.tokenChar(
    41), this.space()), this.print(t.body);
  }
  n(pGe, "CatchClause");
  function hGe(t) {
    this.word("switch"), this.space(), this.tokenChar(40), this.print(t.discriminant), this.tokenChar(41), this.space(), this.tokenChar(123),
    this.printSequence(t.cases, !0, void 0, /* @__PURE__ */ n(function(s, r) {
      if (!s && t.cases[t.cases.length - 1] === r) return -1;
    }, "addNewlines")), this.rightBrace(t);
  }
  n(hGe, "SwitchStatement");
  function fGe(t) {
    t.test ? (this.word("case"), this.space(), this.print(t.test), this.tokenChar(58)) : (this.word("default"), this.tokenChar(58)), t.consequent.
    length && (this.newline(), this.printSequence(t.consequent, !0));
  }
  n(fGe, "SwitchCase");
  function dGe() {
    this.word("debugger"), this.semicolon();
  }
  n(dGe, "DebuggerStatement");
  function mGe(t, e) {
    t.declare && (this.word("declare"), this.space());
    let {
      kind: s
    } = t;
    s === "await using" ? (this.word("await"), this.space(), this.word("using", !0)) : this.word(s, s === "using"), this.space();
    let r = !1;
    if (!FJ(e))
      for (let i of t.declarations)
        i.init && (r = !0);
    if (this.printList(t.declarations, void 0, void 0, t.declarations.length > 1, r ? function(i) {
      this.token(",", !1, i), this.newline();
    } : void 0), FJ(e)) {
      if (Gze(e)) {
        if (e.init === t) return;
      } else if (e.left === t) return;
    }
    this.semicolon();
  }
  n(mGe, "VariableDeclaration");
  function yGe(t) {
    this.print(t.id), t.definite && this.tokenChar(33), this.print(t.id.typeAnnotation), t.init && (this.space(), this.tokenChar(61), this.space(),
    this.print(t.init));
  }
  n(yGe, "VariableDeclarator");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/classes.js
var UJ = g((Oa) => {
  "use strict";
  Object.defineProperty(Oa, "__esModule", {
    value: !0
  });
  Oa.ClassAccessorProperty = AGe;
  Oa.ClassBody = SGe;
  Oa.ClassExpression = Oa.ClassDeclaration = xGe;
  Oa.ClassMethod = CGe;
  Oa.ClassPrivateMethod = wGe;
  Oa.ClassPrivateProperty = vGe;
  Oa.ClassProperty = EGe;
  Oa.StaticBlock = NGe;
  Oa._classMethodHead = IGe;
  var gGe = fe(), {
    isExportDefaultDeclaration: TGe,
    isExportNamedDeclaration: bGe
  } = gGe;
  function xGe(t, e) {
    (!(TGe(e) || bGe(e)) || !this._shouldPrintDecoratorsBeforeExport(e)) && this.printJoin(t.decorators), t.declare && (this.word("declare"),
    this.space()), t.abstract && (this.word("abstract"), this.space()), this.word("class"), t.id && (this.space(), this.print(t.id)), this.print(
    t.typeParameters), t.superClass && (this.space(), this.word("extends"), this.space(), this.print(t.superClass), this.print(t.superTypeParameters)),
    t.implements && (this.space(), this.word("implements"), this.space(), this.printList(t.implements)), this.space(), this.print(t.body);
  }
  n(xGe, "ClassDeclaration");
  function SGe(t) {
    if (this.tokenChar(123), t.body.length === 0)
      this.tokenChar(125);
    else {
      this.newline();
      let e = PGe(this, t);
      e?.(-1);
      let s = this.enterDelimited();
      this.printJoin(t.body, !0, !0, e, !0), s(), this.endsWith(10) || this.newline(), this.rightBrace(t);
    }
  }
  n(SGe, "ClassBody");
  function PGe(t, e) {
    if (!t.tokenMap || e.start == null || e.end == null)
      return null;
    let s = t.tokenMap.getIndexes(e);
    if (!s) return null;
    let r = 1, i = 0, a = 0, o = /* @__PURE__ */ n(() => {
      for (; a < e.body.length && e.body[a].start == null; )
        a++;
    }, "advanceNextLocIndex");
    return o(), (l) => {
      a <= l && (a = l + 1, o());
      let u = a === e.body.length ? e.end : e.body[a].start, c;
      for (; r < s.length && t.tokenMap.matchesOriginal(c = t._tokens[s[r]], ";") && c.start < u; )
        t.token(";", void 0, i++), r++;
    };
  }
  n(PGe, "classBodyEmptySemicolonsPrinter");
  function EGe(t) {
    if (this.printJoin(t.decorators), !t.static && !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), t.computed ? (this.tokenChar(91), this.print(t.key), this.tokenChar(93)) : (this._variance(t), this.
    print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(),
    this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(EGe, "ClassProperty");
  function AGe(t) {
    var e;
    this.printJoin(t.decorators);
    let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
    s && this.catchUp(s), this.tsPrintClassMemberModifiers(t), this.word("accessor", !0), this.space(), t.computed ? (this.tokenChar(91), this.
    print(t.key), this.tokenChar(93)) : (this._variance(t), this.print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(
    33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(AGe, "ClassAccessorProperty");
  function vGe(t) {
    this.printJoin(t.decorators), this.tsPrintClassMemberModifiers(t), this.print(t.key), t.optional && this.tokenChar(63), t.definite && this.
    tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(vGe, "ClassPrivateProperty");
  function CGe(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(CGe, "ClassMethod");
  function wGe(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(wGe, "ClassPrivateMethod");
  function IGe(t) {
    if (this.printJoin(t.decorators), !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), this._methodHead(t);
  }
  n(IGe, "_classMethodHead");
  function NGe(t) {
    this.word("static"), this.space(), this.tokenChar(123), t.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(
    t.body, !0), this.rightBrace(t));
  }
  n(NGe, "StaticBlock");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/methods.js
var KJ = g((_a) => {
  "use strict";
  Object.defineProperty(_a, "__esModule", {
    value: !0
  });
  _a.ArrowFunctionExpression = qGe;
  _a.FunctionDeclaration = _a.FunctionExpression = RGe;
  _a._functionHead = jGe;
  _a._methodHead = MGe;
  _a._param = BGe;
  _a._parameters = LGe;
  _a._params = _Ge;
  _a._predicate = FGe;
  _a._shouldPrintArrowParamsParens = UGe;
  var kGe = fe(), DGe = Hc(), {
    isIdentifier: OGe
  } = kGe;
  function _Ge(t, e, s) {
    this.print(t.typeParameters);
    let r = KGe.call(this, e, s);
    r && this.sourceIdentifierName(r.name, r.pos), this.tokenChar(40), this._parameters(t.params, ")");
    let i = t.type === "ArrowFunctionExpression";
    this.print(t.returnType, i), this._noLineTerminator = i;
  }
  n(_Ge, "_params");
  function LGe(t, e) {
    let s = this.enterDelimited(), r = this.shouldPrintTrailingComma(e), i = t.length;
    for (let a = 0; a < i; a++)
      this._param(t[a]), (r || a < i - 1) && (this.token(",", null, a), this.space());
    this.token(e), s();
  }
  n(LGe, "_parameters");
  function BGe(t) {
    this.printJoin(t.decorators), this.print(t), t.optional && this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(BGe, "_param");
  function MGe(t) {
    let e = t.kind, s = t.key;
    (e === "get" || e === "set") && (this.word(e), this.space()), t.async && (this.word("async", !0), this.space()), (e === "method" || e ===
    "init") && t.generator && this.tokenChar(42), t.computed ? (this.tokenChar(91), this.print(s), this.tokenChar(93)) : this.print(s), t.optional &&
    this.tokenChar(63), this._params(t, t.computed && t.key.type !== "StringLiteral" ? void 0 : t.key, void 0);
  }
  n(MGe, "_methodHead");
  function FGe(t, e) {
    t.predicate && (t.returnType || this.tokenChar(58), this.space(), this.print(t.predicate, e));
  }
  n(FGe, "_predicate");
  function jGe(t, e) {
    t.async && (this.word("async"), this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.space()), this.word("function"), t.generator &&
    (this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.tokenChar(42)), this.space(), t.id && this.print(t.id), this._params(
    t, t.id, e), t.type !== "TSDeclareFunction" && this._predicate(t);
  }
  n(jGe, "_functionHead");
  function RGe(t, e) {
    this._functionHead(t, e), this.space(), this.print(t.body);
  }
  n(RGe, "FunctionExpression");
  function qGe(t, e) {
    t.async && (this.word("async", !0), this.space()), this._shouldPrintArrowParamsParens(t) ? this._params(t, void 0, e) : this.print(t.params[0],
    !0), this._predicate(t, !0), this.space(), this.printInnerComments(), this.token("=>"), this.space(), this.tokenContext |= DGe.TokenContext.
    arrowBody, this.print(t.body);
  }
  n(qGe, "ArrowFunctionExpression");
  function UGe(t) {
    var e, s;
    if (t.params.length !== 1 || t.typeParameters || t.returnType || t.predicate)
      return !0;
    let r = t.params[0];
    if (!OGe(r) || r.typeAnnotation || r.optional || (e = r.leadingComments) != null && e.length || (s = r.trailingComments) != null && s.length)
      return !0;
    if (this.tokenMap) {
      if (t.loc == null || this.tokenMap.findMatching(t, "(") !== null) return !0;
      let i = this.tokenMap.findMatching(t, "=>");
      return i?.loc == null ? !0 : i.loc.start.line !== t.loc.start.line;
    }
    return !!this.format.retainLines;
  }
  n(UGe, "_shouldPrintArrowParamsParens");
  function KGe(t, e) {
    let s = t;
    if (!s && e) {
      let u = e.type;
      u === "VariableDeclarator" ? s = e.id : u === "AssignmentExpression" || u === "AssignmentPattern" ? s = e.left : u === "ObjectProperty" ||
      u === "ClassProperty" ? (!e.computed || e.key.type === "StringLiteral") && (s = e.key) : (u === "ClassPrivateProperty" || u === "Class\
AccessorProperty") && (s = e.key);
    }
    if (!s) return;
    let r;
    if (s.type === "Identifier") {
      var i, a;
      r = {
        pos: (i = s.loc) == null ? void 0 : i.start,
        name: ((a = s.loc) == null ? void 0 : a.identifierName) || s.name
      };
    } else if (s.type === "PrivateName") {
      var o;
      r = {
        pos: (o = s.loc) == null ? void 0 : o.start,
        name: "#" + s.id.name
      };
    } else if (s.type === "StringLiteral") {
      var l;
      r = {
        pos: (l = s.loc) == null ? void 0 : l.start,
        name: s.value
      };
    }
    return r;
  }
  n(KGe, "_getFuncIdName");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/modules.js
var XD = g((An) => {
  "use strict";
  Object.defineProperty(An, "__esModule", {
    value: !0
  });
  An.ExportAllDeclaration = sQe;
  An.ExportDefaultDeclaration = iQe;
  An.ExportDefaultSpecifier = QGe;
  An.ExportNamedDeclaration = rQe;
  An.ExportNamespaceSpecifier = eQe;
  An.ExportSpecifier = ZGe;
  An.ImportAttribute = aQe;
  An.ImportDeclaration = nQe;
  An.ImportDefaultSpecifier = GGe;
  An.ImportExpression = lQe;
  An.ImportNamespaceSpecifier = oQe;
  An.ImportSpecifier = zGe;
  An._printAttributes = tQe;
  var VGe = fe(), WGe = Hc(), {
    isClassDeclaration: $Ge,
    isExportDefaultSpecifier: HGe,
    isExportNamespaceSpecifier: JGe,
    isImportDefaultSpecifier: YGe,
    isImportNamespaceSpecifier: XGe,
    isStatement: WJ
  } = VGe;
  function zGe(t) {
    (t.importKind === "type" || t.importKind === "typeof") && (this.word(t.importKind), this.space()), this.print(t.imported), t.local && t.
    local.name !== t.imported.name && (this.space(), this.word("as"), this.space(), this.print(t.local));
  }
  n(zGe, "ImportSpecifier");
  function GGe(t) {
    this.print(t.local);
  }
  n(GGe, "ImportDefaultSpecifier");
  function QGe(t) {
    this.print(t.exported);
  }
  n(QGe, "ExportDefaultSpecifier");
  function ZGe(t) {
    t.exportKind === "type" && (this.word("type"), this.space()), this.print(t.local), t.exported && t.local.name !== t.exported.name && (this.
    space(), this.word("as"), this.space(), this.print(t.exported));
  }
  n(ZGe, "ExportSpecifier");
  function eQe(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.exported);
  }
  n(eQe, "ExportNamespaceSpecifier");
  var VJ = !1;
  function tQe(t, e) {
    let {
      importAttributesKeyword: s
    } = this.format, {
      attributes: r,
      assertions: i
    } = t;
    r && !s && !VJ && (VJ = !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'));
    let a = s === "assert" || !s && i;
    if (this.word(a ? "assert" : "with"), this.space(), !a && s !== "with") {
      this.printList(r || i);
      return;
    }
    let o = e ? 1 : 0;
    this.token("{", null, o), this.space(), this.printList(r || i, this.shouldPrintTrailingComma("}")), this.space(), this.token("}", null, o);
  }
  n(tQe, "_printAttributes");
  function sQe(t) {
    var e, s;
    this.word("export"), this.space(), t.exportKind === "type" && (this.word("type"), this.space()), this.tokenChar(42), this.space(), this.
    word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0),
    this.space(), this._printAttributes(t, !1)) : this.print(t.source), this.semicolon();
  }
  n(sQe, "ExportAllDeclaration");
  function $J(t, e) {
    $Ge(e.declaration) && t._shouldPrintDecoratorsBeforeExport(e) && t.printJoin(e.declaration.decorators);
  }
  n($J, "maybePrintDecoratorsBeforeExport");
  function rQe(t) {
    if ($J(this, t), this.word("export"), this.space(), t.declaration) {
      let r = t.declaration;
      this.print(r), WJ(r) || this.semicolon();
    } else {
      t.exportKind === "type" && (this.word("type"), this.space());
      let r = t.specifiers.slice(0), i = !1;
      for (; ; ) {
        let o = r[0];
        if (HGe(o) || JGe(o))
          i = !0, this.print(r.shift()), r.length && (this.tokenChar(44), this.space());
        else
          break;
      }
      let a = !1;
      if ((r.length || !r.length && !i) && (a = !0, this.tokenChar(123), r.length && (this.space(), this.printList(r, this.shouldPrintTrailingComma(
      "}")), this.space()), this.tokenChar(125)), t.source) {
        var e, s;
        this.space(), this.word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.
        print(t.source, !0), this.space(), this._printAttributes(t, a)) : this.print(t.source);
      }
      this.semicolon();
    }
  }
  n(rQe, "ExportNamedDeclaration");
  function iQe(t) {
    $J(this, t), this.word("export"), this.noIndentInnerCommentsHere(), this.space(), this.word("default"), this.space(), this.tokenContext |=
    WGe.TokenContext.exportDefault;
    let e = t.declaration;
    this.print(e), WJ(e) || this.semicolon();
  }
  n(iQe, "ExportDefaultDeclaration");
  function nQe(t) {
    var e, s;
    this.word("import"), this.space();
    let r = t.importKind === "type" || t.importKind === "typeof";
    r ? (this.noIndentInnerCommentsHere(), this.word(t.importKind), this.space()) : t.module ? (this.noIndentInnerCommentsHere(), this.word(
    "module"), this.space()) : t.phase && (this.noIndentInnerCommentsHere(), this.word(t.phase), this.space());
    let i = t.specifiers.slice(0), a = !!i.length;
    for (; a; ) {
      let l = i[0];
      if (YGe(l) || XGe(l))
        this.print(i.shift()), i.length && (this.tokenChar(44), this.space());
      else
        break;
    }
    let o = !1;
    i.length ? (o = !0, this.tokenChar(123), this.space(), this.printList(i, this.shouldPrintTrailingComma("}")), this.space(), this.tokenChar(
    125)) : r && !a && (o = !0, this.tokenChar(123), this.tokenChar(125)), (a || r) && (this.space(), this.word("from"), this.space()), (e =
    t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0), this.space(), this._printAttributes(
    t, o)) : this.print(t.source), this.semicolon();
  }
  n(nQe, "ImportDeclaration");
  function aQe(t) {
    this.print(t.key), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(aQe, "ImportAttribute");
  function oQe(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.local);
  }
  n(oQe, "ImportNamespaceSpecifier");
  function lQe(t) {
    this.word("import"), t.phase && (this.tokenChar(46), this.word(t.phase)), this.tokenChar(40), this.print(t.source), t.options != null &&
    (this.tokenChar(44), this.space(), this.print(t.options)), this.tokenChar(41);
  }
  n(lQe, "ImportExpression");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/types.js
var GD = g((Or) => {
  "use strict";
  Object.defineProperty(Or, "__esModule", {
    value: !0
  });
  Or.ArgumentPlaceholder = fQe;
  Or.ArrayPattern = Or.ArrayExpression = TQe;
  Or.BigIntLiteral = CQe;
  Or.BooleanLiteral = PQe;
  Or.Identifier = hQe;
  Or.NullLiteral = EQe;
  Or.NumericLiteral = AQe;
  Or.ObjectPattern = Or.ObjectExpression = mQe;
  Or.ObjectMethod = yQe;
  Or.ObjectProperty = gQe;
  Or.PipelineBareFunction = NQe;
  Or.PipelinePrimaryTopicReference = kQe;
  Or.PipelineTopicExpression = IQe;
  Or.RecordExpression = bQe;
  Or.RegExpLiteral = SQe;
  Or.SpreadElement = Or.RestElement = dQe;
  Or.StringLiteral = vQe;
  Or.TopicReference = wQe;
  Or.TupleExpression = xQe;
  Or._getRawIdentifier = pQe;
  var uQe = fe(), YJ = Td(), {
    isAssignmentPattern: cQe,
    isIdentifier: zD
  } = uQe, HJ = null, AS = "";
  function pQe(t) {
    if (t === HJ) return AS;
    HJ = t;
    let {
      name: e
    } = t, s = this.tokenMap.find(t, (r) => r.value === e);
    return s ? (AS = this._originalCode.slice(s.start, s.end), AS) : AS = t.name;
  }
  n(pQe, "_getRawIdentifier");
  function hQe(t) {
    var e;
    this.sourceIdentifierName(((e = t.loc) == null ? void 0 : e.identifierName) || t.name), this.word(this.tokenMap ? this._getRawIdentifier(
    t) : t.name);
  }
  n(hQe, "Identifier");
  function fQe() {
    this.tokenChar(63);
  }
  n(fQe, "ArgumentPlaceholder");
  function dQe(t) {
    this.token("..."), this.print(t.argument);
  }
  n(dQe, "RestElement");
  function mQe(t) {
    let e = t.properties;
    if (this.tokenChar(123), e.length) {
      let s = this.enterDelimited();
      this.space(), this.printList(e, this.shouldPrintTrailingComma("}"), !0, !0), this.space(), s();
    }
    this.sourceWithOffset("end", t.loc, -1), this.tokenChar(125);
  }
  n(mQe, "ObjectExpression");
  function yQe(t) {
    this.printJoin(t.decorators), this._methodHead(t), this.space(), this.print(t.body);
  }
  n(yQe, "ObjectMethod");
  function gQe(t) {
    if (this.printJoin(t.decorators), t.computed)
      this.tokenChar(91), this.print(t.key), this.tokenChar(93);
    else {
      if (cQe(t.value) && zD(t.key) && t.key.name === t.value.left.name) {
        this.print(t.value);
        return;
      }
      if (this.print(t.key), t.shorthand && zD(t.key) && zD(t.value) && t.key.name === t.value.name)
        return;
    }
    this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(gQe, "ObjectProperty");
  function TQe(t) {
    let e = t.elements, s = e.length;
    this.tokenChar(91);
    let r = this.enterDelimited();
    for (let i = 0; i < e.length; i++) {
      let a = e[i];
      a ? (i > 0 && this.space(), this.print(a), (i < s - 1 || this.shouldPrintTrailingComma("]")) && this.token(",", !1, i)) : this.token("\
,", !1, i);
    }
    r(), this.tokenChar(93);
  }
  n(TQe, "ArrayExpression");
  function bQe(t) {
    let e = t.properties, s, r;
    if (this.format.recordAndTupleSyntaxType === "bar")
      s = "{|", r = "|}";
    else {
      if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null)
        throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)}\
 received).`);
      s = "#{", r = "}";
    }
    this.token(s), e.length && (this.space(), this.printList(e, this.shouldPrintTrailingComma(r), !0, !0), this.space()), this.token(r);
  }
  n(bQe, "RecordExpression");
  function xQe(t) {
    let e = t.elements, s = e.length, r, i;
    if (this.format.recordAndTupleSyntaxType === "bar")
      r = "[|", i = "|]";
    else if (this.format.recordAndTupleSyntaxType === "hash")
      r = "#[", i = "]";
    else
      throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
    this.token(r);
    for (let a = 0; a < e.length; a++) {
      let o = e[a];
      o && (a > 0 && this.space(), this.print(o), (a < s - 1 || this.shouldPrintTrailingComma(i)) && this.token(",", !1, a));
    }
    this.token(i);
  }
  n(xQe, "TupleExpression");
  function SQe(t) {
    this.word(`/${t.pattern}/${t.flags}`);
  }
  n(SQe, "RegExpLiteral");
  function PQe(t) {
    this.word(t.value ? "true" : "false");
  }
  n(PQe, "BooleanLiteral");
  function EQe() {
    this.word("null");
  }
  n(EQe, "NullLiteral");
  function AQe(t) {
    let e = this.getPossibleRaw(t), s = this.format.jsescOption, r = t.value, i = r + "";
    s.numbers ? this.number(YJ(r, s), r) : e == null ? this.number(i, r) : this.format.minified ? this.number(e.length < i.length ? e : i, r) :
    this.number(e, r);
  }
  n(AQe, "NumericLiteral");
  function vQe(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let s = YJ(t.value, this.format.jsescOption);
    this.token(s);
  }
  n(vQe, "StringLiteral");
  function CQe(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.word(e);
      return;
    }
    this.word(t.value + "n");
  }
  n(CQe, "BigIntLiteral");
  var JJ = /* @__PURE__ */ new Set(["^^", "@@", "^", "%", "#"]);
  function wQe() {
    let {
      topicToken: t
    } = this.format;
    if (JJ.has(t))
      this.token(t);
    else {
      let e = JSON.stringify(t), s = Array.from(JJ, (r) => JSON.stringify(r));
      throw new Error(`The "topicToken" generator option must be one of ${s.join(", ")} (${e} received instead).`);
    }
  }
  n(wQe, "TopicReference");
  function IQe(t) {
    this.print(t.expression);
  }
  n(IQe, "PipelineTopicExpression");
  function NQe(t) {
    this.print(t.callee);
  }
  n(NQe, "PipelineBareFunction");
  function kQe() {
    this.tokenChar(35);
  }
  n(kQe, "PipelinePrimaryTopicReference");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/flow.js
var zJ = g((it) => {
  "use strict";
  Object.defineProperty(it, "__esModule", {
    value: !0
  });
  it.AnyTypeAnnotation = BQe;
  it.ArrayTypeAnnotation = MQe;
  it.BooleanLiteralTypeAnnotation = jQe;
  it.BooleanTypeAnnotation = FQe;
  it.DeclareClass = qQe;
  it.DeclareExportAllDeclaration = GQe;
  it.DeclareExportDeclaration = zQe;
  it.DeclareFunction = UQe;
  it.DeclareInterface = WQe;
  it.DeclareModule = $Qe;
  it.DeclareModuleExports = HQe;
  it.DeclareOpaqueType = YQe;
  it.DeclareTypeAlias = JQe;
  it.DeclareVariable = XQe;
  it.DeclaredPredicate = VQe;
  it.EmptyTypeAnnotation = bZe;
  it.EnumBooleanBody = ZQe;
  it.EnumBooleanMember = iZe;
  it.EnumDeclaration = QQe;
  it.EnumDefaultedMember = rZe;
  it.EnumNumberBody = eZe;
  it.EnumNumberMember = nZe;
  it.EnumStringBody = tZe;
  it.EnumStringMember = aZe;
  it.EnumSymbolBody = sZe;
  it.ExistsTypeAnnotation = lZe;
  it.FunctionTypeAnnotation = uZe;
  it.FunctionTypeParam = cZe;
  it.IndexedAccessType = WZe;
  it.InferredPredicate = KQe;
  it.InterfaceDeclaration = dZe;
  it.GenericTypeAnnotation = it.ClassImplements = it.InterfaceExtends = pZe;
  it.InterfaceTypeAnnotation = yZe;
  it.IntersectionTypeAnnotation = gZe;
  it.MixedTypeAnnotation = TZe;
  it.NullLiteralTypeAnnotation = RQe;
  it.NullableTypeAnnotation = xZe;
  Object.defineProperty(it, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return XJ.NumericLiteral;
    }, "get")
  });
  it.NumberTypeAnnotation = SZe;
  it.ObjectTypeAnnotation = DZe;
  it.ObjectTypeCallProperty = _Ze;
  it.ObjectTypeIndexer = LZe;
  it.ObjectTypeInternalSlot = OZe;
  it.ObjectTypeProperty = BZe;
  it.ObjectTypeSpreadProperty = MZe;
  it.OpaqueType = kZe;
  it.OptionalIndexedAccessType = $Ze;
  it.QualifiedTypeIdentifier = FZe;
  Object.defineProperty(it, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return XJ.StringLiteral;
    }, "get")
  });
  it.StringTypeAnnotation = PZe;
  it.SymbolTypeAnnotation = jZe;
  it.ThisTypeAnnotation = EZe;
  it.TupleTypeAnnotation = AZe;
  it.TypeAlias = CZe;
  it.TypeAnnotation = wZe;
  it.TypeCastExpression = UZe;
  it.TypeParameter = NZe;
  it.TypeParameterDeclaration = it.TypeParameterInstantiation = IZe;
  it.TypeofTypeAnnotation = vZe;
  it.UnionTypeAnnotation = qZe;
  it.Variance = KZe;
  it.VoidTypeAnnotation = VZe;
  it._interfaceish = hZe;
  it._variance = fZe;
  var DQe = fe(), OQe = XD(), _Qe = Hc(), XJ = GD(), {
    isDeclareExportDeclaration: vS,
    isStatement: LQe
  } = DQe;
  function BQe() {
    this.word("any");
  }
  n(BQe, "AnyTypeAnnotation");
  function MQe(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(MQe, "ArrayTypeAnnotation");
  function FQe() {
    this.word("boolean");
  }
  n(FQe, "BooleanTypeAnnotation");
  function jQe(t) {
    this.word(t.value ? "true" : "false");
  }
  n(jQe, "BooleanLiteralTypeAnnotation");
  function RQe() {
    this.word("null");
  }
  n(RQe, "NullLiteralTypeAnnotation");
  function qQe(t, e) {
    vS(e) || (this.word("declare"), this.space()), this.word("class"), this.space(), this._interfaceish(t);
  }
  n(qQe, "DeclareClass");
  function UQe(t, e) {
    vS(e) || (this.word("declare"), this.space()), this.word("function"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation.typeAnnotation),
    t.predicate && (this.space(), this.print(t.predicate)), this.semicolon();
  }
  n(UQe, "DeclareFunction");
  function KQe() {
    this.tokenChar(37), this.word("checks");
  }
  n(KQe, "InferredPredicate");
  function VQe(t) {
    this.tokenChar(37), this.word("checks"), this.tokenChar(40), this.print(t.value), this.tokenChar(41);
  }
  n(VQe, "DeclaredPredicate");
  function WQe(t) {
    this.word("declare"), this.space(), this.InterfaceDeclaration(t);
  }
  n(WQe, "DeclareInterface");
  function $Qe(t) {
    this.word("declare"), this.space(), this.word("module"), this.space(), this.print(t.id), this.space(), this.print(t.body);
  }
  n($Qe, "DeclareModule");
  function HQe(t) {
    this.word("declare"), this.space(), this.word("module"), this.tokenChar(46), this.word("exports"), this.print(t.typeAnnotation);
  }
  n(HQe, "DeclareModuleExports");
  function JQe(t) {
    this.word("declare"), this.space(), this.TypeAlias(t);
  }
  n(JQe, "DeclareTypeAlias");
  function YQe(t, e) {
    vS(e) || (this.word("declare"), this.space()), this.OpaqueType(t);
  }
  n(YQe, "DeclareOpaqueType");
  function XQe(t, e) {
    vS(e) || (this.word("declare"), this.space()), this.word("var"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation), this.semicolon();
  }
  n(XQe, "DeclareVariable");
  function zQe(t) {
    this.word("declare"), this.space(), this.word("export"), this.space(), t.default && (this.word("default"), this.space()), oZe.call(this,
    t);
  }
  n(zQe, "DeclareExportDeclaration");
  function GQe(t) {
    this.word("declare"), this.space(), OQe.ExportAllDeclaration.call(this, t);
  }
  n(GQe, "DeclareExportAllDeclaration");
  function QQe(t) {
    let {
      id: e,
      body: s
    } = t;
    this.word("enum"), this.space(), this.print(e), this.print(s);
  }
  n(QQe, "EnumDeclaration");
  function CS(t, e, s) {
    s && (t.space(), t.word("of"), t.space(), t.word(e)), t.space();
  }
  n(CS, "enumExplicitType");
  function wS(t, e) {
    let {
      members: s
    } = e;
    t.token("{"), t.indent(), t.newline();
    for (let r of s)
      t.print(r), t.newline();
    e.hasUnknownMembers && (t.token("..."), t.newline()), t.dedent(), t.token("}");
  }
  n(wS, "enumBody");
  function ZQe(t) {
    let {
      explicitType: e
    } = t;
    CS(this, "boolean", e), wS(this, t);
  }
  n(ZQe, "EnumBooleanBody");
  function eZe(t) {
    let {
      explicitType: e
    } = t;
    CS(this, "number", e), wS(this, t);
  }
  n(eZe, "EnumNumberBody");
  function tZe(t) {
    let {
      explicitType: e
    } = t;
    CS(this, "string", e), wS(this, t);
  }
  n(tZe, "EnumStringBody");
  function sZe(t) {
    CS(this, "symbol", !0), wS(this, t);
  }
  n(sZe, "EnumSymbolBody");
  function rZe(t) {
    let {
      id: e
    } = t;
    this.print(e), this.tokenChar(44);
  }
  n(rZe, "EnumDefaultedMember");
  function QD(t, e) {
    t.print(e.id), t.space(), t.token("="), t.space(), t.print(e.init), t.token(",");
  }
  n(QD, "enumInitializedMember");
  function iZe(t) {
    QD(this, t);
  }
  n(iZe, "EnumBooleanMember");
  function nZe(t) {
    QD(this, t);
  }
  n(nZe, "EnumNumberMember");
  function aZe(t) {
    QD(this, t);
  }
  n(aZe, "EnumStringMember");
  function oZe(t) {
    if (t.declaration) {
      let e = t.declaration;
      this.print(e), LQe(e) || this.semicolon();
    } else
      this.tokenChar(123), t.specifiers.length && (this.space(), this.printList(t.specifiers), this.space()), this.tokenChar(125), t.source &&
      (this.space(), this.word("from"), this.space(), this.print(t.source)), this.semicolon();
  }
  n(oZe, "FlowExportDeclaration");
  function lZe() {
    this.tokenChar(42);
  }
  n(lZe, "ExistsTypeAnnotation");
  function uZe(t, e) {
    this.print(t.typeParameters), this.tokenChar(40), t.this && (this.word("this"), this.tokenChar(58), this.space(), this.print(t.this.typeAnnotation),
    (t.params.length || t.rest) && (this.tokenChar(44), this.space())), this.printList(t.params), t.rest && (t.params.length && (this.tokenChar(
    44), this.space()), this.token("..."), this.print(t.rest)), this.tokenChar(41);
    let s = e?.type;
    s != null && (s === "ObjectTypeCallProperty" || s === "ObjectTypeInternalSlot" || s === "DeclareFunction" || s === "ObjectTypeProperty" &&
    e.method) ? this.tokenChar(58) : (this.space(), this.token("=>")), this.space(), this.print(t.returnType);
  }
  n(uZe, "FunctionTypeAnnotation");
  function cZe(t) {
    this.print(t.name), t.optional && this.tokenChar(63), t.name && (this.tokenChar(58), this.space()), this.print(t.typeAnnotation);
  }
  n(cZe, "FunctionTypeParam");
  function pZe(t) {
    this.print(t.id), this.print(t.typeParameters, !0);
  }
  n(pZe, "InterfaceExtends");
  function hZe(t) {
    var e;
    if (this.print(t.id), this.print(t.typeParameters), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(),
    this.printList(t.extends)), t.type === "DeclareClass") {
      var s, r;
      (s = t.mixins) != null && s.length && (this.space(), this.word("mixins"), this.space(), this.printList(t.mixins)), (r = t.implements) !=
      null && r.length && (this.space(), this.word("implements"), this.space(), this.printList(t.implements));
    }
    this.space(), this.print(t.body);
  }
  n(hZe, "_interfaceish");
  function fZe(t) {
    var e;
    let s = (e = t.variance) == null ? void 0 : e.kind;
    s != null && (s === "plus" ? this.tokenChar(43) : s === "minus" && this.tokenChar(45));
  }
  n(fZe, "_variance");
  function dZe(t) {
    this.word("interface"), this.space(), this._interfaceish(t);
  }
  n(dZe, "InterfaceDeclaration");
  function mZe(t) {
    this.space(), this.token("&", !1, t), this.space();
  }
  n(mZe, "andSeparator");
  function yZe(t) {
    var e;
    this.word("interface"), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(), this.printList(t.extends)),
    this.space(), this.print(t.body);
  }
  n(yZe, "InterfaceTypeAnnotation");
  function gZe(t) {
    this.printJoin(t.types, void 0, void 0, mZe);
  }
  n(gZe, "IntersectionTypeAnnotation");
  function TZe() {
    this.word("mixed");
  }
  n(TZe, "MixedTypeAnnotation");
  function bZe() {
    this.word("empty");
  }
  n(bZe, "EmptyTypeAnnotation");
  function xZe(t) {
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(xZe, "NullableTypeAnnotation");
  function SZe() {
    this.word("number");
  }
  n(SZe, "NumberTypeAnnotation");
  function PZe() {
    this.word("string");
  }
  n(PZe, "StringTypeAnnotation");
  function EZe() {
    this.word("this");
  }
  n(EZe, "ThisTypeAnnotation");
  function AZe(t) {
    this.tokenChar(91), this.printList(t.types), this.tokenChar(93);
  }
  n(AZe, "TupleTypeAnnotation");
  function vZe(t) {
    this.word("typeof"), this.space(), this.print(t.argument);
  }
  n(vZe, "TypeofTypeAnnotation");
  function CZe(t) {
    this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), this.space(), this.tokenChar(61), this.space(), this.print(
    t.right), this.semicolon();
  }
  n(CZe, "TypeAlias");
  function wZe(t, e) {
    this.tokenChar(58), this.space(), e.type === "ArrowFunctionExpression" ? this.tokenContext |= _Qe.TokenContext.arrowFlowReturnType : t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(wZe, "TypeAnnotation");
  function IZe(t) {
    this.tokenChar(60), this.printList(t.params), this.tokenChar(62);
  }
  n(IZe, "TypeParameterInstantiation");
  function NZe(t) {
    this._variance(t), this.word(t.name), t.bound && this.print(t.bound), t.default && (this.space(), this.tokenChar(61), this.space(), this.
    print(t.default));
  }
  n(NZe, "TypeParameter");
  function kZe(t) {
    this.word("opaque"), this.space(), this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), t.supertype && (this.
    tokenChar(58), this.space(), this.print(t.supertype)), t.impltype && (this.space(), this.tokenChar(61), this.space(), this.print(t.impltype)),
    this.semicolon();
  }
  n(kZe, "OpaqueType");
  function DZe(t) {
    t.exact ? this.token("{|") : this.tokenChar(123);
    let e = [...t.properties, ...t.callProperties || [], ...t.indexers || [], ...t.internalSlots || []];
    e.length && (this.newline(), this.space(), this.printJoin(e, !0, !0, void 0, void 0, /* @__PURE__ */ n(function(r) {
      if (r && !e[0]) return 1;
    }, "addNewlines"), () => {
      (e.length !== 1 || t.inexact) && (this.tokenChar(44), this.space());
    }), this.space()), t.inexact && (this.indent(), this.token("..."), e.length && this.newline(), this.dedent()), t.exact ? this.token("|}") :
    this.tokenChar(125);
  }
  n(DZe, "ObjectTypeAnnotation");
  function OZe(t) {
    t.static && (this.word("static"), this.space()), this.tokenChar(91), this.tokenChar(91), this.print(t.id), this.tokenChar(93), this.tokenChar(
    93), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58), this.space()), this.print(t.value);
  }
  n(OZe, "ObjectTypeInternalSlot");
  function _Ze(t) {
    t.static && (this.word("static"), this.space()), this.print(t.value);
  }
  n(_Ze, "ObjectTypeCallProperty");
  function LZe(t) {
    t.static && (this.word("static"), this.space()), this._variance(t), this.tokenChar(91), t.id && (this.print(t.id), this.tokenChar(58), this.
    space()), this.print(t.key), this.tokenChar(93), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(LZe, "ObjectTypeIndexer");
  function BZe(t) {
    t.proto && (this.word("proto"), this.space()), t.static && (this.word("static"), this.space()), (t.kind === "get" || t.kind === "set") &&
    (this.word(t.kind), this.space()), this._variance(t), this.print(t.key), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58),
    this.space()), this.print(t.value);
  }
  n(BZe, "ObjectTypeProperty");
  function MZe(t) {
    this.token("..."), this.print(t.argument);
  }
  n(MZe, "ObjectTypeSpreadProperty");
  function FZe(t) {
    this.print(t.qualification), this.tokenChar(46), this.print(t.id);
  }
  n(FZe, "QualifiedTypeIdentifier");
  function jZe() {
    this.word("symbol");
  }
  n(jZe, "SymbolTypeAnnotation");
  function RZe(t) {
    this.space(), this.token("|", !1, t), this.space();
  }
  n(RZe, "orSeparator");
  function qZe(t) {
    this.printJoin(t.types, void 0, void 0, RZe);
  }
  n(qZe, "UnionTypeAnnotation");
  function UZe(t) {
    this.tokenChar(40), this.print(t.expression), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(UZe, "TypeCastExpression");
  function KZe(t) {
    t.kind === "plus" ? this.tokenChar(43) : this.tokenChar(45);
  }
  n(KZe, "Variance");
  function VZe() {
    this.word("void");
  }
  n(VZe, "VoidTypeAnnotation");
  function WZe(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(WZe, "IndexedAccessType");
  function $Ze(t) {
    this.print(t.objectType), t.optional && this.token("?."), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n($Ze, "OptionalIndexedAccessType");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/base.js
var GJ = g((uu) => {
  "use strict";
  Object.defineProperty(uu, "__esModule", {
    value: !0
  });
  uu.BlockStatement = YZe;
  uu.Directive = XZe;
  uu.DirectiveLiteral = QZe;
  uu.File = HZe;
  uu.InterpreterDirective = ZZe;
  uu.Placeholder = eet;
  uu.Program = JZe;
  function HZe(t) {
    t.program && this.print(t.program.interpreter), this.print(t.program);
  }
  n(HZe, "File");
  function JZe(t) {
    var e;
    this.noIndentInnerCommentsHere(), this.printInnerComments();
    let s = (e = t.directives) == null ? void 0 : e.length;
    if (s) {
      var r;
      let i = t.body.length ? 2 : 1;
      this.printSequence(t.directives, void 0, i), (r = t.directives[s - 1].trailingComments) != null && r.length || this.newline(i);
    }
    this.printSequence(t.body);
  }
  n(JZe, "Program");
  function YZe(t) {
    var e;
    this.tokenChar(123);
    let s = this.enterDelimited(), r = (e = t.directives) == null ? void 0 : e.length;
    if (r) {
      var i;
      let a = t.body.length ? 2 : 1;
      this.printSequence(t.directives, !0, a), (i = t.directives[r - 1].trailingComments) != null && i.length || this.newline(a);
    }
    this.printSequence(t.body, !0), s(), this.rightBrace(t);
  }
  n(YZe, "BlockStatement");
  function XZe(t) {
    this.print(t.value), this.semicolon();
  }
  n(XZe, "Directive");
  var zZe = /(?:^|[^\\])(?:\\\\)*'/, GZe = /(?:^|[^\\])(?:\\\\)*"/;
  function QZe(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let {
      value: s
    } = t;
    if (!GZe.test(s))
      this.token(`"${s}"`);
    else if (!zZe.test(s))
      this.token(`'${s}'`);
    else
      throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.");
  }
  n(QZe, "DirectiveLiteral");
  function ZZe(t) {
    this.token(`#!${t.value}`), this.newline(1, !0);
  }
  n(ZZe, "InterpreterDirective");
  function eet(t) {
    this.token("%%"), this.print(t.name), this.token("%%"), t.expectedNode === "Statement" && this.semicolon();
  }
  n(eet, "Placeholder");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/jsx.js
var QJ = g((Vi) => {
  "use strict";
  Object.defineProperty(Vi, "__esModule", {
    value: !0
  });
  Vi.JSXAttribute = tet;
  Vi.JSXClosingElement = fet;
  Vi.JSXClosingFragment = get;
  Vi.JSXElement = cet;
  Vi.JSXEmptyExpression = det;
  Vi.JSXExpressionContainer = aet;
  Vi.JSXFragment = met;
  Vi.JSXIdentifier = set;
  Vi.JSXMemberExpression = iet;
  Vi.JSXNamespacedName = ret;
  Vi.JSXOpeningElement = het;
  Vi.JSXOpeningFragment = yet;
  Vi.JSXSpreadAttribute = net;
  Vi.JSXSpreadChild = oet;
  Vi.JSXText = uet;
  function tet(t) {
    this.print(t.name), t.value && (this.tokenChar(61), this.print(t.value));
  }
  n(tet, "JSXAttribute");
  function set(t) {
    this.word(t.name);
  }
  n(set, "JSXIdentifier");
  function ret(t) {
    this.print(t.namespace), this.tokenChar(58), this.print(t.name);
  }
  n(ret, "JSXNamespacedName");
  function iet(t) {
    this.print(t.object), this.tokenChar(46), this.print(t.property);
  }
  n(iet, "JSXMemberExpression");
  function net(t) {
    this.tokenChar(123), this.token("..."), this.print(t.argument), this.rightBrace(t);
  }
  n(net, "JSXSpreadAttribute");
  function aet(t) {
    this.tokenChar(123), this.print(t.expression), this.rightBrace(t);
  }
  n(aet, "JSXExpressionContainer");
  function oet(t) {
    this.tokenChar(123), this.token("..."), this.print(t.expression), this.rightBrace(t);
  }
  n(oet, "JSXSpreadChild");
  function uet(t) {
    let e = this.getPossibleRaw(t);
    e !== void 0 ? this.token(e, !0) : this.token(t.value, !0);
  }
  n(uet, "JSXText");
  function cet(t) {
    let e = t.openingElement;
    if (this.print(e), !e.selfClosing) {
      this.indent();
      for (let s of t.children)
        this.print(s);
      this.dedent(), this.print(t.closingElement);
    }
  }
  n(cet, "JSXElement");
  function pet() {
    this.space();
  }
  n(pet, "spaceSeparator");
  function het(t) {
    this.tokenChar(60), this.print(t.name), t.typeArguments && this.print(t.typeArguments), this.print(t.typeParameters), t.attributes.length >
    0 && (this.space(), this.printJoin(t.attributes, void 0, void 0, pet)), t.selfClosing && (this.space(), this.tokenChar(47)), this.tokenChar(
    62);
  }
  n(het, "JSXOpeningElement");
  function fet(t) {
    this.tokenChar(60), this.tokenChar(47), this.print(t.name), this.tokenChar(62);
  }
  n(fet, "JSXClosingElement");
  function det() {
    this.printInnerComments();
  }
  n(det, "JSXEmptyExpression");
  function met(t) {
    this.print(t.openingFragment), this.indent();
    for (let e of t.children)
      this.print(e);
    this.dedent(), this.print(t.closingFragment);
  }
  n(met, "JSXFragment");
  function yet() {
    this.tokenChar(60), this.tokenChar(62);
  }
  n(yet, "JSXOpeningFragment");
  function get() {
    this.token("</"), this.tokenChar(62);
  }
  n(get, "JSXClosingFragment");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/typescript.js
var rY = g((Xe) => {
  "use strict";
  Object.defineProperty(Xe, "__esModule", {
    value: !0
  });
  Xe.TSAnyKeyword = Oet;
  Xe.TSArrayType = Zet;
  Xe.TSSatisfiesExpression = Xe.TSAsExpression = Ttt;
  Xe.TSBigIntKeyword = _et;
  Xe.TSBooleanKeyword = Fet;
  Xe.TSCallSignatureDeclaration = Cet;
  Xe.TSInterfaceHeritage = Xe.TSClassImplements = dtt;
  Xe.TSConditionalType = att;
  Xe.TSConstructSignatureDeclaration = wet;
  Xe.TSConstructorType = Jet;
  Xe.TSDeclareFunction = Eet;
  Xe.TSDeclareMethod = Aet;
  Xe.TSEnumBody = sY;
  Xe.TSEnumDeclaration = Stt;
  Xe.TSEnumMember = Ptt;
  Xe.TSExportAssignment = Ntt;
  Xe.TSExternalModuleReference = wtt;
  Xe.TSFunctionType = Het;
  Xe.TSImportEqualsDeclaration = Ctt;
  Xe.TSImportType = vtt;
  Xe.TSIndexSignature = Det;
  Xe.TSIndexedAccessType = ctt;
  Xe.TSInferType = ott;
  Xe.TSInstantiationExpression = xtt;
  Xe.TSInterfaceBody = ytt;
  Xe.TSInterfaceDeclaration = mtt;
  Xe.TSIntersectionType = ntt;
  Xe.TSIntrinsicKeyword = Wet;
  Xe.TSLiteralType = ftt;
  Xe.TSMappedType = ptt;
  Xe.TSMethodSignature = ket;
  Xe.TSModuleBlock = Att;
  Xe.TSModuleDeclaration = Ett;
  Xe.TSNamedTupleMember = rtt;
  Xe.TSNamespaceExportDeclaration = ktt;
  Xe.TSNeverKeyword = Vet;
  Xe.TSNonNullExpression = Itt;
  Xe.TSNullKeyword = Ket;
  Xe.TSNumberKeyword = Bet;
  Xe.TSObjectKeyword = Met;
  Xe.TSOptionalType = ttt;
  Xe.TSParameterProperty = Pet;
  Xe.TSParenthesizedType = ltt;
  Xe.TSPropertySignature = Iet;
  Xe.TSQualifiedName = vet;
  Xe.TSRestType = stt;
  Xe.TSStringKeyword = jet;
  Xe.TSSymbolKeyword = Ret;
  Xe.TSTemplateLiteralType = htt;
  Xe.TSThisType = $et;
  Xe.TSTupleType = ett;
  Xe.TSTypeAliasDeclaration = gtt;
  Xe.TSTypeAnnotation = Tet;
  Xe.TSTypeAssertion = btt;
  Xe.TSTypeLiteral = Qet;
  Xe.TSTypeOperator = utt;
  Xe.TSTypeParameter = xet;
  Xe.TSTypeParameterDeclaration = Xe.TSTypeParameterInstantiation = bet;
  Xe.TSTypePredicate = zet;
  Xe.TSTypeQuery = Get;
  Xe.TSTypeReference = Xet;
  Xe.TSUndefinedKeyword = Uet;
  Xe.TSUnionType = itt;
  Xe.TSUnknownKeyword = Let;
  Xe.TSVoidKeyword = qet;
  Xe.tsPrintClassMemberModifiers = Ott;
  Xe.tsPrintFunctionOrConstructorType = Yet;
  Xe.tsPrintPropertyOrMethodName = Net;
  Xe.tsPrintSignatureDeclarationBase = Dtt;
  function Tet(t, e) {
    this.token((e.type === "TSFunctionType" || e.type === "TSConstructorType") && e.typeAnnotation === t ? "=>" : ":"), this.space(), t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(Tet, "TSTypeAnnotation");
  function bet(t, e) {
    this.tokenChar(60);
    let s = e.type === "ArrowFunctionExpression" && t.params.length === 1;
    this.tokenMap && t.start != null && t.end != null && (s && (s = !!this.tokenMap.find(t, (r) => this.tokenMap.matchesOriginal(r, ","))), s ||
    (s = this.shouldPrintTrailingComma(">"))), this.printList(t.params, s), this.tokenChar(62);
  }
  n(bet, "TSTypeParameterInstantiation");
  function xet(t) {
    t.in && (this.word("in"), this.space()), t.out && (this.word("out"), this.space()), this.word(t.name), t.constraint && (this.space(), this.
    word("extends"), this.space(), this.print(t.constraint)), t.default && (this.space(), this.tokenChar(61), this.space(), this.print(t.default));
  }
  n(xet, "TSTypeParameter");
  function Pet(t) {
    t.accessibility && (this.word(t.accessibility), this.space()), t.readonly && (this.word("readonly"), this.space()), this._param(t.parameter);
  }
  n(Pet, "TSParameterProperty");
  function Eet(t, e) {
    t.declare && (this.word("declare"), this.space()), this._functionHead(t, e), this.semicolon();
  }
  n(Eet, "TSDeclareFunction");
  function Aet(t) {
    this._classMethodHead(t), this.semicolon();
  }
  n(Aet, "TSDeclareMethod");
  function vet(t) {
    this.print(t.left), this.tokenChar(46), this.print(t.right);
  }
  n(vet, "TSQualifiedName");
  function Cet(t) {
    this.tsPrintSignatureDeclarationBase(t), Lg(this, t);
  }
  n(Cet, "TSCallSignatureDeclaration");
  function Lg(t, e) {
    if (!t.tokenMap || !e.start || !e.end) {
      t.semicolon();
      return;
    }
    t.tokenMap.endMatches(e, ",") ? t.token(",") : t.tokenMap.endMatches(e, ";") && t.semicolon();
  }
  n(Lg, "maybePrintTrailingCommaOrSemicolon");
  function wet(t) {
    this.word("new"), this.space(), this.tsPrintSignatureDeclarationBase(t), Lg(this, t);
  }
  n(wet, "TSConstructSignatureDeclaration");
  function Iet(t) {
    let {
      readonly: e
    } = t;
    e && (this.word("readonly"), this.space()), this.tsPrintPropertyOrMethodName(t), this.print(t.typeAnnotation), Lg(this, t);
  }
  n(Iet, "TSPropertySignature");
  function Net(t) {
    t.computed && this.tokenChar(91), this.print(t.key), t.computed && this.tokenChar(93), t.optional && this.tokenChar(63);
  }
  n(Net, "tsPrintPropertyOrMethodName");
  function ket(t) {
    let {
      kind: e
    } = t;
    (e === "set" || e === "get") && (this.word(e), this.space()), this.tsPrintPropertyOrMethodName(t), this.tsPrintSignatureDeclarationBase(
    t), Lg(this, t);
  }
  n(ket, "TSMethodSignature");
  function Det(t) {
    let {
      readonly: e,
      static: s
    } = t;
    s && (this.word("static"), this.space()), e && (this.word("readonly"), this.space()), this.tokenChar(91), this._parameters(t.parameters,
    "]"), this.print(t.typeAnnotation), Lg(this, t);
  }
  n(Det, "TSIndexSignature");
  function Oet() {
    this.word("any");
  }
  n(Oet, "TSAnyKeyword");
  function _et() {
    this.word("bigint");
  }
  n(_et, "TSBigIntKeyword");
  function Let() {
    this.word("unknown");
  }
  n(Let, "TSUnknownKeyword");
  function Bet() {
    this.word("number");
  }
  n(Bet, "TSNumberKeyword");
  function Met() {
    this.word("object");
  }
  n(Met, "TSObjectKeyword");
  function Fet() {
    this.word("boolean");
  }
  n(Fet, "TSBooleanKeyword");
  function jet() {
    this.word("string");
  }
  n(jet, "TSStringKeyword");
  function Ret() {
    this.word("symbol");
  }
  n(Ret, "TSSymbolKeyword");
  function qet() {
    this.word("void");
  }
  n(qet, "TSVoidKeyword");
  function Uet() {
    this.word("undefined");
  }
  n(Uet, "TSUndefinedKeyword");
  function Ket() {
    this.word("null");
  }
  n(Ket, "TSNullKeyword");
  function Vet() {
    this.word("never");
  }
  n(Vet, "TSNeverKeyword");
  function Wet() {
    this.word("intrinsic");
  }
  n(Wet, "TSIntrinsicKeyword");
  function $et() {
    this.word("this");
  }
  n($et, "TSThisType");
  function Het(t) {
    this.tsPrintFunctionOrConstructorType(t);
  }
  n(Het, "TSFunctionType");
  function Jet(t) {
    t.abstract && (this.word("abstract"), this.space()), this.word("new"), this.space(), this.tsPrintFunctionOrConstructorType(t);
  }
  n(Jet, "TSConstructorType");
  function Yet(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")"), this.space();
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(Yet, "tsPrintFunctionOrConstructorType");
  function Xet(t) {
    let e = t.typeParameters;
    this.print(t.typeName, !!e), this.print(e);
  }
  n(Xet, "TSTypeReference");
  function zet(t) {
    t.asserts && (this.word("asserts"), this.space()), this.print(t.parameterName), t.typeAnnotation && (this.space(), this.word("is"), this.
    space(), this.print(t.typeAnnotation.typeAnnotation));
  }
  n(zet, "TSTypePredicate");
  function Get(t) {
    this.word("typeof"), this.space(), this.print(t.exprName);
    let e = t.typeParameters;
    e && this.print(e);
  }
  n(Get, "TSTypeQuery");
  function Qet(t) {
    IS(this, t, () => this.printJoin(t.members, !0, !0));
  }
  n(Qet, "TSTypeLiteral");
  function Zet(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(Zet, "TSArrayType");
  function ett(t) {
    this.tokenChar(91), this.printList(t.elementTypes, this.shouldPrintTrailingComma("]")), this.tokenChar(93);
  }
  n(ett, "TSTupleType");
  function ttt(t) {
    this.print(t.typeAnnotation), this.tokenChar(63);
  }
  n(ttt, "TSOptionalType");
  function stt(t) {
    this.token("..."), this.print(t.typeAnnotation);
  }
  n(stt, "TSRestType");
  function rtt(t) {
    this.print(t.label), t.optional && this.tokenChar(63), this.tokenChar(58), this.space(), this.print(t.elementType);
  }
  n(rtt, "TSNamedTupleMember");
  function itt(t) {
    tY(this, t, "|");
  }
  n(itt, "TSUnionType");
  function ntt(t) {
    tY(this, t, "&");
  }
  n(ntt, "TSIntersectionType");
  function tY(t, e, s) {
    var r;
    let i = 0;
    (r = t.tokenMap) != null && r.startMatches(e, s) && (i = 1, t.token(s)), t.printJoin(e.types, void 0, void 0, function(a) {
      this.space(), this.token(s, null, a + i), this.space();
    });
  }
  n(tY, "tsPrintUnionOrIntersectionType");
  function att(t) {
    this.print(t.checkType), this.space(), this.word("extends"), this.space(), this.print(t.extendsType), this.space(), this.tokenChar(63), this.
    space(), this.print(t.trueType), this.space(), this.tokenChar(58), this.space(), this.print(t.falseType);
  }
  n(att, "TSConditionalType");
  function ott(t) {
    this.word("infer"), this.print(t.typeParameter);
  }
  n(ott, "TSInferType");
  function ltt(t) {
    this.tokenChar(40), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(ltt, "TSParenthesizedType");
  function utt(t) {
    this.word(t.operator), this.space(), this.print(t.typeAnnotation);
  }
  n(utt, "TSTypeOperator");
  function ctt(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(ctt, "TSIndexedAccessType");
  function ptt(t) {
    let {
      nameType: e,
      optional: s,
      readonly: r,
      typeAnnotation: i
    } = t;
    this.tokenChar(123);
    let a = this.enterDelimited();
    this.space(), r && (ZJ(this, r), this.word("readonly"), this.space()), this.tokenChar(91), this.word(t.typeParameter.name), this.space(),
    this.word("in"), this.space(), this.print(t.typeParameter.constraint), e && (this.space(), this.word("as"), this.space(), this.print(e)),
    this.tokenChar(93), s && (ZJ(this, s), this.tokenChar(63)), i && (this.tokenChar(58), this.space(), this.print(i)), this.space(), a(), this.
    tokenChar(125);
  }
  n(ptt, "TSMappedType");
  function ZJ(t, e) {
    e !== !0 && t.token(e);
  }
  n(ZJ, "tokenIfPlusMinus");
  function htt(t) {
    this._printTemplate(t, t.types);
  }
  n(htt, "TSTemplateLiteralType");
  function ftt(t) {
    this.print(t.literal);
  }
  n(ftt, "TSLiteralType");
  function dtt(t) {
    this.print(t.expression), this.print(t.typeArguments);
  }
  n(dtt, "TSClassImplements");
  function mtt(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      extends: i,
      body: a
    } = t;
    e && (this.word("declare"), this.space()), this.word("interface"), this.space(), this.print(s), this.print(r), i != null && i.length && (this.
    space(), this.word("extends"), this.space(), this.printList(i)), this.space(), this.print(a);
  }
  n(mtt, "TSInterfaceDeclaration");
  function ytt(t) {
    IS(this, t, () => this.printJoin(t.body, !0, !0));
  }
  n(ytt, "TSInterfaceBody");
  function gtt(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      typeAnnotation: i
    } = t;
    e && (this.word("declare"), this.space()), this.word("type"), this.space(), this.print(s), this.print(r), this.space(), this.tokenChar(61),
    this.space(), this.print(i), this.semicolon();
  }
  n(gtt, "TSTypeAliasDeclaration");
  function Ttt(t) {
    let {
      type: e,
      expression: s,
      typeAnnotation: r
    } = t;
    this.print(s, !0), this.space(), this.word(e === "TSAsExpression" ? "as" : "satisfies"), this.space(), this.print(r);
  }
  n(Ttt, "TSTypeExpression");
  function btt(t) {
    let {
      typeAnnotation: e,
      expression: s
    } = t;
    this.tokenChar(60), this.print(e), this.tokenChar(62), this.space(), this.print(s);
  }
  n(btt, "TSTypeAssertion");
  function xtt(t) {
    this.print(t.expression), this.print(t.typeParameters);
  }
  n(xtt, "TSInstantiationExpression");
  function Stt(t) {
    let {
      declare: e,
      const: s,
      id: r
    } = t;
    e && (this.word("declare"), this.space()), s && (this.word("const"), this.space()), this.word("enum"), this.space(), this.print(r), this.
    space(), sY.call(this, t);
  }
  n(Stt, "TSEnumDeclaration");
  function sY(t) {
    IS(this, t, () => {
      var e;
      return this.printList(t.members, (e = this.shouldPrintTrailingComma("}")) != null ? e : !0, !0, !0);
    });
  }
  n(sY, "TSEnumBody");
  function Ptt(t) {
    let {
      id: e,
      initializer: s
    } = t;
    this.print(e), s && (this.space(), this.tokenChar(61), this.space(), this.print(s));
  }
  n(Ptt, "TSEnumMember");
  function Ett(t) {
    let {
      declare: e,
      id: s,
      kind: r
    } = t;
    e && (this.word("declare"), this.space());
    {
      if (t.global || (this.word(r ?? (s.type === "Identifier" ? "namespace" : "module")), this.space()), this.print(s), !t.body) {
        this.semicolon();
        return;
      }
      let i = t.body;
      for (; i.type === "TSModuleDeclaration"; )
        this.tokenChar(46), this.print(i.id), i = i.body;
      this.space(), this.print(i);
    }
  }
  n(Ett, "TSModuleDeclaration");
  function Att(t) {
    IS(this, t, () => this.printSequence(t.body, !0));
  }
  n(Att, "TSModuleBlock");
  function vtt(t) {
    let {
      argument: e,
      qualifier: s,
      options: r
    } = t;
    this.word("import"), this.tokenChar(40), this.print(e), r && (this.tokenChar(44), this.print(r)), this.tokenChar(41), s && (this.tokenChar(
    46), this.print(s));
    let i = t.typeParameters;
    i && this.print(i);
  }
  n(vtt, "TSImportType");
  function Ctt(t) {
    let {
      id: e,
      moduleReference: s
    } = t;
    t.isExport && (this.word("export"), this.space()), this.word("import"), this.space(), this.print(e), this.space(), this.tokenChar(61), this.
    space(), this.print(s), this.semicolon();
  }
  n(Ctt, "TSImportEqualsDeclaration");
  function wtt(t) {
    this.token("require("), this.print(t.expression), this.tokenChar(41);
  }
  n(wtt, "TSExternalModuleReference");
  function Itt(t) {
    this.print(t.expression), this.tokenChar(33);
  }
  n(Itt, "TSNonNullExpression");
  function Ntt(t) {
    this.word("export"), this.space(), this.tokenChar(61), this.space(), this.print(t.expression), this.semicolon();
  }
  n(Ntt, "TSExportAssignment");
  function ktt(t) {
    this.word("export"), this.space(), this.word("as"), this.space(), this.word("namespace"), this.space(), this.print(t.id), this.semicolon();
  }
  n(ktt, "TSNamespaceExportDeclaration");
  function Dtt(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")");
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(Dtt, "tsPrintSignatureDeclarationBase");
  function Ott(t) {
    let e = t.type === "ClassPrivateProperty", s = t.type === "ClassAccessorProperty" || t.type === "ClassProperty";
    eY(this, t, [s && t.declare && "declare", !e && t.accessibility]), t.static && (this.word("static"), this.space()), eY(this, t, [!e && t.
    override && "override", !e && t.abstract && "abstract", (s || e) && t.readonly && "readonly"]);
  }
  n(Ott, "tsPrintClassMemberModifiers");
  function IS(t, e, s) {
    t.token("{");
    let r = t.enterDelimited();
    s(), r(), t.rightBrace(e);
  }
  n(IS, "printBraced");
  function eY(t, e, s) {
    var r;
    let i = /* @__PURE__ */ new Set();
    for (let a of s)
      a && i.add(a);
    (r = t.tokenMap) == null || r.find(e, (a) => {
      if (i.has(a.value))
        return t.token(a.value), t.space(), i.delete(a.value), i.size === 0;
    });
    for (let a of i)
      t.word(a), t.space();
  }
  n(eY, "printModifiersList");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/index.js
var iY = g((Ds) => {
  "use strict";
  Object.defineProperty(Ds, "__esModule", {
    value: !0
  });
  var ZD = LJ();
  Object.keys(ZD).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === ZD[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return ZD[t];
      }, "get")
    });
  });
  var eO = MJ();
  Object.keys(eO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === eO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return eO[t];
      }, "get")
    });
  });
  var tO = qJ();
  Object.keys(tO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === tO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return tO[t];
      }, "get")
    });
  });
  var sO = UJ();
  Object.keys(sO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === sO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return sO[t];
      }, "get")
    });
  });
  var rO = KJ();
  Object.keys(rO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === rO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return rO[t];
      }, "get")
    });
  });
  var iO = XD();
  Object.keys(iO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === iO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return iO[t];
      }, "get")
    });
  });
  var nO = GD();
  Object.keys(nO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === nO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return nO[t];
      }, "get")
    });
  });
  var aO = zJ();
  Object.keys(aO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === aO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return aO[t];
      }, "get")
    });
  });
  var oO = GJ();
  Object.keys(oO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === oO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return oO[t];
      }, "get")
    });
  });
  var lO = QJ();
  Object.keys(lO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === lO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return lO[t];
      }, "get")
    });
  });
  var uO = rY();
  Object.keys(uO).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Ds && Ds[t] === uO[t] || Object.defineProperty(Ds, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return uO[t];
      }, "get")
    });
  });
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/generators/deprecated.js
var nY = g((cO) => {
  "use strict";
  Object.defineProperty(cO, "__esModule", {
    value: !0
  });
  cO.addDeprecatedGenerators = _tt;
  function _tt(t) {
    {
      let e = {
        Noop() {
        },
        TSExpressionWithTypeArguments(s) {
          this.print(s.expression), this.print(s.typeParameters);
        },
        DecimalLiteral(s) {
          let r = this.getPossibleRaw(s);
          if (!this.format.minified && r !== void 0) {
            this.word(r);
            return;
          }
          this.word(s.value + "m");
        }
      };
      Object.assign(t.prototype, e);
    }
  }
  n(_tt, "addDeprecatedGenerators");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/printer.js
var uY = g((NS) => {
  "use strict";
  Object.defineProperty(NS, "__esModule", {
    value: !0
  });
  NS.default = void 0;
  var Ltt = yJ(), oY = Hc(), Btt = fe(), Mtt = _J(), Ftt = iY(), jtt = nY(), {
    isExpression: Rtt,
    isFunction: qtt,
    isStatement: Utt,
    isClassBody: Ktt,
    isTSInterfaceBody: Vtt,
    isTSEnumMember: Wtt
  } = Btt, $tt = /e/i, Htt = /\.0+$/, lY = /[\n\r\u2028\u2029]/, Jtt = /[\n\r\u2028\u2029]|\*\//;
  function aY(t) {
    return t.type === "CommentLine" || lY.test(t.value);
  }
  n(aY, "commentIsNewline");
  var {
    needsParens: Ytt
  } = oY, Bg = class {
    static {
      n(this, "Printer");
    }
    constructor(e, s, r, i) {
      this.inForStatementInit = !1, this.tokenContext = 0, this._tokens = null, this._originalCode = null, this._currentNode = null, this._indent =
      0, this._indentRepeat = 0, this._insideAux = !1, this._noLineTerminator = !1, this._noLineTerminatorAfterNode = null, this._printAuxAfterOnNextUserNode =
      !1, this._printedComments = /* @__PURE__ */ new Set(), this._endsWithInteger = !1, this._endsWithWord = !1, this._endsWithDiv = !1, this.
      _lastCommentLine = 0, this._endsWithInnerRaw = !1, this._indentInnerComments = !0, this.tokenMap = null, this._boundGetRawIdentifier =
      this._getRawIdentifier.bind(this), this._printSemicolonBeforeNextNode = -1, this._printSemicolonBeforeNextToken = -1, this.format = e,
      this._tokens = r, this._originalCode = i, this._indentRepeat = e.indent.style.length, this._inputMap = s?._inputMap, this._buf = new Ltt.
      default(s, e.indent.style[0]);
    }
    enterForStatementInit() {
      return this.inForStatementInit ? () => {
      } : (this.inForStatementInit = !0, () => {
        this.inForStatementInit = !1;
      });
    }
    enterDelimited() {
      let e = this.inForStatementInit, s = this._noLineTerminatorAfterNode;
      return e === !1 && s === null ? () => {
      } : (this.inForStatementInit = !1, this._noLineTerminatorAfterNode = null, () => {
        this.inForStatementInit = e, this._noLineTerminatorAfterNode = s;
      });
    }
    generate(e) {
      return this.format.preserveFormat && (this.tokenMap = new Mtt.TokenMap(e, this._tokens, this._originalCode)), this.print(e), this._maybeAddAuxComment(),
      this._buf.get();
    }
    indent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent++;
    }
    dedent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent--;
    }
    semicolon(e = !1) {
      if (this._maybeAddAuxComment(), e) {
        this._appendChar(59), this._noLineTerminator = !1;
        return;
      }
      if (this.tokenMap) {
        let s = this._currentNode;
        if (s.start != null && s.end != null) {
          if (!this.tokenMap.endMatches(s, ";")) {
            this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();
            return;
          }
          let r = this.tokenMap.getIndexes(this._currentNode);
          this._catchUpTo(this._tokens[r[r.length - 1]].loc.start);
        }
      }
      this._queue(59), this._noLineTerminator = !1;
    }
    rightBrace(e) {
      this.format.minified && this._buf.removeLastSemicolon(), this.sourceWithOffset("end", e.loc, -1), this.tokenChar(125);
    }
    rightParens(e) {
      this.sourceWithOffset("end", e.loc, -1), this.tokenChar(41);
    }
    space(e = !1) {
      let {
        format: s
      } = this;
      if (!(s.compact || s.preserveFormat)) {
        if (e)
          this._space();
        else if (this._buf.hasContent()) {
          let r = this.getLastChar();
          r !== 32 && r !== 10 && this._space();
        }
      }
    }
    word(e, s = !1) {
      this.tokenContext = 0, this._maybePrintInnerComments(e), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e), (this.
      _endsWithWord || this._endsWithDiv && e.charCodeAt(0) === 47) && this._space(), this._append(e, !1), this._endsWithWord = !0, this._noLineTerminator =
      s;
    }
    number(e, s) {
      function r(i) {
        if (i.length > 2 && i.charCodeAt(0) === 48) {
          let a = i.charCodeAt(1);
          return a === 98 || a === 111 || a === 120;
        }
        return !1;
      }
      n(r, "isNonDecimalLiteral"), this.word(e), this._endsWithInteger = Number.isInteger(s) && !r(e) && !$tt.test(e) && !Htt.test(e) && e.charCodeAt(
      e.length - 1) !== 46;
    }
    token(e, s = !1, r = 0) {
      this.tokenContext = 0, this._maybePrintInnerComments(e, r), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e,
      r);
      let i = this.getLastChar(), a = e.charCodeAt(0);
      (i === 33 && (e === "--" || a === 61) || a === 43 && i === 43 || a === 45 && i === 45 || a === 46 && this._endsWithInteger) && this._space(),
      this._append(e, s), this._noLineTerminator = !1;
    }
    tokenChar(e) {
      this.tokenContext = 0;
      let s = String.fromCharCode(e);
      this._maybePrintInnerComments(s), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(s);
      let r = this.getLastChar();
      (e === 43 && r === 43 || e === 45 && r === 45 || e === 46 && this._endsWithInteger) && this._space(), this._appendChar(e), this._noLineTerminator =
      !1;
    }
    newline(e = 1, s) {
      if (!(e <= 0)) {
        if (!s) {
          if (this.format.retainLines || this.format.compact) return;
          if (this.format.concise) {
            this.space();
            return;
          }
        }
        e > 2 && (e = 2), e -= this._buf.getNewlineCount();
        for (let r = 0; r < e; r++)
          this._newline();
      }
    }
    endsWith(e) {
      return this.getLastChar() === e;
    }
    getLastChar() {
      return this._buf.getLastChar();
    }
    endsWithCharAndNewline() {
      return this._buf.endsWithCharAndNewline();
    }
    removeTrailingNewline() {
      this._buf.removeTrailingNewline();
    }
    exactSource(e, s) {
      if (!e) {
        s();
        return;
      }
      this._catchUp("start", e), this._buf.exactSource(e, s);
    }
    source(e, s) {
      s && (this._catchUp(e, s), this._buf.source(e, s));
    }
    sourceWithOffset(e, s, r) {
      !s || this.format.preserveFormat || (this._catchUp(e, s), this._buf.sourceWithOffset(e, s, r));
    }
    sourceIdentifierName(e, s) {
      if (!this._buf._canMarkIdName) return;
      let r = this._buf._sourcePosition;
      r.identifierNamePos = s, r.identifierName = e;
    }
    _space() {
      this._queue(32);
    }
    _newline() {
      this._queue(10);
    }
    _catchUpToCurrentToken(e, s = 0) {
      let r = this.tokenMap.findMatching(this._currentNode, e, s);
      r && this._catchUpTo(r.loc.start), this._printSemicolonBeforeNextToken !== -1 && this._printSemicolonBeforeNextToken === this._buf.getCurrentLine() &&
      (this._buf.appendChar(59), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1), this._printSemicolonBeforeNextToken =
      -1, this._printSemicolonBeforeNextNode = -1;
    }
    _append(e, s) {
      this._maybeIndent(e.charCodeAt(0)), this._buf.append(e, s), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _appendChar(e) {
      this._maybeIndent(e), this._buf.appendChar(e), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _queue(e) {
      this._maybeIndent(e), this._buf.queue(e), this._endsWithWord = !1, this._endsWithInteger = !1;
    }
    _maybeIndent(e) {
      this._indent && e !== 10 && this.endsWith(10) && this._buf.queueIndentation(this._getIndent());
    }
    _shouldIndent(e) {
      if (this._indent && e !== 10 && this.endsWith(10))
        return !0;
    }
    catchUp(e) {
      if (!this.format.retainLines) return;
      let s = e - this._buf.getCurrentLine();
      for (let r = 0; r < s; r++)
        this._newline();
    }
    _catchUp(e, s) {
      let {
        format: r
      } = this;
      if (!r.preserveFormat) {
        r.retainLines && s != null && s[e] && this.catchUp(s[e].line);
        return;
      }
      let i = s?.[e];
      i != null && this._catchUpTo(i);
    }
    _catchUpTo({
      line: e,
      column: s,
      index: r
    }) {
      let i = e - this._buf.getCurrentLine();
      if (i > 0 && this._noLineTerminator)
        return;
      for (let o = 0; o < i; o++)
        this._newline();
      let a = i > 0 ? s : s - this._buf.getCurrentColumn();
      if (a > 0) {
        let o = this._originalCode ? this._originalCode.slice(r - a, r).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu,
        " ") : " ".repeat(a);
        this._append(o, !1);
      }
    }
    _getIndent() {
      return this._indentRepeat * this._indent;
    }
    printTerminatorless(e) {
      this._noLineTerminator = !0, this.print(e);
    }
    print(e, s, r) {
      var i, a, o;
      if (!e) return;
      this._endsWithInnerRaw = !1;
      let l = e.type, u = this.format, c = u.concise;
      e._compact && (u.concise = !0);
      let p = this[l];
      if (p === void 0)
        throw new ReferenceError(`unknown node of type ${JSON.stringify(l)} with constructor ${JSON.stringify(e.constructor.name)}`);
      let h = this._currentNode;
      this._currentNode = e, this.tokenMap && (this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode);
      let f = this._insideAux;
      this._insideAux = e.loc == null, this._maybeAddAuxComment(this._insideAux && !f);
      let d = (i = e.extra) == null ? void 0 : i.parenthesized, m = d && u.preserveFormat || d && u.retainFunctionParens && l === "FunctionE\
xpression" || Ytt(e, h, this.tokenContext, this.inForStatementInit, u.preserveFormat ? this._boundGetRawIdentifier : void 0);
      if (!m && d && (a = e.leadingComments) != null && a.length && e.leadingComments[0].type === "CommentBlock")
        switch (h?.type) {
          case "ExpressionStatement":
          case "VariableDeclarator":
          case "AssignmentExpression":
          case "ReturnStatement":
            break;
          case "CallExpression":
          case "OptionalCallExpression":
          case "NewExpression":
            if (h.callee !== e) break;
          default:
            m = !0;
        }
      let y = !1;
      !m && this._noLineTerminator && ((o = e.leadingComments) != null && o.some(aY) || this.format.retainLines && e.loc && e.loc.start.line >
      this._buf.getCurrentLine()) && (m = !0, y = !0);
      let T, b;
      if (!m && (s || (s = h && this._noLineTerminatorAfterNode === h && oY.isLastChild(h, e)), s)) {
        var E;
        (E = e.trailingComments) != null && E.some(aY) ? Rtt(e) && (m = !0) : (T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode =
        e);
      }
      m && (this.tokenChar(40), y && this.indent(), this._endsWithInnerRaw = !1, this.inForStatementInit && (b = !0, this.inForStatementInit =
      !1), T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode = null), this._lastCommentLine = 0, this._printLeadingComments(
      e, h);
      let V = l === "Program" || l === "File" ? null : e.loc;
      this.exactSource(V, p.bind(this, e, h)), m ? (this._printTrailingComments(e, h), y && (this.dedent(), this.newline()), this.tokenChar(
      41), this._noLineTerminator = s, b && (this.inForStatementInit = !0)) : s && !this._noLineTerminator ? (this._noLineTerminator = !0, this.
      _printTrailingComments(e, h)) : this._printTrailingComments(e, h, r), this._currentNode = h, u.concise = c, this._insideAux = f, T !==
      void 0 && (this._noLineTerminatorAfterNode = T), this._endsWithInnerRaw = !1;
    }
    _maybeAddAuxComment(e) {
      e && this._printAuxBeforeComment(), this._insideAux || this._printAuxAfterComment();
    }
    _printAuxBeforeComment() {
      if (this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !0;
      let e = this.format.auxiliaryCommentBefore;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    _printAuxAfterComment() {
      if (!this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !1;
      let e = this.format.auxiliaryCommentAfter;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    getPossibleRaw(e) {
      let s = e.extra;
      if (s?.raw != null && s.rawValue != null && e.value === s.rawValue)
        return s.raw;
    }
    printJoin(e, s, r, i, a, o, l, u) {
      if (!(e != null && e.length)) return;
      if (r == null && this.format.retainLines) {
        var c;
        let y = (c = e[0].loc) == null ? void 0 : c.start.line;
        y != null && y !== this._buf.getCurrentLine() && (r = !0);
      }
      r && this.indent();
      let p = {
        addNewlines: o,
        nextNodeStartLine: 0
      }, h = i?.bind(this), f = e.length;
      for (let y = 0; y < f; y++) {
        let T = e[y];
        if (T && (s && this._printNewline(y === 0, p), this.print(T, void 0, u || 0), l?.(T, y), h != null && (y < f - 1 ? h(y, !1) : a && h(
        y, !0)), s)) {
          var d;
          if ((d = T.trailingComments) != null && d.length || (this._lastCommentLine = 0), y + 1 === f)
            this.newline(1);
          else {
            var m;
            let b = e[y + 1];
            p.nextNodeStartLine = ((m = b.loc) == null ? void 0 : m.start.line) || 0, this._printNewline(!0, p);
          }
        }
      }
      r && this.dedent();
    }
    printAndIndentOnComments(e) {
      let s = e.leadingComments && e.leadingComments.length > 0;
      s && this.indent(), this.print(e), s && this.dedent();
    }
    printBlock(e) {
      let s = e.body;
      s.type !== "EmptyStatement" && this.space(), this.print(s);
    }
    _printTrailingComments(e, s, r) {
      let {
        innerComments: i,
        trailingComments: a
      } = e;
      i != null && i.length && this._printComments(2, i, e, s, r), a != null && a.length && this._printComments(2, a, e, s, r);
    }
    _printLeadingComments(e, s) {
      let r = e.leadingComments;
      r != null && r.length && this._printComments(0, r, e, s);
    }
    _maybePrintInnerComments(e, s) {
      if (this._endsWithInnerRaw) {
        var r;
        this.printInnerComments((r = this.tokenMap) == null ? void 0 : r.findMatching(this._currentNode, e, s));
      }
      this._endsWithInnerRaw = !0, this._indentInnerComments = !0;
    }
    printInnerComments(e) {
      let s = this._currentNode, r = s.innerComments;
      if (!(r != null && r.length)) return;
      let i = this.endsWith(32), a = this._indentInnerComments, o = this._printedComments.size;
      a && this.indent(), this._printComments(1, r, s, void 0, void 0, e), i && o !== this._printedComments.size && this.space(), a && this.
      dedent();
    }
    noIndentInnerCommentsHere() {
      this._indentInnerComments = !1;
    }
    printSequence(e, s, r, i) {
      this.printJoin(e, !0, s ?? !1, void 0, void 0, i, void 0, r);
    }
    printList(e, s, r, i, a, o) {
      this.printJoin(e, r, i, a ?? Xtt, s, void 0, o);
    }
    shouldPrintTrailingComma(e) {
      if (!this.tokenMap) return null;
      let s = this.tokenMap.findLastIndex(this._currentNode, (r) => this.tokenMap.matchesOriginal(r, e));
      return s <= 0 ? null : this.tokenMap.matchesOriginal(this._tokens[s - 1], ",");
    }
    _printNewline(e, s) {
      let r = this.format;
      if (r.retainLines || r.compact) return;
      if (r.concise) {
        this.space();
        return;
      }
      if (!e)
        return;
      let i = s.nextNodeStartLine, a = this._lastCommentLine;
      if (i > 0 && a > 0) {
        let o = i - a;
        if (o >= 0) {
          this.newline(o || 1);
          return;
        }
      }
      this._buf.hasContent() && this.newline(1);
    }
    _shouldPrintComment(e, s) {
      if (e.ignore || this._printedComments.has(e)) return 0;
      if (this._noLineTerminator && Jtt.test(e.value))
        return 2;
      if (s && this.tokenMap) {
        let r = this.tokenMap.find(this._currentNode, (i) => i.value === e.value);
        if (r && r.start > s.start)
          return 2;
      }
      return this._printedComments.add(e), this.format.shouldPrintComment(e.value) ? 1 : 0;
    }
    _printComment(e, s) {
      let r = this._noLineTerminator, i = e.type === "CommentBlock", a = i && s !== 1 && !this._noLineTerminator;
      a && this._buf.hasContent() && s !== 2 && this.newline(1);
      let o = this.getLastChar();
      o !== 91 && o !== 123 && o !== 40 && this.space();
      let l;
      if (i) {
        if (l = `/*${e.value}*/`, this.format.indent.adjustMultilineComment) {
          var u;
          let c = (u = e.loc) == null ? void 0 : u.start.column;
          if (c) {
            let p = new RegExp("\\n\\s{1," + c + "}", "g");
            l = l.replace(p, `
`);
          }
          if (this.format.concise)
            l = l.replace(/\n(?!$)/g, `
`);
          else {
            let p = this.format.retainLines ? 0 : this._buf.getCurrentColumn();
            (this._shouldIndent(47) || this.format.retainLines) && (p += this._getIndent()), l = l.replace(/\n(?!$)/g, `
${" ".repeat(p)}`);
          }
        }
      } else r ? l = `/*${e.value}*/` : l = `//${e.value}`;
      if (this._endsWithDiv && this._space(), this.tokenMap) {
        let {
          _printSemicolonBeforeNextToken: c,
          _printSemicolonBeforeNextNode: p
        } = this;
        this._printSemicolonBeforeNextToken = -1, this._printSemicolonBeforeNextNode = -1, this.source("start", e.loc), this._append(l, i), this.
        _printSemicolonBeforeNextNode = p, this._printSemicolonBeforeNextToken = c;
      } else
        this.source("start", e.loc), this._append(l, i);
      !i && !r && this.newline(1, !0), a && s !== 3 && this.newline(1);
    }
    _printComments(e, s, r, i, a = 0, o) {
      let l = r.loc, u = s.length, c = !!l, p = c ? l.start.line : 0, h = c ? l.end.line : 0, f = 0, d = 0, m = this._noLineTerminator ? function() {
      } : this.newline.bind(this);
      for (let y = 0; y < u; y++) {
        let T = s[y], b = this._shouldPrintComment(T, o);
        if (b === 2) {
          c = !1;
          break;
        }
        if (c && T.loc && b === 1) {
          let E = T.loc.start.line, V = T.loc.end.line;
          if (e === 0) {
            let W = 0;
            y === 0 ? this._buf.hasContent() && (T.type === "CommentLine" || E !== V) && (W = d = 1) : W = E - f, f = V, m(W), this._printComment(
            T, 1), y + 1 === u && (m(Math.max(p - f, d)), f = p);
          } else if (e === 1) {
            let W = E - (y === 0 ? p : f);
            f = V, m(W), this._printComment(T, 1), y + 1 === u && (m(Math.min(1, h - f)), f = h);
          } else {
            let W = E - (y === 0 ? h - a : f);
            f = V, m(W), this._printComment(T, 1);
          }
        } else {
          if (c = !1, b !== 1)
            continue;
          if (u === 1) {
            let E = T.loc ? T.loc.start.line === T.loc.end.line : !lY.test(T.value), V = E && !Utt(r) && !Ktt(i) && !Vtt(i) && !Wtt(r);
            e === 0 ? this._printComment(T, V && r.type !== "ObjectExpression" || E && qtt(i, {
              body: r
            }) ? 1 : 0) : V && e === 2 ? this._printComment(T, 1) : this._printComment(T, 0);
          } else e === 1 && !(r.type === "ObjectExpression" && r.properties.length > 1) && r.type !== "ClassBody" && r.type !== "TSInterface\
Body" ? this._printComment(T, y === 0 ? 2 : y === u - 1 ? 3 : 0) : this._printComment(T, 0);
        }
      }
      e === 2 && c && f && (this._lastCommentLine = f);
    }
  };
  Object.assign(Bg.prototype, Ftt);
  (0, jtt.addDeprecatedGenerators)(Bg);
  var uUs = NS.default = Bg;
  function Xtt(t, e) {
    this.token(",", !1, t), e || this.space();
  }
  n(Xtt, "commaSeparator");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/generator/lib/index.js
var fY = g((kS) => {
  "use strict";
  Object.defineProperty(kS, "__esModule", {
    value: !0
  });
  kS.default = ztt;
  var cY = mJ(), pY = uY();
  function hY(t, e, s) {
    if (e.experimental_preserveFormat) {
      if (typeof t != "string")
        throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string");
      if (!e.retainLines)
        throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`");
      if (e.compact && e.compact !== "auto")
        throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option");
      if (e.minified)
        throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option");
      if (e.jsescOption)
        throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option");
      if (!Array.isArray(s.tokens))
        throw new Error("`experimental_preserveFormat` requires the AST to have attatched the token of the input code. Make sure to enable t\
he `tokens: true` parser option.");
    }
    let r = {
      auxiliaryCommentBefore: e.auxiliaryCommentBefore,
      auxiliaryCommentAfter: e.auxiliaryCommentAfter,
      shouldPrintComment: e.shouldPrintComment,
      preserveFormat: e.experimental_preserveFormat,
      retainLines: e.retainLines,
      retainFunctionParens: e.retainFunctionParens,
      comments: e.comments == null || e.comments,
      compact: e.compact,
      minified: e.minified,
      concise: e.concise,
      indent: {
        adjustMultilineComment: !0,
        style: "  "
      },
      jsescOption: Object.assign({
        quotes: "double",
        wrap: !0,
        minimal: !1
      }, e.jsescOption),
      topicToken: e.topicToken,
      importAttributesKeyword: e.importAttributesKeyword
    };
    {
      var i;
      r.decoratorsBeforeExport = e.decoratorsBeforeExport, r.jsescOption.json = e.jsonCompatibleStrings, r.recordAndTupleSyntaxType = (i = e.
      recordAndTupleSyntaxType) != null ? i : "hash";
    }
    r.minified ? (r.compact = !0, r.shouldPrintComment = r.shouldPrintComment || (() => r.comments)) : r.shouldPrintComment = r.shouldPrintComment ||
    ((u) => r.comments || u.includes("@license") || u.includes("@preserve")), r.compact === "auto" && (r.compact = typeof t == "string" && t.
    length > 5e5, r.compact && console.error(`[BABEL] Note: The code generator has deoptimised the styling of ${e.filename} as it exceeds th\
e max of 500KB.`)), (r.compact || r.preserveFormat) && (r.indent.adjustMultilineComment = !1);
    let {
      auxiliaryCommentBefore: a,
      auxiliaryCommentAfter: o,
      shouldPrintComment: l
    } = r;
    return a && !l(a) && (r.auxiliaryCommentBefore = void 0), o && !l(o) && (r.auxiliaryCommentAfter = void 0), r;
  }
  n(hY, "normalizeOptions");
  kS.CodeGenerator = class {
    static {
      n(this, "CodeGenerator");
    }
    constructor(e, s = {}, r) {
      this._ast = void 0, this._format = void 0, this._map = void 0, this._ast = e, this._format = hY(r, s, e), this._map = s.sourceMaps ? new cY.
      default(s, r) : null;
    }
    generate() {
      return new pY.default(this._format, this._map).generate(this._ast);
    }
  };
  function ztt(t, e = {}, s) {
    let r = hY(s, e, t), i = e.sourceMaps ? new cY.default(e, s) : null;
    return new pY.default(r, i, t.tokens, typeof s == "string" ? s : null).generate(t);
  }
  n(ztt, "generate");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/ancestry.js
var dY = g((La) => {
  "use strict";
  Object.defineProperty(La, "__esModule", {
    value: !0
  });
  La.find = est;
  La.findParent = Ztt;
  La.getAncestry = nst;
  La.getDeepestCommonAncestorFrom = ist;
  La.getEarliestCommonAncestorFrom = rst;
  La.getFunctionParent = tst;
  La.getStatementParent = sst;
  La.inType = lst;
  La.isAncestor = ast;
  La.isDescendant = ost;
  var Gtt = fe(), {
    VISITOR_KEYS: Qtt
  } = Gtt;
  function Ztt(t) {
    let e = this;
    for (; e = e.parentPath; )
      if (t(e)) return e;
    return null;
  }
  n(Ztt, "findParent");
  function est(t) {
    let e = this;
    do
      if (t(e)) return e;
    while (e = e.parentPath);
    return null;
  }
  n(est, "find");
  function tst() {
    return this.findParent((t) => t.isFunction());
  }
  n(tst, "getFunctionParent");
  function sst() {
    let t = this;
    do {
      if (!t.parentPath || Array.isArray(t.container) && t.isStatement())
        break;
      t = t.parentPath;
    } while (t);
    if (t && (t.isProgram() || t.isFile()))
      throw new Error("File/Program node, we can't possibly find a statement parent to this");
    return t;
  }
  n(sst, "getStatementParent");
  function rst(t) {
    return this.getDeepestCommonAncestorFrom(t, function(e, s, r) {
      let i, a = Qtt[e.type];
      for (let o of r) {
        let l = o[s + 1];
        if (!i) {
          i = l;
          continue;
        }
        if (l.listKey && i.listKey === l.listKey && l.key < i.key) {
          i = l;
          continue;
        }
        let u = a.indexOf(i.parentKey), c = a.indexOf(l.parentKey);
        u > c && (i = l);
      }
      return i;
    });
  }
  n(rst, "getEarliestCommonAncestorFrom");
  function ist(t, e) {
    if (!t.length)
      return this;
    if (t.length === 1)
      return t[0];
    let s = 1 / 0, r, i, a = t.map((l) => {
      let u = [];
      do
        u.unshift(l);
      while ((l = l.parentPath) && l !== this);
      return u.length < s && (s = u.length), u;
    }), o = a[0];
    e: for (let l = 0; l < s; l++) {
      let u = o[l];
      for (let c of a)
        if (c[l] !== u)
          break e;
      r = l, i = u;
    }
    if (i)
      return e ? e(i, r, a) : i;
    throw new Error("Couldn't find intersection");
  }
  n(ist, "getDeepestCommonAncestorFrom");
  function nst() {
    let t = this, e = [];
    do
      e.push(t);
    while (t = t.parentPath);
    return e;
  }
  n(nst, "getAncestry");
  function ast(t) {
    return t.isDescendant(this);
  }
  n(ast, "isAncestor");
  function ost(t) {
    return !!this.findParent((e) => e === t);
  }
  n(ost, "isDescendant");
  function lst(...t) {
    let e = this;
    for (; e; ) {
      for (let s of t)
        if (e.node.type === s) return !0;
      e = e.parentPath;
    }
    return !1;
  }
  n(lst, "inType");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/inference/util.js
var hO = g((pO) => {
  "use strict";
  Object.defineProperty(pO, "__esModule", {
    value: !0
  });
  pO.createUnionType = fst;
  var ust = fe(), {
    createFlowUnionType: mY,
    createTSUnionType: yY,
    createUnionTypeAnnotation: cst,
    isFlowType: pst,
    isTSType: hst
  } = ust;
  function fst(t) {
    {
      if (t.every((e) => pst(e)))
        return mY ? mY(t) : cst(t);
      if (t.every((e) => hst(e)) && yY)
        return yY(t);
    }
  }
  n(fst, "createUnionType");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js
var SY = g((fO) => {
  "use strict";
  Object.defineProperty(fO, "__esModule", {
    value: !0
  });
  fO.default = Tst;
  var dst = fe(), TY = hO(), {
    BOOLEAN_NUMBER_BINARY_OPERATORS: mst,
    createTypeAnnotationBasedOnTypeof: yst,
    numberTypeAnnotation: bY,
    voidTypeAnnotation: gst
  } = dst;
  function Tst(t) {
    if (!this.isReferenced()) return;
    let e = this.scope.getBinding(t.name);
    if (e)
      return e.identifier.typeAnnotation ? e.identifier.typeAnnotation : bst(e, this, t.name);
    if (t.name === "undefined")
      return gst();
    if (t.name === "NaN" || t.name === "Infinity")
      return bY();
    t.name;
  }
  n(Tst, "_default");
  function bst(t, e, s) {
    let r = [], i = [], a = gY(t, e, i), o = xY(t, e, s);
    if (o) {
      let l = gY(t, o.ifStatement);
      a = a.filter((u) => !l.includes(u)), r.push(o.typeAnnotation);
    }
    if (a.length) {
      a.push(...i);
      for (let l of a)
        r.push(l.getTypeAnnotation());
    }
    if (r.length)
      return (0, TY.createUnionType)(r);
  }
  n(bst, "getTypeAnnotationBindingConstantViolations");
  function gY(t, e, s) {
    let r = t.constantViolations.slice();
    return r.unshift(t.path), r.filter((i) => {
      i = i.resolve();
      let a = i._guessExecutionStatusRelativeTo(e);
      return s && a === "unknown" && s.push(i), a === "before";
    });
  }
  n(gY, "getConstantViolationsBefore");
  function xst(t, e) {
    let s = e.node.operator, r = e.get("right").resolve(), i = e.get("left").resolve(), a;
    if (i.isIdentifier({
      name: t
    }) ? a = r : r.isIdentifier({
      name: t
    }) && (a = i), a)
      return s === "===" ? a.getTypeAnnotation() : mst.includes(s) ? bY() : void 0;
    if (s !== "===" && s !== "==") return;
    let o, l;
    if (i.isUnaryExpression({
      operator: "typeof"
    }) ? (o = i, l = r) : r.isUnaryExpression({
      operator: "typeof"
    }) && (o = r, l = i), !o || !o.get("argument").isIdentifier({
      name: t
    }) || (l = l.resolve(), !l.isLiteral())) return;
    let u = l.node.value;
    if (typeof u == "string")
      return yst(u);
  }
  n(xst, "inferAnnotationFromBinaryExpression");
  function Sst(t, e, s) {
    let r;
    for (; r = e.parentPath; ) {
      if (r.isIfStatement() || r.isConditionalExpression())
        return e.key === "test" ? void 0 : r;
      if (r.isFunction() && r.parentPath.scope.getBinding(s) !== t)
        return;
      e = r;
    }
  }
  n(Sst, "getParentConditionalPath");
  function xY(t, e, s) {
    let r = Sst(t, e, s);
    if (!r) return;
    let a = [r.get("test")], o = [];
    for (let l = 0; l < a.length; l++) {
      let u = a[l];
      if (u.isLogicalExpression())
        u.node.operator === "&&" && (a.push(u.get("left")), a.push(u.get("right")));
      else if (u.isBinaryExpression()) {
        let c = xst(s, u);
        c && o.push(c);
      }
    }
    return o.length ? {
      typeAnnotation: (0, TY.createUnionType)(o),
      ifStatement: r
    } : xY(t, r, s);
  }
  n(xY, "getConditionalAnnotation");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/inference/inferers.js
var NY = g((Xs) => {
  "use strict";
  Object.defineProperty(Xs, "__esModule", {
    value: !0
  });
  Xs.ArrayExpression = CY;
  Xs.AssignmentExpression = Wst;
  Xs.BinaryExpression = Rst;
  Xs.BooleanLiteral = Yst;
  Xs.CallExpression = rrt;
  Xs.ConditionalExpression = Ust;
  Xs.ClassDeclaration = Xs.ClassExpression = Xs.FunctionDeclaration = Xs.ArrowFunctionExpression = Xs.FunctionExpression = Qst;
  Object.defineProperty(Xs, "Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Est.default;
    }, "get")
  });
  Xs.LogicalExpression = qst;
  Xs.NewExpression = Mst;
  Xs.NullLiteral = Xst;
  Xs.NumericLiteral = Jst;
  Xs.ObjectExpression = Gst;
  Xs.ParenthesizedExpression = Vst;
  Xs.RegExpLiteral = zst;
  Xs.RestElement = wY;
  Xs.SequenceExpression = Kst;
  Xs.StringLiteral = Hst;
  Xs.TSAsExpression = vY;
  Xs.TSNonNullExpression = Bst;
  Xs.TaggedTemplateExpression = irt;
  Xs.TemplateLiteral = Fst;
  Xs.TypeCastExpression = AY;
  Xs.UnaryExpression = jst;
  Xs.UpdateExpression = $st;
  Xs.VariableDeclarator = Lst;
  var Pst = fe(), Est = SY(), EY = hO(), {
    BOOLEAN_BINARY_OPERATORS: Ast,
    BOOLEAN_UNARY_OPERATORS: vst,
    NUMBER_BINARY_OPERATORS: Cst,
    NUMBER_UNARY_OPERATORS: wst,
    STRING_UNARY_OPERATORS: Ist,
    anyTypeAnnotation: PY,
    arrayTypeAnnotation: dO,
    booleanTypeAnnotation: mO,
    buildMatchMemberExpression: DS,
    genericTypeAnnotation: Jc,
    identifier: Nh,
    nullLiteralTypeAnnotation: Nst,
    numberTypeAnnotation: Fd,
    stringTypeAnnotation: kh,
    tupleTypeAnnotation: kst,
    unionTypeAnnotation: Dst,
    voidTypeAnnotation: Ost,
    isIdentifier: _st
  } = Pst;
  function Lst() {
    if (this.get("id").isIdentifier())
      return this.get("init").getTypeAnnotation();
  }
  n(Lst, "VariableDeclarator");
  function AY(t) {
    return t.typeAnnotation;
  }
  n(AY, "TypeCastExpression");
  AY.validParent = !0;
  function vY(t) {
    return t.typeAnnotation;
  }
  n(vY, "TSAsExpression");
  vY.validParent = !0;
  function Bst() {
    return this.get("expression").getTypeAnnotation();
  }
  n(Bst, "TSNonNullExpression");
  function Mst(t) {
    if (t.callee.type === "Identifier")
      return Jc(t.callee);
  }
  n(Mst, "NewExpression");
  function Fst() {
    return kh();
  }
  n(Fst, "TemplateLiteral");
  function jst(t) {
    let e = t.operator;
    if (e === "void")
      return Ost();
    if (wst.includes(e))
      return Fd();
    if (Ist.includes(e))
      return kh();
    if (vst.includes(e))
      return mO();
  }
  n(jst, "UnaryExpression");
  function Rst(t) {
    let e = t.operator;
    if (Cst.includes(e))
      return Fd();
    if (Ast.includes(e))
      return mO();
    if (e === "+") {
      let s = this.get("right"), r = this.get("left");
      return r.isBaseType("number") && s.isBaseType("number") ? Fd() : r.isBaseType("string") || s.isBaseType("string") ? kh() : Dst([kh(), Fd()]);
    }
  }
  n(Rst, "BinaryExpression");
  function qst() {
    let t = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()];
    return (0, EY.createUnionType)(t);
  }
  n(qst, "LogicalExpression");
  function Ust() {
    let t = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()];
    return (0, EY.createUnionType)(t);
  }
  n(Ust, "ConditionalExpression");
  function Kst() {
    return this.get("expressions").pop().getTypeAnnotation();
  }
  n(Kst, "SequenceExpression");
  function Vst() {
    return this.get("expression").getTypeAnnotation();
  }
  n(Vst, "ParenthesizedExpression");
  function Wst() {
    return this.get("right").getTypeAnnotation();
  }
  n(Wst, "AssignmentExpression");
  function $st(t) {
    let e = t.operator;
    if (e === "++" || e === "--")
      return Fd();
  }
  n($st, "UpdateExpression");
  function Hst() {
    return kh();
  }
  n(Hst, "StringLiteral");
  function Jst() {
    return Fd();
  }
  n(Jst, "NumericLiteral");
  function Yst() {
    return mO();
  }
  n(Yst, "BooleanLiteral");
  function Xst() {
    return Nst();
  }
  n(Xst, "NullLiteral");
  function zst() {
    return Jc(Nh("RegExp"));
  }
  n(zst, "RegExpLiteral");
  function Gst() {
    return Jc(Nh("Object"));
  }
  n(Gst, "ObjectExpression");
  function CY() {
    return Jc(Nh("Array"));
  }
  n(CY, "ArrayExpression");
  function wY() {
    return CY();
  }
  n(wY, "RestElement");
  wY.validParent = !0;
  function Qst() {
    return Jc(Nh("Function"));
  }
  n(Qst, "Func");
  var Zst = DS("Array.from"), ert = DS("Object.keys"), trt = DS("Object.values"), srt = DS("Object.entries");
  function rrt() {
    let {
      callee: t
    } = this.node;
    return ert(t) ? dO(kh()) : Zst(t) || trt(t) || _st(t, {
      name: "Array"
    }) ? dO(PY()) : srt(t) ? dO(kst([kh(), PY()])) : IY(this.get("callee"));
  }
  n(rrt, "CallExpression");
  function irt() {
    return IY(this.get("tag"));
  }
  n(irt, "TaggedTemplateExpression");
  function IY(t) {
    if (t = t.resolve(), t.isFunction()) {
      let {
        node: e
      } = t;
      if (e.async)
        return e.generator ? Jc(Nh("AsyncIterator")) : Jc(Nh("Promise"));
      if (e.generator)
        return Jc(Nh("Iterator"));
      if (t.node.returnType)
        return t.node.returnType;
    }
  }
  n(IY, "resolveCall");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/inference/index.js
var LY = g((Yc) => {
  "use strict";
  Object.defineProperty(Yc, "__esModule", {
    value: !0
  });
  Yc._getTypeAnnotation = _Y;
  Yc.baseTypeStrictlyMatches = Crt;
  Yc.couldBeBaseType = vrt;
  Yc.getTypeAnnotation = Ert;
  Yc.isBaseType = Art;
  Yc.isGenericType = wrt;
  var kY = NY(), nrt = fe(), {
    anyTypeAnnotation: OY,
    isAnyTypeAnnotation: OS,
    isArrayTypeAnnotation: art,
    isBooleanTypeAnnotation: ort,
    isEmptyTypeAnnotation: lrt,
    isFlowBaseAnnotation: urt,
    isGenericTypeAnnotation: crt,
    isIdentifier: DY,
    isMixedTypeAnnotation: prt,
    isNumberTypeAnnotation: hrt,
    isStringTypeAnnotation: frt,
    isTSArrayType: drt,
    isTSTypeAnnotation: mrt,
    isTSTypeReference: yrt,
    isTupleTypeAnnotation: grt,
    isTypeAnnotation: Trt,
    isUnionTypeAnnotation: brt,
    isVoidTypeAnnotation: xrt,
    stringTypeAnnotation: Srt,
    voidTypeAnnotation: Prt
  } = nrt;
  function Ert() {
    let t = this.getData("typeAnnotation");
    return t != null || (t = _Y.call(this) || OY(), (Trt(t) || mrt(t)) && (t = t.typeAnnotation), this.setData("typeAnnotation", t)), t;
  }
  n(Ert, "getTypeAnnotation");
  var yO = /* @__PURE__ */ new WeakSet();
  function _Y() {
    let t = this.node;
    if (!t)
      if (this.key === "init" && this.parentPath.isVariableDeclarator()) {
        let s = this.parentPath.parentPath, r = s.parentPath;
        return s.key === "left" && r.isForInStatement() ? Srt() : s.key === "left" && r.isForOfStatement() ? OY() : Prt();
      } else
        return;
    if (t.typeAnnotation)
      return t.typeAnnotation;
    if (!yO.has(t)) {
      yO.add(t);
      try {
        var e;
        let s = kY[t.type];
        if (s)
          return s.call(this, t);
        if (s = kY[this.parentPath.type], (e = s) != null && e.validParent)
          return this.parentPath.getTypeAnnotation();
      } finally {
        yO.delete(t);
      }
    }
  }
  n(_Y, "_getTypeAnnotation");
  function Art(t, e) {
    return gO(t, this.getTypeAnnotation(), e);
  }
  n(Art, "isBaseType");
  function gO(t, e, s) {
    if (t === "string")
      return frt(e);
    if (t === "number")
      return hrt(e);
    if (t === "boolean")
      return ort(e);
    if (t === "any")
      return OS(e);
    if (t === "mixed")
      return prt(e);
    if (t === "empty")
      return lrt(e);
    if (t === "void")
      return xrt(e);
    if (s)
      return !1;
    throw new Error(`Unknown base type ${t}`);
  }
  n(gO, "_isBaseType");
  function vrt(t) {
    let e = this.getTypeAnnotation();
    if (OS(e)) return !0;
    if (brt(e)) {
      for (let s of e.types)
        if (OS(s) || gO(t, s, !0))
          return !0;
      return !1;
    } else
      return gO(t, e, !0);
  }
  n(vrt, "couldBeBaseType");
  function Crt(t) {
    let e = this.getTypeAnnotation(), s = t.getTypeAnnotation();
    return !OS(e) && urt(e) ? s.type === e.type : !1;
  }
  n(Crt, "baseTypeStrictlyMatches");
  function wrt(t) {
    let e = this.getTypeAnnotation();
    return t === "Array" && (drt(e) || art(e) || grt(e)) ? !0 : crt(e) && DY(e.id, {
      name: t
    }) || yrt(e) && DY(e.typeName, {
      name: t
    });
  }
  n(wrt, "isGenericType");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js
var BY = g((_S) => {
  "use strict";
  Object.defineProperty(_S, "__esModule", {
    value: !0
  });
  _S.hooks = void 0;
  var vUs = _S.hooks = [function(t, e) {
    if (t.key === "test" && (e.isWhile() || e.isSwitchCase()) || t.key === "declaration" && e.isExportDeclaration() || t.key === "body" && e.
    isLabeledStatement() || t.listKey === "declarations" && e.isVariableDeclaration() && e.node.declarations.length === 1 || t.key === "expr\
ession" && e.isExpressionStatement())
      return e.remove(), !0;
  }, function(t, e) {
    if (e.isSequenceExpression() && e.node.expressions.length === 1)
      return e.replaceWith(e.node.expressions[0]), !0;
  }, function(t, e) {
    if (e.isBinary())
      return t.key === "left" ? e.replaceWith(e.node.right) : e.replaceWith(e.node.left), !0;
  }, function(t, e) {
    if (e.isIfStatement() && t.key === "consequent" || t.key === "body" && (e.isLoop() || e.isArrowFunctionExpression()))
      return t.replaceWith({
        type: "BlockStatement",
        body: []
      }), !0;
  }];
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/removal.js
var LS = g((Xc) => {
  "use strict";
  Object.defineProperty(Xc, "__esModule", {
    value: !0
  });
  Xc._assertUnremoved = qY;
  Xc._callRemovalHooks = jY;
  Xc._markRemoved = TO;
  Xc._remove = RY;
  Xc._removeFromScope = FY;
  Xc.remove = Brt;
  var Irt = BY(), Nrt = vh(), krt = bO(), MY = zc(), Drt = fe(), Ort = BS(), _rt = ol(), {
    getBindingIdentifiers: Lrt
  } = Drt;
  function Brt() {
    var t;
    if (qY.call(this), _rt.resync.call(this), jY.call(this)) {
      TO.call(this);
      return;
    }
    (t = this.opts) != null && t.noScope || FY.call(this), this.shareCommentsWithSiblings(), RY.call(this), TO.call(this);
  }
  n(Brt, "remove");
  function FY() {
    let t = Lrt(this.node, !1, !1, !0);
    Object.keys(t).forEach((e) => this.scope.removeBinding(e));
  }
  n(FY, "_removeFromScope");
  function jY() {
    if (this.parentPath) {
      for (let t of Irt.hooks)
        if (t(this, this.parentPath)) return !0;
    }
  }
  n(jY, "_callRemovalHooks");
  function RY() {
    Array.isArray(this.container) ? (this.container.splice(this.key, 1), Ort.updateSiblingKeys.call(this, this.key, -1)) : krt._replaceWith.
    call(this, null);
  }
  n(RY, "_remove");
  function TO() {
    this._traverseFlags |= MY.SHOULD_SKIP | MY.REMOVED, this.parent && (0, Nrt.getCachedPaths)(this.hub, this.parent).delete(this.node), this.
    node = null;
  }
  n(TO, "_markRemoved");
  function qY() {
    if (this.removed)
      throw this.buildCodeFrameError("NodePath has been removed so is read-only.");
  }
  n(qY, "_assertUnremoved");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/lib/hoister.js
var KY = g((MS) => {
  "use strict";
  Object.defineProperty(MS, "__esModule", {
    value: !0
  });
  MS.default = void 0;
  var UY = fe(), Mrt = UY, {
    react: Frt
  } = UY, {
    cloneNode: jrt,
    jsxExpressionContainer: Rrt,
    variableDeclaration: qrt,
    variableDeclarator: Urt
  } = Mrt, Krt = {
    ReferencedIdentifier(t, e) {
      if (t.isJSXIdentifier() && Frt.isCompatTag(t.node.name) && !t.parentPath.isJSXMemberExpression())
        return;
      if (t.node.name === "this") {
        let r = t.scope;
        do
          if (r.path.isFunction() && !r.path.isArrowFunctionExpression())
            break;
        while (r = r.parent);
        r && e.breakOnScopePaths.push(r.path);
      }
      let s = t.scope.getBinding(t.node.name);
      if (s) {
        for (let r of s.constantViolations)
          if (r.scope !== s.path.scope) {
            e.mutableBinding = !0, t.stop();
            return;
          }
        s === e.scope.getBinding(t.node.name) && (e.bindings[t.node.name] = s);
      }
    }
  }, xO = class {
    static {
      n(this, "PathHoister");
    }
    constructor(e, s) {
      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 = s, this.path = e, this.attachAfter = !1;
    }
    isCompatibleScope(e) {
      for (let s of Object.keys(this.bindings)) {
        let r = this.bindings[s];
        if (!e.bindingIdentifierEquals(s, r.identifier))
          return !1;
      }
      return !0;
    }
    getCompatibleScopes() {
      let e = this.path.scope;
      do {
        if (this.isCompatibleScope(e))
          this.scopes.push(e);
        else
          break;
        if (this.breakOnScopePaths.includes(e.path))
          break;
      } while (e = e.parent);
    }
    getAttachmentPath() {
      let e = this._getAttachmentPath();
      if (!e) return;
      let s = e.scope;
      if (s.path === e && (s = e.scope.parent), s.path.isProgram() || s.path.isFunction())
        for (let r of Object.keys(this.bindings)) {
          if (!s.hasOwnBinding(r)) continue;
          let i = this.bindings[r];
          if (i.kind === "param" || i.path.parentKey === "params")
            continue;
          if (this.getAttachmentParentForPath(i.path).key >= e.key) {
            this.attachAfter = !0, e = i.path;
            for (let o of i.constantViolations)
              this.getAttachmentParentForPath(o).key > e.key && (e = o);
          }
        }
      return e;
    }
    _getAttachmentPath() {
      let s = this.scopes.pop();
      if (s) {
        if (s.path.isFunction())
          if (this.hasOwnParamBindings(s)) {
            if (this.scope === s) return;
            let r = s.path.get("body").get("body");
            for (let i = 0; i < r.length; i++)
              if (!r[i].node._blockHoist)
                return r[i];
          } else
            return this.getNextScopeAttachmentParent();
        else if (s.path.isProgram())
          return this.getNextScopeAttachmentParent();
      }
    }
    getNextScopeAttachmentParent() {
      let e = this.scopes.pop();
      if (e) return this.getAttachmentParentForPath(e.path);
    }
    getAttachmentParentForPath(e) {
      do
        if (!e.parentPath || Array.isArray(e.container) && e.isStatement())
          return e;
      while (e = e.parentPath);
    }
    hasOwnParamBindings(e) {
      for (let s of Object.keys(this.bindings)) {
        if (!e.hasOwnBinding(s)) continue;
        let r = this.bindings[s];
        if (r.kind === "param" && r.constant) return !0;
      }
      return !1;
    }
    run() {
      if (this.path.traverse(Krt, this), this.mutableBinding) return;
      this.getCompatibleScopes();
      let e = this.getAttachmentPath();
      if (!e || e.getFunctionParent() === this.path.getFunctionParent()) return;
      let s = e.scope.generateUidIdentifier("ref"), r = Urt(s, this.path.node), i = this.attachAfter ? "insertAfter" : "insertBefore", [a] = e[i](
      [e.isVariableDeclarator() ? r : qrt("var", [r])]), o = this.path.parentPath;
      return o.isJSXElement() && this.path.container === o.node.children && (s = Rrt(s)), this.path.replaceWith(jrt(s)), e.isVariableDeclarator() ?
      a.get("init") : a.get("declarations.0.init");
    }
  };
  MS.default = xO;
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/modification.js
var BS = g((Ba) => {
  "use strict";
  Object.defineProperty(Ba, "__esModule", {
    value: !0
  });
  Ba._containerInsert = vO;
  Ba._containerInsertAfter = $Y;
  Ba._containerInsertBefore = CO;
  Ba._verifyNodeList = Mg;
  Ba.insertAfter = nit;
  Ba.insertBefore = rit;
  Ba.pushContainer = oit;
  Ba.unshiftContainer = ait;
  Ba.updateSiblingKeys = YY;
  var Vrt = vh(), AO = zc(), SO = ol(), FS = LS(), Wrt = fe(), $rt = KY(), {
    arrowFunctionExpression: Hrt,
    assertExpression: Jrt,
    assignmentExpression: Yrt,
    blockStatement: VY,
    callExpression: Xrt,
    cloneNode: PO,
    expressionStatement: EO,
    isAssignmentExpression: zrt,
    isCallExpression: Grt,
    isExportNamedDeclaration: WY,
    isExpression: Qrt,
    isIdentifier: Zrt,
    isSequenceExpression: eit,
    isSuper: tit,
    thisExpression: sit
  } = Wrt;
  function rit(t) {
    FS._assertUnremoved.call(this);
    let e = Mg.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || WY(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertBefore(e);
    if (this.isNodeType("Expression") && !this.isJSXElement() || s.isForStatement() && this.key === "init")
      return this.node && e.push(this.node), this.replaceExpressionWithStatements(e);
    if (Array.isArray(this.container))
      return CO.call(this, e);
    if (this.isStatementOrBlock()) {
      let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
      return this.replaceWith(VY(a ? [i] : [])), this.unshiftContainer("body", e);
    } 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?");
  }
  n(rit, "insertBefore");
  function vO(t, e) {
    YY.call(this, t, e.length);
    let s = [];
    this.container.splice(t, 0, ...e);
    for (let a = 0; a < e.length; a++) {
      var r;
      let o = t + a, l = this.getSibling(o);
      s.push(l), (r = this.context) != null && r.queue && SO.pushContext.call(l, this.context);
    }
    let i = SO._getQueueContexts.call(this);
    for (let a of s) {
      SO.setScope.call(a), a.debug("Inserted.");
      for (let o of i)
        o.maybeQueue(a, !0);
    }
    return s;
  }
  n(vO, "_containerInsert");
  function CO(t) {
    return vO.call(this, this.key, t);
  }
  n(CO, "_containerInsertBefore");
  function $Y(t) {
    return vO.call(this, this.key + 1, t);
  }
  n($Y, "_containerInsertAfter");
  var HY = /* @__PURE__ */ n((t) => t[t.length - 1], "last");
  function JY(t) {
    return eit(t.parent) && (HY(t.parent.expressions) !== t.node || JY(t.parentPath));
  }
  n(JY, "isHiddenInSequenceExpression");
  function iit(t, e) {
    if (!zrt(t) || !Zrt(t.left))
      return !1;
    let s = e.getBlockParent();
    return s.hasOwnBinding(t.left.name) && s.getOwnBinding(t.left.name).constantViolations.length <= 1;
  }
  n(iit, "isAlmostConstantAssignment");
  function nit(t) {
    if (FS._assertUnremoved.call(this), this.isSequenceExpression())
      return HY(this.get("expressions")).insertAfter(t);
    let e = Mg.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || WY(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertAfter(e.map((i) => Qrt(i) ? EO(i) : i));
    if (this.isNodeType("Expression") && !this.isJSXElement() && !s.isJSXElement() || s.isForStatement() && this.key === "init") {
      let i = this;
      if (i.node) {
        let a = i.node, {
          scope: o
        } = this;
        if (o.path.isPattern())
          return Jrt(a), i.replaceWith(Xrt(Hrt([], a), [])), i.get("callee.body").insertAfter(e), [i];
        if (JY(i))
          e.unshift(a);
        else if (Grt(a) && tit(a.callee))
          e.unshift(a), e.push(sit());
        else if (iit(a, o))
          e.unshift(a), e.push(PO(a.left));
        else if (o.isPure(a, !0))
          e.push(a);
        else {
          s.isMethod({
            computed: !0,
            key: a
          }) && (o = o.parent);
          let l = o.generateDeclaredUidIdentifier();
          e.unshift(EO(Yrt("=", PO(l), a))), e.push(EO(PO(l)));
        }
      }
      return this.replaceExpressionWithStatements(e);
    } else {
      if (Array.isArray(this.container))
        return $Y.call(this, e);
      if (this.isStatementOrBlock()) {
        let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
        return this.replaceWith(VY(a ? [i] : [])), this.pushContainer("body", e);
      } 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?");
    }
  }
  n(nit, "insertAfter");
  function YY(t, e) {
    if (!this.parent) return;
    let s = (0, Vrt.getCachedPaths)(this.hub, this.parent) || [];
    for (let [, r] of s)
      typeof r.key == "number" && r.container === this.container && r.key >= t && (r.key += e);
  }
  n(YY, "updateSiblingKeys");
  function Mg(t) {
    if (!t)
      return [];
    Array.isArray(t) || (t = [t]);
    for (let e = 0; e < t.length; e++) {
      let s = t[e], r;
      if (s ? typeof s != "object" ? r = "contains a non-object node" : s.type ? s instanceof AO.default && (r = "has a NodePath when it exp\
ected a raw object") : r = "without a type" : r = "has falsy node", r) {
        let i = Array.isArray(s) ? "array" : typeof s;
        throw new Error(`Node list ${r} with the index of ${e} and type of ${i}`);
      }
    }
    return t;
  }
  n(Mg, "_verifyNodeList");
  function ait(t, e) {
    FS._assertUnremoved.call(this), e = Mg.call(this, e);
    let s = AO.default.get({
      parentPath: this,
      parent: this.node,
      container: this.node[t],
      listKey: t,
      key: 0
    }).setContext(this.context);
    return CO.call(s, e);
  }
  n(ait, "unshiftContainer");
  function oit(t, e) {
    FS._assertUnremoved.call(this);
    let s = Mg.call(this, e), r = this.node[t];
    return AO.default.get({
      parentPath: this,
      parent: this.node,
      container: r,
      listKey: t,
      key: r.length
    }).setContext(this.context).replaceWithMultiple(s);
  }
  n(oit, "pushContainer");
  Ba.hoist = /* @__PURE__ */ n(function(e = this.scope) {
    return new $rt.default(this, e).run();
  }, "hoist");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js
var vX = g(($g) => {
  "use strict";
  Object.defineProperty($g, "__esModule", {
    value: !0
  });
  function lit(t, e) {
    if (t == null) return {};
    var s = {};
    for (var r in t) if ({}.hasOwnProperty.call(t, r)) {
      if (e.includes(r)) continue;
      s[r] = t[r];
    }
    return s;
  }
  n(lit, "_objectWithoutPropertiesLoose");
  var ul = class {
    static {
      n(this, "Position");
    }
    constructor(e, s, r) {
      this.line = void 0, this.column = void 0, this.index = void 0, this.line = e, this.column = s, this.index = r;
    }
  }, Kd = class {
    static {
      n(this, "SourceLocation");
    }
    constructor(e, s) {
      this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = e, this.end = s;
    }
  };
  function Cn(t, e) {
    let {
      line: s,
      column: r,
      index: i
    } = t;
    return new ul(s, r + e, i + e);
  }
  n(Cn, "createPositionWithColumnOffset");
  var XY = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED", uit = {
    ImportMetaOutsideModule: {
      message: `import.meta may appear only with 'sourceType: "module"'`,
      code: XY
    },
    ImportOutsideModule: {
      message: `'import' and 'export' may appear only with 'sourceType: "module"'`,
      code: XY
    }
  }, zY = {
    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"
  }, qS = /* @__PURE__ */ n((t) => t.type === "UpdateExpression" ? zY.UpdateExpression[`${t.prefix}`] : zY[t.type], "toNodeDescription"), cit = {
    AccessorIsGenerator: /* @__PURE__ */ n(({
      kind: t
    }) => `A ${t}ter cannot be a generator.`, "AccessorIsGenerator"),
    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: /* @__PURE__ */ n(({
      kind: t
    }) => `Missing initializer in ${t} declaration.`, "DeclarationMissingInitializer"),
    DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(deco\
rator)(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 s\
ame 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: /* @__PURE__ */ n(({
      exportName: t
    }) => `\`${t}\` has already been exported. Exported identifiers must be unique.`, "DuplicateExport"),
    DuplicateProto: "Redefinition of __proto__ property.",
    DuplicateRegExpFlags: "Duplicate regular expression flag.",
    DynamicImportPhaseRequiresImportExpressions: /* @__PURE__ */ n(({
      phase: t
    }) => `'import.${t}(...)' can only be parsed when using the 'createImportExpressions' option.`, "DynamicImportPhaseRequiresImportExpress\
ions"),
    ElementAfterRest: "Rest element must be last element.",
    EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
    ExportBindingIsString: /* @__PURE__ */ n(({
      localName: t,
      exportName: e
    }) => `A string literal cannot be used as an exported binding without \`from\`.
- Did you mean \`export { '${t}' as '${e}' } from 'some-module'\`?`, "ExportBindingIsString"),
    ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
    ForInOfLoopInitializer: /* @__PURE__ */ n(({
      type: t
    }) => `'${t === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, "ForInOfLoopInitialize\
r"),
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Unsyntactic ${t === "BreakStatement" ? "break" : "continue"}.`, "IllegalBreakContinue"),
    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: /* @__PURE__ */ n(({
      importName: t
    }) => `A string literal cannot be used as an imported binding.
- Did you mean \`import { "${t}" as foo }\`?`, "ImportBindingIsString"),
    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: /* @__PURE__ */ n(({
      radix: t
    }) => `Expected number in radix ${t}.`, "InvalidDigit"),
    InvalidEscapeSequence: "Bad character escape sequence.",
    InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
    InvalidEscapedReservedWord: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Escape sequence in keyword ${t}.`, "InvalidEscapedReservedWord"),
    InvalidIdentifier: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Invalid identifier ${t}.`, "InvalidIdentifier"),
    InvalidLhs: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid left-hand side in ${qS(t)}.`, "InvalidLhs"),
    InvalidLhsBinding: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Binding invalid left-hand side in ${qS(t)}.`, "InvalidLhsBinding"),
    InvalidLhsOptionalChaining: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid optional chaining in the left-hand side of ${qS(t)}.`, "InvalidLhsOptionalChaining"),
    InvalidNumber: "Invalid number.",
    InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
    InvalidOrUnexpectedToken: /* @__PURE__ */ n(({
      unexpected: t
    }) => `Unexpected character '${t}'.`, "InvalidOrUnexpectedToken"),
    InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
    InvalidPrivateFieldResolution: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private name #${t} is not defined.`, "InvalidPrivateFieldResolution"),
    InvalidPropertyBindingPattern: "Binding member expression.",
    InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
    InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
    LabelRedeclaration: /* @__PURE__ */ n(({
      labelName: t
    }) => `Label '${t}' is already declared.`, "LabelRedeclaration"),
    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: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling the parser plugin: ${t.map((e) => JSON.stringify(e)).join(", ")}.`, "MissingPlugin"),
    MissingOneOfPlugins: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${t.map((e) => JSON.stringify(e)).join(", ")}.`,
    "MissingOneOfPlugins"),
    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: /* @__PURE__ */ n(({
      key: t
    }) => `Duplicate key "${t}" is not allowed in module attributes.`, "ModuleAttributesWithDuplicateKeys"),
    ModuleExportNameHasLoneSurrogate: /* @__PURE__ */ n(({
      surrogateCharCode: t
    }) => `An export name cannot include a lone surrogate, found '\\u${t.toString(16)}'.`, "ModuleExportNameHasLoneSurrogate"),
    ModuleExportUndefined: /* @__PURE__ */ n(({
      localName: t
    }) => `Export '${t}' is not defined.`, "ModuleExportUndefined"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private names are only allowed in property accesses (\`obj.#${t}\`) or in \`in\` expressions (\`#${t} in obj\`).`, "PrivateInExpe\
ctedIn"),
    PrivateNameRedeclaration: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Duplicate private name #${t}.`, "PrivateNameRedeclaration"),
    RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 're\
cordAndTuple' 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 th\
e '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 sta\
tement.",
    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 n\
ot 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 'reco\
rdAndTuple' 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: /* @__PURE__ */ n(({
      keyword: t
    }) => `Unexpected keyword '${t}'.`, "UnexpectedKeyword"),
    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: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Unexpected reserved word '${t}'.`, "UnexpectedReservedWord"),
    UnexpectedSuper: "'super' is only allowed in object methods and classes.",
    UnexpectedToken: /* @__PURE__ */ n(({
      expected: t,
      unexpected: e
    }) => `Unexpected token${e ? ` '${e}'.` : ""}${t ? `, expected "${t}"` : ""}`, "UnexpectedToken"),
    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: /* @__PURE__ */ n(({
      target: t,
      onlyValidPropertyName: e
    }) => `The only valid meta property for ${t} is ${t}.${e}.`, "UnsupportedMetaProperty"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Identifier '${t}' has already been declared.`, "VarRedeclaration"),
    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."
  }, pit = {
    StrictDelete: "Deleting local variable in strict mode.",
    StrictEvalArguments: /* @__PURE__ */ n(({
      referenceName: t
    }) => `Assigning to '${t}' in strict mode.`, "StrictEvalArguments"),
    StrictEvalArgumentsBinding: /* @__PURE__ */ n(({
      bindingName: t
    }) => `Binding '${t}' in strict mode.`, "StrictEvalArgumentsBinding"),
    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."
  }, hit = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]), fit = Object.
  assign({
    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" opt\
ion.',
    PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
    PipeTopicUnconfiguredToken: /* @__PURE__ */ n(({
      token: t
    }) => `Invalid topic token ${t}. In order to use ${t} as a topic reference, the pipelineOperator plugin must be configured with { "propo\
sal": "hack", "topicToken": "${t}" }.`, "PipeTopicUnconfiguredToken"),
    PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
    PipeUnparenthesizedBody: /* @__PURE__ */ n(({
      type: t
    }) => `Hack-style pipe body cannot be an unparenthesized ${qS({
      type: t
    })}; please wrap it in parentheses.`, "PipeUnparenthesizedBody")
  }, {
    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 "sma\
rt" option.'
  }), dit = ["message"];
  function GY(t, e, s) {
    Object.defineProperty(t, e, {
      enumerable: !1,
      configurable: !0,
      value: s
    });
  }
  n(GY, "defineHidden");
  function mit({
    toMessage: t,
    code: e,
    reasonCode: s,
    syntaxPlugin: r
  }) {
    let i = s === "MissingPlugin" || s === "MissingOneOfPlugins";
    {
      let a = {
        AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter",
        AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters",
        ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumRefer\
ence",
        SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter",
        SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter",
        SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType"
      };
      a[s] && (s = a[s]);
    }
    return /* @__PURE__ */ n(function a(o, l) {
      let u = new SyntaxError();
      return u.code = e, u.reasonCode = s, u.loc = o, u.pos = o.index, u.syntaxPlugin = r, i && (u.missingPlugin = l.missingPlugin), GY(u, "\
clone", /* @__PURE__ */ n(function(p = {}) {
        var h;
        let {
          line: f,
          column: d,
          index: m
        } = (h = p.loc) != null ? h : o;
        return a(new ul(f, d, m), Object.assign({}, l, p.details));
      }, "clone")), GY(u, "details", l), Object.defineProperty(u, "message", {
        configurable: !0,
        get() {
          let c = `${t(l)} (${o.line}:${o.column})`;
          return this.message = c, c;
        },
        set(c) {
          Object.defineProperty(this, "message", {
            value: c,
            writable: !0
          });
        }
      }), u;
    }, "constructor");
  }
  n(mit, "toParseErrorConstructor");
  function fu(t, e) {
    if (Array.isArray(t))
      return (r) => fu(r, t[0]);
    let s = {};
    for (let r of Object.keys(t)) {
      let i = t[r], a = typeof i == "string" ? {
        message: /* @__PURE__ */ n(() => i, "message")
      } : typeof i == "function" ? {
        message: i
      } : i, {
        message: o
      } = a, l = lit(a, dit), u = typeof o == "string" ? () => o : o;
      s[r] = mit(Object.assign({
        code: "BABEL_PARSER_SYNTAX_ERROR",
        reasonCode: r,
        toMessage: u
      }, e ? {
        syntaxPlugin: e
      } : {}, l));
    }
    return s;
  }
  n(fu, "ParseErrorEnum");
  var Z = Object.assign({}, fu(uit), fu(cit), fu(pit), fu`pipelineOperator`(fit));
  function yit() {
    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
    };
  }
  n(yit, "createDefaultOptions");
  function git(t) {
    let e = yit();
    if (t == null)
      return e;
    if (t.annexB != null && t.annexB !== !1)
      throw new Error("The `annexB` option can only be set to `false`.");
    for (let s of Object.keys(e))
      t[s] != null && (e[s] = t[s]);
    if (e.startLine === 1)
      t.startIndex == null && e.startColumn > 0 ? e.startIndex = e.startColumn : t.startColumn == null && e.startIndex > 0 && (e.startColumn =
      e.startIndex);
    else if ((t.startColumn == null || t.startIndex == null) && t.startIndex != null)
      throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
    return e;
  }
  n(git, "getOptions");
  var {
    defineProperty: Tit
  } = Object, QY = /* @__PURE__ */ n((t, e) => {
    t && Tit(t, e, {
      enumerable: !1,
      value: t[e]
    });
  }, "toUnenumerable");
  function Fg(t) {
    return QY(t.loc.start, "index"), QY(t.loc.end, "index"), t;
  }
  n(Fg, "toESTreeLocation");
  var bit = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "ESTreeParserMixin");
    }
    parse() {
      let s = Fg(super.parse());
      return this.optionFlags & 128 && (s.tokens = s.tokens.map(Fg)), s;
    }
    parseRegExpLiteral({
      pattern: s,
      flags: r
    }) {
      let i = null;
      try {
        i = new RegExp(s, r);
      } catch {
      }
      let a = this.estreeParseLiteral(i);
      return a.regex = {
        pattern: s,
        flags: r
      }, a;
    }
    parseBigIntLiteral(s) {
      let r;
      try {
        r = BigInt(s);
      } catch {
        r = null;
      }
      let i = this.estreeParseLiteral(r);
      return i.bigint = String(i.value || s), i;
    }
    parseDecimalLiteral(s) {
      let i = this.estreeParseLiteral(null);
      return i.decimal = String(i.value || s), i;
    }
    estreeParseLiteral(s) {
      return this.parseLiteral(s, "Literal");
    }
    parseStringLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNumericLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNullLiteral() {
      return this.estreeParseLiteral(null);
    }
    parseBooleanLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    directiveToStmt(s) {
      let r = s.value;
      delete s.value, r.type = "Literal", r.raw = r.extra.raw, r.value = r.extra.expressionValue;
      let i = s;
      return i.type = "ExpressionStatement", i.expression = r, i.directive = r.extra.rawValue, delete r.extra, i;
    }
    initFunction(s, r) {
      super.initFunction(s, r), s.expression = !1;
    }
    checkDeclaration(s) {
      s != null && this.isObjectProperty(s) ? this.checkDeclaration(s.value) : super.checkDeclaration(s);
    }
    getObjectOrClassMethodParams(s) {
      return s.value.params;
    }
    isValidDirective(s) {
      var r;
      return s.type === "ExpressionStatement" && s.expression.type === "Literal" && typeof s.expression.value == "string" && !((r = s.expression.
      extra) != null && r.parenthesized);
    }
    parseBlockBody(s, r, i, a, o) {
      super.parseBlockBody(s, r, i, a, o);
      let l = s.directives.map((u) => this.directiveToStmt(u));
      s.body = l.concat(s.body), delete s.directives;
    }
    parsePrivateName() {
      let s = super.parsePrivateName();
      return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(s) : s;
    }
    convertPrivateNameToPrivateIdentifier(s) {
      let r = super.getPrivateNameSV(s);
      return s = s, delete s.id, s.name = r, s.type = "PrivateIdentifier", s;
    }
    isPrivateName(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.type === "PrivateIdentifier" : super.isPrivateName(s);
    }
    getPrivateNameSV(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.name : super.getPrivateNameSV(s);
    }
    parseLiteral(s, r) {
      let i = super.parseLiteral(s, r);
      return i.raw = i.extra.raw, delete i.extra, i;
    }
    parseFunctionBody(s, r, i = !1) {
      super.parseFunctionBody(s, r, i), s.expression = s.body.type !== "BlockStatement";
    }
    parseMethod(s, r, i, a, o, l, u = !1) {
      let c = this.startNode();
      c.kind = s.kind, c = super.parseMethod(c, r, i, a, o, l, u), c.type = "FunctionExpression", delete c.kind, s.value = c;
      let {
        typeParameters: p
      } = s;
      return p && (delete s.typeParameters, c.typeParameters = p, this.resetStartLocationFromNode(c, p)), l === "ClassPrivateMethod" && (s.computed =
      !1), this.finishNode(s, "MethodDefinition");
    }
    nameIsConstructor(s) {
      return s.type === "Literal" ? s.value === "constructor" : super.nameIsConstructor(s);
    }
    parseClassProperty(...s) {
      let r = super.parseClassProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition"), r;
    }
    parseClassPrivateProperty(...s) {
      let r = super.parseClassPrivateProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition", r.computed = !1), r;
    }
    parseObjectMethod(s, r, i, a, o) {
      let l = super.parseObjectMethod(s, r, i, a, o);
      return l && (l.type = "Property", l.kind === "method" && (l.kind = "init"), l.shorthand = !1), l;
    }
    parseObjectProperty(s, r, i, a) {
      let o = super.parseObjectProperty(s, r, i, a);
      return o && (o.kind = "init", o.type = "Property"), o;
    }
    isValidLVal(s, r, i) {
      return s === "Property" ? "value" : super.isValidLVal(s, r, i);
    }
    isAssignable(s, r) {
      return s != null && this.isObjectProperty(s) ? this.isAssignable(s.value, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      if (s != null && this.isObjectProperty(s)) {
        let {
          key: i,
          value: a
        } = s;
        this.isPrivateName(i) && this.classScope.usePrivateName(this.getPrivateNameSV(i), i.loc.start), this.toAssignable(a, r);
      } else
        super.toAssignable(s, r);
    }
    toAssignableObjectExpressionProp(s, r, i) {
      s.type === "Property" && (s.kind === "get" || s.kind === "set") ? this.raise(Z.PatternHasAccessor, s.key) : s.type === "Property" && s.
      method ? this.raise(Z.PatternHasMethod, s.key) : super.toAssignableObjectExpressionProp(s, r, i);
    }
    finishCallExpression(s, r) {
      let i = super.finishCallExpression(s, r);
      if (i.callee.type === "Import") {
        var a, o;
        i.type = "ImportExpression", i.source = i.arguments[0], i.options = (a = i.arguments[1]) != null ? a : null, i.attributes = (o = i.arguments[1]) !=
        null ? o : null, delete i.arguments, delete i.callee;
      }
      return i;
    }
    toReferencedArguments(s) {
      s.type !== "ImportExpression" && super.toReferencedArguments(s);
    }
    parseExport(s, r) {
      let i = this.state.lastTokStartLoc, a = super.parseExport(s, r);
      switch (a.type) {
        case "ExportAllDeclaration":
          a.exported = null;
          break;
        case "ExportNamedDeclaration":
          a.specifiers.length === 1 && a.specifiers[0].type === "ExportNamespaceSpecifier" && (a.type = "ExportAllDeclaration", a.exported =
          a.specifiers[0].exported, delete a.specifiers);
        case "ExportDefaultDeclaration":
          {
            var o;
            let {
              declaration: l
            } = a;
            l?.type === "ClassDeclaration" && ((o = l.decorators) == null ? void 0 : o.length) > 0 && l.start === a.start && this.resetStartLocation(
            a, i);
          }
          break;
      }
      return a;
    }
    parseSubscript(s, r, i, a) {
      let o = super.parseSubscript(s, r, i, a);
      if (a.optionalChainMember) {
        if ((o.type === "OptionalMemberExpression" || o.type === "OptionalCallExpression") && (o.type = o.type.substring(8)), a.stop) {
          let l = this.startNodeAtNode(o);
          return l.expression = o, this.finishNode(l, "ChainExpression");
        }
      } else (o.type === "MemberExpression" || o.type === "CallExpression") && (o.optional = !1);
      return o;
    }
    isOptionalMemberExpression(s) {
      return s.type === "ChainExpression" ? s.expression.type === "MemberExpression" : super.isOptionalMemberExpression(s);
    }
    hasPropertyAsPrivateName(s) {
      return s.type === "ChainExpression" && (s = s.expression), super.hasPropertyAsPrivateName(s);
    }
    isObjectProperty(s) {
      return s.type === "Property" && s.kind === "init" && !s.method;
    }
    isObjectMethod(s) {
      return s.type === "Property" && (s.method || s.kind === "get" || s.kind === "set");
    }
    finishNodeAt(s, r, i) {
      return Fg(super.finishNodeAt(s, r, i));
    }
    resetStartLocation(s, r) {
      super.resetStartLocation(s, r), Fg(s);
    }
    resetEndLocation(s, r = this.state.lastTokEndLoc) {
      super.resetEndLocation(s, r), Fg(s);
    }
  }, "estree"), _h = class {
    static {
      n(this, "TokContext");
    }
    constructor(e, s) {
      this.token = void 0, this.preserveSpace = void 0, this.token = e, this.preserveSpace = !!s;
    }
  }, zs = {
    brace: new _h("{"),
    j_oTag: new _h("<tag"),
    j_cTag: new _h("</tag"),
    j_expr: new _h("<tag>...</tag>", !0)
  };
  zs.template = new _h("`", !0);
  var ls = !0, Ke = !0, wO = !0, jg = !0, Gc = !0, xit = !0, VS = class {
    static {
      n(this, "ExportedTokenType");
    }
    constructor(e, s = {}) {
      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 = e, this.keyword = s.keyword,
      this.beforeExpr = !!s.beforeExpr, this.startsExpr = !!s.startsExpr, this.rightAssociative = !!s.rightAssociative, this.isLoop = !!s.isLoop,
      this.isAssign = !!s.isAssign, this.prefix = !!s.prefix, this.postfix = !!s.postfix, this.binop = s.binop != null ? s.binop : null, this.
      updateContext = null;
    }
  }, QO = /* @__PURE__ */ new Map();
  function Os(t, e = {}) {
    e.keyword = t;
    let s = wt(t, e);
    return QO.set(t, s), s;
  }
  n(Os, "createKeyword");
  function vn(t, e) {
    return wt(t, {
      beforeExpr: ls,
      binop: e
    });
  }
  n(vn, "createBinop");
  var Ug = -1, pu = [], ZO = [], e2 = [], t2 = [], s2 = [], r2 = [];
  function wt(t, e = {}) {
    var s, r, i, a;
    return ++Ug, ZO.push(t), e2.push((s = e.binop) != null ? s : -1), t2.push((r = e.beforeExpr) != null ? r : !1), s2.push((i = e.startsExpr) !=
    null ? i : !1), r2.push((a = e.prefix) != null ? a : !1), pu.push(new VS(t, e)), Ug;
  }
  n(wt, "createToken");
  function os(t, e = {}) {
    var s, r, i, a;
    return ++Ug, QO.set(t, Ug), ZO.push(t), e2.push((s = e.binop) != null ? s : -1), t2.push((r = e.beforeExpr) != null ? r : !1), s2.push((i =
    e.startsExpr) != null ? i : !1), r2.push((a = e.prefix) != null ? a : !1), pu.push(new VS("name", e)), Ug;
  }
  n(os, "createKeywordLike");
  var Sit = {
    bracketL: wt("[", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    bracketHashL: wt("#[", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    bracketBarL: wt("[|", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    bracketR: wt("]"),
    bracketBarR: wt("|]"),
    braceL: wt("{", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    braceBarL: wt("{|", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    braceHashL: wt("#{", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    braceR: wt("}"),
    braceBarR: wt("|}"),
    parenL: wt("(", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    parenR: wt(")"),
    comma: wt(",", {
      beforeExpr: ls
    }),
    semi: wt(";", {
      beforeExpr: ls
    }),
    colon: wt(":", {
      beforeExpr: ls
    }),
    doubleColon: wt("::", {
      beforeExpr: ls
    }),
    dot: wt("."),
    question: wt("?", {
      beforeExpr: ls
    }),
    questionDot: wt("?."),
    arrow: wt("=>", {
      beforeExpr: ls
    }),
    template: wt("template"),
    ellipsis: wt("...", {
      beforeExpr: ls
    }),
    backQuote: wt("`", {
      startsExpr: Ke
    }),
    dollarBraceL: wt("${", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    templateTail: wt("...`", {
      startsExpr: Ke
    }),
    templateNonTail: wt("...${", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    at: wt("@"),
    hash: wt("#", {
      startsExpr: Ke
    }),
    interpreterDirective: wt("#!..."),
    eq: wt("=", {
      beforeExpr: ls,
      isAssign: jg
    }),
    assign: wt("_=", {
      beforeExpr: ls,
      isAssign: jg
    }),
    slashAssign: wt("_=", {
      beforeExpr: ls,
      isAssign: jg
    }),
    xorAssign: wt("_=", {
      beforeExpr: ls,
      isAssign: jg
    }),
    moduloAssign: wt("_=", {
      beforeExpr: ls,
      isAssign: jg
    }),
    incDec: wt("++/--", {
      prefix: Gc,
      postfix: xit,
      startsExpr: Ke
    }),
    bang: wt("!", {
      beforeExpr: ls,
      prefix: Gc,
      startsExpr: Ke
    }),
    tilde: wt("~", {
      beforeExpr: ls,
      prefix: Gc,
      startsExpr: Ke
    }),
    doubleCaret: wt("^^", {
      startsExpr: Ke
    }),
    doubleAt: wt("@@", {
      startsExpr: Ke
    }),
    pipeline: vn("|>", 0),
    nullishCoalescing: vn("??", 1),
    logicalOR: vn("||", 1),
    logicalAND: vn("&&", 2),
    bitwiseOR: vn("|", 3),
    bitwiseXOR: vn("^", 4),
    bitwiseAND: vn("&", 5),
    equality: vn("==/!=/===/!==", 6),
    lt: vn("</>/<=/>=", 7),
    gt: vn("</>/<=/>=", 7),
    relational: vn("</>/<=/>=", 7),
    bitShift: vn("<</>>/>>>", 8),
    bitShiftL: vn("<</>>/>>>", 8),
    bitShiftR: vn("<</>>/>>>", 8),
    plusMin: wt("+/-", {
      beforeExpr: ls,
      binop: 9,
      prefix: Gc,
      startsExpr: Ke
    }),
    modulo: wt("%", {
      binop: 10,
      startsExpr: Ke
    }),
    star: wt("*", {
      binop: 10
    }),
    slash: vn("/", 10),
    exponent: wt("**", {
      beforeExpr: ls,
      binop: 11,
      rightAssociative: !0
    }),
    _in: Os("in", {
      beforeExpr: ls,
      binop: 7
    }),
    _instanceof: Os("instanceof", {
      beforeExpr: ls,
      binop: 7
    }),
    _break: Os("break"),
    _case: Os("case", {
      beforeExpr: ls
    }),
    _catch: Os("catch"),
    _continue: Os("continue"),
    _debugger: Os("debugger"),
    _default: Os("default", {
      beforeExpr: ls
    }),
    _else: Os("else", {
      beforeExpr: ls
    }),
    _finally: Os("finally"),
    _function: Os("function", {
      startsExpr: Ke
    }),
    _if: Os("if"),
    _return: Os("return", {
      beforeExpr: ls
    }),
    _switch: Os("switch"),
    _throw: Os("throw", {
      beforeExpr: ls,
      prefix: Gc,
      startsExpr: Ke
    }),
    _try: Os("try"),
    _var: Os("var"),
    _const: Os("const"),
    _with: Os("with"),
    _new: Os("new", {
      beforeExpr: ls,
      startsExpr: Ke
    }),
    _this: Os("this", {
      startsExpr: Ke
    }),
    _super: Os("super", {
      startsExpr: Ke
    }),
    _class: Os("class", {
      startsExpr: Ke
    }),
    _extends: Os("extends", {
      beforeExpr: ls
    }),
    _export: Os("export"),
    _import: Os("import", {
      startsExpr: Ke
    }),
    _null: Os("null", {
      startsExpr: Ke
    }),
    _true: Os("true", {
      startsExpr: Ke
    }),
    _false: Os("false", {
      startsExpr: Ke
    }),
    _typeof: Os("typeof", {
      beforeExpr: ls,
      prefix: Gc,
      startsExpr: Ke
    }),
    _void: Os("void", {
      beforeExpr: ls,
      prefix: Gc,
      startsExpr: Ke
    }),
    _delete: Os("delete", {
      beforeExpr: ls,
      prefix: Gc,
      startsExpr: Ke
    }),
    _do: Os("do", {
      isLoop: wO,
      beforeExpr: ls
    }),
    _for: Os("for", {
      isLoop: wO
    }),
    _while: Os("while", {
      isLoop: wO
    }),
    _as: os("as", {
      startsExpr: Ke
    }),
    _assert: os("assert", {
      startsExpr: Ke
    }),
    _async: os("async", {
      startsExpr: Ke
    }),
    _await: os("await", {
      startsExpr: Ke
    }),
    _defer: os("defer", {
      startsExpr: Ke
    }),
    _from: os("from", {
      startsExpr: Ke
    }),
    _get: os("get", {
      startsExpr: Ke
    }),
    _let: os("let", {
      startsExpr: Ke
    }),
    _meta: os("meta", {
      startsExpr: Ke
    }),
    _of: os("of", {
      startsExpr: Ke
    }),
    _sent: os("sent", {
      startsExpr: Ke
    }),
    _set: os("set", {
      startsExpr: Ke
    }),
    _source: os("source", {
      startsExpr: Ke
    }),
    _static: os("static", {
      startsExpr: Ke
    }),
    _using: os("using", {
      startsExpr: Ke
    }),
    _yield: os("yield", {
      startsExpr: Ke
    }),
    _asserts: os("asserts", {
      startsExpr: Ke
    }),
    _checks: os("checks", {
      startsExpr: Ke
    }),
    _exports: os("exports", {
      startsExpr: Ke
    }),
    _global: os("global", {
      startsExpr: Ke
    }),
    _implements: os("implements", {
      startsExpr: Ke
    }),
    _intrinsic: os("intrinsic", {
      startsExpr: Ke
    }),
    _infer: os("infer", {
      startsExpr: Ke
    }),
    _is: os("is", {
      startsExpr: Ke
    }),
    _mixins: os("mixins", {
      startsExpr: Ke
    }),
    _proto: os("proto", {
      startsExpr: Ke
    }),
    _require: os("require", {
      startsExpr: Ke
    }),
    _satisfies: os("satisfies", {
      startsExpr: Ke
    }),
    _keyof: os("keyof", {
      startsExpr: Ke
    }),
    _readonly: os("readonly", {
      startsExpr: Ke
    }),
    _unique: os("unique", {
      startsExpr: Ke
    }),
    _abstract: os("abstract", {
      startsExpr: Ke
    }),
    _declare: os("declare", {
      startsExpr: Ke
    }),
    _enum: os("enum", {
      startsExpr: Ke
    }),
    _module: os("module", {
      startsExpr: Ke
    }),
    _namespace: os("namespace", {
      startsExpr: Ke
    }),
    _interface: os("interface", {
      startsExpr: Ke
    }),
    _type: os("type", {
      startsExpr: Ke
    }),
    _opaque: os("opaque", {
      startsExpr: Ke
    }),
    name: wt("name", {
      startsExpr: Ke
    }),
    placeholder: wt("%%", {
      startsExpr: !0
    }),
    string: wt("string", {
      startsExpr: Ke
    }),
    num: wt("num", {
      startsExpr: Ke
    }),
    bigint: wt("bigint", {
      startsExpr: Ke
    }),
    decimal: wt("decimal", {
      startsExpr: Ke
    }),
    regexp: wt("regexp", {
      startsExpr: Ke
    }),
    privateName: wt("#name", {
      startsExpr: Ke
    }),
    eof: wt("eof"),
    jsxName: wt("jsxName"),
    jsxText: wt("jsxText", {
      beforeExpr: !0
    }),
    jsxTagStart: wt("jsxTagStart", {
      startsExpr: !0
    }),
    jsxTagEnd: wt("jsxTagEnd")
  };
  function Gs(t) {
    return t >= 93 && t <= 133;
  }
  n(Gs, "tokenIsIdentifier");
  function Pit(t) {
    return t <= 92;
  }
  n(Pit, "tokenKeywordOrIdentifierIsKeyword");
  function Eo(t) {
    return t >= 58 && t <= 133;
  }
  n(Eo, "tokenIsKeywordOrIdentifier");
  function cX(t) {
    return t >= 58 && t <= 137;
  }
  n(cX, "tokenIsLiteralPropertyName");
  function Eit(t) {
    return t2[t];
  }
  n(Eit, "tokenComesBeforeExpression");
  function OO(t) {
    return s2[t];
  }
  n(OO, "tokenCanStartExpression");
  function Ait(t) {
    return t >= 29 && t <= 33;
  }
  n(Ait, "tokenIsAssignment");
  function ZY(t) {
    return t >= 129 && t <= 131;
  }
  n(ZY, "tokenIsFlowInterfaceOrTypeOrOpaque");
  function vit(t) {
    return t >= 90 && t <= 92;
  }
  n(vit, "tokenIsLoop");
  function i2(t) {
    return t >= 58 && t <= 92;
  }
  n(i2, "tokenIsKeyword");
  function Cit(t) {
    return t >= 39 && t <= 59;
  }
  n(Cit, "tokenIsOperator");
  function wit(t) {
    return t === 34;
  }
  n(wit, "tokenIsPostfix");
  function Iit(t) {
    return r2[t];
  }
  n(Iit, "tokenIsPrefix");
  function Nit(t) {
    return t >= 121 && t <= 123;
  }
  n(Nit, "tokenIsTSTypeOperator");
  function kit(t) {
    return t >= 124 && t <= 130;
  }
  n(kit, "tokenIsTSDeclarationStart");
  function Zc(t) {
    return ZO[t];
  }
  n(Zc, "tokenLabelName");
  function US(t) {
    return e2[t];
  }
  n(US, "tokenOperatorPrecedence");
  function Dit(t) {
    return t === 57;
  }
  n(Dit, "tokenIsRightAssociative");
  function WS(t) {
    return t >= 24 && t <= 25;
  }
  n(WS, "tokenIsTemplate");
  function cu(t) {
    return pu[t];
  }
  n(cu, "getExportedToken");
  pu[8].updateContext = (t) => {
    t.pop();
  }, pu[5].updateContext = pu[7].updateContext = pu[23].updateContext = (t) => {
    t.push(zs.brace);
  }, pu[22].updateContext = (t) => {
    t[t.length - 1] === zs.template ? t.pop() : t.push(zs.template);
  }, pu[143].updateContext = (t) => {
    t.push(zs.j_expr, zs.j_oTag);
  };
  var n2 = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993\
-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\
\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\
\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\
\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\
\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01\
-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
  pX = "\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\
\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\
\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6\
-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20\
-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65", Oit = new RegExp("[" + n2 + "]"), _it = new RegExp("[" + n2 + pX + "]");
  n2 = pX = null;
  var hX = [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], Lit = [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 _O(t, e) {
    let s = 65536;
    for (let r = 0, i = e.length; r < i; r += 2) {
      if (s += e[r], s > t) return !1;
      if (s += e[r + 1], s >= t) return !0;
    }
    return !1;
  }
  n(_O, "isInAstralSet");
  function hu(t) {
    return t < 65 ? t === 36 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && Oit.test(String.fromCharCode(t)) :
    _O(t, hX);
  }
  n(hu, "isIdentifierStart");
  function Rd(t) {
    return t < 48 ? t === 36 : t < 58 ? !0 : t < 65 ? !1 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && _it.test(
    String.fromCharCode(t)) : _O(t, hX) || _O(t, Lit);
  }
  n(Rd, "isIdentifierChar");
  var a2 = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "swit\
ch", "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"]
  }, Bit = new Set(a2.keyword), Mit = new Set(a2.strict), Fit = new Set(a2.strictBind);
  function fX(t, e) {
    return e && t === "await" || t === "enum";
  }
  n(fX, "isReservedWord");
  function dX(t, e) {
    return fX(t, e) || Mit.has(t);
  }
  n(dX, "isStrictReservedWord");
  function mX(t) {
    return Fit.has(t);
  }
  n(mX, "isStrictBindOnlyReservedWord");
  function yX(t, e) {
    return dX(t, e) || mX(t);
  }
  n(yX, "isStrictBindReservedWord");
  function jit(t) {
    return Bit.has(t);
  }
  n(jit, "isKeyword");
  function Rit(t, e, s) {
    return t === 64 && e === 64 && hu(s);
  }
  n(Rit, "isIteratorStart");
  var qit = /* @__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", "protecte\
d", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
  function Uit(t) {
    return qit.has(t);
  }
  n(Uit, "canBeReservedWord");
  var Kg = class {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = e;
    }
  }, Vg = class {
    static {
      n(this, "ScopeHandler");
    }
    constructor(e, s) {
      this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = e,
      this.inModule = s;
    }
    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() {
      let e = this.currentThisScopeFlags();
      return (e & 64) > 0 && (e & 2) === 0;
    }
    get inStaticBlock() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 128)
          return !0;
        if (s & 451)
          return !1;
      }
    }
    get inNonArrowFunction() {
      return (this.currentThisScopeFlags() & 2) > 0;
    }
    get treatFunctionsAsVar() {
      return this.treatFunctionsAsVarInScope(this.currentScope());
    }
    createScope(e) {
      return new Kg(e);
    }
    enter(e) {
      this.scopeStack.push(this.createScope(e));
    }
    exit() {
      return this.scopeStack.pop().flags;
    }
    treatFunctionsAsVarInScope(e) {
      return !!(e.flags & 130 || !this.parser.inModule && e.flags & 1);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 8 || s & 16) {
        this.checkRedeclarationInScope(i, e, s, r);
        let a = i.names.get(e) || 0;
        s & 16 ? a = a | 4 : (i.firstLexicalName || (i.firstLexicalName = e), a = a | 2), i.names.set(e, a), s & 8 && this.maybeExportDefined(
        i, e);
      } else if (s & 4)
        for (let a = this.scopeStack.length - 1; a >= 0 && (i = this.scopeStack[a], this.checkRedeclarationInScope(i, e, s, r), i.names.set(
        e, (i.names.get(e) || 0) | 1), this.maybeExportDefined(i, e), !(i.flags & 387)); --a)
          ;
      this.parser.inModule && i.flags & 1 && this.undefinedExports.delete(e);
    }
    maybeExportDefined(e, s) {
      this.parser.inModule && e.flags & 1 && this.undefinedExports.delete(s);
    }
    checkRedeclarationInScope(e, s, r, i) {
      this.isRedeclaredInScope(e, s, r) && this.parser.raise(Z.VarRedeclaration, i, {
        identifierName: s
      });
    }
    isRedeclaredInScope(e, s, r) {
      if (!(r & 1)) return !1;
      if (r & 8)
        return e.names.has(s);
      let i = e.names.get(s);
      return r & 16 ? (i & 2) > 0 || !this.treatFunctionsAsVarInScope(e) && (i & 1) > 0 : (i & 2) > 0 && !(e.flags & 8 && e.firstLexicalName ===
      s) || !this.treatFunctionsAsVarInScope(e) && (i & 4) > 0;
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      this.scopeStack[0].names.has(s) || this.undefinedExports.set(s, e.loc.start);
    }
    currentScope() {
      return this.scopeStack[this.scopeStack.length - 1];
    }
    currentVarScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 387)
          return s;
      }
    }
    currentThisScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 451 && !(s & 4))
          return s;
      }
    }
  }, LO = class extends Kg {
    static {
      n(this, "FlowScope");
    }
    constructor(...e) {
      super(...e), this.declareFunctions = /* @__PURE__ */ new Set();
    }
  }, BO = class extends Vg {
    static {
      n(this, "FlowScopeHandler");
    }
    createScope(e) {
      return new LO(e);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 2048) {
        this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e), i.declareFunctions.add(e);
        return;
      }
      super.declareName(e, s, r);
    }
    isRedeclaredInScope(e, s, r) {
      if (super.isRedeclaredInScope(e, s, r)) return !0;
      if (r & 2048 && !e.declareFunctions.has(s)) {
        let i = e.names.get(s);
        return (i & 4) > 0 || (i & 2) > 0;
      }
      return !1;
    }
    checkLocalExport(e) {
      this.scopeStack[0].declareFunctions.has(e.name) || super.checkLocalExport(e);
    }
  }, MO = class {
    static {
      n(this, "BaseParser");
    }
    constructor() {
      this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
    }
    sourceToOffsetPos(e) {
      return e + this.startIndex;
    }
    offsetToSourcePos(e) {
      return e - this.startIndex;
    }
    hasPlugin(e) {
      if (typeof e == "string")
        return this.plugins.has(e);
      {
        let [s, r] = e;
        if (!this.hasPlugin(s))
          return !1;
        let i = this.plugins.get(s);
        for (let a of Object.keys(r))
          if (i?.[a] !== r[a])
            return !1;
        return !0;
      }
    }
    getPluginOption(e, s) {
      var r;
      return (r = this.plugins.get(e)) == null ? void 0 : r[s];
    }
  };
  function gX(t, e) {
    t.trailingComments === void 0 ? t.trailingComments = e : t.trailingComments.unshift(...e);
  }
  n(gX, "setTrailingComments");
  function Kit(t, e) {
    t.leadingComments === void 0 ? t.leadingComments = e : t.leadingComments.unshift(...e);
  }
  n(Kit, "setLeadingComments");
  function Wg(t, e) {
    t.innerComments === void 0 ? t.innerComments = e : t.innerComments.unshift(...e);
  }
  n(Wg, "setInnerComments");
  function Dh(t, e, s) {
    let r = null, i = e.length;
    for (; r === null && i > 0; )
      r = e[--i];
    r === null || r.start > s.start ? Wg(t, s.comments) : gX(r, s.comments);
  }
  n(Dh, "adjustInnerComments");
  var FO = class extends MO {
    static {
      n(this, "CommentsParser");
    }
    addComment(e) {
      this.filename && (e.loc.filename = this.filename);
      let {
        commentsLen: s
      } = this.state;
      this.comments.length !== s && (this.comments.length = s), this.comments.push(e), this.state.commentsLen++;
    }
    processComment(e) {
      let {
        commentStack: s
      } = this.state, r = s.length;
      if (r === 0) return;
      let i = r - 1, a = s[i];
      a.start === e.end && (a.leadingNode = e, i--);
      let {
        start: o
      } = e;
      for (; i >= 0; i--) {
        let l = s[i], u = l.end;
        if (u > o)
          l.containingNode = e, this.finalizeComment(l), s.splice(i, 1);
        else {
          u === o && (l.trailingNode = e);
          break;
        }
      }
    }
    finalizeComment(e) {
      let {
        comments: s
      } = e;
      if (e.leadingNode !== null || e.trailingNode !== null)
        e.leadingNode !== null && gX(e.leadingNode, s), e.trailingNode !== null && Kit(e.trailingNode, s);
      else {
        let {
          containingNode: r,
          start: i
        } = e;
        if (this.input.charCodeAt(this.offsetToSourcePos(i) - 1) === 44)
          switch (r.type) {
            case "ObjectExpression":
            case "ObjectPattern":
            case "RecordExpression":
              Dh(r, r.properties, e);
              break;
            case "CallExpression":
            case "OptionalCallExpression":
              Dh(r, r.arguments, e);
              break;
            case "FunctionDeclaration":
            case "FunctionExpression":
            case "ArrowFunctionExpression":
            case "ObjectMethod":
            case "ClassMethod":
            case "ClassPrivateMethod":
              Dh(r, r.params, e);
              break;
            case "ArrayExpression":
            case "ArrayPattern":
            case "TupleExpression":
              Dh(r, r.elements, e);
              break;
            case "ExportNamedDeclaration":
            case "ImportDeclaration":
              Dh(r, r.specifiers, e);
              break;
            case "TSEnumDeclaration":
              Dh(r, r.members, e);
              break;
            case "TSEnumBody":
              Dh(r, r.members, e);
              break;
            default:
              Wg(r, s);
          }
        else
          Wg(r, s);
      }
    }
    finalizeRemainingComments() {
      let {
        commentStack: e
      } = this.state;
      for (let s = e.length - 1; s >= 0; s--)
        this.finalizeComment(e[s]);
      this.state.commentStack = [];
    }
    resetPreviousNodeTrailingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      if (r === 0) return;
      let i = s[r - 1];
      i.leadingNode === e && (i.leadingNode = null);
    }
    resetPreviousIdentifierLeadingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      r !== 0 && (s[r - 1].trailingNode === e ? s[r - 1].trailingNode = null : r >= 2 && s[r - 2].trailingNode === e && (s[r - 2].trailingNode =
      null));
    }
    takeSurroundingComments(e, s, r) {
      let {
        commentStack: i
      } = this.state, a = i.length;
      if (a === 0) return;
      let o = a - 1;
      for (; o >= 0; o--) {
        let l = i[o], u = l.end;
        if (l.start === r)
          l.leadingNode = e;
        else if (u === s)
          l.trailingNode = e;
        else if (u < s)
          break;
      }
    }
  }, Vit = /\r\n|[\r\n\u2028\u2029]/, jS = new RegExp(Vit.source, "g");
  function qd(t) {
    switch (t) {
      case 10:
      case 13:
      case 8232:
      case 8233:
        return !0;
      default:
        return !1;
    }
  }
  n(qd, "isNewLine");
  function eX(t, e, s) {
    for (let r = e; r < s; r++)
      if (qd(t.charCodeAt(r)))
        return !0;
    return !1;
  }
  n(eX, "hasNewLine");
  var IO = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, NO = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;
  function Wit(t) {
    switch (t) {
      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;
    }
  }
  n(Wit, "isWhitespace");
  var jO = class t {
    static {
      n(this, "State");
    }
    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 = [zs.brace], this.firstInvalidTemplateEscapePos = null,
      this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
    }
    get strict() {
      return (this.flags & 1) > 0;
    }
    set strict(e) {
      e ? this.flags |= 1 : this.flags &= -2;
    }
    init({
      strictMode: e,
      sourceType: s,
      startIndex: r,
      startLine: i,
      startColumn: a
    }) {
      this.strict = e === !1 ? !1 : e === !0 ? !0 : s === "module", this.startIndex = r, this.curLine = i, this.lineStart = -a, this.startLoc =
      this.endLoc = new ul(i, a, r);
    }
    get maybeInArrowParameters() {
      return (this.flags & 2) > 0;
    }
    set maybeInArrowParameters(e) {
      e ? this.flags |= 2 : this.flags &= -3;
    }
    get inType() {
      return (this.flags & 4) > 0;
    }
    set inType(e) {
      e ? this.flags |= 4 : this.flags &= -5;
    }
    get noAnonFunctionType() {
      return (this.flags & 8) > 0;
    }
    set noAnonFunctionType(e) {
      e ? this.flags |= 8 : this.flags &= -9;
    }
    get hasFlowComment() {
      return (this.flags & 16) > 0;
    }
    set hasFlowComment(e) {
      e ? this.flags |= 16 : this.flags &= -17;
    }
    get isAmbientContext() {
      return (this.flags & 32) > 0;
    }
    set isAmbientContext(e) {
      e ? this.flags |= 32 : this.flags &= -33;
    }
    get inAbstractClass() {
      return (this.flags & 64) > 0;
    }
    set inAbstractClass(e) {
      e ? this.flags |= 64 : this.flags &= -65;
    }
    get inDisallowConditionalTypesContext() {
      return (this.flags & 128) > 0;
    }
    set inDisallowConditionalTypesContext(e) {
      e ? this.flags |= 128 : this.flags &= -129;
    }
    get soloAwait() {
      return (this.flags & 256) > 0;
    }
    set soloAwait(e) {
      e ? this.flags |= 256 : this.flags &= -257;
    }
    get inFSharpPipelineDirectBody() {
      return (this.flags & 512) > 0;
    }
    set inFSharpPipelineDirectBody(e) {
      e ? this.flags |= 512 : this.flags &= -513;
    }
    get canStartJSXElement() {
      return (this.flags & 1024) > 0;
    }
    set canStartJSXElement(e) {
      e ? this.flags |= 1024 : this.flags &= -1025;
    }
    get containsEsc() {
      return (this.flags & 2048) > 0;
    }
    set containsEsc(e) {
      e ? this.flags |= 2048 : this.flags &= -2049;
    }
    get hasTopLevelAwait() {
      return (this.flags & 4096) > 0;
    }
    set hasTopLevelAwait(e) {
      e ? this.flags |= 4096 : this.flags &= -4097;
    }
    curPosition() {
      return new ul(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex);
    }
    clone() {
      let e = new t();
      return e.flags = this.flags, e.startIndex = this.startIndex, e.curLine = this.curLine, e.lineStart = this.lineStart, e.startLoc = this.
      startLoc, e.endLoc = this.endLoc, e.errors = this.errors.slice(), e.potentialArrowAt = this.potentialArrowAt, e.noArrowAt = this.noArrowAt.
      slice(), e.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), e.topicContext = this.topicContext, e.labels = this.labels.
      slice(), e.commentsLen = this.commentsLen, e.commentStack = this.commentStack.slice(), e.pos = this.pos, e.type = this.type, e.value =
      this.value, e.start = this.start, e.end = this.end, e.lastTokEndLoc = this.lastTokEndLoc, e.lastTokStartLoc = this.lastTokStartLoc, e.
      context = this.context.slice(), e.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, e.strictErrors = this.strictErrors,
      e.tokensLength = this.tokensLength, e;
    }
  }, $it = /* @__PURE__ */ n(function(e) {
    return e >= 48 && e <= 57;
  }, "isDigit"), tX = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, RS = {
    bin: /* @__PURE__ */ n((t) => t === 48 || t === 49, "bin"),
    oct: /* @__PURE__ */ n((t) => t >= 48 && t <= 55, "oct"),
    dec: /* @__PURE__ */ n((t) => t >= 48 && t <= 57, "dec"),
    hex: /* @__PURE__ */ n((t) => t >= 48 && t <= 57 || t >= 65 && t <= 70 || t >= 97 && t <= 102, "hex")
  };
  function sX(t, e, s, r, i, a) {
    let o = s, l = r, u = i, c = "", p = null, h = s, {
      length: f
    } = e;
    for (; ; ) {
      if (s >= f) {
        a.unterminated(o, l, u), c += e.slice(h, s);
        break;
      }
      let d = e.charCodeAt(s);
      if (Hit(t, d, e, s)) {
        c += e.slice(h, s);
        break;
      }
      if (d === 92) {
        c += e.slice(h, s);
        let m = Jit(e, s, r, i, t === "template", a);
        m.ch === null && !p ? p = {
          pos: s,
          lineStart: r,
          curLine: i
        } : c += m.ch, {
          pos: s,
          lineStart: r,
          curLine: i
        } = m, h = s;
      } else d === 8232 || d === 8233 ? (++s, ++i, r = s) : d === 10 || d === 13 ? t === "template" ? (c += e.slice(h, s) + `
`, ++s, d === 13 && e.charCodeAt(s) === 10 && ++s, ++i, h = r = s) : a.unterminated(o, l, u) : ++s;
    }
    return {
      pos: s,
      str: c,
      firstInvalidLoc: p,
      lineStart: r,
      curLine: i,
      containsInvalid: !!p
    };
  }
  n(sX, "readStringContents");
  function Hit(t, e, s, r) {
    return t === "template" ? e === 96 || e === 36 && s.charCodeAt(r + 1) === 123 : e === (t === "double" ? 34 : 39);
  }
  n(Hit, "isStringEnd");
  function Jit(t, e, s, r, i, a) {
    let o = !i;
    e++;
    let l = /* @__PURE__ */ n((c) => ({
      pos: e,
      ch: c,
      lineStart: s,
      curLine: r
    }), "res"), u = t.charCodeAt(e++);
    switch (u) {
      case 110:
        return l(`
`);
      case 114:
        return l("\r");
      case 120: {
        let c;
        return {
          code: c,
          pos: e
        } = RO(t, e, s, r, 2, !1, o, a), l(c === null ? null : String.fromCharCode(c));
      }
      case 117: {
        let c;
        return {
          code: c,
          pos: e
        } = bX(t, e, s, r, o, a), l(c === null ? null : String.fromCodePoint(c));
      }
      case 116:
        return l("	");
      case 98:
        return l("\b");
      case 118:
        return l("\v");
      case 102:
        return l("\f");
      case 13:
        t.charCodeAt(e) === 10 && ++e;
      case 10:
        s = e, ++r;
      case 8232:
      case 8233:
        return l("");
      case 56:
      case 57:
        if (i)
          return l(null);
        a.strictNumericEscape(e - 1, s, r);
      default:
        if (u >= 48 && u <= 55) {
          let c = e - 1, h = /^[0-7]+/.exec(t.slice(c, e + 2))[0], f = parseInt(h, 8);
          f > 255 && (h = h.slice(0, -1), f = parseInt(h, 8)), e += h.length - 1;
          let d = t.charCodeAt(e);
          if (h !== "0" || d === 56 || d === 57) {
            if (i)
              return l(null);
            a.strictNumericEscape(c, s, r);
          }
          return l(String.fromCharCode(f));
        }
        return l(String.fromCharCode(u));
    }
  }
  n(Jit, "readEscapedChar");
  function RO(t, e, s, r, i, a, o, l) {
    let u = e, c;
    return {
      n: c,
      pos: e
    } = TX(t, e, s, r, 16, i, a, !1, l, !o), c === null && (o ? l.invalidEscapeSequence(u, s, r) : e = u - 1), {
      code: c,
      pos: e
    };
  }
  n(RO, "readHexChar");
  function TX(t, e, s, r, i, a, o, l, u, c) {
    let p = e, h = i === 16 ? tX.hex : tX.decBinOct, f = i === 16 ? RS.hex : i === 10 ? RS.dec : i === 8 ? RS.oct : RS.bin, d = !1, m = 0;
    for (let y = 0, T = a ?? 1 / 0; y < T; ++y) {
      let b = t.charCodeAt(e), E;
      if (b === 95 && l !== "bail") {
        let V = t.charCodeAt(e - 1), W = t.charCodeAt(e + 1);
        if (l) {
          if (Number.isNaN(W) || !f(W) || h.has(V) || h.has(W)) {
            if (c) return {
              n: null,
              pos: e
            };
            u.unexpectedNumericSeparator(e, s, r);
          }
        } else {
          if (c) return {
            n: null,
            pos: e
          };
          u.numericSeparatorInEscapeSequence(e, s, r);
        }
        ++e;
        continue;
      }
      if (b >= 97 ? E = b - 97 + 10 : b >= 65 ? E = b - 65 + 10 : $it(b) ? E = b - 48 : E = 1 / 0, E >= i) {
        if (E <= 9 && c)
          return {
            n: null,
            pos: e
          };
        if (E <= 9 && u.invalidDigit(e, s, r, i))
          E = 0;
        else if (o)
          E = 0, d = !0;
        else
          break;
      }
      ++e, m = m * i + E;
    }
    return e === p || a != null && e - p !== a || d ? {
      n: null,
      pos: e
    } : {
      n: m,
      pos: e
    };
  }
  n(TX, "readInt");
  function bX(t, e, s, r, i, a) {
    let o = t.charCodeAt(e), l;
    if (o === 123) {
      if (++e, {
        code: l,
        pos: e
      } = RO(t, e, s, r, t.indexOf("}", e) - e, !0, i, a), ++e, l !== null && l > 1114111)
        if (i)
          a.invalidCodePoint(e, s, r);
        else
          return {
            code: null,
            pos: e
          };
    } else
      ({
        code: l,
        pos: e
      } = RO(t, e, s, r, 4, !1, i, a));
    return {
      code: l,
      pos: e
    };
  }
  n(bX, "readCodePoint");
  function Rg(t, e, s) {
    return new ul(s, t - e, t);
  }
  n(Rg, "buildPosition");
  var Yit = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]), ll = class {
    static {
      n(this, "Token");
    }
    constructor(e) {
      let s = e.startIndex || 0;
      this.type = e.type, this.value = e.value, this.start = s + e.start, this.end = s + e.end, this.loc = new Kd(e.startLoc, e.endLoc);
    }
  }, qO = class extends FO {
    static {
      n(this, "Tokenizer");
    }
    constructor(e, s) {
      super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
        invalidDigit: /* @__PURE__ */ n((r, i, a, o) => this.optionFlags & 1024 ? (this.raise(Z.InvalidDigit, Rg(r, i, a), {
          radix: o
        }), !0) : !1, "invalidDigit"),
        numericSeparatorInEscapeSequence: this.errorBuilder(Z.NumericSeparatorInEscapeSequence),
        unexpectedNumericSeparator: this.errorBuilder(Z.UnexpectedNumericSeparator)
      }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
        invalidEscapeSequence: this.errorBuilder(Z.InvalidEscapeSequence),
        invalidCodePoint: this.errorBuilder(Z.InvalidCodePoint)
      }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: /* @__PURE__ */ n((r, i, a) => {
          this.recordStrictModeErrors(Z.StrictNumericEscape, Rg(r, i, a));
        }, "strictNumericEscape"),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(Z.UnterminatedString, Rg(r - 1, i, a));
        }, "unterminated")
      }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: this.errorBuilder(Z.StrictNumericEscape),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(Z.UnterminatedTemplate, Rg(r, i, a));
        }, "unterminated")
      }), this.state = new jO(), this.state.init(e), this.input = s, this.length = s.length, this.comments = [], this.isLookahead = !1;
    }
    pushToken(e) {
      this.tokens.length = this.state.tokensLength, this.tokens.push(e), ++this.state.tokensLength;
    }
    next() {
      this.checkKeywordEscapes(), this.optionFlags & 128 && this.pushToken(new ll(this.state)), this.state.lastTokEndLoc = this.state.endLoc,
      this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
    }
    eat(e) {
      return this.match(e) ? (this.next(), !0) : !1;
    }
    match(e) {
      return this.state.type === e;
    }
    createLookaheadState(e) {
      return {
        pos: e.pos,
        value: null,
        type: e.type,
        start: e.start,
        end: e.end,
        context: [this.curContext()],
        inType: e.inType,
        startLoc: e.startLoc,
        lastTokEndLoc: e.lastTokEndLoc,
        curLine: e.curLine,
        lineStart: e.lineStart,
        curPosition: e.curPosition
      };
    }
    lookahead() {
      let e = this.state;
      this.state = this.createLookaheadState(e), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
      let s = this.state;
      return this.state = e, s;
    }
    nextTokenStart() {
      return this.nextTokenStartSince(this.state.pos);
    }
    nextTokenStartSince(e) {
      return IO.lastIndex = e, IO.test(this.input) ? IO.lastIndex : e;
    }
    lookaheadCharCode() {
      return this.input.charCodeAt(this.nextTokenStart());
    }
    nextTokenInLineStart() {
      return this.nextTokenInLineStartSince(this.state.pos);
    }
    nextTokenInLineStartSince(e) {
      return NO.lastIndex = e, NO.test(this.input) ? NO.lastIndex : e;
    }
    lookaheadInLineCharCode() {
      return this.input.charCodeAt(this.nextTokenInLineStart());
    }
    codePointAtPos(e) {
      let s = this.input.charCodeAt(e);
      if ((s & 64512) === 55296 && ++e < this.input.length) {
        let r = this.input.charCodeAt(e);
        (r & 64512) === 56320 && (s = 65536 + ((s & 1023) << 10) + (r & 1023));
      }
      return s;
    }
    setStrict(e) {
      this.state.strict = e, e && (this.state.strictErrors.forEach(([s, r]) => this.raise(s, r)), 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(e) {
      let s;
      this.isLookahead || (s = this.state.curPosition());
      let r = this.state.pos, i = this.input.indexOf(e, r + 2);
      if (i === -1)
        throw this.raise(Z.UnterminatedComment, this.state.curPosition());
      for (this.state.pos = i + e.length, jS.lastIndex = r + 2; jS.test(this.input) && jS.lastIndex <= i; )
        ++this.state.curLine, this.state.lineStart = jS.lastIndex;
      if (this.isLookahead) return;
      let a = {
        type: "CommentBlock",
        value: this.input.slice(r + 2, i),
        start: this.sourceToOffsetPos(r),
        end: this.sourceToOffsetPos(i + e.length),
        loc: new Kd(s, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(a), a;
    }
    skipLineComment(e) {
      let s = this.state.pos, r;
      this.isLookahead || (r = this.state.curPosition());
      let i = this.input.charCodeAt(this.state.pos += e);
      if (this.state.pos < this.length)
        for (; !qd(i) && ++this.state.pos < this.length; )
          i = this.input.charCodeAt(this.state.pos);
      if (this.isLookahead) return;
      let a = this.state.pos, l = {
        type: "CommentLine",
        value: this.input.slice(s + e, a),
        start: this.sourceToOffsetPos(s),
        end: this.sourceToOffsetPos(a),
        loc: new Kd(r, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(l), l;
    }
    skipSpace() {
      let e = this.state.pos, s = this.optionFlags & 2048 ? [] : null;
      e: for (; this.state.pos < this.length; ) {
        let r = this.input.charCodeAt(this.state.pos);
        switch (r) {
          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: {
                let i = this.skipBlockComment("*/");
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              case 47: {
                let i = this.skipLineComment(2);
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (Wit(r))
              ++this.state.pos;
            else if (r === 45 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 45 && this.input.charCodeAt(i + 2) === 62 && (e === 0 || this.state.lineStart > e)) {
                let a = this.skipLineComment(3);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else if (r === 60 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 33 && this.input.charCodeAt(i + 2) === 45 && this.input.charCodeAt(i + 3) === 45) {
                let a = this.skipLineComment(4);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else
              break e;
        }
      }
      if (s?.length > 0) {
        let r = this.state.pos, i = {
          start: this.sourceToOffsetPos(e),
          end: this.sourceToOffsetPos(r),
          comments: s,
          leadingNode: null,
          trailingNode: null,
          containingNode: null
        };
        this.state.commentStack.push(i);
      }
    }
    finishToken(e, s) {
      this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
      let r = this.state.type;
      this.state.type = e, this.state.value = s, this.isLookahead || this.updateContext(r);
    }
    replaceToken(e) {
      this.state.type = e, this.updateContext();
    }
    readToken_numberSign() {
      if (this.state.pos === 0 && this.readToken_interpreter())
        return;
      let e = this.state.pos + 1, s = this.codePointAtPos(e);
      if (s >= 48 && s <= 57)
        throw this.raise(Z.UnexpectedDigitAfterHash, this.state.curPosition());
      if (s === 123 || s === 91 && this.hasPlugin("recordAndTuple")) {
        if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
          throw this.raise(s === 123 ? Z.RecordExpressionHashIncorrectStartSyntaxType : Z.TupleExpressionHashIncorrectStartSyntaxType, this.
          state.curPosition());
        this.state.pos += 2, s === 123 ? this.finishToken(7) : this.finishToken(1);
      } else hu(s) ? (++this.state.pos, this.finishToken(139, this.readWord1(s))) : s === 92 ? (++this.state.pos, this.finishToken(139, this.
      readWord1())) : this.finishOp(27, 1);
    }
    readToken_dot() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      if (e >= 48 && e <= 57) {
        this.readNumber(!0);
        return;
      }
      e === 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 e = this.input.charCodeAt(this.state.pos + 1);
      if (e !== 33) return !1;
      let s = this.state.pos;
      for (this.state.pos += 1; !qd(e) && ++this.state.pos < this.length; )
        e = this.input.charCodeAt(this.state.pos);
      let r = this.input.slice(s + 2, this.state.pos);
      return this.finishToken(28, r), !0;
    }
    readToken_mult_modulo(e) {
      let s = e === 42 ? 55 : 54, r = 1, i = this.input.charCodeAt(this.state.pos + 1);
      e === 42 && i === 42 && (r++, i = this.input.charCodeAt(this.state.pos + 2), s = 57), i === 61 && !this.state.inType && (r++, s = e ===
      37 ? 33 : 30), this.finishOp(s, r);
    }
    readToken_pipe_amp(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(e === 124 ? 41 : 42, 2);
        return;
      }
      if (e === 124) {
        if (s === 62) {
          this.finishOp(39, 2);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 125) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(Z.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(9);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 93) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(Z.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(4);
          return;
        }
      }
      if (s === 61) {
        this.finishOp(30, 2);
        return;
      }
      this.finishOp(e === 124 ? 43 : 45, 1);
    }
    readToken_caret() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      e === 61 && !this.state.inType ? this.finishOp(32, 2) : e === 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(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.finishOp(34, 2);
        return;
      }
      s === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
    }
    readToken_lt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 60) {
        if (this.input.charCodeAt(e + 2) === 61) {
          this.finishOp(30, 3);
          return;
        }
        this.finishOp(51, 2);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(47, 1);
    }
    readToken_gt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 62) {
        let r = this.input.charCodeAt(e + 2) === 62 ? 3 : 2;
        if (this.input.charCodeAt(e + r) === 61) {
          this.finishOp(30, r + 1);
          return;
        }
        this.finishOp(52, r);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(48, 1);
    }
    readToken_eq_excl(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === 61) {
        this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
        return;
      }
      if (e === 61 && s === 62) {
        this.state.pos += 2, this.finishToken(19);
        return;
      }
      this.finishOp(e === 61 ? 29 : 35, 1);
    }
    readToken_question() {
      let e = this.input.charCodeAt(this.state.pos + 1), s = this.input.charCodeAt(this.state.pos + 2);
      e === 63 ? s === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : e === 46 && !(s >= 48 && s <= 57) ? (this.state.pos += 2, this.finishToken(
      18)) : (++this.state.pos, this.finishToken(17));
    }
    getTokenFromCode(e) {
      switch (e) {
        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(Z.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(Z.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: {
          let s = this.input.charCodeAt(this.state.pos + 1);
          if (s === 120 || s === 88) {
            this.readRadixNumber(16);
            return;
          }
          if (s === 111 || s === 79) {
            this.readRadixNumber(8);
            return;
          }
          if (s === 98 || s === 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(e);
          return;
        case 47:
          this.readToken_slash();
          return;
        case 37:
        case 42:
          this.readToken_mult_modulo(e);
          return;
        case 124:
        case 38:
          this.readToken_pipe_amp(e);
          return;
        case 94:
          this.readToken_caret();
          return;
        case 43:
        case 45:
          this.readToken_plus_min(e);
          return;
        case 60:
          this.readToken_lt();
          return;
        case 62:
          this.readToken_gt();
          return;
        case 61:
        case 33:
          this.readToken_eq_excl(e);
          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 (hu(e)) {
            this.readWord(e);
            return;
          }
      }
      throw this.raise(Z.InvalidOrUnexpectedToken, this.state.curPosition(), {
        unexpected: String.fromCodePoint(e)
      });
    }
    finishOp(e, s) {
      let r = this.input.slice(this.state.pos, this.state.pos + s);
      this.state.pos += s, this.finishToken(e, r);
    }
    readRegexp() {
      let e = this.state.startLoc, s = this.state.start + 1, r, i, {
        pos: a
      } = this.state;
      for (; ; ++a) {
        if (a >= this.length)
          throw this.raise(Z.UnterminatedRegExp, Cn(e, 1));
        let c = this.input.charCodeAt(a);
        if (qd(c))
          throw this.raise(Z.UnterminatedRegExp, Cn(e, 1));
        if (r)
          r = !1;
        else {
          if (c === 91)
            i = !0;
          else if (c === 93 && i)
            i = !1;
          else if (c === 47 && !i)
            break;
          r = c === 92;
        }
      }
      let o = this.input.slice(s, a);
      ++a;
      let l = "", u = /* @__PURE__ */ n(() => Cn(e, a + 2 - s), "nextPos");
      for (; a < this.length; ) {
        let c = this.codePointAtPos(a), p = String.fromCharCode(c);
        if (Yit.has(c))
          c === 118 ? l.includes("u") && this.raise(Z.IncompatibleRegExpUVFlags, u()) : c === 117 && l.includes("v") && this.raise(Z.IncompatibleRegExpUVFlags,
          u()), l.includes(p) && this.raise(Z.DuplicateRegExpFlags, u());
        else if (Rd(c) || c === 92)
          this.raise(Z.MalformedRegExpFlags, u());
        else
          break;
        ++a, l += p;
      }
      this.state.pos = a, this.finishToken(138, {
        pattern: o,
        flags: l
      });
    }
    readInt(e, s, r = !1, i = !0) {
      let {
        n: a,
        pos: o
      } = TX(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, s, r, i, this.errorHandlers_readInt, !1);
      return this.state.pos = o, a;
    }
    readRadixNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1;
      this.state.pos += 2;
      let a = this.readInt(e);
      a == null && this.raise(Z.InvalidDigit, Cn(r, 2), {
        radix: e
      });
      let o = this.input.charCodeAt(this.state.pos);
      if (o === 110)
        ++this.state.pos, i = !0;
      else if (o === 109)
        throw this.raise(Z.InvalidDecimal, r);
      if (hu(this.codePointAtPos(this.state.pos)))
        throw this.raise(Z.NumberIdentifier, this.state.curPosition());
      if (i) {
        let l = this.input.slice(s, this.state.pos).replace(/[_n]/g, "");
        this.finishToken(136, l);
        return;
      }
      this.finishToken(135, a);
    }
    readNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1, a = !1, o = !1, l = !1;
      !e && this.readInt(10) === null && this.raise(Z.InvalidNumber, this.state.curPosition());
      let u = this.state.pos - s >= 2 && this.input.charCodeAt(s) === 48;
      if (u) {
        let d = this.input.slice(s, this.state.pos);
        if (this.recordStrictModeErrors(Z.StrictOctalLiteral, r), !this.state.strict) {
          let m = d.indexOf("_");
          m > 0 && this.raise(Z.ZeroDigitNumericSeparator, Cn(r, m));
        }
        l = u && !/[89]/.test(d);
      }
      let c = this.input.charCodeAt(this.state.pos);
      if (c === 46 && !l && (++this.state.pos, this.readInt(10), i = !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(
      Z.InvalidOrMissingExponent, r), i = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((i || u) && this.raise(Z.InvalidBigIntLiteral,
      r), ++this.state.pos, a = !0), c === 109) {
        this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(Z.InvalidDecimal, r), ++this.state.pos;
        var p = !0;
      }
      if (hu(this.codePointAtPos(this.state.pos)))
        throw this.raise(Z.NumberIdentifier, this.state.curPosition());
      let h = this.input.slice(s, this.state.pos).replace(/[_mn]/g, "");
      if (a) {
        this.finishToken(136, h);
        return;
      }
      if (p) {
        this.finishToken(137, h);
        return;
      }
      let f = l ? parseInt(h, 8) : parseFloat(h);
      this.finishToken(135, f);
    }
    readCodePoint(e) {
      let {
        code: s,
        pos: r
      } = bX(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, this.errorHandlers_readCodePoint);
      return this.state.pos = r, s;
    }
    readString(e) {
      let {
        str: s,
        pos: r,
        curLine: i,
        lineStart: a
      } = sX(e === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
      this.state.pos = r + 1, this.state.lineStart = a, this.state.curLine = i, this.finishToken(134, s);
    }
    readTemplateContinuation() {
      this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
    }
    readTemplateToken() {
      let e = this.input[this.state.pos], {
        str: s,
        firstInvalidLoc: r,
        pos: i,
        curLine: a,
        lineStart: o
      } = sX("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
      this.state.pos = i + 1, this.state.lineStart = o, this.state.curLine = a, r && (this.state.firstInvalidTemplateEscapePos = new ul(r.curLine,
      r.pos - r.lineStart, this.sourceToOffsetPos(r.pos))), this.input.codePointAt(i) === 96 ? this.finishToken(24, r ? null : e + s + "`") :
      (this.state.pos++, this.finishToken(25, r ? null : e + s + "${"));
    }
    recordStrictModeErrors(e, s) {
      let r = s.index;
      this.state.strict && !this.state.strictErrors.has(r) ? this.raise(e, s) : this.state.strictErrors.set(r, [e, s]);
    }
    readWord1(e) {
      this.state.containsEsc = !1;
      let s = "", r = this.state.pos, i = this.state.pos;
      for (e !== void 0 && (this.state.pos += e <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
        let a = this.codePointAtPos(this.state.pos);
        if (Rd(a))
          this.state.pos += a <= 65535 ? 1 : 2;
        else if (a === 92) {
          this.state.containsEsc = !0, s += this.input.slice(i, this.state.pos);
          let o = this.state.curPosition(), l = this.state.pos === r ? hu : Rd;
          if (this.input.charCodeAt(++this.state.pos) !== 117) {
            this.raise(Z.MissingUnicodeEscape, this.state.curPosition()), i = this.state.pos - 1;
            continue;
          }
          ++this.state.pos;
          let u = this.readCodePoint(!0);
          u !== null && (l(u) || this.raise(Z.EscapedCharNotAnIdentifier, o), s += String.fromCodePoint(u)), i = this.state.pos;
        } else
          break;
      }
      return s + this.input.slice(i, this.state.pos);
    }
    readWord(e) {
      let s = this.readWord1(e), r = QO.get(s);
      r !== void 0 ? this.finishToken(r, Zc(r)) : this.finishToken(132, s);
    }
    checkKeywordEscapes() {
      let {
        type: e
      } = this.state;
      i2(e) && this.state.containsEsc && this.raise(Z.InvalidEscapedReservedWord, this.state.startLoc, {
        reservedWord: Zc(e)
      });
    }
    raise(e, s, r = {}) {
      let i = s instanceof ul ? s : s.loc.start, a = e(i, r);
      if (!(this.optionFlags & 1024)) throw a;
      return this.isLookahead || this.state.errors.push(a), a;
    }
    raiseOverwrite(e, s, r = {}) {
      let i = s instanceof ul ? s : s.loc.start, a = i.index, o = this.state.errors;
      for (let l = o.length - 1; l >= 0; l--) {
        let u = o[l];
        if (u.loc.index === a)
          return o[l] = e(i, r);
        if (u.loc.index < a) break;
      }
      return this.raise(e, s, r);
    }
    updateContext(e) {
    }
    unexpected(e, s) {
      throw this.raise(Z.UnexpectedToken, e ?? this.state.startLoc, {
        expected: s ? Zc(s) : null
      });
    }
    expectPlugin(e, s) {
      if (this.hasPlugin(e))
        return !0;
      throw this.raise(Z.MissingPlugin, s ?? this.state.startLoc, {
        missingPlugin: [e]
      });
    }
    expectOnePlugin(e) {
      if (!e.some((s) => this.hasPlugin(s)))
        throw this.raise(Z.MissingOneOfPlugins, this.state.startLoc, {
          missingPlugin: e
        });
    }
    errorBuilder(e) {
      return (s, r, i) => {
        this.raise(e, Rg(s, r, i));
      };
    }
  }, UO = class {
    static {
      n(this, "ClassScope");
    }
    constructor() {
      this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
    }
  }, KO = class {
    static {
      n(this, "ClassScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = e;
    }
    current() {
      return this.stack[this.stack.length - 1];
    }
    enter() {
      this.stack.push(new UO());
    }
    exit() {
      let e = this.stack.pop(), s = this.current();
      for (let [r, i] of Array.from(e.undefinedPrivateNames))
        s ? s.undefinedPrivateNames.has(r) || s.undefinedPrivateNames.set(r, i) : this.parser.raise(Z.InvalidPrivateFieldResolution, i, {
          identifierName: r
        });
    }
    declarePrivateName(e, s, r) {
      let {
        privateNames: i,
        loneAccessors: a,
        undefinedPrivateNames: o
      } = this.current(), l = i.has(e);
      if (s & 3) {
        let u = l && a.get(e);
        if (u) {
          let c = u & 4, p = s & 4, h = u & 3, f = s & 3;
          l = h === f || c !== p, l || a.delete(e);
        } else l || a.set(e, s);
      }
      l && this.parser.raise(Z.PrivateNameRedeclaration, r, {
        identifierName: e
      }), i.add(e), o.delete(e);
    }
    usePrivateName(e, s) {
      let r;
      for (r of this.stack)
        if (r.privateNames.has(e)) return;
      r ? r.undefinedPrivateNames.set(e, s) : this.parser.raise(Z.InvalidPrivateFieldResolution, s, {
        identifierName: e
      });
    }
  }, Vd = class {
    static {
      n(this, "ExpressionScope");
    }
    constructor(e = 0) {
      this.type = e;
    }
    canBeArrowParameterDeclaration() {
      return this.type === 2 || this.type === 1;
    }
    isCertainlyParameterDeclaration() {
      return this.type === 3;
    }
  }, $S = class extends Vd {
    static {
      n(this, "ArrowHeadParsingScope");
    }
    constructor(e) {
      super(e), this.declarationErrors = /* @__PURE__ */ new Map();
    }
    recordDeclarationError(e, s) {
      let r = s.index;
      this.declarationErrors.set(r, [e, s]);
    }
    clearDeclarationError(e) {
      this.declarationErrors.delete(e);
    }
    iterateErrors(e) {
      this.declarationErrors.forEach(e);
    }
  }, VO = class {
    static {
      n(this, "ExpressionScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [new Vd()], this.parser = e;
    }
    enter(e) {
      this.stack.push(e);
    }
    exit() {
      this.stack.pop();
    }
    recordParameterInitializerError(e, s) {
      let r = s.loc.start, {
        stack: i
      } = this, a = i.length - 1, o = i[a];
      for (; !o.isCertainlyParameterDeclaration(); ) {
        if (o.canBeArrowParameterDeclaration())
          o.recordDeclarationError(e, r);
        else
          return;
        o = i[--a];
      }
      this.parser.raise(e, r);
    }
    recordArrowParameterBindingError(e, s) {
      let {
        stack: r
      } = this, i = r[r.length - 1], a = s.loc.start;
      if (i.isCertainlyParameterDeclaration())
        this.parser.raise(e, a);
      else if (i.canBeArrowParameterDeclaration())
        i.recordDeclarationError(e, a);
      else
        return;
    }
    recordAsyncArrowParametersError(e) {
      let {
        stack: s
      } = this, r = s.length - 1, i = s[r];
      for (; i.canBeArrowParameterDeclaration(); )
        i.type === 2 && i.recordDeclarationError(Z.AwaitBindingIdentifier, e), i = s[--r];
    }
    validateAsPattern() {
      let {
        stack: e
      } = this, s = e[e.length - 1];
      s.canBeArrowParameterDeclaration() && s.iterateErrors(([r, i]) => {
        this.parser.raise(r, i);
        let a = e.length - 2, o = e[a];
        for (; o.canBeArrowParameterDeclaration(); )
          o.clearDeclarationError(i.index), o = e[--a];
      });
    }
  };
  function Xit() {
    return new Vd(3);
  }
  n(Xit, "newParameterDeclarationScope");
  function zit() {
    return new $S(1);
  }
  n(zit, "newArrowHeadScope");
  function Git() {
    return new $S(2);
  }
  n(Git, "newAsyncArrowScope");
  function xX() {
    return new Vd();
  }
  n(xX, "newExpressionScope");
  var WO = class {
    static {
      n(this, "ProductionParameterHandler");
    }
    constructor() {
      this.stacks = [];
    }
    enter(e) {
      this.stacks.push(e);
    }
    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 KS(t, e) {
    return (t ? 2 : 0) | (e ? 1 : 0);
  }
  n(KS, "functionFlags");
  var $O = class extends qO {
    static {
      n(this, "UtilParser");
    }
    addExtra(e, s, r, i = !0) {
      if (!e) return;
      let {
        extra: a
      } = e;
      a == null && (a = {}, e.extra = a), i ? a[s] = r : Object.defineProperty(a, s, {
        enumerable: i,
        value: r
      });
    }
    isContextual(e) {
      return this.state.type === e && !this.state.containsEsc;
    }
    isUnparsedContextual(e, s) {
      let r = e + s.length;
      if (this.input.slice(e, r) === s) {
        let i = this.input.charCodeAt(r);
        return !(Rd(i) || (i & 64512) === 55296);
      }
      return !1;
    }
    isLookaheadContextual(e) {
      let s = this.nextTokenStart();
      return this.isUnparsedContextual(s, e);
    }
    eatContextual(e) {
      return this.isContextual(e) ? (this.next(), !0) : !1;
    }
    expectContextual(e, s) {
      if (!this.eatContextual(e)) {
        if (s != null)
          throw this.raise(s, this.state.startLoc);
        this.unexpected(null, e);
      }
    }
    canInsertSemicolon() {
      return this.match(140) || this.match(8) || this.hasPrecedingLineBreak();
    }
    hasPrecedingLineBreak() {
      return eX(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start);
    }
    hasFollowingLineBreak() {
      return eX(this.input, this.state.end, this.nextTokenStart());
    }
    isLineTerminator() {
      return this.eat(13) || this.canInsertSemicolon();
    }
    semicolon(e = !0) {
      (e ? this.isLineTerminator() : this.eat(13)) || this.raise(Z.MissingSemicolon, this.state.lastTokEndLoc);
    }
    expect(e, s) {
      this.eat(e) || this.unexpected(s, e);
    }
    tryParse(e, s = this.state.clone()) {
      let r = {
        node: null
      };
      try {
        let i = e((a = null) => {
          throw r.node = a, r;
        });
        if (this.state.errors.length > s.errors.length) {
          let a = this.state;
          return this.state = s, this.state.tokensLength = a.tokensLength, {
            node: i,
            error: a.errors[s.errors.length],
            thrown: !1,
            aborted: !1,
            failState: a
          };
        }
        return {
          node: i,
          error: null,
          thrown: !1,
          aborted: !1,
          failState: null
        };
      } catch (i) {
        let a = this.state;
        if (this.state = s, i instanceof SyntaxError)
          return {
            node: null,
            error: i,
            thrown: !0,
            aborted: !1,
            failState: a
          };
        if (i === r)
          return {
            node: r.node,
            error: null,
            thrown: !1,
            aborted: !0,
            failState: a
          };
        throw i;
      }
    }
    checkExpressionErrors(e, s) {
      if (!e) return !1;
      let {
        shorthandAssignLoc: r,
        doubleProtoLoc: i,
        privateKeyLoc: a,
        optionalParametersLoc: o
      } = e, l = !!r || !!i || !!o || !!a;
      if (!s)
        return l;
      r != null && this.raise(Z.InvalidCoverInitializedName, r), i != null && this.raise(Z.DuplicateProto, i), a != null && this.raise(Z.UnexpectedPrivateField,
      a), o != null && this.unexpected(o);
    }
    isLiteralPropertyName() {
      return cX(this.state.type);
    }
    isPrivateName(e) {
      return e.type === "PrivateName";
    }
    getPrivateNameSV(e) {
      return e.id.name;
    }
    hasPropertyAsPrivateName(e) {
      return (e.type === "MemberExpression" || e.type === "OptionalMemberExpression") && this.isPrivateName(e.property);
    }
    isObjectProperty(e) {
      return e.type === "ObjectProperty";
    }
    isObjectMethod(e) {
      return e.type === "ObjectMethod";
    }
    initializeScopes(e = this.options.sourceType === "module") {
      let s = this.state.labels;
      this.state.labels = [];
      let r = this.exportedIdentifiers;
      this.exportedIdentifiers = /* @__PURE__ */ new Set();
      let i = this.inModule;
      this.inModule = e;
      let a = this.scope, o = this.getScopeHandler();
      this.scope = new o(this, e);
      let l = this.prodParam;
      this.prodParam = new WO();
      let u = this.classScope;
      this.classScope = new KO(this);
      let c = this.expressionScope;
      return this.expressionScope = new VO(this), () => {
        this.state.labels = s, this.exportedIdentifiers = r, this.inModule = i, this.scope = a, this.prodParam = l, this.classScope = u, this.
        expressionScope = c;
      };
    }
    enterInitialScopes() {
      let e = 0;
      this.inModule && (e |= 2), this.scope.enter(1), this.prodParam.enter(e);
    }
    checkDestructuringPrivate(e) {
      let {
        privateKeyLoc: s
      } = e;
      s !== null && this.expectPlugin("destructuringPrivate", s);
    }
  }, Ud = class {
    static {
      n(this, "ExpressionErrors");
    }
    constructor() {
      this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
    }
  }, Wd = class {
    static {
      n(this, "Node");
    }
    constructor(e, s, r) {
      this.type = "", this.start = s, this.end = 0, this.loc = new Kd(r), e?.optionFlags & 64 && (this.range = [s, 0]), e != null && e.filename &&
      (this.loc.filename = e.filename);
    }
  }, o2 = Wd.prototype;
  o2.__clone = function() {
    let t = new Wd(void 0, this.start, this.loc.start), e = Object.keys(this);
    for (let s = 0, r = e.length; s < r; s++) {
      let i = e[s];
      i !== "leadingComments" && i !== "trailingComments" && i !== "innerComments" && (t[i] = this[i]);
    }
    return t;
  };
  function Qit(t) {
    return du(t);
  }
  n(Qit, "clonePlaceholder");
  function du(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o,
      name: l
    } = t, u = Object.create(o2);
    return u.type = e, u.start = s, u.end = r, u.loc = i, u.range = a, u.extra = o, u.name = l, e === "Placeholder" && (u.expectedNode = t.expectedNode),
    u;
  }
  n(du, "cloneIdentifier");
  function Zit(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o
    } = t;
    if (e === "Placeholder")
      return Qit(t);
    let l = Object.create(o2);
    return l.type = e, l.start = s, l.end = r, l.loc = i, l.range = a, t.raw !== void 0 ? l.raw = t.raw : l.extra = o, l.value = t.value, l;
  }
  n(Zit, "cloneStringLiteral");
  var HO = class extends $O {
    static {
      n(this, "NodeUtils");
    }
    startNode() {
      let e = this.state.startLoc;
      return new Wd(this, e.index, e);
    }
    startNodeAt(e) {
      return new Wd(this, e.index, e);
    }
    startNodeAtNode(e) {
      return this.startNodeAt(e.loc.start);
    }
    finishNode(e, s) {
      return this.finishNodeAt(e, s, this.state.lastTokEndLoc);
    }
    finishNodeAt(e, s, r) {
      return e.type = s, e.end = r.index, e.loc.end = r, this.optionFlags & 64 && (e.range[1] = r.index), this.optionFlags & 2048 && this.processComment(
      e), e;
    }
    resetStartLocation(e, s) {
      e.start = s.index, e.loc.start = s, this.optionFlags & 64 && (e.range[0] = s.index);
    }
    resetEndLocation(e, s = this.state.lastTokEndLoc) {
      e.end = s.index, e.loc.end = s, this.optionFlags & 64 && (e.range[1] = s.index);
    }
    resetStartLocationFromNode(e, s) {
      this.resetStartLocation(e, s.loc.start);
    }
  }, ent = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "sta\
tic", "string", "true", "typeof", "void"]), Bt = fu`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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Cannot overwrite reserved type ${t}.`, "AssignReservedType"),
    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: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Boolean enum members need to be initialized. Use either \`${t} = true,\` or \`${t} = false,\` in enum \`${e}\`.`, "EnumBooleanMem\
berNotInitialized"),
    EnumDuplicateMemberName: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Enum member names need to be unique, but the name \`${t}\` has already been used before in enum \`${e}\`.`, "EnumDuplicateMemberN\
ame"),
    EnumInconsistentMemberValues: /* @__PURE__ */ n(({
      enumName: t
    }) => `Enum \`${t}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, num\
bers, or strings) for all member initializers.`, "EnumInconsistentMemberValues"),
    EnumInvalidExplicitType: /* @__PURE__ */ n(({
      invalidEnumType: t,
      enumName: e
    }) => `Enum type \`${t}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${e}\`.`, "EnumInvalidEx\
plicitType"),
    EnumInvalidExplicitTypeUnknownSupplied: /* @__PURE__ */ n(({
      enumName: t
    }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`, "EnumInvalidEx\
plicitTypeUnknownSupplied"),
    EnumInvalidMemberInitializerPrimaryType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      explicitType: s
    }) => `Enum \`${t}\` has type \`${s}\`, so the initializer of \`${e}\` needs to be a ${s} literal.`, "EnumInvalidMemberInitializerPrimar\
yType"),
    EnumInvalidMemberInitializerSymbolType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Symbol enum members cannot be initialized. Use \`${e},\` in enum \`${t}\`.`, "EnumInvalidMemberInitializerSymbolType"),
    EnumInvalidMemberInitializerUnknownType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `The enum member initializer for \`${e}\` needs to be a literal (either a boolean, number, or string) in enum \`${t}\`.`, "EnumInv\
alidMemberInitializerUnknownType"),
    EnumInvalidMemberName: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      suggestion: s
    }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${e}\`, consider using \`${s}\`, in enum \`${t}\
\`.`, "EnumInvalidMemberName"),
    EnumNumberMemberNotInitialized: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Number enum members need to be initialized, e.g. \`${e} = 1\` in enum \`${t}\`.`, "EnumNumberMemberNotInitialized"),
    EnumStringMemberInconsistentlyInitialized: /* @__PURE__ */ n(({
      enumName: t
    }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${t}\`.`, "EnumStringMemb\
erInconsistentlyInitialized"),
    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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Unexpected reserved type ${t}.`, "UnexpectedReservedType"),
    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: /* @__PURE__ */ n(({
      unsupportedExportKind: t,
      suggestion: e
    }) => `\`declare export ${t}\` is not supported. Use \`${e}\` instead.`, "UnsupportedDeclareExportKind"),
    UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
    UnterminatedFlowComment: "Unterminated flow-comment."
  });
  function tnt(t) {
    return t.type === "DeclareExportAllDeclaration" || t.type === "DeclareExportDeclaration" && (!t.declaration || t.declaration.type !== "T\
ypeAlias" && t.declaration.type !== "InterfaceDeclaration");
  }
  n(tnt, "isEsModuleType");
  function rX(t) {
    return t.importKind === "type" || t.importKind === "typeof";
  }
  n(rX, "hasTypeImportKind");
  var snt = {
    const: "declare export var",
    let: "declare export var",
    type: "export type",
    interface: "export interface"
  };
  function rnt(t, e) {
    let s = [], r = [];
    for (let i = 0; i < t.length; i++)
      (e(t[i], i, t) ? s : r).push(t[i]);
    return [s, r];
  }
  n(rnt, "partition");
  var int = /\*?\s*@((?:no)?flow)\b/, nnt = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "FlowParserMixin");
    }
    constructor(...s) {
      super(...s), this.flowPragma = void 0;
    }
    getScopeHandler() {
      return BO;
    }
    shouldParseTypes() {
      return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
    }
    finishToken(s, r) {
      s !== 134 && s !== 13 && s !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(s, r);
    }
    addComment(s) {
      if (this.flowPragma === void 0) {
        let r = int.exec(s.value);
        if (r) if (r[1] === "flow")
          this.flowPragma = "flow";
        else if (r[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
      }
      super.addComment(s);
    }
    flowParseTypeInitialiser(s) {
      let r = this.state.inType;
      this.state.inType = !0, this.expect(s || 14);
      let i = this.flowParseType();
      return this.state.inType = r, i;
    }
    flowParsePredicate() {
      let s = this.startNode(), r = this.state.startLoc;
      return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > r.index + 1 && this.raise(Bt.UnexpectedSpaceBetweenModuloChecks,
      r), this.eat(10) ? (s.value = super.parseExpression(), this.expect(11), this.finishNode(s, "DeclaredPredicate")) : this.finishNode(s, "\
InferredPredicate");
    }
    flowParseTypeAndPredicateInitialiser() {
      let s = this.state.inType;
      this.state.inType = !0, this.expect(14);
      let r = null, i = null;
      return this.match(54) ? (this.state.inType = s, i = this.flowParsePredicate()) : (r = this.flowParseType(), this.state.inType = s, this.
      match(54) && (i = this.flowParsePredicate())), [r, i];
    }
    flowParseDeclareClass(s) {
      return this.next(), this.flowParseInterfaceish(s, !0), this.finishNode(s, "DeclareClass");
    }
    flowParseDeclareFunction(s) {
      this.next();
      let r = s.id = this.parseIdentifier(), i = this.startNode(), a = this.startNode();
      this.match(47) ? i.typeParameters = this.flowParseTypeParameterDeclaration() : i.typeParameters = null, this.expect(10);
      let o = this.flowParseFunctionTypeParams();
      return i.params = o.params, i.rest = o.rest, i.this = o._this, this.expect(11), [i.returnType, s.predicate] = this.flowParseTypeAndPredicateInitialiser(),
      a.typeAnnotation = this.finishNode(i, "FunctionTypeAnnotation"), r.typeAnnotation = this.finishNode(a, "TypeAnnotation"), this.resetEndLocation(
      r), this.semicolon(), this.scope.declareName(s.id.name, 2048, s.id.loc.start), this.finishNode(s, "DeclareFunction");
    }
    flowParseDeclare(s, r) {
      if (this.match(80))
        return this.flowParseDeclareClass(s);
      if (this.match(68))
        return this.flowParseDeclareFunction(s);
      if (this.match(74))
        return this.flowParseDeclareVariable(s);
      if (this.eatContextual(127))
        return this.match(16) ? this.flowParseDeclareModuleExports(s) : (r && this.raise(Bt.NestedDeclareModule, this.state.lastTokStartLoc),
        this.flowParseDeclareModule(s));
      if (this.isContextual(130))
        return this.flowParseDeclareTypeAlias(s);
      if (this.isContextual(131))
        return this.flowParseDeclareOpaqueType(s);
      if (this.isContextual(129))
        return this.flowParseDeclareInterface(s);
      if (this.match(82))
        return this.flowParseDeclareExportDeclaration(s, r);
      this.unexpected();
    }
    flowParseDeclareVariable(s) {
      return this.next(), s.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(s.id.name, 5, s.id.loc.start), this.semicolon(),
      this.finishNode(s, "DeclareVariable");
    }
    flowParseDeclareModule(s) {
      this.scope.enter(0), this.match(134) ? s.id = super.parseExprAtom() : s.id = this.parseIdentifier();
      let r = s.body = this.startNode(), i = r.body = [];
      for (this.expect(5); !this.match(8); ) {
        let l = this.startNode();
        this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(Bt.InvalidNonTypeImportInDeclareModule, this.
        state.lastTokStartLoc), super.parseImport(l)) : (this.expectContextual(125, Bt.UnsupportedStatementInDeclareModule), l = this.flowParseDeclare(
        l, !0)), i.push(l);
      }
      this.scope.exit(), this.expect(8), this.finishNode(r, "BlockStatement");
      let a = null, o = !1;
      return i.forEach((l) => {
        tnt(l) ? (a === "CommonJS" && this.raise(Bt.AmbiguousDeclareModuleKind, l), a = "ES") : l.type === "DeclareModuleExports" && (o && this.
        raise(Bt.DuplicateDeclareModuleExports, l), a === "ES" && this.raise(Bt.AmbiguousDeclareModuleKind, l), a = "CommonJS", o = !0);
      }), s.kind = a || "CommonJS", this.finishNode(s, "DeclareModule");
    }
    flowParseDeclareExportDeclaration(s, r) {
      if (this.expect(82), this.eat(65))
        return this.match(68) || this.match(80) ? s.declaration = this.flowParseDeclare(this.startNode()) : (s.declaration = this.flowParseType(),
        this.semicolon()), s.default = !0, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !r) {
        let i = this.state.value;
        throw this.raise(Bt.UnsupportedDeclareExportKind, this.state.startLoc, {
          unsupportedExportKind: i,
          suggestion: snt[i]
        });
      }
      if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
        return s.declaration = this.flowParseDeclare(this.startNode()), s.default = !1, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
        return s = this.parseExport(s, null), s.type === "ExportNamedDeclaration" && (s.type = "ExportDeclaration", s.default = !1, delete s.
        exportKind), s.type = "Declare" + s.type, s;
      this.unexpected();
    }
    flowParseDeclareModuleExports(s) {
      return this.next(), this.expectContextual(111), s.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(s,
      "DeclareModuleExports");
    }
    flowParseDeclareTypeAlias(s) {
      this.next();
      let r = this.flowParseTypeAlias(s);
      return r.type = "DeclareTypeAlias", r;
    }
    flowParseDeclareOpaqueType(s) {
      this.next();
      let r = this.flowParseOpaqueType(s, !0);
      return r.type = "DeclareOpaqueType", r;
    }
    flowParseDeclareInterface(s) {
      return this.next(), this.flowParseInterfaceish(s, !1), this.finishNode(s, "DeclareInterface");
    }
    flowParseInterfaceish(s, r) {
      if (s.id = this.flowParseRestrictedIdentifier(!r, !0), this.scope.declareName(s.id.name, r ? 17 : 8201, s.id.loc.start), this.match(47) ?
      s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (!r && this.eat(12));
      if (r) {
        if (s.implements = [], s.mixins = [], this.eatContextual(117))
          do
            s.mixins.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
        if (this.eatContextual(113))
          do
            s.implements.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
      }
      s.body = this.flowParseObjectType({
        allowStatic: r,
        allowExact: !1,
        allowSpread: !1,
        allowProto: r,
        allowInexact: !1
      });
    }
    flowParseInterfaceExtends() {
      let s = this.startNode();
      return s.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? s.typeParameters = this.flowParseTypeParameterInstantiation() :
      s.typeParameters = null, this.finishNode(s, "InterfaceExtends");
    }
    flowParseInterface(s) {
      return this.flowParseInterfaceish(s, !1), this.finishNode(s, "InterfaceDeclaration");
    }
    checkNotUnderscore(s) {
      s === "_" && this.raise(Bt.UnexpectedReservedUnderscore, this.state.startLoc);
    }
    checkReservedType(s, r, i) {
      ent.has(s) && this.raise(i ? Bt.AssignReservedType : Bt.UnexpectedReservedType, r, {
        reservedType: s
      });
    }
    flowParseRestrictedIdentifier(s, r) {
      return this.checkReservedType(this.state.value, this.state.startLoc, r), this.parseIdentifier(s);
    }
    flowParseTypeAlias(s) {
      return s.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.start), this.match(47) ? s.
      typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.right = this.flowParseTypeInitialiser(29), this.
      semicolon(), this.finishNode(s, "TypeAlias");
    }
    flowParseOpaqueType(s, r) {
      return this.expectContextual(130), s.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.
      start), this.match(47) ? s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.supertype = null, this.
      match(14) && (s.supertype = this.flowParseTypeInitialiser(14)), s.impltype = null, r || (s.impltype = this.flowParseTypeInitialiser(29)),
      this.semicolon(), this.finishNode(s, "OpaqueType");
    }
    flowParseTypeParameter(s = !1) {
      let r = this.state.startLoc, i = this.startNode(), a = this.flowParseVariance(), o = this.flowParseTypeAnnotatableIdentifier();
      return i.name = o.name, i.variance = a, i.bound = o.typeAnnotation, this.match(29) ? (this.eat(29), i.default = this.flowParseType()) :
      s && this.raise(Bt.MissingTypeParamDefault, r), this.finishNode(i, "TypeParameter");
    }
    flowParseTypeParameterDeclaration() {
      let s = this.state.inType, r = this.startNode();
      r.params = [], this.state.inType = !0, this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = !1;
      do {
        let a = this.flowParseTypeParameter(i);
        r.params.push(a), a.default && (i = !0), this.match(48) || this.expect(12);
      } while (!this.match(48));
      return this.expect(48), this.state.inType = s, this.finishNode(r, "TypeParameterDeclaration");
    }
    flowInTopLevelContext(s) {
      if (this.curContext() !== zs.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    flowParseTypeParameterInstantiationInExpression() {
      if (this.reScan_lt() === 47)
        return this.flowParseTypeParameterInstantiation();
    }
    flowParseTypeParameterInstantiation() {
      let s = this.startNode(), r = this.state.inType;
      return this.state.inType = !0, s.params = [], this.flowInTopLevelContext(() => {
        this.expect(47);
        let i = this.state.noAnonFunctionType;
        for (this.state.noAnonFunctionType = !1; !this.match(48); )
          s.params.push(this.flowParseType()), this.match(48) || this.expect(12);
        this.state.noAnonFunctionType = i;
      }), this.state.inType = r, !this.state.inType && this.curContext() === zs.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(
      s, "TypeParameterInstantiation");
    }
    flowParseTypeParameterInstantiationCallOrNew() {
      if (this.reScan_lt() !== 47) return;
      let s = this.startNode(), r = this.state.inType;
      for (s.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
        s.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
      return this.expect(48), this.state.inType = r, this.finishNode(s, "TypeParameterInstantiation");
    }
    flowParseInterfaceType() {
      let s = this.startNode();
      if (this.expectContextual(129), s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      return s.body = this.flowParseObjectType({
        allowStatic: !1,
        allowExact: !1,
        allowSpread: !1,
        allowProto: !1,
        allowInexact: !1
      }), this.finishNode(s, "InterfaceTypeAnnotation");
    }
    flowParseObjectPropertyKey() {
      return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(!0);
    }
    flowParseObjectTypeIndexer(s, r, i) {
      return s.static = r, this.lookahead().type === 14 ? (s.id = this.flowParseObjectPropertyKey(), s.key = this.flowParseTypeInitialiser()) :
      (s.id = null, s.key = this.flowParseType()), this.expect(3), s.value = this.flowParseTypeInitialiser(), s.variance = i, this.finishNode(
      s, "ObjectTypeIndexer");
    }
    flowParseObjectTypeInternalSlot(s, r) {
      return s.static = r, s.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (s.method =
      !0, s.optional = !1, s.value = this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start))) : (s.method = !1, this.eat(17) && (s.
      optional = !0), s.value = this.flowParseTypeInitialiser()), this.finishNode(s, "ObjectTypeInternalSlot");
    }
    flowParseObjectTypeMethodish(s) {
      for (s.params = [], s.rest = null, s.typeParameters = null, s.this = null, this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()),
      this.expect(10), this.match(78) && (s.this = this.flowParseFunctionTypeParam(!0), s.this.name = null, this.match(11) || this.expect(12)); !this.
      match(11) && !this.match(21); )
        s.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (s.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), s.returnType = this.flowParseTypeInitialiser(),
      this.finishNode(s, "FunctionTypeAnnotation");
    }
    flowParseObjectTypeCallProperty(s, r) {
      let i = this.startNode();
      return s.static = r, s.value = this.flowParseObjectTypeMethodish(i), this.finishNode(s, "ObjectTypeCallProperty");
    }
    flowParseObjectType({
      allowStatic: s,
      allowExact: r,
      allowSpread: i,
      allowProto: a,
      allowInexact: o
    }) {
      let l = this.state.inType;
      this.state.inType = !0;
      let u = this.startNode();
      u.callProperties = [], u.properties = [], u.indexers = [], u.internalSlots = [];
      let c, p, h = !1;
      for (r && this.match(6) ? (this.expect(6), c = 9, p = !0) : (this.expect(5), c = 8, p = !1), u.exact = p; !this.match(c); ) {
        let d = !1, m = null, y = null, T = this.startNode();
        if (a && this.isContextual(118)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), m = this.state.startLoc, s = !1);
        }
        if (s && this.isContextual(106)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), d = !0);
        }
        let b = this.flowParseVariance();
        if (this.eat(0))
          m != null && this.unexpected(m), this.eat(0) ? (b && this.unexpected(b.loc.start), u.internalSlots.push(this.flowParseObjectTypeInternalSlot(
          T, d))) : u.indexers.push(this.flowParseObjectTypeIndexer(T, d, b));
        else if (this.match(10) || this.match(47))
          m != null && this.unexpected(m), b && this.unexpected(b.loc.start), u.callProperties.push(this.flowParseObjectTypeCallProperty(T, d));
        else {
          let E = "init";
          if (this.isContextual(99) || this.isContextual(104)) {
            let W = this.lookahead();
            cX(W.type) && (E = this.state.value, this.next());
          }
          let V = this.flowParseObjectTypeProperty(T, d, m, b, E, i, o ?? !p);
          V === null ? (h = !0, y = this.state.lastTokStartLoc) : u.properties.push(V);
        }
        this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(Bt.UnexpectedExplicitInexactInObject, y);
      }
      this.expect(c), i && (u.inexact = h);
      let f = this.finishNode(u, "ObjectTypeAnnotation");
      return this.state.inType = l, f;
    }
    flowParseObjectTypeProperty(s, r, i, a, o, l, u) {
      if (this.eat(21))
        return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (l ? u || this.raise(Bt.InexactInsideExact, this.state.lastTokStartLoc) :
        this.raise(Bt.InexactInsideNonObject, this.state.lastTokStartLoc), a && this.raise(Bt.InexactVariance, a), null) : (l || this.raise(
        Bt.UnexpectedSpreadType, this.state.lastTokStartLoc), i != null && this.unexpected(i), a && this.raise(Bt.SpreadVariance, a), s.argument =
        this.flowParseType(), this.finishNode(s, "ObjectTypeSpreadProperty"));
      {
        s.key = this.flowParseObjectPropertyKey(), s.static = r, s.proto = i != null, s.kind = o;
        let c = !1;
        return this.match(47) || this.match(10) ? (s.method = !0, i != null && this.unexpected(i), a && this.unexpected(a.loc.start), s.value =
        this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start)), (o === "get" || o === "set") && this.flowCheckGetterSetterParams(s),
        !l && s.key.name === "constructor" && s.value.this && this.raise(Bt.ThisParamBannedInConstructor, s.value.this)) : (o !== "init" && this.
        unexpected(), s.method = !1, this.eat(17) && (c = !0), s.value = this.flowParseTypeInitialiser(), s.variance = a), s.optional = c, this.
        finishNode(s, "ObjectTypeProperty");
      }
    }
    flowCheckGetterSetterParams(s) {
      let r = s.kind === "get" ? 0 : 1, i = s.value.params.length + (s.value.rest ? 1 : 0);
      s.value.this && this.raise(s.kind === "get" ? Bt.GetterMayNotHaveThisParam : Bt.SetterMayNotHaveThisParam, s.value.this), i !== r && this.
      raise(s.kind === "get" ? Z.BadGetterArity : Z.BadSetterArity, s), s.kind === "set" && s.value.rest && this.raise(Z.BadSetterRestParameter,
      s);
    }
    flowObjectTypeSemicolon() {
      !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
    }
    flowParseQualifiedTypeIdentifier(s, r) {
      var i;
      (i = s) != null || (s = this.state.startLoc);
      let a = r || this.flowParseRestrictedIdentifier(!0);
      for (; this.eat(16); ) {
        let o = this.startNodeAt(s);
        o.qualification = a, o.id = this.flowParseRestrictedIdentifier(!0), a = this.finishNode(o, "QualifiedTypeIdentifier");
      }
      return a;
    }
    flowParseGenericType(s, r) {
      let i = this.startNodeAt(s);
      return i.typeParameters = null, i.id = this.flowParseQualifiedTypeIdentifier(s, r), this.match(47) && (i.typeParameters = this.flowParseTypeParameterInstantiation()),
      this.finishNode(i, "GenericTypeAnnotation");
    }
    flowParseTypeofType() {
      let s = this.startNode();
      return this.expect(87), s.argument = this.flowParsePrimaryType(), this.finishNode(s, "TypeofTypeAnnotation");
    }
    flowParseTupleType() {
      let s = this.startNode();
      for (s.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (s.types.push(this.flowParseType()), !this.match(
      3)); )
        this.expect(12);
      return this.expect(3), this.finishNode(s, "TupleTypeAnnotation");
    }
    flowParseFunctionTypeParam(s) {
      let r = null, i = !1, a = null, o = this.startNode(), l = this.lookahead(), u = this.state.type === 78;
      return l.type === 14 || l.type === 17 ? (u && !s && this.raise(Bt.ThisParamMustBeFirst, o), r = this.parseIdentifier(u), this.eat(17) &&
      (i = !0, u && this.raise(Bt.ThisParamMayNotBeOptional, o)), a = this.flowParseTypeInitialiser()) : a = this.flowParseType(), o.name = r,
      o.optional = i, o.typeAnnotation = a, this.finishNode(o, "FunctionTypeParam");
    }
    reinterpretTypeAsFunctionTypeParam(s) {
      let r = this.startNodeAt(s.loc.start);
      return r.name = null, r.optional = !1, r.typeAnnotation = s, this.finishNode(r, "FunctionTypeParam");
    }
    flowParseFunctionTypeParams(s = []) {
      let r = null, i = null;
      for (this.match(78) && (i = this.flowParseFunctionTypeParam(!0), i.name = null, this.match(11) || this.expect(12)); !this.match(11) &&
      !this.match(21); )
        s.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (r = this.flowParseFunctionTypeParam(!1)), {
        params: s,
        rest: r,
        _this: i
      };
    }
    flowIdentToTypeAnnotation(s, r, i) {
      switch (i.name) {
        case "any":
          return this.finishNode(r, "AnyTypeAnnotation");
        case "bool":
        case "boolean":
          return this.finishNode(r, "BooleanTypeAnnotation");
        case "mixed":
          return this.finishNode(r, "MixedTypeAnnotation");
        case "empty":
          return this.finishNode(r, "EmptyTypeAnnotation");
        case "number":
          return this.finishNode(r, "NumberTypeAnnotation");
        case "string":
          return this.finishNode(r, "StringTypeAnnotation");
        case "symbol":
          return this.finishNode(r, "SymbolTypeAnnotation");
        default:
          return this.checkNotUnderscore(i.name), this.flowParseGenericType(s, i);
      }
    }
    flowParsePrimaryType() {
      let s = this.state.startLoc, r = this.startNode(), i, a, o = !1, l = 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, a = this.flowParseTupleType(), this.state.noAnonFunctionType = l, a;
        case 47: {
          let u = this.startNode();
          return u.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), i = this.flowParseFunctionTypeParams(), u.params =
          i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), this.finishNode(
          u, "FunctionTypeAnnotation");
        }
        case 10: {
          let u = this.startNode();
          if (this.next(), !this.match(11) && !this.match(21))
            if (Gs(this.state.type) || this.match(78)) {
              let c = this.lookahead().type;
              o = c !== 17 && c !== 14;
            } else
              o = !0;
          if (o) {
            if (this.state.noAnonFunctionType = !1, a = this.flowParseType(), this.state.noAnonFunctionType = l, this.state.noAnonFunctionType ||
            !(this.match(12) || this.match(11) && this.lookahead().type === 19))
              return this.expect(11), a;
            this.eat(12);
          }
          return a ? i = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]) : i = this.flowParseFunctionTypeParams(),
          u.params = i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), u.typeParameters =
          null, this.finishNode(u, "FunctionTypeAnnotation");
        }
        case 134:
          return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
        case 85:
        case 86:
          return r.value = this.match(85), this.next(), this.finishNode(r, "BooleanLiteralTypeAnnotation");
        case 53:
          if (this.state.value === "-") {
            if (this.next(), this.match(135))
              return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", r);
            if (this.match(136))
              return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", r);
            throw this.raise(Bt.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(r, "VoidTypeAnnotation");
        case 84:
          return this.next(), this.finishNode(r, "NullLiteralTypeAnnotation");
        case 78:
          return this.next(), this.finishNode(r, "ThisTypeAnnotation");
        case 55:
          return this.next(), this.finishNode(r, "ExistsTypeAnnotation");
        case 87:
          return this.flowParseTypeofType();
        default:
          if (i2(this.state.type)) {
            let u = Zc(this.state.type);
            return this.next(), super.createIdentifier(r, u);
          } else if (Gs(this.state.type))
            return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(s, r, this.parseIdentifier());
      }
      this.unexpected();
    }
    flowParsePostfixType() {
      let s = this.state.startLoc, r = this.flowParsePrimaryType(), i = !1;
      for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
        let a = this.startNodeAt(s), o = this.eat(18);
        i = i || o, this.expect(0), !o && this.match(3) ? (a.elementType = r, this.next(), r = this.finishNode(a, "ArrayTypeAnnotation")) : (a.
        objectType = r, a.indexType = this.flowParseType(), this.expect(3), i ? (a.optional = o, r = this.finishNode(a, "OptionalIndexedAcce\
ssType")) : r = this.finishNode(a, "IndexedAccessType"));
      }
      return r;
    }
    flowParsePrefixType() {
      let s = this.startNode();
      return this.eat(17) ? (s.typeAnnotation = this.flowParsePrefixType(), this.finishNode(s, "NullableTypeAnnotation")) : this.flowParsePostfixType();
    }
    flowParseAnonFunctionWithoutParens() {
      let s = this.flowParsePrefixType();
      if (!this.state.noAnonFunctionType && this.eat(19)) {
        let r = this.startNodeAt(s.loc.start);
        return r.params = [this.reinterpretTypeAsFunctionTypeParam(s)], r.rest = null, r.this = null, r.returnType = this.flowParseType(), r.
        typeParameters = null, this.finishNode(r, "FunctionTypeAnnotation");
      }
      return s;
    }
    flowParseIntersectionType() {
      let s = this.startNode();
      this.eat(45);
      let r = this.flowParseAnonFunctionWithoutParens();
      for (s.types = [r]; this.eat(45); )
        s.types.push(this.flowParseAnonFunctionWithoutParens());
      return s.types.length === 1 ? r : this.finishNode(s, "IntersectionTypeAnnotation");
    }
    flowParseUnionType() {
      let s = this.startNode();
      this.eat(43);
      let r = this.flowParseIntersectionType();
      for (s.types = [r]; this.eat(43); )
        s.types.push(this.flowParseIntersectionType());
      return s.types.length === 1 ? r : this.finishNode(s, "UnionTypeAnnotation");
    }
    flowParseType() {
      let s = this.state.inType;
      this.state.inType = !0;
      let r = this.flowParseUnionType();
      return this.state.inType = s, r;
    }
    flowParseTypeOrImplicitInstantiation() {
      if (this.state.type === 132 && this.state.value === "_") {
        let s = this.state.startLoc, r = this.parseIdentifier();
        return this.flowParseGenericType(s, r);
      } else
        return this.flowParseType();
    }
    flowParseTypeAnnotation() {
      let s = this.startNode();
      return s.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(s, "TypeAnnotation");
    }
    flowParseTypeAnnotatableIdentifier(s) {
      let r = s ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
      return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r)), r;
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    flowParseVariance() {
      let s = null;
      return this.match(53) ? (s = this.startNode(), this.state.value === "+" ? s.kind = "plus" : s.kind = "minus", this.next(), this.finishNode(
      s, "Variance")) : s;
    }
    parseFunctionBody(s, r, i = !1) {
      if (r) {
        this.forwardNoArrowParamsConversionAt(s, () => super.parseFunctionBody(s, !0, i));
        return;
      }
      super.parseFunctionBody(s, !1, i);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      if (this.match(14)) {
        let a = this.startNode();
        [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.returnType = a.typeAnnotation ? this.finishNode(a, "\
TypeAnnotation") : null;
      }
      return super.parseFunctionBodyAndFinish(s, r, i);
    }
    parseStatementLike(s) {
      if (this.state.strict && this.isContextual(129)) {
        let i = this.lookahead();
        if (Eo(i.type)) {
          let a = this.startNode();
          return this.next(), this.flowParseInterface(a);
        }
      } else if (this.isContextual(126)) {
        let i = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(i);
      }
      let r = super.parseStatementLike(s);
      return this.flowPragma === void 0 && !this.isValidDirective(r) && (this.flowPragma = null), r;
    }
    parseExpressionStatement(s, r, i) {
      if (r.type === "Identifier") {
        if (r.name === "declare") {
          if (this.match(80) || Gs(this.state.type) || this.match(68) || this.match(74) || this.match(82))
            return this.flowParseDeclare(s);
        } else if (Gs(this.state.type)) {
          if (r.name === "interface")
            return this.flowParseInterface(s);
          if (r.name === "type")
            return this.flowParseTypeAlias(s);
          if (r.name === "opaque")
            return this.flowParseOpaqueType(s, !1);
        }
      }
      return super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      let {
        type: s
      } = this.state;
      return s === 126 || ZY(s) ? !this.state.containsEsc : super.shouldParseExportDeclaration();
    }
    isExportDefaultSpecifier() {
      let {
        type: s
      } = this.state;
      return s === 126 || ZY(s) ? this.state.containsEsc : super.isExportDefaultSpecifier();
    }
    parseExportDefaultExpression() {
      if (this.isContextual(126)) {
        let s = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(s);
      }
      return super.parseExportDefaultExpression();
    }
    parseConditional(s, r, i) {
      if (!this.match(17)) return s;
      if (this.state.maybeInArrowParameters) {
        let f = this.lookaheadCharCode();
        if (f === 44 || f === 61 || f === 58 || f === 41)
          return this.setOptionalParametersError(i), s;
      }
      this.expect(17);
      let a = this.state.clone(), o = this.state.noArrowAt, l = this.startNodeAt(r), {
        consequent: u,
        failed: c
      } = this.tryParseConditionalConsequent(), [p, h] = this.getArrowLikeExpressions(u);
      if (c || h.length > 0) {
        let f = [...o];
        if (h.length > 0) {
          this.state = a, this.state.noArrowAt = f;
          for (let d = 0; d < h.length; d++)
            f.push(h[d].start);
          ({
            consequent: u,
            failed: c
          } = this.tryParseConditionalConsequent()), [p, h] = this.getArrowLikeExpressions(u);
        }
        c && p.length > 1 && this.raise(Bt.AmbiguousConditionalArrow, a.startLoc), c && p.length === 1 && (this.state = a, f.push(p[0].start),
        this.state.noArrowAt = f, {
          consequent: u,
          failed: c
        } = this.tryParseConditionalConsequent());
      }
      return this.getArrowLikeExpressions(u, !0), this.state.noArrowAt = o, this.expect(14), l.test = s, l.consequent = u, l.alternate = this.
      forwardNoArrowParamsConversionAt(l, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(l, "ConditionalExpression");
    }
    tryParseConditionalConsequent() {
      this.state.noArrowParamsConversionAt.push(this.state.start);
      let s = this.parseMaybeAssignAllowIn(), r = !this.match(14);
      return this.state.noArrowParamsConversionAt.pop(), {
        consequent: s,
        failed: r
      };
    }
    getArrowLikeExpressions(s, r) {
      let i = [s], a = [];
      for (; i.length !== 0; ) {
        let o = i.pop();
        o.type === "ArrowFunctionExpression" && o.body.type !== "BlockStatement" ? (o.typeParameters || !o.returnType ? this.finishArrowValidation(
        o) : a.push(o), i.push(o.body)) : o.type === "ConditionalExpression" && (i.push(o.consequent), i.push(o.alternate));
      }
      return r ? (a.forEach((o) => this.finishArrowValidation(o)), [a, []]) : rnt(a, (o) => o.params.every((l) => this.isAssignable(l, !0)));
    }
    finishArrowValidation(s) {
      var r;
      this.toAssignableList(s.params, (r = s.extra) == null ? void 0 : r.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(s, !1,
      !0), this.scope.exit();
    }
    forwardNoArrowParamsConversionAt(s, r) {
      let i;
      return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? (this.state.noArrowParamsConversionAt.push(this.
      state.start), i = r(), this.state.noArrowParamsConversionAt.pop()) : i = r(), i;
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = i, a.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(a, "TypeCastExpression");
      }
      return i;
    }
    assertModuleNodeAllowed(s) {
      s.type === "ImportDeclaration" && (s.importKind === "type" || s.importKind === "typeof") || s.type === "ExportNamedDeclaration" && s.exportKind ===
      "type" || s.type === "ExportAllDeclaration" && s.exportKind === "type" || super.assertModuleNodeAllowed(s);
    }
    parseExportDeclaration(s) {
      if (this.isContextual(130)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.match(5) ? (s.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(s), null) : this.flowParseTypeAlias(
        r);
      } else if (this.isContextual(131)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseOpaqueType(r, !1);
      } else if (this.isContextual(129)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseInterface(r);
      } else if (this.isContextual(126)) {
        s.exportKind = "value";
        let r = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(r);
      } else
        return super.parseExportDeclaration(s);
    }
    eatExportStar(s) {
      return super.eatExportStar(s) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (s.exportKind = "type", this.next(), this.
      next(), !0) : !1;
    }
    maybeParseExportNamespaceSpecifier(s) {
      let {
        startLoc: r
      } = this.state, i = super.maybeParseExportNamespaceSpecifier(s);
      return i && s.exportKind === "type" && this.unexpected(r), i;
    }
    parseClassId(s, r, i) {
      super.parseClassId(s, r, i), this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration());
    }
    parseClassMember(s, r, i) {
      let {
        startLoc: a
      } = this.state;
      if (this.isContextual(125)) {
        if (super.parseClassMemberFromModifier(s, r))
          return;
        r.declare = !0;
      }
      super.parseClassMember(s, r, i), r.declare && (r.type !== "ClassProperty" && r.type !== "ClassPrivateProperty" && r.type !== "Property\
Definition" ? this.raise(Bt.DeclareClassElement, a) : r.value && this.raise(Bt.DeclareClassFieldInitializer, r.value));
    }
    isIterator(s) {
      return s === "iterator" || s === "asyncIterator";
    }
    readIterator() {
      let s = super.readWord1(), r = "@@" + s;
      (!this.isIterator(s) || !this.state.inType) && this.raise(Z.InvalidIdentifier, this.state.curPosition(), {
        identifierName: r
      }), this.finishToken(132, r);
    }
    getTokenFromCode(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      s === 123 && r === 124 ? this.finishOp(6, 2) : this.state.inType && (s === 62 || s === 60) ? this.finishOp(s === 62 ? 48 : 47, 1) : this.
      state.inType && s === 63 ? r === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : Rit(s, r, this.input.charCodeAt(this.state.pos + 2)) ?
      (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(s);
    }
    isAssignable(s, r) {
      return s.type === "TypeCastExpression" ? this.isAssignable(s.expression, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      !r && s.type === "AssignmentExpression" && s.left.type === "TypeCastExpression" && (s.left = this.typeCastToParameter(s.left)), super.
      toAssignable(s, r);
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    toReferencedList(s, r) {
      for (let a = 0; a < s.length; a++) {
        var i;
        let o = s[a];
        o && o.type === "TypeCastExpression" && !((i = o.extra) != null && i.parenthesized) && (s.length > 1 || !r) && this.raise(Bt.TypeCastInPattern,
        o.typeAnnotation);
      }
      return s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return r && !this.state.maybeInArrowParameters && this.toReferencedList(o.elements), o;
    }
    isValidLVal(s, r, i) {
      return s === "TypeCastExpression" || super.isValidLVal(s, r, i);
    }
    parseClassProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(14) || super.isClassProperty();
    }
    isNonstaticConstructor(s) {
      return !this.match(14) && super.isNonstaticConstructor(s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      if (r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassMethod(s, r, i, a, o, l), r.params && o) {
        let u = r.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(Bt.ThisParamBannedInConstructor, r);
      } else if (r.type === "MethodDefinition" && o && r.value.params) {
        let u = r.value.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(Bt.ThisParamBannedInConstructor, r);
      }
    }
    pushClassPrivateMethod(s, r, i, a) {
      r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassPrivateMethod(s, r, i, a);
    }
    parseClassSuper(s) {
      if (super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression()),
      this.isContextual(113)) {
        this.next();
        let r = s.implements = [];
        do {
          let i = this.startNode();
          i.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? i.typeParameters = this.flowParseTypeParameterInstantiation() : i.
          typeParameters = null, r.push(this.finishNode(i, "ClassImplements"));
        } while (this.eat(12));
      }
    }
    checkGetterSetterParams(s) {
      super.checkGetterSetterParams(s);
      let r = this.getObjectOrClassMethodParams(s);
      if (r.length > 0) {
        let i = r[0];
        this.isThisParam(i) && s.kind === "get" ? this.raise(Bt.GetterMayNotHaveThisParam, i) : this.isThisParam(i) && this.raise(Bt.SetterMayNotHaveThisParam,
        i);
      }
    }
    parsePropertyNamePrefixOperator(s) {
      s.variance = this.flowParseVariance();
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      s.variance && this.unexpected(s.variance.loc.start), delete s.variance;
      let c;
      this.match(47) && !l && (c = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
      let p = super.parseObjPropValue(s, r, i, a, o, l, u);
      return c && ((p.value || p).typeParameters = c), p;
    }
    parseFunctionParamType(s) {
      return this.eat(17) && (s.type !== "Identifier" && this.raise(Bt.PatternIsOptional, s), this.isThisParam(s) && this.raise(Bt.ThisParamMayNotBeOptional,
      s), s.optional = !0), this.match(14) ? s.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(s) && this.raise(Bt.ThisParamAnnotationRequired,
      s), this.match(29) && this.isThisParam(s) && this.raise(Bt.ThisParamNoDefault, s), this.resetEndLocation(s), s;
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(Bt.TypeBeforeInitializer,
      i.typeAnnotation), i;
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(Bt.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    parseImportSpecifierLocal(s, r, i) {
      r.local = rX(s) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), s.specifiers.push(this.finishImportSpecifier(r,
      i));
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        if (!s) return !0;
        let r = this.lookaheadCharCode();
        return r === 123 || r === 42;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      if (super.applyImportPhase(s, r, i, a), r) {
        if (!i && this.match(65))
          return;
        s.exportKind = i === "type" ? i : "value";
      } else
        i === "type" && this.match(55) && this.unexpected(), s.importKind = i === "type" || i === "typeof" ? i : "value";
    }
    parseImportSpecifier(s, r, i, a, o) {
      let l = s.imported, u = null;
      l.type === "Identifier" && (l.name === "type" ? u = "type" : l.name === "typeof" && (u = "typeof"));
      let c = !1;
      if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
        let h = this.parseIdentifier(!0);
        u !== null && !Eo(this.state.type) ? (s.imported = h, s.importKind = u, s.local = du(h)) : (s.imported = l, s.importKind = null, s.local =
        this.parseIdentifier());
      } else {
        if (u !== null && Eo(this.state.type))
          s.imported = this.parseIdentifier(!0), s.importKind = u;
        else {
          if (r)
            throw this.raise(Z.ImportBindingIsString, s, {
              importName: l.value
            });
          s.imported = l, s.importKind = null;
        }
        this.eatContextual(93) ? s.local = this.parseIdentifier() : (c = !0, s.local = du(s.imported));
      }
      let p = rX(s);
      return i && p && this.raise(Bt.ImportTypeShorthandOnlyInPureImport, s), (i || p) && this.checkReservedType(s.local.name, s.local.loc.start,
      !0), c && !i && !p && this.checkReservedWord(s.local.name, s.loc.start, !0, !0), this.finishImportSpecifier(s, "ImportSpecifier");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 78:
          return this.parseIdentifier(!0);
        default:
          return super.parseBindingAtom();
      }
    }
    parseFunctionParams(s, r) {
      let i = s.kind;
      i !== "get" && i !== "set" && this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(
      s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), this.match(14) && (s.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      if (this.match(14)) {
        let i = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0, s.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = i;
      }
      return super.parseAsyncArrowFromCallExpression(s, r);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    parseMaybeAssign(s, r) {
      var i;
      let a = null, o;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (a = this.state.clone(), o = this.tryParse(() => super.parseMaybeAssign(s, r), a), !o.error) return o.node;
        let {
          context: c
        } = this.state, p = c[c.length - 1];
        (p === zs.j_oTag || p === zs.j_expr) && c.pop();
      }
      if ((i = o) != null && i.error || this.match(47)) {
        var l, u;
        a = a || this.state.clone();
        let c, p = this.tryParse((f) => {
          var d;
          c = this.flowParseTypeParameterDeclaration();
          let m = this.forwardNoArrowParamsConversionAt(c, () => {
            let T = super.parseMaybeAssign(s, r);
            return this.resetStartLocationFromNode(T, c), T;
          });
          (d = m.extra) != null && d.parenthesized && f();
          let y = this.maybeUnwrapTypeCastExpression(m);
          return y.type !== "ArrowFunctionExpression" && f(), y.typeParameters = c, this.resetStartLocationFromNode(y, c), m;
        }, a), h = null;
        if (p.node && this.maybeUnwrapTypeCastExpression(p.node).type === "ArrowFunctionExpression") {
          if (!p.error && !p.aborted)
            return p.node.async && this.raise(Bt.UnexpectedTypeParameterBeforeAsyncArrowFunction, c), p.node;
          h = p.node;
        }
        if ((l = o) != null && l.node)
          return this.state = o.failState, o.node;
        if (h)
          return this.state = p.failState, h;
        throw (u = o) != null && u.thrown ? o.error : p.thrown ? p.error : this.raise(Bt.UnexpectedTokenAfterTypeParameter, c);
      }
      return super.parseMaybeAssign(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse(() => {
          let i = this.state.noAnonFunctionType;
          this.state.noAnonFunctionType = !0;
          let a = this.startNode();
          return [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = i, this.canInsertSemicolon() &&
          this.unexpected(), this.match(19) || this.unexpected(), a;
        });
        if (r.thrown) return null;
        r.error && (this.state = r.failState), s.returnType = r.node.typeAnnotation ? this.finishNode(r.node, "TypeAnnotation") : null;
      }
      return super.parseArrow(s);
    }
    shouldParseArrow(s) {
      return this.match(14) || super.shouldParseArrow(s);
    }
    setArrowFunctionParameters(s, r) {
      this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? s.params = r : super.setArrowFunctionParameters(s, r);
    }
    checkParams(s, r, i, a = !0) {
      if (!(i && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)))) {
        for (let o = 0; o < s.params.length; o++)
          this.isThisParam(s.params[o]) && o > 0 && this.raise(Bt.ThisParamMustBeFirst, s.params[o]);
        super.checkParams(s, r, i, a);
      }
    }
    parseParenAndDistinguishExpression(s) {
      return super.parseParenAndDistinguishExpression(s && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)));
    }
    parseSubscripts(s, r, i) {
      if (s.type === "Identifier" && s.name === "async" && this.state.noArrowAt.includes(r.index)) {
        this.next();
        let a = this.startNodeAt(r);
        a.callee = s, a.arguments = super.parseCallExpressionArguments(11), s = this.finishNode(a, "CallExpression");
      } else if (s.type === "Identifier" && s.name === "async" && this.match(47)) {
        let a = this.state.clone(), o = this.tryParse((u) => this.parseAsyncArrowWithTypeParameters(r) || u(), a);
        if (!o.error && !o.aborted) return o.node;
        let l = this.tryParse(() => super.parseSubscripts(s, r, i), a);
        if (l.node && !l.error) return l.node;
        if (o.node)
          return this.state = o.failState, o.node;
        if (l.node)
          return this.state = l.failState, l.node;
        throw o.error || l.error;
      }
      return super.parseSubscripts(s, r, i);
    }
    parseSubscript(s, r, i, a) {
      if (this.match(18) && this.isLookaheadToken_lt()) {
        if (a.optionalChainMember = !0, i)
          return a.stop = !0, s;
        this.next();
        let o = this.startNodeAt(r);
        return o.callee = s, o.typeArguments = this.flowParseTypeParameterInstantiationInExpression(), this.expect(10), o.arguments = this.parseCallExpressionArguments(
        11), o.optional = !0, this.finishCallExpression(o, !0);
      } else if (!i && this.shouldParseTypes() && (this.match(47) || this.match(51))) {
        let o = this.startNodeAt(r);
        o.callee = s;
        let l = this.tryParse(() => (o.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), o.arguments = super.
        parseCallExpressionArguments(11), a.optionalChainMember && (o.optional = !1), this.finishCallExpression(o, a.optionalChainMember)));
        if (l.node)
          return l.error && (this.state = l.failState), l.node;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      super.parseNewCallee(s);
      let r = null;
      this.shouldParseTypes() && this.match(47) && (r = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), s.typeArguments =
      r;
    }
    parseAsyncArrowWithTypeParameters(s) {
      let r = this.startNodeAt(s);
      if (this.parseFunctionParams(r, !1), !!this.parseArrow(r))
        return super.parseArrowExpression(r, void 0, !0);
    }
    readToken_mult_modulo(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 42 && r === 47 && this.state.hasFlowComment) {
        this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
        return;
      }
      super.readToken_mult_modulo(s);
    }
    readToken_pipe_amp(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 124 && r === 125) {
        this.finishOp(9, 2);
        return;
      }
      super.readToken_pipe_amp(s);
    }
    parseTopLevel(s, r) {
      let i = super.parseTopLevel(s, r);
      return this.state.hasFlowComment && this.raise(Bt.UnterminatedFlowComment, this.state.curPosition()), i;
    }
    skipBlockComment() {
      if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
        if (this.state.hasFlowComment)
          throw this.raise(Bt.NestedFlowComment, this.state.startLoc);
        this.hasFlowCommentCompletion();
        let s = this.skipFlowComment();
        s && (this.state.pos += s, this.state.hasFlowComment = !0);
        return;
      }
      return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
    }
    skipFlowComment() {
      let {
        pos: s
      } = this.state, r = 2;
      for (; [32, 9].includes(this.input.charCodeAt(s + r)); )
        r++;
      let i = this.input.charCodeAt(r + s), a = this.input.charCodeAt(r + s + 1);
      return i === 58 && a === 58 ? r + 2 : this.input.slice(r + s, r + s + 12) === "flow-include" ? r + 12 : i === 58 && a !== 58 ? r : !1;
    }
    hasFlowCommentCompletion() {
      if (this.input.indexOf("*/", this.state.pos) === -1)
        throw this.raise(Z.UnterminatedComment, this.state.curPosition());
    }
    flowEnumErrorBooleanMemberNotInitialized(s, {
      enumName: r,
      memberName: i
    }) {
      this.raise(Bt.EnumBooleanMemberNotInitialized, s, {
        memberName: i,
        enumName: r
      });
    }
    flowEnumErrorInvalidMemberInitializer(s, r) {
      return this.raise(r.explicitType ? r.explicitType === "symbol" ? Bt.EnumInvalidMemberInitializerSymbolType : Bt.EnumInvalidMemberInitializerPrimaryType :
      Bt.EnumInvalidMemberInitializerUnknownType, s, r);
    }
    flowEnumErrorNumberMemberNotInitialized(s, r) {
      this.raise(Bt.EnumNumberMemberNotInitialized, s, r);
    }
    flowEnumErrorStringMemberInconsistentlyInitialized(s, r) {
      this.raise(Bt.EnumStringMemberInconsistentlyInitialized, s, r);
    }
    flowEnumMemberInit() {
      let s = this.state.startLoc, r = /* @__PURE__ */ n(() => this.match(12) || this.match(8), "endOfInit");
      switch (this.state.type) {
        case 135: {
          let i = this.parseNumericLiteral(this.state.value);
          return r() ? {
            type: "number",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 134: {
          let i = this.parseStringLiteral(this.state.value);
          return r() ? {
            type: "string",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 85:
        case 86: {
          let i = this.parseBooleanLiteral(this.match(85));
          return r() ? {
            type: "boolean",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        default:
          return {
            type: "invalid",
            loc: s
          };
      }
    }
    flowEnumMemberRaw() {
      let s = this.state.startLoc, r = this.parseIdentifier(!0), i = this.eat(29) ? this.flowEnumMemberInit() : {
        type: "none",
        loc: s
      };
      return {
        id: r,
        init: i
      };
    }
    flowEnumCheckExplicitTypeMismatch(s, r, i) {
      let {
        explicitType: a
      } = r;
      a !== null && a !== i && this.flowEnumErrorInvalidMemberInitializer(s, r);
    }
    flowEnumMembers({
      enumName: s,
      explicitType: r
    }) {
      let i = /* @__PURE__ */ new Set(), a = {
        booleanMembers: [],
        numberMembers: [],
        stringMembers: [],
        defaultedMembers: []
      }, o = !1;
      for (; !this.match(8); ) {
        if (this.eat(21)) {
          o = !0;
          break;
        }
        let l = this.startNode(), {
          id: u,
          init: c
        } = this.flowEnumMemberRaw(), p = u.name;
        if (p === "")
          continue;
        /^[a-z]/.test(p) && this.raise(Bt.EnumInvalidMemberName, u, {
          memberName: p,
          suggestion: p[0].toUpperCase() + p.slice(1),
          enumName: s
        }), i.has(p) && this.raise(Bt.EnumDuplicateMemberName, u, {
          memberName: p,
          enumName: s
        }), i.add(p);
        let h = {
          enumName: s,
          explicitType: r,
          memberName: p
        };
        switch (l.id = u, c.type) {
          case "boolean": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "boolean"), l.init = c.value, a.booleanMembers.push(this.finishNode(l, "EnumBoo\
leanMember"));
            break;
          }
          case "number": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "number"), l.init = c.value, a.numberMembers.push(this.finishNode(l, "EnumNumbe\
rMember"));
            break;
          }
          case "string": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "string"), l.init = c.value, a.stringMembers.push(this.finishNode(l, "EnumStrin\
gMember"));
            break;
          }
          case "invalid":
            throw this.flowEnumErrorInvalidMemberInitializer(c.loc, h);
          case "none":
            switch (r) {
              case "boolean":
                this.flowEnumErrorBooleanMemberNotInitialized(c.loc, h);
                break;
              case "number":
                this.flowEnumErrorNumberMemberNotInitialized(c.loc, h);
                break;
              default:
                a.defaultedMembers.push(this.finishNode(l, "EnumDefaultedMember"));
            }
        }
        this.match(8) || this.expect(12);
      }
      return {
        members: a,
        hasUnknownMembers: o
      };
    }
    flowEnumStringMembers(s, r, {
      enumName: i
    }) {
      if (s.length === 0)
        return r;
      if (r.length === 0)
        return s;
      if (r.length > s.length) {
        for (let a of s)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return r;
      } else {
        for (let a of r)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return s;
      }
    }
    flowEnumParseExplicitType({
      enumName: s
    }) {
      if (!this.eatContextual(102)) return null;
      if (!Gs(this.state.type))
        throw this.raise(Bt.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
          enumName: s
        });
      let {
        value: r
      } = this.state;
      return this.next(), r !== "boolean" && r !== "number" && r !== "string" && r !== "symbol" && this.raise(Bt.EnumInvalidExplicitType, this.
      state.startLoc, {
        enumName: s,
        invalidEnumType: r
      }), r;
    }
    flowEnumBody(s, r) {
      let i = r.name, a = r.loc.start, o = this.flowEnumParseExplicitType({
        enumName: i
      });
      this.expect(5);
      let {
        members: l,
        hasUnknownMembers: u
      } = this.flowEnumMembers({
        enumName: i,
        explicitType: o
      });
      switch (s.hasUnknownMembers = u, o) {
        case "boolean":
          return s.explicitType = !0, s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
        case "number":
          return s.explicitType = !0, s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
        case "string":
          return s.explicitType = !0, s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
            enumName: i
          }), this.expect(8), this.finishNode(s, "EnumStringBody");
        case "symbol":
          return s.members = l.defaultedMembers, this.expect(8), this.finishNode(s, "EnumSymbolBody");
        default: {
          let c = /* @__PURE__ */ n(() => (s.members = [], this.expect(8), this.finishNode(s, "EnumStringBody")), "empty");
          s.explicitType = !1;
          let p = l.booleanMembers.length, h = l.numberMembers.length, f = l.stringMembers.length, d = l.defaultedMembers.length;
          if (!p && !h && !f && !d)
            return c();
          if (!p && !h)
            return s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
              enumName: i
            }), this.expect(8), this.finishNode(s, "EnumStringBody");
          if (!h && !f && p >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorBooleanMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
          } else if (!p && !f && h >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorNumberMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
          } else
            return this.raise(Bt.EnumInconsistentMemberValues, a, {
              enumName: i
            }), c();
        }
      }
    }
    flowParseEnumDeclaration(s) {
      let r = this.parseIdentifier();
      return s.id = r, s.body = this.flowEnumBody(this.startNode(), r), this.finishNode(s, "EnumDeclaration");
    }
    jsxParseOpeningElementAfterName(s) {
      return this.shouldParseTypes() && (this.match(47) || this.match(51)) && (s.typeArguments = this.flowParseTypeParameterInstantiationInExpression()),
      super.jsxParseOpeningElementAfterName(s);
    }
    isLookaheadToken_lt() {
      let s = this.nextTokenStart();
      if (this.input.charCodeAt(s) === 60) {
        let r = this.input.charCodeAt(s + 1);
        return r !== 60 && r !== 61;
      }
      return !1;
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    maybeUnwrapTypeCastExpression(s) {
      return s.type === "TypeCastExpression" ? s.expression : s;
    }
  }, "flow"), ant = {
    __proto__: null,
    quot: '"',
    amp: "&",
    apos: "'",
    lt: "<",
    gt: ">",
    nbsp: "\xA0",
    iexcl: "\xA1",
    cent: "\xA2",
    pound: "\xA3",
    curren: "\xA4",
    yen: "\xA5",
    brvbar: "\xA6",
    sect: "\xA7",
    uml: "\xA8",
    copy: "\xA9",
    ordf: "\xAA",
    laquo: "\xAB",
    not: "\xAC",
    shy: "\xAD",
    reg: "\xAE",
    macr: "\xAF",
    deg: "\xB0",
    plusmn: "\xB1",
    sup2: "\xB2",
    sup3: "\xB3",
    acute: "\xB4",
    micro: "\xB5",
    para: "\xB6",
    middot: "\xB7",
    cedil: "\xB8",
    sup1: "\xB9",
    ordm: "\xBA",
    raquo: "\xBB",
    frac14: "\xBC",
    frac12: "\xBD",
    frac34: "\xBE",
    iquest: "\xBF",
    Agrave: "\xC0",
    Aacute: "\xC1",
    Acirc: "\xC2",
    Atilde: "\xC3",
    Auml: "\xC4",
    Aring: "\xC5",
    AElig: "\xC6",
    Ccedil: "\xC7",
    Egrave: "\xC8",
    Eacute: "\xC9",
    Ecirc: "\xCA",
    Euml: "\xCB",
    Igrave: "\xCC",
    Iacute: "\xCD",
    Icirc: "\xCE",
    Iuml: "\xCF",
    ETH: "\xD0",
    Ntilde: "\xD1",
    Ograve: "\xD2",
    Oacute: "\xD3",
    Ocirc: "\xD4",
    Otilde: "\xD5",
    Ouml: "\xD6",
    times: "\xD7",
    Oslash: "\xD8",
    Ugrave: "\xD9",
    Uacute: "\xDA",
    Ucirc: "\xDB",
    Uuml: "\xDC",
    Yacute: "\xDD",
    THORN: "\xDE",
    szlig: "\xDF",
    agrave: "\xE0",
    aacute: "\xE1",
    acirc: "\xE2",
    atilde: "\xE3",
    auml: "\xE4",
    aring: "\xE5",
    aelig: "\xE6",
    ccedil: "\xE7",
    egrave: "\xE8",
    eacute: "\xE9",
    ecirc: "\xEA",
    euml: "\xEB",
    igrave: "\xEC",
    iacute: "\xED",
    icirc: "\xEE",
    iuml: "\xEF",
    eth: "\xF0",
    ntilde: "\xF1",
    ograve: "\xF2",
    oacute: "\xF3",
    ocirc: "\xF4",
    otilde: "\xF5",
    ouml: "\xF6",
    divide: "\xF7",
    oslash: "\xF8",
    ugrave: "\xF9",
    uacute: "\xFA",
    ucirc: "\xFB",
    uuml: "\xFC",
    yacute: "\xFD",
    thorn: "\xFE",
    yuml: "\xFF",
    OElig: "\u0152",
    oelig: "\u0153",
    Scaron: "\u0160",
    scaron: "\u0161",
    Yuml: "\u0178",
    fnof: "\u0192",
    circ: "\u02C6",
    tilde: "\u02DC",
    Alpha: "\u0391",
    Beta: "\u0392",
    Gamma: "\u0393",
    Delta: "\u0394",
    Epsilon: "\u0395",
    Zeta: "\u0396",
    Eta: "\u0397",
    Theta: "\u0398",
    Iota: "\u0399",
    Kappa: "\u039A",
    Lambda: "\u039B",
    Mu: "\u039C",
    Nu: "\u039D",
    Xi: "\u039E",
    Omicron: "\u039F",
    Pi: "\u03A0",
    Rho: "\u03A1",
    Sigma: "\u03A3",
    Tau: "\u03A4",
    Upsilon: "\u03A5",
    Phi: "\u03A6",
    Chi: "\u03A7",
    Psi: "\u03A8",
    Omega: "\u03A9",
    alpha: "\u03B1",
    beta: "\u03B2",
    gamma: "\u03B3",
    delta: "\u03B4",
    epsilon: "\u03B5",
    zeta: "\u03B6",
    eta: "\u03B7",
    theta: "\u03B8",
    iota: "\u03B9",
    kappa: "\u03BA",
    lambda: "\u03BB",
    mu: "\u03BC",
    nu: "\u03BD",
    xi: "\u03BE",
    omicron: "\u03BF",
    pi: "\u03C0",
    rho: "\u03C1",
    sigmaf: "\u03C2",
    sigma: "\u03C3",
    tau: "\u03C4",
    upsilon: "\u03C5",
    phi: "\u03C6",
    chi: "\u03C7",
    psi: "\u03C8",
    omega: "\u03C9",
    thetasym: "\u03D1",
    upsih: "\u03D2",
    piv: "\u03D6",
    ensp: "\u2002",
    emsp: "\u2003",
    thinsp: "\u2009",
    zwnj: "\u200C",
    zwj: "\u200D",
    lrm: "\u200E",
    rlm: "\u200F",
    ndash: "\u2013",
    mdash: "\u2014",
    lsquo: "\u2018",
    rsquo: "\u2019",
    sbquo: "\u201A",
    ldquo: "\u201C",
    rdquo: "\u201D",
    bdquo: "\u201E",
    dagger: "\u2020",
    Dagger: "\u2021",
    bull: "\u2022",
    hellip: "\u2026",
    permil: "\u2030",
    prime: "\u2032",
    Prime: "\u2033",
    lsaquo: "\u2039",
    rsaquo: "\u203A",
    oline: "\u203E",
    frasl: "\u2044",
    euro: "\u20AC",
    image: "\u2111",
    weierp: "\u2118",
    real: "\u211C",
    trade: "\u2122",
    alefsym: "\u2135",
    larr: "\u2190",
    uarr: "\u2191",
    rarr: "\u2192",
    darr: "\u2193",
    harr: "\u2194",
    crarr: "\u21B5",
    lArr: "\u21D0",
    uArr: "\u21D1",
    rArr: "\u21D2",
    dArr: "\u21D3",
    hArr: "\u21D4",
    forall: "\u2200",
    part: "\u2202",
    exist: "\u2203",
    empty: "\u2205",
    nabla: "\u2207",
    isin: "\u2208",
    notin: "\u2209",
    ni: "\u220B",
    prod: "\u220F",
    sum: "\u2211",
    minus: "\u2212",
    lowast: "\u2217",
    radic: "\u221A",
    prop: "\u221D",
    infin: "\u221E",
    ang: "\u2220",
    and: "\u2227",
    or: "\u2228",
    cap: "\u2229",
    cup: "\u222A",
    int: "\u222B",
    there4: "\u2234",
    sim: "\u223C",
    cong: "\u2245",
    asymp: "\u2248",
    ne: "\u2260",
    equiv: "\u2261",
    le: "\u2264",
    ge: "\u2265",
    sub: "\u2282",
    sup: "\u2283",
    nsub: "\u2284",
    sube: "\u2286",
    supe: "\u2287",
    oplus: "\u2295",
    otimes: "\u2297",
    perp: "\u22A5",
    sdot: "\u22C5",
    lceil: "\u2308",
    rceil: "\u2309",
    lfloor: "\u230A",
    rfloor: "\u230B",
    lang: "\u2329",
    rang: "\u232A",
    loz: "\u25CA",
    spades: "\u2660",
    clubs: "\u2663",
    hearts: "\u2665",
    diams: "\u2666"
  }, Oh = fu`jsx`({
    AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
    MissingClosingTagElement: /* @__PURE__ */ n(({
      openingTagName: t
    }) => `Expected corresponding JSX closing tag for <${t}>.`, "MissingClosingTagElement"),
    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: /* @__PURE__ */ n(({
      unexpected: t,
      HTMLEntity: e
    }) => `Unexpected token \`${t}\`. Did you mean \`${e}\` or \`{'${t}'}\`?`, "UnexpectedToken"),
    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 Qc(t) {
    return t ? t.type === "JSXOpeningFragment" || t.type === "JSXClosingFragment" : !1;
  }
  n(Qc, "isFragment");
  function jd(t) {
    if (t.type === "JSXIdentifier")
      return t.name;
    if (t.type === "JSXNamespacedName")
      return t.namespace.name + ":" + t.name.name;
    if (t.type === "JSXMemberExpression")
      return jd(t.object) + "." + jd(t.property);
    throw new Error("Node had unexpected type: " + t.type);
  }
  n(jd, "getQualifiedJSXName");
  var ont = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "JSXParserMixin");
    }
    jsxReadToken() {
      let s = "", r = this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(Oh.UnterminatedJsxContent, this.state.startLoc);
        let i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 60:
          case 123:
            if (this.state.pos === this.state.start) {
              i === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(143)) : super.getTokenFromCode(i);
              return;
            }
            s += this.input.slice(r, this.state.pos), this.finishToken(142, s);
            return;
          case 38:
            s += this.input.slice(r, this.state.pos), s += this.jsxReadEntity(), r = this.state.pos;
            break;
          case 62:
          case 125:
          default:
            qd(i) ? (s += this.input.slice(r, this.state.pos), s += this.jsxReadNewLine(!0), r = this.state.pos) : ++this.state.pos;
        }
      }
    }
    jsxReadNewLine(s) {
      let r = this.input.charCodeAt(this.state.pos), i;
      return ++this.state.pos, r === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, i = s ? `
` : `\r
`) : i = String.fromCharCode(r), ++this.state.curLine, this.state.lineStart = this.state.pos, i;
    }
    jsxReadString(s) {
      let r = "", i = ++this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(Z.UnterminatedString, this.state.startLoc);
        let a = this.input.charCodeAt(this.state.pos);
        if (a === s) break;
        a === 38 ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos) : qd(a) ? (r += this.input.slice(
        i, this.state.pos), r += this.jsxReadNewLine(!1), i = this.state.pos) : ++this.state.pos;
      }
      r += this.input.slice(i, this.state.pos++), this.finishToken(134, r);
    }
    jsxReadEntity() {
      let s = ++this.state.pos;
      if (this.codePointAtPos(this.state.pos) === 35) {
        ++this.state.pos;
        let r = 10;
        this.codePointAtPos(this.state.pos) === 120 && (r = 16, ++this.state.pos);
        let i = this.readInt(r, void 0, !1, "bail");
        if (i !== null && this.codePointAtPos(this.state.pos) === 59)
          return ++this.state.pos, String.fromCodePoint(i);
      } else {
        let r = 0, i = !1;
        for (; r++ < 10 && this.state.pos < this.length && !(i = this.codePointAtPos(this.state.pos) === 59); )
          ++this.state.pos;
        if (i) {
          let a = this.input.slice(s, this.state.pos), o = ant[a];
          if (++this.state.pos, o)
            return o;
        }
      }
      return this.state.pos = s, "&";
    }
    jsxReadWord() {
      let s, r = this.state.pos;
      do
        s = this.input.charCodeAt(++this.state.pos);
      while (Rd(s) || s === 45);
      this.finishToken(141, this.input.slice(r, this.state.pos));
    }
    jsxParseIdentifier() {
      let s = this.startNode();
      return this.match(141) ? s.name = this.state.value : i2(this.state.type) ? s.name = Zc(this.state.type) : this.unexpected(), this.next(),
      this.finishNode(s, "JSXIdentifier");
    }
    jsxParseNamespacedName() {
      let s = this.state.startLoc, r = this.jsxParseIdentifier();
      if (!this.eat(14)) return r;
      let i = this.startNodeAt(s);
      return i.namespace = r, i.name = this.jsxParseIdentifier(), this.finishNode(i, "JSXNamespacedName");
    }
    jsxParseElementName() {
      let s = this.state.startLoc, r = this.jsxParseNamespacedName();
      if (r.type === "JSXNamespacedName")
        return r;
      for (; this.eat(16); ) {
        let i = this.startNodeAt(s);
        i.object = r, i.property = this.jsxParseIdentifier(), r = this.finishNode(i, "JSXMemberExpression");
      }
      return r;
    }
    jsxParseAttributeValue() {
      let s;
      switch (this.state.type) {
        case 5:
          return s = this.startNode(), this.setContext(zs.brace), this.next(), s = this.jsxParseExpressionContainer(s, zs.j_oTag), s.expression.
          type === "JSXEmptyExpression" && this.raise(Oh.AttributeIsEmpty, s), s;
        case 143:
        case 134:
          return this.parseExprAtom();
        default:
          throw this.raise(Oh.UnsupportedJsxValue, this.state.startLoc);
      }
    }
    jsxParseEmptyExpression() {
      let s = this.startNodeAt(this.state.lastTokEndLoc);
      return this.finishNodeAt(s, "JSXEmptyExpression", this.state.startLoc);
    }
    jsxParseSpreadChild(s) {
      return this.next(), s.expression = this.parseExpression(), this.setContext(zs.j_expr), this.state.canStartJSXElement = !0, this.expect(
      8), this.finishNode(s, "JSXSpreadChild");
    }
    jsxParseExpressionContainer(s, r) {
      if (this.match(8))
        s.expression = this.jsxParseEmptyExpression();
      else {
        let i = this.parseExpression();
        s.expression = i;
      }
      return this.setContext(r), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXExpressionContainer");
    }
    jsxParseAttribute() {
      let s = this.startNode();
      return this.match(5) ? (this.setContext(zs.brace), this.next(), this.expect(21), s.argument = this.parseMaybeAssignAllowIn(), this.setContext(
      zs.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXSpreadAttribute")) : (s.name = this.jsxParseNamespacedName(),
      s.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(s, "JSXAttribute"));
    }
    jsxParseOpeningElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXOpeningFragment") : (r.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(
      r));
    }
    jsxParseOpeningElementAfterName(s) {
      let r = [];
      for (; !this.match(56) && !this.match(144); )
        r.push(this.jsxParseAttribute());
      return s.attributes = r, s.selfClosing = this.eat(56), this.expect(144), this.finishNode(s, "JSXOpeningElement");
    }
    jsxParseClosingElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXClosingFragment") : (r.name = this.jsxParseElementName(), this.expect(144), this.finishNode(
      r, "JSXClosingElement"));
    }
    jsxParseElementAt(s) {
      let r = this.startNodeAt(s), i = [], a = this.jsxParseOpeningElementAt(s), o = null;
      if (!a.selfClosing) {
        e: for (; ; )
          switch (this.state.type) {
            case 143:
              if (s = this.state.startLoc, this.next(), this.eat(56)) {
                o = this.jsxParseClosingElementAt(s);
                break e;
              }
              i.push(this.jsxParseElementAt(s));
              break;
            case 142:
              i.push(this.parseLiteral(this.state.value, "JSXText"));
              break;
            case 5: {
              let l = this.startNode();
              this.setContext(zs.brace), this.next(), this.match(21) ? i.push(this.jsxParseSpreadChild(l)) : i.push(this.jsxParseExpressionContainer(
              l, zs.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
        Qc(a) && !Qc(o) && o !== null ? this.raise(Oh.MissingClosingTagFragment, o) : !Qc(a) && Qc(o) ? this.raise(Oh.MissingClosingTagElement,
        o, {
          openingTagName: jd(a.name)
        }) : !Qc(a) && !Qc(o) && jd(o.name) !== jd(a.name) && this.raise(Oh.MissingClosingTagElement, o, {
          openingTagName: jd(a.name)
        });
      }
      if (Qc(a) ? (r.openingFragment = a, r.closingFragment = o) : (r.openingElement = a, r.closingElement = o), r.children = i, this.match(
      47))
        throw this.raise(Oh.UnwrappedAdjacentJSXElements, this.state.startLoc);
      return Qc(a) ? this.finishNode(r, "JSXFragment") : this.finishNode(r, "JSXElement");
    }
    jsxParseElement() {
      let s = this.state.startLoc;
      return this.next(), this.jsxParseElementAt(s);
    }
    setContext(s) {
      let {
        context: r
      } = this.state;
      r[r.length - 1] = s;
    }
    parseExprAtom(s) {
      return this.match(143) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(
      143), this.jsxParseElement()) : super.parseExprAtom(s);
    }
    skipSpace() {
      this.curContext().preserveSpace || super.skipSpace();
    }
    getTokenFromCode(s) {
      let r = this.curContext();
      if (r === zs.j_expr) {
        this.jsxReadToken();
        return;
      }
      if (r === zs.j_oTag || r === zs.j_cTag) {
        if (hu(s)) {
          this.jsxReadWord();
          return;
        }
        if (s === 62) {
          ++this.state.pos, this.finishToken(144);
          return;
        }
        if ((s === 34 || s === 39) && r === zs.j_oTag) {
          this.jsxReadString(s);
          return;
        }
      }
      if (s === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
        ++this.state.pos, this.finishToken(143);
        return;
      }
      super.getTokenFromCode(s);
    }
    updateContext(s) {
      let {
        context: r,
        type: i
      } = this.state;
      if (i === 56 && s === 143)
        r.splice(-2, 2, zs.j_cTag), this.state.canStartJSXElement = !1;
      else if (i === 143)
        r.push(zs.j_oTag);
      else if (i === 144) {
        let a = r[r.length - 1];
        a === zs.j_oTag && s === 56 || a === zs.j_cTag ? (r.pop(), this.state.canStartJSXElement = r[r.length - 1] === zs.j_expr) : (this.setContext(
        zs.j_expr), this.state.canStartJSXElement = !0);
      } else
        this.state.canStartJSXElement = Eit(i);
    }
  }, "jsx"), JO = class extends Kg {
    static {
      n(this, "TypeScriptScope");
    }
    constructor(...e) {
      super(...e), this.tsNames = /* @__PURE__ */ new Map();
    }
  }, YO = class extends Vg {
    static {
      n(this, "TypeScriptScopeHandler");
    }
    constructor(...e) {
      super(...e), this.importsStack = [];
    }
    createScope(e) {
      return this.importsStack.push(/* @__PURE__ */ new Set()), new JO(e);
    }
    enter(e) {
      e === 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(e);
    }
    exit() {
      let e = super.exit();
      return e === 256 && this.importsStack.pop(), e;
    }
    hasImport(e, s) {
      let r = this.importsStack.length;
      if (this.importsStack[r - 1].has(e))
        return !0;
      if (!s && r > 1) {
        for (let i = 0; i < r - 1; i++)
          if (this.importsStack[i].has(e)) return !0;
      }
      return !1;
    }
    declareName(e, s, r) {
      if (s & 4096) {
        this.hasImport(e, !0) && this.parser.raise(Z.VarRedeclaration, r, {
          identifierName: e
        }), this.importsStack[this.importsStack.length - 1].add(e);
        return;
      }
      let i = this.currentScope(), a = i.tsNames.get(e) || 0;
      if (s & 1024) {
        this.maybeExportDefined(i, e), i.tsNames.set(e, a | 16);
        return;
      }
      super.declareName(e, s, r), s & 2 && (s & 1 || (this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e)), a = a | 1),
      s & 256 && (a = a | 2), s & 512 && (a = a | 4), s & 128 && (a = a | 8), a && i.tsNames.set(e, a);
    }
    isRedeclaredInScope(e, s, r) {
      let i = e.tsNames.get(s);
      if ((i & 2) > 0) {
        if (r & 256) {
          let a = !!(r & 512), o = (i & 4) > 0;
          return a !== o;
        }
        return !0;
      }
      return r & 128 && (i & 8) > 0 ? e.names.get(s) & 2 ? !!(r & 1) : !1 : r & 2 && (i & 1) > 0 ? !0 : super.isRedeclaredInScope(e, s, r);
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      if (this.hasImport(s)) return;
      let r = this.scopeStack.length;
      for (let i = r - 1; i >= 0; i--) {
        let o = this.scopeStack[i].tsNames.get(s);
        if ((o & 1) > 0 || (o & 16) > 0)
          return;
      }
      super.checkLocalExport(e);
    }
  }, SX = /* @__PURE__ */ n((t) => t.type === "ParenthesizedExpression" ? SX(t.expression) : t, "unwrapParenthesizedExpression"), XO = class extends HO {
    static {
      n(this, "LValParser");
    }
    toAssignable(e, s = !1) {
      var r, i;
      let a;
      switch ((e.type === "ParenthesizedExpression" || (r = e.extra) != null && r.parenthesized) && (a = SX(e), s ? a.type === "Identifier" ?
      this.expressionScope.recordArrowParameterBindingError(Z.InvalidParenthesizedAssignment, e) : a.type !== "MemberExpression" && !this.isOptionalMemberExpression(
      a) && this.raise(Z.InvalidParenthesizedAssignment, e) : this.raise(Z.InvalidParenthesizedAssignment, e)), e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          break;
        case "ObjectExpression":
          e.type = "ObjectPattern";
          for (let l = 0, u = e.properties.length, c = u - 1; l < u; l++) {
            var o;
            let p = e.properties[l], h = l === c;
            this.toAssignableObjectExpressionProp(p, h, s), h && p.type === "RestElement" && (o = e.extra) != null && o.trailingCommaLoc && this.
            raise(Z.RestTrailingComma, e.extra.trailingCommaLoc);
          }
          break;
        case "ObjectProperty": {
          let {
            key: l,
            value: u
          } = e;
          this.isPrivateName(l) && this.classScope.usePrivateName(this.getPrivateNameSV(l), l.loc.start), this.toAssignable(u, s);
          break;
        }
        case "SpreadElement":
          throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignabl\
e's caller.");
        case "ArrayExpression":
          e.type = "ArrayPattern", this.toAssignableList(e.elements, (i = e.extra) == null ? void 0 : i.trailingCommaLoc, s);
          break;
        case "AssignmentExpression":
          e.operator !== "=" && this.raise(Z.MissingEqInAssignment, e.left.loc.end), e.type = "AssignmentPattern", delete e.operator, this.toAssignable(
          e.left, s);
          break;
        case "ParenthesizedExpression":
          this.toAssignable(a, s);
          break;
      }
    }
    toAssignableObjectExpressionProp(e, s, r) {
      if (e.type === "ObjectMethod")
        this.raise(e.kind === "get" || e.kind === "set" ? Z.PatternHasAccessor : Z.PatternHasMethod, e.key);
      else if (e.type === "SpreadElement") {
        e.type = "RestElement";
        let i = e.argument;
        this.checkToRestConversion(i, !1), this.toAssignable(i, r), s || this.raise(Z.RestTrailingComma, e);
      } else
        this.toAssignable(e, r);
    }
    toAssignableList(e, s, r) {
      let i = e.length - 1;
      for (let a = 0; a <= i; a++) {
        let o = e[a];
        if (o) {
          if (o.type === "SpreadElement") {
            o.type = "RestElement";
            let l = o.argument;
            this.checkToRestConversion(l, !0), this.toAssignable(l, r);
          } else
            this.toAssignable(o, r);
          o.type === "RestElement" && (a < i ? this.raise(Z.RestTrailingComma, o) : s && this.raise(Z.RestTrailingComma, s));
        }
      }
    }
    isAssignable(e, s) {
      switch (e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          return !0;
        case "ObjectExpression": {
          let r = e.properties.length - 1;
          return e.properties.every((i, a) => i.type !== "ObjectMethod" && (a === r || i.type !== "SpreadElement") && this.isAssignable(i));
        }
        case "ObjectProperty":
          return this.isAssignable(e.value);
        case "SpreadElement":
          return this.isAssignable(e.argument);
        case "ArrayExpression":
          return e.elements.every((r) => r === null || this.isAssignable(r));
        case "AssignmentExpression":
          return e.operator === "=";
        case "ParenthesizedExpression":
          return this.isAssignable(e.expression);
        case "MemberExpression":
        case "OptionalMemberExpression":
          return !s;
        default:
          return !1;
      }
    }
    toReferencedList(e, s) {
      return e;
    }
    toReferencedListDeep(e, s) {
      this.toReferencedList(e, s);
      for (let r of e)
        r?.type === "ArrayExpression" && this.toReferencedListDeep(r.elements);
    }
    parseSpread(e) {
      let s = this.startNode();
      return this.next(), s.argument = this.parseMaybeAssignAllowIn(e, void 0), this.finishNode(s, "SpreadElement");
    }
    parseRestBinding() {
      let e = this.startNode();
      return this.next(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 0: {
          let e = this.startNode();
          return this.next(), e.elements = this.parseBindingList(3, 93, 1), this.finishNode(e, "ArrayPattern");
        }
        case 5:
          return this.parseObjectLike(8, !0);
      }
      return this.parseIdentifier();
    }
    parseBindingList(e, s, r) {
      let i = r & 1, a = [], o = !0;
      for (; !this.eat(e); )
        if (o ? o = !1 : this.expect(12), i && this.match(12))
          a.push(null);
        else {
          if (this.eat(e))
            break;
          if (this.match(21)) {
            let l = this.parseRestBinding();
            if ((this.hasPlugin("flow") || r & 2) && (l = this.parseFunctionParamType(l)), a.push(l), !this.checkCommaAfterRest(s)) {
              this.expect(e);
              break;
            }
          } else {
            let l = [];
            for (this.match(26) && this.hasPlugin("decorators") && this.raise(Z.UnsupportedParameterDecorator, this.state.startLoc); this.match(
            26); )
              l.push(this.parseDecorator());
            a.push(this.parseAssignableListItem(r, l));
          }
        }
      return a;
    }
    parseBindingRestProperty(e) {
      return this.next(), e.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(e, "RestElement");
    }
    parseBindingProperty() {
      let {
        type: e,
        startLoc: s
      } = this.state;
      if (e === 21)
        return this.parseBindingRestProperty(this.startNode());
      let r = this.startNode();
      return e === 139 ? (this.expectPlugin("destructuringPrivate", s), this.classScope.usePrivateName(this.state.value, s), r.key = this.parsePrivateName()) :
      this.parsePropertyName(r), r.method = !1, this.parseObjPropValue(r, s, !1, !1, !0, !1);
    }
    parseAssignableListItem(e, s) {
      let r = this.parseMaybeDefault();
      (this.hasPlugin("flow") || e & 2) && this.parseFunctionParamType(r);
      let i = this.parseMaybeDefault(r.loc.start, r);
      return s.length && (r.decorators = s), i;
    }
    parseFunctionParamType(e) {
      return e;
    }
    parseMaybeDefault(e, s) {
      var r, i;
      if ((r = e) != null || (e = this.state.startLoc), s = (i = s) != null ? i : this.parseBindingAtom(), !this.eat(29)) return s;
      let a = this.startNodeAt(e);
      return a.left = s, a.right = this.parseMaybeAssignAllowIn(), this.finishNode(a, "AssignmentPattern");
    }
    isValidLVal(e, s, r) {
      switch (e) {
        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(e) {
      return e.type === "OptionalMemberExpression";
    }
    checkLVal(e, s, r = 64, i = !1, a = !1, o = !1) {
      var l;
      let u = e.type;
      if (this.isObjectMethod(e)) return;
      let c = this.isOptionalMemberExpression(e);
      if (c || u === "MemberExpression") {
        c && (this.expectPlugin("optionalChainingAssign", e.loc.start), s.type !== "AssignmentExpression" && this.raise(Z.InvalidLhsOptionalChaining,
        e, {
          ancestor: s
        })), r !== 64 && this.raise(Z.InvalidPropertyBindingPattern, e);
        return;
      }
      if (u === "Identifier") {
        this.checkIdentifier(e, r, a);
        let {
          name: y
        } = e;
        i && (i.has(y) ? this.raise(Z.ParamDupe, e) : i.add(y));
        return;
      }
      let p = this.isValidLVal(u, !(o || (l = e.extra) != null && l.parenthesized) && s.type === "AssignmentExpression", r);
      if (p === !0) return;
      if (p === !1) {
        let y = r === 64 ? Z.InvalidLhs : Z.InvalidLhsBinding;
        this.raise(y, e, {
          ancestor: s
        });
        return;
      }
      let h, f;
      typeof p == "string" ? (h = p, f = u === "ParenthesizedExpression") : [h, f] = p;
      let d = u === "ArrayPattern" || u === "ObjectPattern" ? {
        type: u
      } : s, m = e[h];
      if (Array.isArray(m))
        for (let y of m)
          y && this.checkLVal(y, d, r, i, a, f);
      else m && this.checkLVal(m, d, r, i, a, f);
    }
    checkIdentifier(e, s, r = !1) {
      this.state.strict && (r ? yX(e.name, this.inModule) : mX(e.name)) && (s === 64 ? this.raise(Z.StrictEvalArguments, e, {
        referenceName: e.name
      }) : this.raise(Z.StrictEvalArgumentsBinding, e, {
        bindingName: e.name
      })), s & 8192 && e.name === "let" && this.raise(Z.LetInLexicalBinding, e), s & 64 || this.declareNameFromIdentifier(e, s);
    }
    declareNameFromIdentifier(e, s) {
      this.scope.declareName(e.name, s, e.loc.start);
    }
    checkToRestConversion(e, s) {
      switch (e.type) {
        case "ParenthesizedExpression":
          this.checkToRestConversion(e.expression, s);
          break;
        case "Identifier":
        case "MemberExpression":
          break;
        case "ArrayExpression":
        case "ObjectExpression":
          if (s) break;
        default:
          this.raise(Z.InvalidRestAssignmentPattern, e);
      }
    }
    checkCommaAfterRest(e) {
      return this.match(12) ? (this.raise(this.lookaheadCharCode() === e ? Z.RestTrailingComma : Z.ElementAfterRest, this.state.startLoc), !0) :
      !1;
    }
  };
  function lnt(t) {
    if (t == null)
      throw new Error(`Unexpected ${t} value.`);
    return t;
  }
  n(lnt, "nonNull");
  function iX(t) {
    if (!t)
      throw new Error("Assert fail");
  }
  n(iX, "assert");
  var ft = fu`typescript`({
    AbstractMethodHasImplementation: /* @__PURE__ */ n(({
      methodName: t
    }) => `Method '${t}' cannot have an implementation because it is marked abstract.`, "AbstractMethodHasImplementation"),
    AbstractPropertyHasInitializer: /* @__PURE__ */ n(({
      propertyName: t
    }) => `Property '${t}' cannot have an initializer because it is marked abstract.`, "AbstractPropertyHasInitializer"),
    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 num\
eric literal or literal enum reference.",
    ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
    DeclareAccessor: /* @__PURE__ */ n(({
      kind: t
    }) => `'declare' is not allowed in ${t}ters.`, "DeclareAccessor"),
    DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
    DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
    DuplicateAccessibilityModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => "Accessibility modifier already seen.", "DuplicateAccessibilityModifier"),
    DuplicateModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => `Duplicate modifier: '${t}'.`, "DuplicateModifier"),
    EmptyHeritageClauseType: /* @__PURE__ */ n(({
      token: t
    }) => `'${t}' list cannot be empty.`, "EmptyHeritageClauseType"),
    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: /* @__PURE__ */ n(({
      modifiers: t
    }) => `'${t[0]}' modifier cannot be used with '${t[1]}' modifier.`, "IncompatibleModifiers"),
    IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
    IndexSignatureHasAccessibility: /* @__PURE__ */ n(({
      modifier: t
    }) => `Index signatures cannot have an accessibility modifier ('${t}').`, "IndexSignatureHasAccessibility"),
    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: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type member.`, "InvalidModifierOnTypeMember"),
    InvalidModifierOnTypeParameter: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type parameter.`, "InvalidModifierOnTypeParameter"),
    InvalidModifierOnTypeParameterPositions: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier can only appear on a type parameter of a class, interface or type alias.`, "InvalidModifierOnTypeParameterPositio\
ns"),
    InvalidModifiersOrder: /* @__PURE__ */ n(({
      orderedModifiers: t
    }) => `'${t[0]}' modifier must precede '${t[1]}' modifier.`, "InvalidModifiersOrder"),
    InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the i\
nstantiation 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: /* @__PURE__ */ n(({
      modifier: t
    }) => `Private elements cannot have an accessibility modifier ('${t}').`, "PrivateElementHasAccessibility"),
    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: /* @__PURE__ */ n(({
      typeParameterName: t
    }) => `Single type parameter ${t} should have a trailing comma. Example usage: <${t},>.`, "SingleTypeParameterWithoutTrailingComma"),
    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 (`n\
ame?: 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 statemen\
t.",
    TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statemen\
t.",
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${t}.`, "UnsupportedSignatureParameterKind")
  });
  function unt(t) {
    switch (t) {
      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;
    }
  }
  n(unt, "keywordTypeFromName");
  function nX(t) {
    return t === "private" || t === "public" || t === "protected";
  }
  n(nX, "tsIsAccessModifier");
  function cnt(t) {
    return t === "in" || t === "out";
  }
  n(cnt, "tsIsVarianceAnnotations");
  var pnt = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "TypeScriptParserMixin");
    }
    constructor(...s) {
      super(...s), 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 YO;
    }
    tsIsIdentifier() {
      return Gs(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(s, r) {
      if (!Gs(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
        return;
      let i = this.state.value;
      if (s.includes(i)) {
        if (r && this.tsIsStartOfStaticBlocks())
          return;
        if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
          return i;
      }
    }
    tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: r,
      stopOnStartOfClassStaticBlock: i,
      errorTemplate: a = ft.InvalidModifierOnTypeMember
    }, o) {
      let l = /* @__PURE__ */ n((c, p, h, f) => {
        p === h && o[f] && this.raise(ft.InvalidModifiersOrder, c, {
          orderedModifiers: [h, f]
        });
      }, "enforceOrder"), u = /* @__PURE__ */ n((c, p, h, f) => {
        (o[h] && p === f || o[f] && p === h) && this.raise(ft.IncompatibleModifiers, c, {
          modifiers: [h, f]
        });
      }, "incompatible");
      for (; ; ) {
        let {
          startLoc: c
        } = this.state, p = this.tsParseModifier(s.concat(r ?? []), i);
        if (!p) break;
        nX(p) ? o.accessibility ? this.raise(ft.DuplicateAccessibilityModifier, c, {
          modifier: p
        }) : (l(c, p, p, "override"), l(c, p, p, "static"), l(c, p, p, "readonly"), o.accessibility = p) : cnt(p) ? (o[p] && this.raise(ft.DuplicateModifier,
        c, {
          modifier: p
        }), o[p] = !0, l(c, p, "in", "out")) : (hasOwnProperty.call(o, p) ? this.raise(ft.DuplicateModifier, c, {
          modifier: p
        }) : (l(c, p, "static", "readonly"), l(c, p, "static", "override"), l(c, p, "override", "readonly"), l(c, p, "abstract", "override"),
        u(c, p, "declare", "override"), u(c, p, "static", "abstract")), o[p] = !0), r != null && r.includes(p) && this.raise(a, c, {
          modifier: p
        });
      }
    }
    tsIsListTerminator(s) {
      switch (s) {
        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(s, r) {
      let i = [];
      for (; !this.tsIsListTerminator(s); )
        i.push(r());
      return i;
    }
    tsParseDelimitedList(s, r, i) {
      return lnt(this.tsParseDelimitedListWorker(s, r, !0, i));
    }
    tsParseDelimitedListWorker(s, r, i, a) {
      let o = [], l = -1;
      for (; !this.tsIsListTerminator(s); ) {
        l = -1;
        let u = r();
        if (u == null)
          return;
        if (o.push(u), this.eat(12)) {
          l = this.state.lastTokStartLoc.index;
          continue;
        }
        if (this.tsIsListTerminator(s))
          break;
        i && this.expect(12);
        return;
      }
      return a && (a.value = l), o;
    }
    tsParseBracketedList(s, r, i, a, o) {
      a || (i ? this.expect(0) : this.expect(47));
      let l = this.tsParseDelimitedList(s, r, o);
      return i ? this.expect(3) : this.expect(48), l;
    }
    tsParseImportType() {
      let s = this.startNode();
      return this.expect(83), this.expect(10), this.match(134) ? s.argument = this.parseStringLiteral(this.state.value) : (this.raise(ft.UnsupportedImportTypeArgument,
      this.state.startLoc), s.argument = super.parseExprAtom()), this.eat(12) && !this.match(11) ? (s.options = super.parseMaybeAssignAllowIn(),
      this.eat(12)) : s.options = null, this.expect(11), this.eat(16) && (s.qualifier = this.tsParseEntityName(3)), this.match(47) && (s.typeParameters =
      this.tsParseTypeArguments()), this.finishNode(s, "TSImportType");
    }
    tsParseEntityName(s) {
      let r;
      if (s & 1 && this.match(78))
        if (s & 2)
          r = this.parseIdentifier(!0);
        else {
          let i = this.startNode();
          this.next(), r = this.finishNode(i, "ThisExpression");
        }
      else
        r = this.parseIdentifier(!!(s & 1));
      for (; this.eat(16); ) {
        let i = this.startNodeAtNode(r);
        i.left = r, i.right = this.parseIdentifier(!!(s & 1)), r = this.finishNode(i, "TSQualifiedName");
      }
      return r;
    }
    tsParseTypeReference() {
      let s = this.startNode();
      return s.typeName = this.tsParseEntityName(1), !this.hasPrecedingLineBreak() && this.match(47) && (s.typeParameters = this.tsParseTypeArguments()),
      this.finishNode(s, "TSTypeReference");
    }
    tsParseThisTypePredicate(s) {
      this.next();
      let r = this.startNodeAtNode(s);
      return r.parameterName = s, r.typeAnnotation = this.tsParseTypeAnnotation(!1), r.asserts = !1, this.finishNode(r, "TSTypePredicate");
    }
    tsParseThisTypeNode() {
      let s = this.startNode();
      return this.next(), this.finishNode(s, "TSThisType");
    }
    tsParseTypeQuery() {
      let s = this.startNode();
      return this.expect(87), this.match(83) ? s.exprName = this.tsParseImportType() : s.exprName = this.tsParseEntityName(3), !this.hasPrecedingLineBreak() &&
      this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSTypeQuery");
    }
    tsParseTypeParameter(s) {
      let r = this.startNode();
      return s(r), r.name = this.tsParseTypeParameterName(), r.constraint = this.tsEatThenParseType(81), r.default = this.tsEatThenParseType(
      29), this.finishNode(r, "TSTypeParameter");
    }
    tsTryParseTypeParameters(s) {
      if (this.match(47))
        return this.tsParseTypeParameters(s);
    }
    tsParseTypeParameters(s) {
      let r = this.startNode();
      this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = {
        value: -1
      };
      return r.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, s), !1, !0, i), r.params.
      length === 0 && this.raise(ft.EmptyTypeParameters, r), i.value !== -1 && this.addExtra(r, "trailingComma", i.value), this.finishNode(r,
      "TSTypeParameterDeclaration");
    }
    tsFillSignature(s, r) {
      let i = s === 19, a = "parameters", o = "typeAnnotation";
      r.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), r[a] = this.tsParseBindingListForSignature(),
      i ? r[o] = this.tsParseTypeOrTypePredicateAnnotation(s) : this.match(s) && (r[o] = this.tsParseTypeOrTypePredicateAnnotation(s));
    }
    tsParseBindingListForSignature() {
      let s = super.parseBindingList(11, 41, 2);
      for (let r of s) {
        let {
          type: i
        } = r;
        (i === "AssignmentPattern" || i === "TSParameterProperty") && this.raise(ft.UnsupportedSignatureParameterKind, r, {
          type: i
        });
      }
      return s;
    }
    tsParseTypeMemberSemicolon() {
      !this.eat(12) && !this.isLineTerminator() && this.expect(13);
    }
    tsParseSignatureMember(s, r) {
      return this.tsFillSignature(14, r), this.tsParseTypeMemberSemicolon(), this.finishNode(r, s);
    }
    tsIsUnambiguouslyIndexSignature() {
      return this.next(), Gs(this.state.type) ? (this.next(), this.match(14)) : !1;
    }
    tsTryParseIndexSignature(s) {
      if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
        return;
      this.expect(0);
      let r = this.parseIdentifier();
      r.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(r), this.expect(3), s.parameters = [r];
      let i = this.tsTryParseTypeAnnotation();
      return i && (s.typeAnnotation = i), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSIndexSignature");
    }
    tsParsePropertyOrMethodSignature(s, r) {
      this.eat(17) && (s.optional = !0);
      let i = s;
      if (this.match(10) || this.match(47)) {
        r && this.raise(ft.ReadonlyForMethodSignature, s);
        let a = i;
        a.kind && this.match(47) && this.raise(ft.AccessorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, a), this.
        tsParseTypeMemberSemicolon();
        let o = "parameters", l = "typeAnnotation";
        if (a.kind === "get")
          a[o].length > 0 && (this.raise(Z.BadGetterArity, this.state.curPosition()), this.isThisParam(a[o][0]) && this.raise(ft.AccessorCannotDeclareThisParameter,
          this.state.curPosition()));
        else if (a.kind === "set") {
          if (a[o].length !== 1)
            this.raise(Z.BadSetterArity, this.state.curPosition());
          else {
            let u = a[o][0];
            this.isThisParam(u) && this.raise(ft.AccessorCannotDeclareThisParameter, this.state.curPosition()), u.type === "Identifier" && u.
            optional && this.raise(ft.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()), u.type === "RestElement" && this.raise(
            ft.SetAccessorCannotHaveRestParameter, this.state.curPosition());
          }
          a[l] && this.raise(ft.SetAccessorCannotHaveReturnType, a[l]);
        } else
          a.kind = "method";
        return this.finishNode(a, "TSMethodSignature");
      } else {
        let a = i;
        r && (a.readonly = !0);
        let o = this.tsTryParseTypeAnnotation();
        return o && (a.typeAnnotation = o), this.tsParseTypeMemberSemicolon(), this.finishNode(a, "TSPropertySignature");
      }
    }
    tsParseTypeMember() {
      let s = this.startNode();
      if (this.match(10) || this.match(47))
        return this.tsParseSignatureMember("TSCallSignatureDeclaration", s);
      if (this.match(77)) {
        let i = this.startNode();
        return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", s) : (s.key = this.
        createIdentifier(i, "new"), this.tsParsePropertyOrMethodSignature(s, !1));
      }
      this.tsParseModifiers({
        allowedModifiers: ["readonly"],
        disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
      }, s);
      let r = this.tsTryParseIndexSignature(s);
      return r || (super.parsePropertyName(s), !s.computed && s.key.type === "Identifier" && (s.key.name === "get" || s.key.name === "set") &&
      this.tsTokenCanFollowModifier() && (s.kind = s.key.name, super.parsePropertyName(s)), this.tsParsePropertyOrMethodSignature(s, !!s.readonly));
    }
    tsParseTypeLiteral() {
      let s = this.startNode();
      return s.members = this.tsParseObjectTypeMembers(), this.finishNode(s, "TSTypeLiteral");
    }
    tsParseObjectTypeMembers() {
      this.expect(5);
      let s = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
      return this.expect(8), s;
    }
    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() {
      let s = this.startNode();
      this.expect(5), this.match(53) ? (s.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) &&
      (s.readonly = !0), this.expect(0);
      {
        let r = this.startNode();
        r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), s.typeParameter = this.finishNode(r, "TSTyp\
eParameter");
      }
      return s.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (s.optional = this.state.value,
      this.next(), this.expect(17)) : this.eat(17) && (s.optional = !0), s.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(
      8), this.finishNode(s, "TSMappedType");
    }
    tsParseTupleType() {
      let s = this.startNode();
      s.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
      let r = !1;
      return s.elementTypes.forEach((i) => {
        let {
          type: a
        } = i;
        r && a !== "TSRestType" && a !== "TSOptionalType" && !(a === "TSNamedTupleMember" && i.optional) && this.raise(ft.OptionalTypeBeforeRequired,
        i), r || (r = a === "TSNamedTupleMember" && i.optional || a === "TSOptionalType");
      }), this.finishNode(s, "TSTupleType");
    }
    tsParseTupleElementType() {
      let s = this.state.startLoc, r = this.eat(21), {
        startLoc: i
      } = this.state, a, o, l, u, p = Eo(this.state.type) ? this.lookaheadCharCode() : null;
      if (p === 58)
        a = !0, l = !1, o = this.parseIdentifier(!0), this.expect(14), u = this.tsParseType();
      else if (p === 63) {
        l = !0;
        let h = this.state.value, f = this.tsParseNonArrayType();
        this.lookaheadCharCode() === 58 ? (a = !0, o = this.createIdentifier(this.startNodeAt(i), h), this.expect(17), this.expect(14), u = this.
        tsParseType()) : (a = !1, u = f, this.expect(17));
      } else
        u = this.tsParseType(), l = this.eat(17), a = this.eat(14);
      if (a) {
        let h;
        o ? (h = this.startNodeAt(i), h.optional = l, h.label = o, h.elementType = u, this.eat(17) && (h.optional = !0, this.raise(ft.TupleOptionalAfterType,
        this.state.lastTokStartLoc))) : (h = this.startNodeAt(i), h.optional = l, this.raise(ft.InvalidTupleMemberLabel, u), h.label = u, h.
        elementType = this.tsParseType()), u = this.finishNode(h, "TSNamedTupleMember");
      } else if (l) {
        let h = this.startNodeAt(i);
        h.typeAnnotation = u, u = this.finishNode(h, "TSOptionalType");
      }
      if (r) {
        let h = this.startNodeAt(s);
        h.typeAnnotation = u, u = this.finishNode(h, "TSRestType");
      }
      return u;
    }
    tsParseParenthesizedType() {
      let s = this.startNode();
      return this.expect(10), s.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(s, "TSParenthesizedType");
    }
    tsParseFunctionOrConstructorType(s, r) {
      let i = this.startNode();
      return s === "TSConstructorType" && (i.abstract = !!r, r && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.
      tsFillSignature(19, i)), this.finishNode(i, s);
    }
    tsParseLiteralTypeNode() {
      let s = this.startNode();
      switch (this.state.type) {
        case 135:
        case 136:
        case 134:
        case 85:
        case 86:
          s.literal = super.parseExprAtom();
          break;
        default:
          this.unexpected();
      }
      return this.finishNode(s, "TSLiteralType");
    }
    tsParseTemplateLiteralType() {
      {
        let s = this.startNode();
        return s.literal = super.parseTemplate(!1), this.finishNode(s, "TSLiteralType");
      }
    }
    parseTemplateSubstitution() {
      return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
    }
    tsParseThisTypeOrThisTypePredicate() {
      let s = this.tsParseThisTypeNode();
      return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(s) : s;
    }
    tsParseNonArrayType() {
      switch (this.state.type) {
        case 134:
        case 135:
        case 136:
        case 85:
        case 86:
          return this.tsParseLiteralTypeNode();
        case 53:
          if (this.state.value === "-") {
            let s = this.startNode(), r = this.lookahead();
            return r.type !== 135 && r.type !== 136 && this.unexpected(), s.literal = this.parseMaybeUnary(), this.finishNode(s, "TSLiteralT\
ype");
          }
          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: {
          let {
            type: s
          } = this.state;
          if (Gs(s) || s === 88 || s === 84) {
            let r = s === 88 ? "TSVoidKeyword" : s === 84 ? "TSNullKeyword" : unt(this.state.value);
            if (r !== void 0 && this.lookaheadCharCode() !== 46) {
              let i = this.startNode();
              return this.next(), this.finishNode(i, r);
            }
            return this.tsParseTypeReference();
          }
        }
      }
      this.unexpected();
    }
    tsParseArrayTypeOrHigher() {
      let {
        startLoc: s
      } = this.state, r = this.tsParseNonArrayType();
      for (; !this.hasPrecedingLineBreak() && this.eat(0); )
        if (this.match(3)) {
          let i = this.startNodeAt(s);
          i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
        } else {
          let i = this.startNodeAt(s);
          i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
        }
      return r;
    }
    tsParseTypeOperator() {
      let s = this.startNode(), r = this.state.value;
      return this.next(), s.operator = r, s.typeAnnotation = this.tsParseTypeOperatorOrHigher(), r === "readonly" && this.tsCheckTypeAnnotationForReadOnly(
      s), this.finishNode(s, "TSTypeOperator");
    }
    tsCheckTypeAnnotationForReadOnly(s) {
      switch (s.typeAnnotation.type) {
        case "TSTupleType":
        case "TSArrayType":
          return;
        default:
          this.raise(ft.UnexpectedReadonly, s);
      }
    }
    tsParseInferType() {
      let s = this.startNode();
      this.expectContextual(115);
      let r = this.startNode();
      return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), s.typeParameter =
      this.finishNode(r, "TSTypeParameter"), this.finishNode(s, "TSInferType");
    }
    tsParseConstraintForInferType() {
      if (this.eat(81)) {
        let s = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
        if (this.state.inDisallowConditionalTypesContext || !this.match(17))
          return s;
      }
    }
    tsParseTypeOperatorOrHigher() {
      return Nit(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() :
      this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
    }
    tsParseUnionOrIntersectionType(s, r, i) {
      let a = this.startNode(), o = this.eat(i), l = [];
      do
        l.push(r());
      while (this.eat(i));
      return l.length === 1 && !o ? l[0] : (a.types = l, this.finishNode(a, s));
    }
    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 (Gs(this.state.type) || this.match(78))
        return this.next(), !0;
      if (this.match(5)) {
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return this.parseObjectLike(8, !0), s.length === r;
        } catch {
          return !1;
        }
      }
      if (this.match(0)) {
        this.next();
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return super.parseBindingList(3, 93, 1), s.length === r;
        } 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(s) {
      return this.tsInType(() => {
        let r = this.startNode();
        this.expect(s);
        let i = this.startNode(), a = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
        if (a && this.match(78)) {
          let u = this.tsParseThisTypeOrThisTypePredicate();
          return u.type === "TSThisType" ? (i.parameterName = u, i.asserts = !0, i.typeAnnotation = null, u = this.finishNode(i, "TSTypePred\
icate")) : (this.resetStartLocationFromNode(u, i), u.asserts = !0), r.typeAnnotation = u, this.finishNode(r, "TSTypeAnnotation");
        }
        let o = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
        if (!o)
          return a ? (i.parameterName = this.parseIdentifier(), i.asserts = a, i.typeAnnotation = null, r.typeAnnotation = this.finishNode(i,
          "TSTypePredicate"), this.finishNode(r, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, r);
        let l = this.tsParseTypeAnnotation(!1);
        return i.parameterName = o, i.typeAnnotation = l, i.asserts = a, r.typeAnnotation = this.finishNode(i, "TSTypePredicate"), this.finishNode(
        r, "TSTypeAnnotation");
      });
    }
    tsTryParseTypeOrTypePredicateAnnotation() {
      if (this.match(14))
        return this.tsParseTypeOrTypePredicateAnnotation(14);
    }
    tsTryParseTypeAnnotation() {
      if (this.match(14))
        return this.tsParseTypeAnnotation();
    }
    tsTryParseType() {
      return this.tsEatThenParseType(14);
    }
    tsParseTypePredicatePrefix() {
      let s = this.parseIdentifier();
      if (this.isContextual(116) && !this.hasPrecedingLineBreak())
        return this.next(), s;
    }
    tsParseTypePredicateAsserts() {
      if (this.state.type !== 109)
        return !1;
      let s = this.state.containsEsc;
      return this.next(), !Gs(this.state.type) && !this.match(78) ? !1 : (s && this.raise(Z.InvalidEscapedReservedWord, this.state.lastTokStartLoc,
      {
        reservedWord: "asserts"
      }), !0);
    }
    tsParseTypeAnnotation(s = !0, r = this.startNode()) {
      return this.tsInType(() => {
        s && this.expect(14), r.typeAnnotation = this.tsParseType();
      }), this.finishNode(r, "TSTypeAnnotation");
    }
    tsParseType() {
      iX(this.state.inType);
      let s = this.tsParseNonConditionalType();
      if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
        return s;
      let r = this.startNodeAtNode(s);
      return r.checkType = s, r.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(
      17), r.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), r.falseType = this.tsInAllowConditionalTypesContext(
      () => this.tsParseType()), this.finishNode(r, "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(ft.ReservedTypeAssertion, this.state.startLoc);
      let s = this.startNode();
      return s.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.
      expect(48), s.expression = this.parseMaybeUnary(), this.finishNode(s, "TSTypeAssertion");
    }
    tsParseHeritageClause(s) {
      let r = this.state.startLoc, i = this.tsParseDelimitedList("HeritageClauseElement", () => {
        let a = this.startNode();
        return a.expression = this.tsParseEntityName(3), this.match(47) && (a.typeParameters = this.tsParseTypeArguments()), this.finishNode(
        a, "TSExpressionWithTypeArguments");
      });
      return i.length || this.raise(ft.EmptyHeritageClauseType, r, {
        token: s
      }), i;
    }
    tsParseInterfaceDeclaration(s, r = {}) {
      if (this.hasFollowingLineBreak()) return null;
      this.expectContextual(129), r.declare && (s.declare = !0), Gs(this.state.type) ? (s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, 130)) : (s.id = null, this.raise(ft.MissingInterfaceName, this.state.startLoc)), s.typeParameters = this.tsTryParseTypeParameters(
      this.tsParseInOutConstModifiers), this.eat(81) && (s.extends = this.tsParseHeritageClause("extends"));
      let i = this.startNode();
      return i.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), s.body = this.finishNode(i, "TSInterfaceBody"), this.finishNode(
      s, "TSInterfaceDeclaration");
    }
    tsParseTypeAliasDeclaration(s) {
      return s.id = this.parseIdentifier(), this.checkIdentifier(s.id, 2), s.typeAnnotation = this.tsInType(() => {
        if (s.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().
        type !== 16) {
          let r = this.startNode();
          return this.next(), this.finishNode(r, "TSIntrinsicKeyword");
        }
        return this.tsParseType();
      }), this.semicolon(), this.finishNode(s, "TSTypeAliasDeclaration");
    }
    tsInTopLevelContext(s) {
      if (this.curContext() !== zs.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    tsInType(s) {
      let r = this.state.inType;
      this.state.inType = !0;
      try {
        return s();
      } finally {
        this.state.inType = r;
      }
    }
    tsInDisallowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !0;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsInAllowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !1;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsEatThenParseType(s) {
      if (this.match(s))
        return this.tsNextThenParseType();
    }
    tsExpectThenParseType(s) {
      return this.tsInType(() => (this.expect(s), this.tsParseType()));
    }
    tsNextThenParseType() {
      return this.tsInType(() => (this.next(), this.tsParseType()));
    }
    tsParseEnumMember() {
      let s = this.startNode();
      return s.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (s.initializer =
      super.parseMaybeAssignAllowIn()), this.finishNode(s, "TSEnumMember");
    }
    tsParseEnumDeclaration(s, r = {}) {
      return r.const && (s.const = !0), r.declare && (s.declare = !0), this.expectContextual(126), s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, s.const ? 8971 : 8459), this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)),
      this.expect(8), this.finishNode(s, "TSEnumDeclaration");
    }
    tsParseEnumBody() {
      let s = this.startNode();
      return this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(
      s, "TSEnumBody");
    }
    tsParseModuleBlock() {
      let s = this.startNode();
      return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(s.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(
      s, "TSModuleBlock");
    }
    tsParseModuleOrNamespaceDeclaration(s, r = !1) {
      if (s.id = this.parseIdentifier(), r || this.checkIdentifier(s.id, 1024), this.eat(16)) {
        let i = this.startNode();
        this.tsParseModuleOrNamespaceDeclaration(i, !0), s.body = i;
      } else
        this.scope.enter(256), this.prodParam.enter(0), s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
      return this.finishNode(s, "TSModuleDeclaration");
    }
    tsParseAmbientExternalModuleDeclaration(s) {
      return this.isContextual(112) ? (s.kind = "global", s.global = !0, s.id = this.parseIdentifier()) : this.match(134) ? (s.kind = "modul\
e", s.id = super.parseStringLiteral(this.state.value)) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0),
      s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(s, "TSModuleDeclarat\
ion");
    }
    tsParseImportEqualsDeclaration(s, r, i) {
      s.isExport = i || !1, s.id = r || this.parseIdentifier(), this.checkIdentifier(s.id, 4096), this.expect(29);
      let a = this.tsParseModuleReference();
      return s.importKind === "type" && a.type !== "TSExternalModuleReference" && this.raise(ft.ImportAliasHasImportType, a), s.moduleReference =
      a, this.semicolon(), this.finishNode(s, "TSImportEqualsDeclaration");
    }
    tsIsExternalModuleReference() {
      return this.isContextual(119) && this.lookaheadCharCode() === 40;
    }
    tsParseModuleReference() {
      return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0);
    }
    tsParseExternalModuleReference() {
      let s = this.startNode();
      return this.expectContextual(119), this.expect(10), this.match(134) || this.unexpected(), s.expression = super.parseExprAtom(), this.expect(
      11), this.sawUnambiguousESM = !0, this.finishNode(s, "TSExternalModuleReference");
    }
    tsLookAhead(s) {
      let r = this.state.clone(), i = s();
      return this.state = r, i;
    }
    tsTryParseAndCatch(s) {
      let r = this.tryParse((i) => s() || i());
      if (!(r.aborted || !r.node))
        return r.error && (this.state = r.failState), r.node;
    }
    tsTryParse(s) {
      let r = this.state.clone(), i = s();
      if (i !== void 0 && i !== !1)
        return i;
      this.state = r;
    }
    tsTryParseDeclare(s) {
      if (this.isLineTerminator())
        return;
      let r = this.state.type, i;
      return this.isContextual(100) && (r = 74, i = "let"), this.tsInAmbientContext(() => {
        switch (r) {
          case 68:
            return s.declare = !0, super.parseFunctionStatement(s, !1, !1);
          case 80:
            return s.declare = !0, this.parseClass(s, !0, !1);
          case 126:
            return this.tsParseEnumDeclaration(s, {
              declare: !0
            });
          case 112:
            return this.tsParseAmbientExternalModuleDeclaration(s);
          case 75:
          case 74:
            return !this.match(75) || !this.isLookaheadContextual("enum") ? (s.declare = !0, this.parseVarStatement(s, i || this.state.value,
            !0)) : (this.expect(75), this.tsParseEnumDeclaration(s, {
              const: !0,
              declare: !0
            }));
          case 129: {
            let a = this.tsParseInterfaceDeclaration(s, {
              declare: !0
            });
            if (a) return a;
          }
          default:
            if (Gs(r))
              return this.tsParseDeclaration(s, this.state.value, !0, null);
        }
      });
    }
    tsTryParseExportDeclaration() {
      return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
    }
    tsParseExpressionStatement(s, r, i) {
      switch (r.name) {
        case "declare": {
          let a = this.tsTryParseDeclare(s);
          return a && (a.declare = !0), a;
        }
        case "global":
          if (this.match(5)) {
            this.scope.enter(256), this.prodParam.enter(0);
            let a = s;
            return a.kind = "global", s.global = !0, a.id = r, a.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(),
            this.finishNode(a, "TSModuleDeclaration");
          }
          break;
        default:
          return this.tsParseDeclaration(s, r.name, !1, i);
      }
    }
    tsParseDeclaration(s, r, i, a) {
      switch (r) {
        case "abstract":
          if (this.tsCheckLineTerminator(i) && (this.match(80) || Gs(this.state.type)))
            return this.tsParseAbstractDeclaration(s, a);
          break;
        case "module":
          if (this.tsCheckLineTerminator(i)) {
            if (this.match(134))
              return this.tsParseAmbientExternalModuleDeclaration(s);
            if (Gs(this.state.type))
              return s.kind = "module", this.tsParseModuleOrNamespaceDeclaration(s);
          }
          break;
        case "namespace":
          if (this.tsCheckLineTerminator(i) && Gs(this.state.type))
            return s.kind = "namespace", this.tsParseModuleOrNamespaceDeclaration(s);
          break;
        case "type":
          if (this.tsCheckLineTerminator(i) && Gs(this.state.type))
            return this.tsParseTypeAliasDeclaration(s);
          break;
      }
    }
    tsCheckLineTerminator(s) {
      return s ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
    }
    tsTryParseGenericAsyncArrowFunction(s) {
      if (!this.match(47)) return;
      let r = this.state.maybeInArrowParameters;
      this.state.maybeInArrowParameters = !0;
      let i = this.tsTryParseAndCatch(() => {
        let a = this.startNodeAt(s);
        return a.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(a), a.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(),
        this.expect(19), a;
      });
      if (this.state.maybeInArrowParameters = r, !!i)
        return super.parseArrowExpression(i, null, !0);
    }
    tsParseTypeArgumentsInExpression() {
      if (this.reScan_lt() === 47)
        return this.tsParseTypeArguments();
    }
    tsParseTypeArguments() {
      let s = this.startNode();
      return s.params = this.tsInType(() => this.tsInTopLevelContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArgu\
ments", this.tsParseType.bind(this))))), s.params.length === 0 ? this.raise(ft.EmptyTypeArguments, s) : !this.state.inType && this.curContext() ===
      zs.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(s, "TSTypeParameterInstantiation");
    }
    tsIsDeclarationStart() {
      return kit(this.state.type);
    }
    isExportDefaultSpecifier() {
      return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
    }
    parseAssignableListItem(s, r) {
      let i = this.state.startLoc, a = {};
      this.tsParseModifiers({
        allowedModifiers: ["public", "private", "protected", "override", "readonly"]
      }, a);
      let o = a.accessibility, l = a.override, u = a.readonly;
      !(s & 4) && (o || u || l) && this.raise(ft.UnexpectedParameterModifier, i);
      let c = this.parseMaybeDefault();
      s & 2 && this.parseFunctionParamType(c);
      let p = this.parseMaybeDefault(c.loc.start, c);
      if (o || u || l) {
        let h = this.startNodeAt(i);
        return r.length && (h.decorators = r), o && (h.accessibility = o), u && (h.readonly = u), l && (h.override = l), p.type !== "Identif\
ier" && p.type !== "AssignmentPattern" && this.raise(ft.UnsupportedParameterPropertyKind, h), h.parameter = p, this.finishNode(h, "TSParamet\
erProperty");
      }
      return r.length && (c.decorators = r), p;
    }
    isSimpleParameter(s) {
      return s.type === "TSParameterProperty" && super.isSimpleParameter(s.parameter) || super.isSimpleParameter(s);
    }
    tsDisallowOptionalPattern(s) {
      for (let r of s.params)
        r.type !== "Identifier" && r.optional && !this.state.isAmbientContext && this.raise(ft.PatternIsOptional, r);
    }
    setArrowFunctionParameters(s, r, i) {
      super.setArrowFunctionParameters(s, r, i), this.tsDisallowOptionalPattern(s);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      this.match(14) && (s.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
      let a = r === "FunctionDeclaration" ? "TSDeclareFunction" : r === "ClassMethod" || r === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
      return a && !this.match(5) && this.isLineTerminator() ? this.finishNode(s, a) : a === "TSDeclareFunction" && this.state.isAmbientContext &&
      (this.raise(ft.DeclareFunctionHasImplementation, s), s.declare) ? super.parseFunctionBodyAndFinish(s, a, i) : (this.tsDisallowOptionalPattern(
      s), super.parseFunctionBodyAndFinish(s, r, i));
    }
    registerFunctionStatementId(s) {
      !s.body && s.id ? this.checkIdentifier(s.id, 1024) : super.registerFunctionStatementId(s);
    }
    tsCheckForInvalidTypeCasts(s) {
      s.forEach((r) => {
        r?.type === "TSTypeCastExpression" && this.raise(ft.UnexpectedTypeAnnotation, r.typeAnnotation);
      });
    }
    toReferencedList(s, r) {
      return this.tsCheckForInvalidTypeCasts(s), s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return o.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(o.elements), o;
    }
    parseSubscript(s, r, i, a) {
      if (!this.hasPrecedingLineBreak() && this.match(35)) {
        this.state.canStartJSXElement = !1, this.next();
        let l = this.startNodeAt(r);
        return l.expression = s, this.finishNode(l, "TSNonNullExpression");
      }
      let o = !1;
      if (this.match(18) && this.lookaheadCharCode() === 60) {
        if (i)
          return a.stop = !0, s;
        a.optionalChainMember = o = !0, this.next();
      }
      if (this.match(47) || this.match(51)) {
        let l, u = this.tsTryParseAndCatch(() => {
          if (!i && this.atPossibleAsyncArrow(s)) {
            let f = this.tsTryParseGenericAsyncArrowFunction(r);
            if (f)
              return f;
          }
          let c = this.tsParseTypeArgumentsInExpression();
          if (!c) return;
          if (o && !this.match(10)) {
            l = this.state.curPosition();
            return;
          }
          if (WS(this.state.type)) {
            let f = super.parseTaggedTemplateExpression(s, r, a);
            return f.typeParameters = c, f;
          }
          if (!i && this.eat(10)) {
            let f = this.startNodeAt(r);
            return f.callee = s, f.arguments = this.parseCallExpressionArguments(11), this.tsCheckForInvalidTypeCasts(f.arguments), f.typeParameters =
            c, a.optionalChainMember && (f.optional = o), this.finishCallExpression(f, a.optionalChainMember);
          }
          let p = this.state.type;
          if (p === 48 || p === 52 || p !== 10 && OO(p) && !this.hasPrecedingLineBreak())
            return;
          let h = this.startNodeAt(r);
          return h.expression = s, h.typeParameters = c, this.finishNode(h, "TSInstantiationExpression");
        });
        if (l && this.unexpected(l, 10), u)
          return u.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(
          ft.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), u;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      var r;
      super.parseNewCallee(s);
      let {
        callee: i
      } = s;
      i.type === "TSInstantiationExpression" && !((r = i.extra) != null && r.parenthesized) && (s.typeParameters = i.typeParameters, s.callee =
      i.expression);
    }
    parseExprOp(s, r, i) {
      let a;
      if (US(58) > i && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (a = this.isContextual(120)))) {
        let o = this.startNodeAt(r);
        return o.expression = s, o.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (a && this.raise(Z.UnexpectedKeyword,
        this.state.startLoc, {
          keyword: "const"
        }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(o, a ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(),
        this.parseExprOp(o, r, i);
      }
      return super.parseExprOp(s, r, i);
    }
    checkReservedWord(s, r, i, a) {
      this.state.isAmbientContext || super.checkReservedWord(s, r, i, a);
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(ft.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    checkDuplicateExports() {
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        let r = this.lookaheadCharCode();
        return s ? r === 123 || r === 42 : r !== 61;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      super.applyImportPhase(s, r, i, a), r ? s.exportKind = i === "type" ? "type" : "value" : s.importKind = i === "type" || i === "typeof" ?
      i : "value";
    }
    parseImport(s) {
      if (this.match(134))
        return s.importKind = "value", super.parseImport(s);
      let r;
      if (Gs(this.state.type) && this.lookaheadCharCode() === 61)
        return s.importKind = "value", this.tsParseImportEqualsDeclaration(s);
      if (this.isContextual(130)) {
        let i = this.parseMaybeImportPhase(s, !1);
        if (this.lookaheadCharCode() === 61)
          return this.tsParseImportEqualsDeclaration(s, i);
        r = super.parseImportSpecifiersAndAfter(s, i);
      } else
        r = super.parseImport(s);
      return r.importKind === "type" && r.specifiers.length > 1 && r.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(ft.TypeImportCannotSpecifyDefaultAndNamed,
      r), r;
    }
    parseExport(s, r) {
      if (this.match(83)) {
        let i = s;
        this.next();
        let a = null;
        return this.isContextual(130) && this.isPotentialImportPhase(!1) ? a = this.parseMaybeImportPhase(i, !1) : i.importKind = "value", this.
        tsParseImportEqualsDeclaration(i, a, !0);
      } else if (this.eat(29)) {
        let i = s;
        return i.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(i, "TSExportAssignment");
      } else if (this.eatContextual(93)) {
        let i = s;
        return this.expectContextual(128), i.id = this.parseIdentifier(), this.semicolon(), this.finishNode(i, "TSNamespaceExportDeclaration");
      } else
        return super.parseExport(s, r);
    }
    isAbstractClass() {
      return this.isContextual(124) && this.lookahead().type === 80;
    }
    parseExportDefaultExpression() {
      if (this.isAbstractClass()) {
        let s = this.startNode();
        return this.next(), s.abstract = !0, this.parseClass(s, !0, !0);
      }
      if (this.match(129)) {
        let s = this.tsParseInterfaceDeclaration(this.startNode());
        if (s) return s;
      }
      return super.parseExportDefaultExpression();
    }
    parseVarStatement(s, r, i = !1) {
      let {
        isAmbientContext: a
      } = this.state, o = super.parseVarStatement(s, r, i || a);
      if (!a) return o;
      for (let {
        id: l,
        init: u
      } of o.declarations)
        u && (r !== "const" || l.typeAnnotation ? this.raise(ft.InitializerNotAllowedInAmbientContext, u) : fnt(u, this.hasPlugin("estree")) ||
        this.raise(ft.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, u));
      return o;
    }
    parseStatementContent(s, r) {
      if (this.match(75) && this.isLookaheadContextual("enum")) {
        let i = this.startNode();
        return this.expect(75), this.tsParseEnumDeclaration(i, {
          const: !0
        });
      }
      if (this.isContextual(126))
        return this.tsParseEnumDeclaration(this.startNode());
      if (this.isContextual(129)) {
        let i = this.tsParseInterfaceDeclaration(this.startNode());
        if (i) return i;
      }
      return super.parseStatementContent(s, r);
    }
    parseAccessModifier() {
      return this.tsParseModifier(["public", "protected", "private"]);
    }
    tsHasSomeModifiers(s, r) {
      return r.some((i) => nX(i) ? s.accessibility === i : !!s[i]);
    }
    tsIsStartOfStaticBlocks() {
      return this.isContextual(106) && this.lookaheadCharCode() === 123;
    }
    parseClassMember(s, r, i) {
      let a = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
      this.tsParseModifiers({
        allowedModifiers: a,
        disallowedModifiers: ["in", "out"],
        stopOnStartOfClassStaticBlock: !0,
        errorTemplate: ft.InvalidModifierOnTypeParameterPositions
      }, r);
      let o = /* @__PURE__ */ n(() => {
        this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(r, a) && this.raise(ft.StaticBlockCannotHaveModifier,
        this.state.curPosition()), super.parseClassStaticBlock(s, r)) : this.parseClassMemberWithIsStatic(s, r, i, !!r.static);
      }, "callParseClassMemberWithIsStatic");
      r.declare ? this.tsInAmbientContext(o) : o();
    }
    parseClassMemberWithIsStatic(s, r, i, a) {
      let o = this.tsTryParseIndexSignature(r);
      if (o) {
        s.body.push(o), r.abstract && this.raise(ft.IndexSignatureHasAbstract, r), r.accessibility && this.raise(ft.IndexSignatureHasAccessibility,
        r, {
          modifier: r.accessibility
        }), r.declare && this.raise(ft.IndexSignatureHasDeclare, r), r.override && this.raise(ft.IndexSignatureHasOverride, r);
        return;
      }
      !this.state.inAbstractClass && r.abstract && this.raise(ft.NonAbstractClassHasAbstractMethod, r), r.override && (i.hadSuperClass || this.
      raise(ft.OverrideNotInSubClass, r)), super.parseClassMemberWithIsStatic(s, r, i, a);
    }
    parsePostMemberNameModifiers(s) {
      this.eat(17) && (s.optional = !0), s.readonly && this.match(10) && this.raise(ft.ClassMethodHasReadonly, s), s.declare && this.match(10) &&
      this.raise(ft.ClassMethodHasDeclare, s);
    }
    parseExpressionStatement(s, r, i) {
      return (r.type === "Identifier" ? this.tsParseExpressionStatement(s, r, i) : void 0) || super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
    }
    parseConditional(s, r, i) {
      if (!this.state.maybeInArrowParameters || !this.match(17))
        return super.parseConditional(s, r, i);
      let a = this.tryParse(() => super.parseConditional(s, r));
      return a.node ? (a.error && (this.state = a.failState), a.node) : (a.error && super.setOptionalParametersError(i, a.error), s);
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = s, a.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(a, "TSTypeCastExpression");
      }
      return s;
    }
    parseExportDeclaration(s) {
      if (!this.state.isAmbientContext && this.isContextual(125))
        return this.tsInAmbientContext(() => this.parseExportDeclaration(s));
      let r = this.state.startLoc, i = this.eatContextual(125);
      if (i && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
        throw this.raise(ft.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
      let o = Gs(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(s);
      return o ? ((o.type === "TSInterfaceDeclaration" || o.type === "TSTypeAliasDeclaration" || i) && (s.exportKind = "type"), i && o.type !==
      "TSImportEqualsDeclaration" && (this.resetStartLocation(o, r), o.declare = !0), o) : null;
    }
    parseClassId(s, r, i, a) {
      if ((!r || i) && this.isContextual(113))
        return;
      super.parseClassId(s, r, i, s.declare ? 1024 : 8331);
      let o = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
      o && (s.typeParameters = o);
    }
    parseClassPropertyAnnotation(s) {
      s.optional || (this.eat(35) ? s.definite = !0 : this.eat(17) && (s.optional = !0));
      let r = this.tsTryParseTypeAnnotation();
      r && (s.typeAnnotation = r);
    }
    parseClassProperty(s) {
      if (this.parseClassPropertyAnnotation(s), this.state.isAmbientContext && !(s.readonly && !s.typeAnnotation) && this.match(29) && this.
      raise(ft.DeclareClassFieldHasInitializer, this.state.startLoc), s.abstract && this.match(29)) {
        let {
          key: r
        } = s;
        this.raise(ft.AbstractPropertyHasInitializer, this.state.startLoc, {
          propertyName: r.type === "Identifier" && !s.computed ? r.name : `[${this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(
          r.end))}]`
        });
      }
      return super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return s.abstract && this.raise(ft.PrivateElementHasAbstract, s), s.accessibility && this.raise(ft.PrivateElementHasAccessibility, s, {
        modifier: s.accessibility
      }), this.parseClassPropertyAnnotation(s), super.parseClassPrivateProperty(s);
    }
    parseClassAccessorProperty(s) {
      return this.parseClassPropertyAnnotation(s), s.optional && this.raise(ft.AccessorCannotBeOptional, s), super.parseClassAccessorProperty(
      s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      let u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      u && o && this.raise(ft.ConstructorHasTypeParameters, u);
      let {
        declare: c = !1,
        kind: p
      } = r;
      c && (p === "get" || p === "set") && this.raise(ft.DeclareAccessor, r, {
        kind: p
      }), u && (r.typeParameters = u), super.pushClassMethod(s, r, i, a, o, l);
    }
    pushClassPrivateMethod(s, r, i, a) {
      let o = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      o && (r.typeParameters = o), super.pushClassPrivateMethod(s, r, i, a);
    }
    declareClassPrivateMethodInScope(s, r) {
      s.type !== "TSDeclareMethod" && (s.type === "MethodDefinition" && !hasOwnProperty.call(s.value, "body") || super.declareClassPrivateMethodInScope(
      s, r));
    }
    parseClassSuper(s) {
      super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.tsParseTypeArgumentsInExpression()),
      this.eatContextual(113) && (s.implements = this.tsParseHeritageClause("implements"));
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      let c = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      return c && (s.typeParameters = c), super.parseObjPropValue(s, r, i, a, o, l, u);
    }
    parseFunctionParams(s, r) {
      let i = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      i && (s.typeParameters = i), super.parseFunctionParams(s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), s.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (s.definite = !0);
      let i = this.tsTryParseTypeAnnotation();
      i && (s.id.typeAnnotation = i, this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      return this.match(14) && (s.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(s, r);
    }
    parseMaybeAssign(s, r) {
      var i, a, o, l, u;
      let c, p, h;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (c = this.state.clone(), p = this.tryParse(() => super.parseMaybeAssign(s, r), c), !p.error) return p.node;
        let {
          context: m
        } = this.state, y = m[m.length - 1];
        (y === zs.j_oTag || y === zs.j_expr) && m.pop();
      }
      if (!((i = p) != null && i.error) && !this.match(47))
        return super.parseMaybeAssign(s, r);
      (!c || c === this.state) && (c = this.state.clone());
      let f, d = this.tryParse((m) => {
        var y, T;
        f = this.tsParseTypeParameters(this.tsParseConstModifier);
        let b = super.parseMaybeAssign(s, r);
        return (b.type !== "ArrowFunctionExpression" || (y = b.extra) != null && y.parenthesized) && m(), ((T = f) == null ? void 0 : T.params.
        length) !== 0 && this.resetStartLocationFromNode(b, f), b.typeParameters = f, b;
      }, c);
      if (!d.error && !d.aborted)
        return f && this.reportReservedArrowTypeParam(f), d.node;
      if (!p && (iX(!this.hasPlugin("jsx")), h = this.tryParse(() => super.parseMaybeAssign(s, r), c), !h.error))
        return h.node;
      if ((a = p) != null && a.node)
        return this.state = p.failState, p.node;
      if (d.node)
        return this.state = d.failState, f && this.reportReservedArrowTypeParam(f), d.node;
      if ((o = h) != null && o.node)
        return this.state = h.failState, h.node;
      throw ((l = p) == null ? void 0 : l.error) || d.error || ((u = h) == null ? void 0 : u.error);
    }
    reportReservedArrowTypeParam(s) {
      var r;
      s.params.length === 1 && !s.params[0].constraint && !((r = s.extra) != null && r.trailingComma) && this.getPluginOption("typescript", "\
disallowAmbiguousJSXLike") && this.raise(ft.ReservedArrowTypeParam, s);
    }
    parseMaybeUnary(s, r) {
      return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse((i) => {
          let a = this.tsParseTypeOrTypePredicateAnnotation(14);
          return (this.canInsertSemicolon() || !this.match(19)) && i(), a;
        });
        if (r.aborted) return;
        r.thrown || (r.error && (this.state = r.failState), s.returnType = r.node);
      }
      return super.parseArrow(s);
    }
    parseFunctionParamType(s) {
      this.eat(17) && (s.optional = !0);
      let r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r), this.resetEndLocation(s), s;
    }
    isAssignable(s, r) {
      switch (s.type) {
        case "TSTypeCastExpression":
          return this.isAssignable(s.expression, r);
        case "TSParameterProperty":
          return !0;
        default:
          return super.isAssignable(s, r);
      }
    }
    toAssignable(s, r = !1) {
      switch (s.type) {
        case "ParenthesizedExpression":
          this.toAssignableParenthesizedExpression(s, r);
          break;
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
          r ? this.expressionScope.recordArrowParameterBindingError(ft.UnexpectedTypeCastInParameter, s) : this.raise(ft.UnexpectedTypeCastInParameter,
          s), this.toAssignable(s.expression, r);
          break;
        case "AssignmentExpression":
          !r && s.left.type === "TSTypeCastExpression" && (s.left = this.typeCastToParameter(s.left));
        default:
          super.toAssignable(s, r);
      }
    }
    toAssignableParenthesizedExpression(s, r) {
      switch (s.expression.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
        case "ParenthesizedExpression":
          this.toAssignable(s.expression, r);
          break;
        default:
          super.toAssignable(s, r);
      }
    }
    checkToRestConversion(s, r) {
      switch (s.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
        case "TSNonNullExpression":
          this.checkToRestConversion(s.expression, !1);
          break;
        default:
          super.checkToRestConversion(s, r);
      }
    }
    isValidLVal(s, r, i) {
      switch (s) {
        case "TSTypeCastExpression":
          return !0;
        case "TSParameterProperty":
          return "parameter";
        case "TSNonNullExpression":
        case "TSInstantiationExpression":
          return "expression";
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
          return (i !== 64 || !r) && ["expression", !0];
        default:
          return super.isValidLVal(s, r, i);
      }
    }
    parseBindingAtom() {
      return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
    }
    parseMaybeDecoratorArguments(s, r) {
      if (this.match(47) || this.match(51)) {
        let i = this.tsParseTypeArgumentsInExpression();
        if (this.match(10)) {
          let a = super.parseMaybeDecoratorArguments(s, r);
          return a.typeParameters = i, a;
        }
        this.unexpected(null, 10);
      }
      return super.parseMaybeDecoratorArguments(s, r);
    }
    checkCommaAfterRest(s) {
      return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === s ? (this.next(), !1) : super.checkCommaAfterRest(
      s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(35) || this.match(14) || super.isClassProperty();
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(ft.TypeAnnotationAfterAssign,
      i.typeAnnotation), i;
    }
    getTokenFromCode(s) {
      if (this.state.inType) {
        if (s === 62) {
          this.finishOp(48, 1);
          return;
        }
        if (s === 60) {
          this.finishOp(47, 1);
          return;
        }
      }
      super.getTokenFromCode(s);
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TSTypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    shouldParseArrow(s) {
      return this.match(14) ? s.every((r) => this.isAssignable(r, !0)) : super.shouldParseArrow(s);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    canHaveLeadingDecorator() {
      return super.canHaveLeadingDecorator() || this.isAbstractClass();
    }
    jsxParseOpeningElementAfterName(s) {
      if (this.match(47) || this.match(51)) {
        let r = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
        r && (s.typeParameters = r);
      }
      return super.jsxParseOpeningElementAfterName(s);
    }
    getGetterSetterExpectedParamCount(s) {
      let r = super.getGetterSetterExpectedParamCount(s), a = this.getObjectOrClassMethodParams(s)[0];
      return a && this.isThisParam(a) ? r + 1 : r;
    }
    parseCatchClauseParam() {
      let s = super.parseCatchClauseParam(), r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r, this.resetEndLocation(s)), s;
    }
    tsInAmbientContext(s) {
      let {
        isAmbientContext: r,
        strict: i
      } = this.state;
      this.state.isAmbientContext = !0, this.state.strict = !1;
      try {
        return s();
      } finally {
        this.state.isAmbientContext = r, this.state.strict = i;
      }
    }
    parseClass(s, r, i) {
      let a = this.state.inAbstractClass;
      this.state.inAbstractClass = !!s.abstract;
      try {
        return super.parseClass(s, r, i);
      } finally {
        this.state.inAbstractClass = a;
      }
    }
    tsParseAbstractDeclaration(s, r) {
      if (this.match(80))
        return s.abstract = !0, this.maybeTakeDecorators(r, this.parseClass(s, !0, !1));
      if (this.isContextual(129)) {
        if (!this.hasFollowingLineBreak())
          return s.abstract = !0, this.raise(ft.NonClassMethodPropertyHasAbstractModifer, s), this.tsParseInterfaceDeclaration(s);
      } else
        this.unexpected(null, 80);
    }
    parseMethod(s, r, i, a, o, l, u) {
      let c = super.parseMethod(s, r, i, a, o, l, u);
      if (c.abstract && (this.hasPlugin("estree") ? c.value : c).body) {
        let {
          key: f
        } = c;
        this.raise(ft.AbstractMethodHasImplementation, c, {
          methodName: f.type === "Identifier" && !c.computed ? f.name : `[${this.input.slice(this.offsetToSourcePos(f.start), this.offsetToSourcePos(
          f.end))}]`
        });
      }
      return c;
    }
    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(s, r, i, a) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !1, i), this.finishNode(s, "ExportSpecifier")) : (s.exportKind = "value",
      super.parseExportSpecifier(s, r, i, a));
    }
    parseImportSpecifier(s, r, i, a, o) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !0, i), this.finishNode(s, "ImportSpecifier")) : (s.importKind = "value",
      super.parseImportSpecifier(s, r, i, a, i ? 4098 : 4096));
    }
    parseTypeOnlyImportExportSpecifier(s, r, i) {
      let a = r ? "imported" : "local", o = r ? "local" : "exported", l = s[a], u, c = !1, p = !0, h = l.loc.start;
      if (this.isContextual(93)) {
        let d = this.parseIdentifier();
        if (this.isContextual(93)) {
          let m = this.parseIdentifier();
          Eo(this.state.type) ? (c = !0, l = d, u = r ? this.parseIdentifier() : this.parseModuleExportName(), p = !1) : (u = m, p = !1);
        } else Eo(this.state.type) ? (p = !1, u = r ? this.parseIdentifier() : this.parseModuleExportName()) : (c = !0, l = d);
      } else Eo(this.state.type) && (c = !0, r ? (l = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(l.name, l.loc.
      start, !0, !0)) : l = this.parseModuleExportName());
      c && i && this.raise(r ? ft.TypeModifierIsUsedInTypeImports : ft.TypeModifierIsUsedInTypeExports, h), s[a] = l, s[o] = u;
      let f = r ? "importKind" : "exportKind";
      s[f] = c ? "type" : "value", p && this.eatContextual(93) && (s[o] = r ? this.parseIdentifier() : this.parseModuleExportName()), s[o] ||
      (s[o] = du(s[a])), r && this.checkIdentifier(s[o], c ? 4098 : 4096);
    }
  }, "typescript");
  function hnt(t) {
    if (t.type !== "MemberExpression") return !1;
    let {
      computed: e,
      property: s
    } = t;
    return e && s.type !== "StringLiteral" && (s.type !== "TemplateLiteral" || s.expressions.length > 0) ? !1 : EX(t.object);
  }
  n(hnt, "isPossiblyLiteralEnum");
  function fnt(t, e) {
    var s;
    let {
      type: r
    } = t;
    if ((s = t.extra) != null && s.parenthesized)
      return !1;
    if (e) {
      if (r === "Literal") {
        let {
          value: i
        } = t;
        if (typeof i == "string" || typeof i == "boolean")
          return !0;
      }
    } else if (r === "StringLiteral" || r === "BooleanLiteral")
      return !0;
    return !!(PX(t, e) || dnt(t, e) || r === "TemplateLiteral" && t.expressions.length === 0 || hnt(t));
  }
  n(fnt, "isValidAmbientConstInitializer");
  function PX(t, e) {
    return e ? t.type === "Literal" && (typeof t.value == "number" || "bigint" in t) : t.type === "NumericLiteral" || t.type === "BigIntLite\
ral";
  }
  n(PX, "isNumber");
  function dnt(t, e) {
    if (t.type === "UnaryExpression") {
      let {
        operator: s,
        argument: r
      } = t;
      if (s === "-" && PX(r, e))
        return !0;
    }
    return !1;
  }
  n(dnt, "isNegativeNumber");
  function EX(t) {
    return t.type === "Identifier" ? !0 : t.type !== "MemberExpression" || t.computed ? !1 : EX(t.object);
  }
  n(EX, "isUncomputedMemberExpressionChain");
  var aX = fu`placeholders`({
    ClassNameIsRequired: "A class name is required.",
    UnexpectedSpace: "Unexpected space in placeholder."
  }), mnt = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "PlaceholdersParserMixin");
    }
    parsePlaceholder(s) {
      if (this.match(133)) {
        let r = this.startNode();
        return this.next(), this.assertNoSpace(), r.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(133), this.finishPlaceholder(
        r, s);
      }
    }
    finishPlaceholder(s, r) {
      let i = s;
      return (!i.expectedNode || !i.type) && (i = this.finishNode(i, "Placeholder")), i.expectedNode = r, i;
    }
    getTokenFromCode(s) {
      s === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(133, 2) : super.getTokenFromCode(s);
    }
    parseExprAtom(s) {
      return this.parsePlaceholder("Expression") || super.parseExprAtom(s);
    }
    parseIdentifier(s) {
      return this.parsePlaceholder("Identifier") || super.parseIdentifier(s);
    }
    checkReservedWord(s, r, i, a) {
      s !== void 0 && super.checkReservedWord(s, r, i, a);
    }
    parseBindingAtom() {
      return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
    }
    isValidLVal(s, r, i) {
      return s === "Placeholder" || super.isValidLVal(s, r, i);
    }
    toAssignable(s, r) {
      s && s.type === "Placeholder" && s.expectedNode === "Expression" ? s.expectedNode = "Pattern" : super.toAssignable(s, r);
    }
    chStartsBindingIdentifier(s, r) {
      return !!(super.chStartsBindingIdentifier(s, r) || this.lookahead().type === 133);
    }
    verifyBreakContinue(s, r) {
      s.label && s.label.type === "Placeholder" || super.verifyBreakContinue(s, r);
    }
    parseExpressionStatement(s, r) {
      var i;
      if (r.type !== "Placeholder" || (i = r.extra) != null && i.parenthesized)
        return super.parseExpressionStatement(s, r);
      if (this.match(14)) {
        let o = s;
        return o.label = this.finishPlaceholder(r, "Identifier"), this.next(), o.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(),
        this.finishNode(o, "LabeledStatement");
      }
      this.semicolon();
      let a = s;
      return a.name = r.name, this.finishPlaceholder(a, "Statement");
    }
    parseBlock(s, r, i) {
      return this.parsePlaceholder("BlockStatement") || super.parseBlock(s, r, i);
    }
    parseFunctionId(s) {
      return this.parsePlaceholder("Identifier") || super.parseFunctionId(s);
    }
    parseClass(s, r, i) {
      let a = r ? "ClassDeclaration" : "ClassExpression";
      this.next();
      let o = this.state.strict, l = this.parsePlaceholder("Identifier");
      if (l)
        if (this.match(81) || this.match(133) || this.match(5))
          s.id = l;
        else {
          if (i || !r)
            return s.id = null, s.body = this.finishPlaceholder(l, "ClassBody"), this.finishNode(s, a);
          throw this.raise(aX.ClassNameIsRequired, this.state.startLoc);
        }
      else
        this.parseClassId(s, r, i);
      return super.parseClassSuper(s), s.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!s.superClass, o), this.finishNode(
      s, a);
    }
    parseExport(s, r) {
      let i = this.parsePlaceholder("Identifier");
      if (!i) return super.parseExport(s, r);
      let a = s;
      if (!this.isContextual(98) && !this.match(12))
        return a.specifiers = [], a.source = null, a.declaration = this.finishPlaceholder(i, "Declaration"), this.finishNode(a, "ExportNamed\
Declaration");
      this.expectPlugin("exportDefaultFrom");
      let o = this.startNode();
      return o.exported = i, a.specifiers = [this.finishNode(o, "ExportDefaultSpecifier")], super.parseExport(a, r);
    }
    isExportDefaultSpecifier() {
      if (this.match(65)) {
        let s = this.nextTokenStart();
        if (this.isUnparsedContextual(s, "from") && this.input.startsWith(Zc(133), this.nextTokenStartSince(s + 4)))
          return !0;
      }
      return super.isExportDefaultSpecifier();
    }
    maybeParseExportDefaultSpecifier(s, r) {
      var i;
      return (i = s.specifiers) != null && i.length ? !0 : super.maybeParseExportDefaultSpecifier(s, r);
    }
    checkExport(s) {
      let {
        specifiers: r
      } = s;
      r != null && r.length && (s.specifiers = r.filter((i) => i.exported.type === "Placeholder")), super.checkExport(s), s.specifiers = r;
    }
    parseImport(s) {
      let r = this.parsePlaceholder("Identifier");
      if (!r) return super.parseImport(s);
      if (s.specifiers = [], !this.isContextual(98) && !this.match(12))
        return s.source = this.finishPlaceholder(r, "StringLiteral"), this.semicolon(), this.finishNode(s, "ImportDeclaration");
      let i = this.startNodeAtNode(r);
      return i.local = r, s.specifiers.push(this.finishNode(i, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(
      s) || this.parseNamedImportSpecifiers(s)), this.expectContextual(98), s.source = this.parseImportSource(), this.semicolon(), this.finishNode(
      s, "ImportDeclaration");
    }
    parseImportSource() {
      return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
    }
    assertNoSpace() {
      this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index) && this.raise(aX.UnexpectedSpace, this.state.lastTokEndLoc);
    }
  }, "placeholders"), ynt = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "V8IntrinsicMixin");
    }
    parseV8Intrinsic() {
      if (this.match(54)) {
        let s = this.state.startLoc, r = this.startNode();
        if (this.next(), Gs(this.state.type)) {
          let i = this.parseIdentifierName(), a = this.createIdentifier(r, i);
          if (a.type = "V8IntrinsicIdentifier", this.match(10))
            return a;
        }
        this.unexpected(s);
      }
    }
    parseExprAtom(s) {
      return this.parseV8Intrinsic() || super.parseExprAtom(s);
    }
  }, "v8intrinsic"), oX = ["minimal", "fsharp", "hack", "smart"], lX = ["^^", "@@", "^", "%", "#"];
  function gnt(t) {
    if (t.has("decorators")) {
      if (t.has("decorators-legacy"))
        throw new Error("Cannot use the decorators and decorators-legacy plugin together");
      let s = t.get("decorators").decoratorsBeforeExport;
      if (s != null && typeof s != "boolean")
        throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
      let r = t.get("decorators").allowCallParenthesized;
      if (r != null && typeof r != "boolean")
        throw new Error("'allowCallParenthesized' must be a boolean.");
    }
    if (t.has("flow") && t.has("typescript"))
      throw new Error("Cannot combine flow and typescript plugins.");
    if (t.has("placeholders") && t.has("v8intrinsic"))
      throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
    if (t.has("pipelineOperator")) {
      var e;
      let s = t.get("pipelineOperator").proposal;
      if (!oX.includes(s)) {
        let i = oX.map((a) => `"${a}"`).join(", ");
        throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${i}.`);
      }
      let r = ((e = t.get("recordAndTuple")) == null ? void 0 : e.syntaxType) === "hash";
      if (s === "hack") {
        if (t.has("placeholders"))
          throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
        if (t.has("v8intrinsic"))
          throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
        let i = t.get("pipelineOperator").topicToken;
        if (!lX.includes(i)) {
          let a = lX.map((o) => `"${o}"`).join(", ");
          throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${a}\
.`);
        }
        if (i === "#" && r)
          throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["\
recordAndTuple", t.get("recordAndTuple")])}\`.`);
      } else if (s === "smart" && r)
        throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", t.
        get("recordAndTuple")])}\`.`);
    }
    if (t.has("moduleAttributes")) {
      if (t.has("deprecatedImportAssert") || t.has("importAssertions"))
        throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");
      if (t.get("moduleAttributes").version !== "may-2020")
        throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the on\
ly supported value is 'may-2020'.");
    }
    if (t.has("importAssertions") && t.has("deprecatedImportAssert"))
      throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");
    if (!t.has("deprecatedImportAssert") && t.has("importAttributes") && t.get("importAttributes").deprecatedAssertSyntax && t.set("deprecat\
edImportAssert", {}), t.has("recordAndTuple")) {
      let s = t.get("recordAndTuple").syntaxType;
      if (s != null) {
        let r = ["hash", "bar"];
        if (!r.includes(s))
          throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + r.map((i) => `'${i}'`).join(", "));
      }
    }
    if (t.has("asyncDoExpressions") && !t.has("doExpressions")) {
      let s = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
      throw s.missingPlugins = "doExpressions", s;
    }
    if (t.has("optionalChainingAssign") && t.get("optionalChainingAssign").version !== "2023-07")
      throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, th\
e only supported value is '2023-07'.");
  }
  n(gnt, "validatePlugins");
  var AX = {
    estree: bit,
    jsx: ont,
    flow: nnt,
    typescript: pnt,
    v8intrinsic: ynt,
    placeholders: mnt
  }, Tnt = Object.keys(AX), zO = class extends XO {
    static {
      n(this, "ExpressionParser");
    }
    checkProto(e, s, r, i) {
      if (e.type === "SpreadElement" || this.isObjectMethod(e) || e.computed || e.shorthand)
        return;
      let a = e.key;
      if ((a.type === "Identifier" ? a.name : a.value) === "__proto__") {
        if (s) {
          this.raise(Z.RecordNoProto, a);
          return;
        }
        r.used && (i ? i.doubleProtoLoc === null && (i.doubleProtoLoc = a.loc.start) : this.raise(Z.DuplicateProto, a)), r.used = !0;
      }
    }
    shouldExitDescending(e, s) {
      return e.type === "ArrowFunctionExpression" && this.offsetToSourcePos(e.start) === s;
    }
    getExpression() {
      this.enterInitialScopes(), this.nextToken();
      let e = this.parseExpression();
      return this.match(140) || this.unexpected(), this.finalizeRemainingComments(), e.comments = this.comments, e.errors = this.state.errors,
      this.optionFlags & 128 && (e.tokens = this.tokens), e;
    }
    parseExpression(e, s) {
      return e ? this.disallowInAnd(() => this.parseExpressionBase(s)) : this.allowInAnd(() => this.parseExpressionBase(s));
    }
    parseExpressionBase(e) {
      let s = this.state.startLoc, r = this.parseMaybeAssign(e);
      if (this.match(12)) {
        let i = this.startNodeAt(s);
        for (i.expressions = [r]; this.eat(12); )
          i.expressions.push(this.parseMaybeAssign(e));
        return this.toReferencedList(i.expressions), this.finishNode(i, "SequenceExpression");
      }
      return r;
    }
    parseMaybeAssignDisallowIn(e, s) {
      return this.disallowInAnd(() => this.parseMaybeAssign(e, s));
    }
    parseMaybeAssignAllowIn(e, s) {
      return this.allowInAnd(() => this.parseMaybeAssign(e, s));
    }
    setOptionalParametersError(e, s) {
      var r;
      e.optionalParametersLoc = (r = s?.loc) != null ? r : this.state.startLoc;
    }
    parseMaybeAssign(e, s) {
      let r = this.state.startLoc;
      if (this.isContextual(108) && this.prodParam.hasYield) {
        let l = this.parseYield();
        return s && (l = s.call(this, l, r)), l;
      }
      let i;
      e ? i = !1 : (e = new Ud(), i = !0);
      let {
        type: a
      } = this.state;
      (a === 10 || Gs(a)) && (this.state.potentialArrowAt = this.state.start);
      let o = this.parseMaybeConditional(e);
      if (s && (o = s.call(this, o, r)), Ait(this.state.type)) {
        let l = this.startNodeAt(r), u = this.state.value;
        if (l.operator = u, this.match(29)) {
          this.toAssignable(o, !0), l.left = o;
          let c = r.index;
          e.doubleProtoLoc != null && e.doubleProtoLoc.index >= c && (e.doubleProtoLoc = null), e.shorthandAssignLoc != null && e.shorthandAssignLoc.
          index >= c && (e.shorthandAssignLoc = null), e.privateKeyLoc != null && e.privateKeyLoc.index >= c && (this.checkDestructuringPrivate(
          e), e.privateKeyLoc = null);
        } else
          l.left = o;
        return this.next(), l.right = this.parseMaybeAssign(), this.checkLVal(o, this.finishNode(l, "AssignmentExpression")), l;
      } else i && this.checkExpressionErrors(e, !0);
      return o;
    }
    parseMaybeConditional(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprOps(e);
      return this.shouldExitDescending(i, r) ? i : this.parseConditional(i, s, e);
    }
    parseConditional(e, s, r) {
      if (this.eat(17)) {
        let i = this.startNodeAt(s);
        return i.test = e, i.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), i.alternate = this.parseMaybeAssign(), this.finishNode(
        i, "ConditionalExpression");
      }
      return e;
    }
    parseMaybeUnaryOrPrivate(e) {
      return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(e);
    }
    parseExprOps(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseMaybeUnaryOrPrivate(e);
      return this.shouldExitDescending(i, r) ? i : this.parseExprOp(i, s, -1);
    }
    parseExprOp(e, s, r) {
      if (this.isPrivateName(e)) {
        let a = this.getPrivateNameSV(e);
        (r >= US(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(Z.PrivateInExpectedIn, e, {
          identifierName: a
        }), this.classScope.usePrivateName(a, e.loc.start);
      }
      let i = this.state.type;
      if (Cit(i) && (this.prodParam.hasIn || !this.match(58))) {
        let a = US(i);
        if (a > r) {
          if (i === 39) {
            if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
              return e;
            this.checkPipelineAtInfixOperator(e, s);
          }
          let o = this.startNodeAt(s);
          o.left = e, o.operator = this.state.value;
          let l = i === 41 || i === 42, u = i === 40;
          if (u && (a = US(42)), this.next(), i === 39 && this.hasPlugin(["pipelineOperator", {
            proposal: "minimal"
          }]) && this.state.type === 96 && this.prodParam.hasAwait)
            throw this.raise(Z.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
          o.right = this.parseExprOpRightExpr(i, a);
          let c = this.finishNode(o, l || u ? "LogicalExpression" : "BinaryExpression"), p = this.state.type;
          if (u && (p === 41 || p === 42) || l && p === 40)
            throw this.raise(Z.MixingCoalesceWithLogical, this.state.startLoc);
          return this.parseExprOp(c, s, r);
        }
      }
      return e;
    }
    parseExprOpRightExpr(e, s) {
      let r = this.state.startLoc;
      switch (e) {
        case 39:
          switch (this.getPluginOption("pipelineOperator", "proposal")) {
            case "hack":
              return this.withTopicBindingContext(() => this.parseHackPipeBody());
            case "fsharp":
              return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(s));
          }
          if (this.getPluginOption("pipelineOperator", "proposal") === "smart")
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(108))
                throw this.raise(Z.PipeBodyIsTighter, this.state.startLoc);
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(e, s), r);
            });
        default:
          return this.parseExprOpBaseRightExpr(e, s);
      }
    }
    parseExprOpBaseRightExpr(e, s) {
      let r = this.state.startLoc;
      return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, Dit(e) ? s - 1 : s);
    }
    parseHackPipeBody() {
      var e;
      let {
        startLoc: s
      } = this.state, r = this.parseMaybeAssign();
      return hit.has(r.type) && !((e = r.extra) != null && e.parenthesized) && this.raise(Z.PipeUnparenthesizedBody, s, {
        type: r.type
      }), this.topicReferenceWasUsedInCurrentContext() || this.raise(Z.PipeTopicUnused, s), r;
    }
    checkExponentialAfterUnary(e) {
      this.match(57) && this.raise(Z.UnexpectedTokenUnaryExponentiation, e.argument);
    }
    parseMaybeUnary(e, s) {
      let r = this.state.startLoc, i = this.isContextual(96);
      if (i && this.recordAwaitIfAllowed()) {
        this.next();
        let u = this.parseAwait(r);
        return s || this.checkExponentialAfterUnary(u), u;
      }
      let a = this.match(34), o = this.startNode();
      if (Iit(this.state.type)) {
        o.operator = this.state.value, o.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
        let u = this.match(89);
        if (this.next(), o.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(e, !0), this.state.strict && u) {
          let c = o.argument;
          c.type === "Identifier" ? this.raise(Z.StrictDelete, o) : this.hasPropertyAsPrivateName(c) && this.raise(Z.DeletePrivateField, o);
        }
        if (!a)
          return s || this.checkExponentialAfterUnary(o), this.finishNode(o, "UnaryExpression");
      }
      let l = this.parseUpdate(o, a, e);
      if (i) {
        let {
          type: u
        } = this.state;
        if ((this.hasPlugin("v8intrinsic") ? OO(u) : OO(u) && !this.match(54)) && !this.isAmbiguousAwait())
          return this.raiseOverwrite(Z.AwaitNotInAsyncContext, r), this.parseAwait(r);
      }
      return l;
    }
    parseUpdate(e, s, r) {
      if (s) {
        let o = e;
        return this.checkLVal(o.argument, this.finishNode(o, "UpdateExpression")), e;
      }
      let i = this.state.startLoc, a = this.parseExprSubscripts(r);
      if (this.checkExpressionErrors(r, !1)) return a;
      for (; wit(this.state.type) && !this.canInsertSemicolon(); ) {
        let o = this.startNodeAt(i);
        o.operator = this.state.value, o.prefix = !1, o.argument = a, this.next(), this.checkLVal(a, a = this.finishNode(o, "UpdateExpressio\
n"));
      }
      return a;
    }
    parseExprSubscripts(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprAtom(e);
      return this.shouldExitDescending(i, r) ? i : this.parseSubscripts(i, s);
    }
    parseSubscripts(e, s, r) {
      let i = {
        optionalChainMember: !1,
        maybeAsyncArrow: this.atPossibleAsyncArrow(e),
        stop: !1
      };
      do
        e = this.parseSubscript(e, s, r, i), i.maybeAsyncArrow = !1;
      while (!i.stop);
      return e;
    }
    parseSubscript(e, s, r, i) {
      let {
        type: a
      } = this.state;
      if (!r && a === 15)
        return this.parseBind(e, s, r, i);
      if (WS(a))
        return this.parseTaggedTemplateExpression(e, s, i);
      let o = !1;
      if (a === 18) {
        if (r && (this.raise(Z.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
          return i.stop = !0, e;
        i.optionalChainMember = o = !0, this.next();
      }
      if (!r && this.match(10))
        return this.parseCoverCallAndAsyncArrowHead(e, s, i, o);
      {
        let l = this.eat(0);
        return l || o || this.eat(16) ? this.parseMember(e, s, i, l, o) : (i.stop = !0, e);
      }
    }
    parseMember(e, s, r, i, a) {
      let o = this.startNodeAt(s);
      return o.object = e, o.computed = i, i ? (o.property = this.parseExpression(), this.expect(3)) : this.match(139) ? (e.type === "Super" &&
      this.raise(Z.SuperPrivateField, s), this.classScope.usePrivateName(this.state.value, this.state.startLoc), o.property = this.parsePrivateName()) :
      o.property = this.parseIdentifier(!0), r.optionalChainMember ? (o.optional = a, this.finishNode(o, "OptionalMemberExpression")) : this.
      finishNode(o, "MemberExpression");
    }
    parseBind(e, s, r, i) {
      let a = this.startNodeAt(s);
      return a.object = e, this.next(), a.callee = this.parseNoCallExpr(), i.stop = !0, this.parseSubscripts(this.finishNode(a, "BindExpress\
ion"), s, r);
    }
    parseCoverCallAndAsyncArrowHead(e, s, r, i) {
      let a = this.state.maybeInArrowParameters, o = null;
      this.state.maybeInArrowParameters = !0, this.next();
      let l = this.startNodeAt(s);
      l.callee = e;
      let {
        maybeAsyncArrow: u,
        optionalChainMember: c
      } = r;
      u && (this.expressionScope.enter(Git()), o = new Ud()), c && (l.optional = i), i ? l.arguments = this.parseCallExpressionArguments(11) :
      l.arguments = this.parseCallExpressionArguments(11, e.type !== "Super", l, o);
      let p = this.finishCallExpression(l, c);
      return u && this.shouldParseAsyncArrow() && !i ? (r.stop = !0, this.checkDestructuringPrivate(o), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), p = this.parseAsyncArrowFromCallExpression(this.startNodeAt(s), p)) : (u && (this.checkExpressionErrors(o,
      !0), this.expressionScope.exit()), this.toReferencedArguments(p)), this.state.maybeInArrowParameters = a, p;
    }
    toReferencedArguments(e, s) {
      this.toReferencedListDeep(e.arguments, s);
    }
    parseTaggedTemplateExpression(e, s, r) {
      let i = this.startNodeAt(s);
      return i.tag = e, i.quasi = this.parseTemplate(!0), r.optionalChainMember && this.raise(Z.OptionalChainingNoTemplate, s), this.finishNode(
      i, "TaggedTemplateExpression");
    }
    atPossibleAsyncArrow(e) {
      return e.type === "Identifier" && e.name === "async" && this.state.lastTokEndLoc.index === e.end && !this.canInsertSemicolon() && e.end -
      e.start === 5 && this.offsetToSourcePos(e.start) === this.state.potentialArrowAt;
    }
    finishCallExpression(e, s) {
      if (e.callee.type === "Import")
        if (e.arguments.length === 0 || e.arguments.length > 2)
          this.raise(Z.ImportCallArity, e);
        else
          for (let r of e.arguments)
            r.type === "SpreadElement" && this.raise(Z.ImportCallSpreadArgument, r);
      return this.finishNode(e, s ? "OptionalCallExpression" : "CallExpression");
    }
    parseCallExpressionArguments(e, s, r, i) {
      let a = [], o = !0, l = this.state.inFSharpPipelineDirectBody;
      for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          r && this.addTrailingCommaExtraToNode(r), this.next();
          break;
        }
        a.push(this.parseExprListItem(!1, i, s));
      }
      return this.state.inFSharpPipelineDirectBody = l, a;
    }
    shouldParseAsyncArrow() {
      return this.match(19) && !this.canInsertSemicolon();
    }
    parseAsyncArrowFromCallExpression(e, s) {
      var r;
      return this.resetPreviousNodeTrailingComments(s), this.expect(19), this.parseArrowExpression(e, s.arguments, !0, (r = s.extra) == null ?
      void 0 : r.trailingCommaLoc), s.innerComments && Wg(e, s.innerComments), s.callee.trailingComments && Wg(e, s.callee.trailingComments),
      e;
    }
    parseNoCallExpr() {
      let e = this.state.startLoc;
      return this.parseSubscripts(this.parseExprAtom(), e, !0);
    }
    parseExprAtom(e) {
      let s, r = null, {
        type: i
      } = this.state;
      switch (i) {
        case 79:
          return this.parseSuper();
        case 83:
          return s = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(s) : this.match(10) ? this.optionFlags & 256 ?
          this.parseImportCall(s) : this.finishNode(s, "Import") : (this.raise(Z.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(
          s, "Import"));
        case 78:
          return s = this.startNode(), this.next(), this.finishNode(s, "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: {
          let a = this.state.potentialArrowAt === this.state.start;
          return this.parseParenAndDistinguishExpression(a);
        }
        case 2:
        case 1:
          return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
        case 0:
          return this.parseArrayLike(3, !0, !1, e);
        case 6:
        case 7:
          return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
        case 5:
          return this.parseObjectLike(8, !1, !1, e);
        case 68:
          return this.parseFunctionOrFunctionSent();
        case 26:
          r = this.parseDecorators();
        case 80:
          return this.parseClass(this.maybeTakeDecorators(r, this.startNode()), !1);
        case 77:
          return this.parseNewOrNewTarget();
        case 25:
        case 24:
          return this.parseTemplate(!1);
        case 15: {
          s = this.startNode(), this.next(), s.object = null;
          let a = s.callee = this.parseNoCallExpr();
          if (a.type === "MemberExpression")
            return this.finishNode(s, "BindExpression");
          throw this.raise(Z.UnsupportedBind, a);
        }
        case 139:
          return this.raise(Z.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: {
          let a = this.getPluginOption("pipelineOperator", "proposal");
          if (a)
            return this.parseTopicReference(a);
          this.unexpected();
          break;
        }
        case 47: {
          let a = this.input.codePointAt(this.nextTokenStart());
          hu(a) || a === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
          break;
        }
        default:
          if (i === 137)
            return this.parseDecimalLiteral(this.state.value);
          if (Gs(i)) {
            if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
              return this.parseModuleExpression();
            let a = this.state.potentialArrowAt === this.state.start, o = this.state.containsEsc, l = this.parseIdentifier();
            if (!o && l.name === "async" && !this.canInsertSemicolon()) {
              let {
                type: u
              } = this.state;
              if (u === 68)
                return this.resetPreviousNodeTrailingComments(l), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(l));
              if (Gs(u))
                return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(l)) : l;
              if (u === 90)
                return this.resetPreviousNodeTrailingComments(l), this.parseDo(this.startNodeAtNode(l), !0);
            }
            return a && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(l), [l],
            !1)) : l;
          } else
            this.unexpected();
      }
    }
    parseTopicReferenceThenEqualsSign(e, s) {
      let r = this.getPluginOption("pipelineOperator", "proposal");
      if (r)
        return this.state.type = e, this.state.value = s, this.state.pos--, this.state.end--, this.state.endLoc = Cn(this.state.endLoc, -1),
        this.parseTopicReference(r);
      this.unexpected();
    }
    parseTopicReference(e) {
      let s = this.startNode(), r = this.state.startLoc, i = this.state.type;
      return this.next(), this.finishTopicReference(s, r, e, i);
    }
    finishTopicReference(e, s, r, i) {
      if (this.testTopicReferenceConfiguration(r, s, i))
        return r === "hack" ? (this.topicReferenceIsAllowedInCurrentContext() || this.raise(Z.PipeTopicUnbound, s), this.registerTopicReference(),
        this.finishNode(e, "TopicReference")) : (this.topicReferenceIsAllowedInCurrentContext() || this.raise(Z.PrimaryTopicNotAllowed, s), this.
        registerTopicReference(), this.finishNode(e, "PipelinePrimaryTopicReference"));
      throw this.raise(Z.PipeTopicUnconfiguredToken, s, {
        token: Zc(i)
      });
    }
    testTopicReferenceConfiguration(e, s, r) {
      switch (e) {
        case "hack":
          return this.hasPlugin(["pipelineOperator", {
            topicToken: Zc(r)
          }]);
        case "smart":
          return r === 27;
        default:
          throw this.raise(Z.PipeTopicRequiresHackPipes, s);
      }
    }
    parseAsyncArrowUnaryFunction(e) {
      this.prodParam.enter(KS(!0, this.prodParam.hasYield));
      let s = [this.parseIdentifier()];
      return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(Z.LineTerminatorBeforeArrow, this.state.curPosition()), this.
      expect(19), this.parseArrowExpression(e, s, !0);
    }
    parseDo(e, s) {
      this.expectPlugin("doExpressions"), s && this.expectPlugin("asyncDoExpressions"), e.async = s, this.next();
      let r = this.state.labels;
      return this.state.labels = [], s ? (this.prodParam.enter(2), e.body = this.parseBlock(), this.prodParam.exit()) : e.body = this.parseBlock(),
      this.state.labels = r, this.finishNode(e, "DoExpression");
    }
    parseSuper() {
      let e = this.startNode();
      return this.next(), this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16) ? this.raise(Z.SuperNotAllowed, e) : !this.
      scope.allowSuper && !(this.optionFlags & 16) && this.raise(Z.UnexpectedSuper, e), !this.match(10) && !this.match(0) && !this.match(16) &&
      this.raise(Z.UnsupportedSuper, e), this.finishNode(e, "Super");
    }
    parsePrivateName() {
      let e = this.startNode(), s = this.startNodeAt(Cn(this.state.startLoc, 1)), r = this.state.value;
      return this.next(), e.id = this.createIdentifier(s, r), this.finishNode(e, "PrivateName");
    }
    parseFunctionOrFunctionSent() {
      let e = this.startNode();
      if (this.next(), this.prodParam.hasYield && this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "function");
        return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.
        parseMetaProperty(e, s, "sent");
      }
      return this.parseFunction(e);
    }
    parseMetaProperty(e, s, r) {
      e.meta = s;
      let i = this.state.containsEsc;
      return e.property = this.parseIdentifier(!0), (e.property.name !== r || i) && this.raise(Z.UnsupportedMetaProperty, e.property, {
        target: s.name,
        onlyValidPropertyName: r
      }), this.finishNode(e, "MetaProperty");
    }
    parseImportMetaProperty(e) {
      let s = this.createIdentifier(this.startNodeAtNode(e), "import");
      if (this.next(), this.isContextual(101))
        this.inModule || this.raise(Z.ImportMetaOutsideModule, s), this.sawUnambiguousESM = !0;
      else if (this.isContextual(105) || this.isContextual(97)) {
        let r = this.isContextual(105);
        if (this.expectPlugin(r ? "sourcePhaseImports" : "deferredImportEvaluation"), !(this.optionFlags & 256))
          throw this.raise(Z.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
            phase: this.state.value
          });
        return this.next(), e.phase = r ? "source" : "defer", this.parseImportCall(e);
      }
      return this.parseMetaProperty(e, s, "meta");
    }
    parseLiteralAtNode(e, s, r) {
      return this.addExtra(r, "rawValue", e), this.addExtra(r, "raw", this.input.slice(this.offsetToSourcePos(r.start), this.state.end)), r.
      value = e, this.next(), this.finishNode(r, s);
    }
    parseLiteral(e, s) {
      let r = this.startNode();
      return this.parseLiteralAtNode(e, s, r);
    }
    parseStringLiteral(e) {
      return this.parseLiteral(e, "StringLiteral");
    }
    parseNumericLiteral(e) {
      return this.parseLiteral(e, "NumericLiteral");
    }
    parseBigIntLiteral(e) {
      return this.parseLiteral(e, "BigIntLiteral");
    }
    parseDecimalLiteral(e) {
      return this.parseLiteral(e, "DecimalLiteral");
    }
    parseRegExpLiteral(e) {
      let s = this.startNode();
      return this.addExtra(s, "raw", this.input.slice(this.offsetToSourcePos(s.start), this.state.end)), s.pattern = e.pattern, s.flags = e.
      flags, this.next(), this.finishNode(s, "RegExpLiteral");
    }
    parseBooleanLiteral(e) {
      let s = this.startNode();
      return s.value = e, this.next(), this.finishNode(s, "BooleanLiteral");
    }
    parseNullLiteral() {
      let e = this.startNode();
      return this.next(), this.finishNode(e, "NullLiteral");
    }
    parseParenAndDistinguishExpression(e) {
      let s = this.state.startLoc, r;
      this.next(), this.expressionScope.enter(zit());
      let i = this.state.maybeInArrowParameters, a = this.state.inFSharpPipelineDirectBody;
      this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
      let o = this.state.startLoc, l = [], u = new Ud(), c = !0, p, h;
      for (; !this.match(11); ) {
        if (c)
          c = !1;
        else if (this.expect(12, u.optionalParametersLoc === null ? null : u.optionalParametersLoc), this.match(11)) {
          h = this.state.startLoc;
          break;
        }
        if (this.match(21)) {
          let m = this.state.startLoc;
          if (p = this.state.startLoc, l.push(this.parseParenItem(this.parseRestBinding(), m)), !this.checkCommaAfterRest(41))
            break;
        } else
          l.push(this.parseMaybeAssignAllowIn(u, this.parseParenItem));
      }
      let f = this.state.lastTokEndLoc;
      this.expect(11), this.state.maybeInArrowParameters = i, this.state.inFSharpPipelineDirectBody = a;
      let d = this.startNodeAt(s);
      return e && this.shouldParseArrow(l) && (d = this.parseArrow(d)) ? (this.checkDestructuringPrivate(u), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), this.parseArrowExpression(d, l, !1), d) : (this.expressionScope.exit(), l.length || this.unexpected(this.
      state.lastTokStartLoc), h && this.unexpected(h), p && this.unexpected(p), this.checkExpressionErrors(u, !0), this.toReferencedListDeep(
      l, !0), l.length > 1 ? (r = this.startNodeAt(o), r.expressions = l, this.finishNode(r, "SequenceExpression"), this.resetEndLocation(r,
      f)) : r = l[0], this.wrapParenthesis(s, r));
    }
    wrapParenthesis(e, s) {
      if (!(this.optionFlags & 512))
        return this.addExtra(s, "parenthesized", !0), this.addExtra(s, "parenStart", e.index), this.takeSurroundingComments(s, e.index, this.
        state.lastTokEndLoc.index), s;
      let r = this.startNodeAt(e);
      return r.expression = s, this.finishNode(r, "ParenthesizedExpression");
    }
    shouldParseArrow(e) {
      return !this.canInsertSemicolon();
    }
    parseArrow(e) {
      if (this.eat(19))
        return e;
    }
    parseParenItem(e, s) {
      return e;
    }
    parseNewOrNewTarget() {
      let e = this.startNode();
      if (this.next(), this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "new");
        this.next();
        let r = this.parseMetaProperty(e, s, "target");
        return !this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4) && this.raise(Z.UnexpectedNewTarget, r), r;
      }
      return this.parseNew(e);
    }
    parseNew(e) {
      if (this.parseNewCallee(e), this.eat(10)) {
        let s = this.parseExprList(11);
        this.toReferencedList(s), e.arguments = s;
      } else
        e.arguments = [];
      return this.finishNode(e, "NewExpression");
    }
    parseNewCallee(e) {
      let s = this.match(83), r = this.parseNoCallExpr();
      e.callee = r, s && (r.type === "Import" || r.type === "ImportExpression") && this.raise(Z.ImportCallNotNewExpression, r);
    }
    parseTemplateElement(e) {
      let {
        start: s,
        startLoc: r,
        end: i,
        value: a
      } = this.state, o = s + 1, l = this.startNodeAt(Cn(r, 1));
      a === null && (e || this.raise(Z.InvalidEscapeSequenceTemplate, Cn(this.state.firstInvalidTemplateEscapePos, 1)));
      let u = this.match(24), c = u ? -1 : -2, p = i + c;
      l.value = {
        raw: this.input.slice(o, p).replace(/\r\n?/g, `
`),
        cooked: a === null ? null : a.slice(1, c)
      }, l.tail = u, this.next();
      let h = this.finishNode(l, "TemplateElement");
      return this.resetEndLocation(h, Cn(this.state.lastTokEndLoc, c)), h;
    }
    parseTemplate(e) {
      let s = this.startNode(), r = this.parseTemplateElement(e), i = [r], a = [];
      for (; !r.tail; )
        a.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), i.push(r = this.parseTemplateElement(e));
      return s.expressions = a, s.quasis = i, this.finishNode(s, "TemplateLiteral");
    }
    parseTemplateSubstitution() {
      return this.parseExpression();
    }
    parseObjectLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = /* @__PURE__ */ Object.create(null), l = !0, u = this.startNode();
      for (u.properties = [], this.next(); !this.match(e); ) {
        if (l)
          l = !1;
        else if (this.expect(12), this.match(e)) {
          this.addTrailingCommaExtraToNode(u);
          break;
        }
        let p;
        s ? p = this.parseBindingProperty() : (p = this.parsePropertyDefinition(i), this.checkProto(p, r, o, i)), r && !this.isObjectProperty(
        p) && p.type !== "SpreadElement" && this.raise(Z.InvalidRecordProperty, p), p.shorthand && this.addExtra(p, "shorthand", !0), u.properties.
        push(p);
      }
      this.next(), this.state.inFSharpPipelineDirectBody = a;
      let c = "ObjectExpression";
      return s ? c = "ObjectPattern" : r && (c = "RecordExpression"), this.finishNode(u, c);
    }
    addTrailingCommaExtraToNode(e) {
      this.addExtra(e, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(e, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
    }
    maybeAsyncOrAccessorProp(e) {
      return !e.computed && e.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
    }
    parsePropertyDefinition(e) {
      let s = [];
      if (this.match(26))
        for (this.hasPlugin("decorators") && this.raise(Z.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
          s.push(this.parseDecorator());
      let r = this.startNode(), i = !1, a = !1, o;
      if (this.match(21))
        return s.length && this.unexpected(), this.parseSpread();
      s.length && (r.decorators = s, s = []), r.method = !1, e && (o = this.state.startLoc);
      let l = this.eat(55);
      this.parsePropertyNamePrefixOperator(r);
      let u = this.state.containsEsc;
      if (this.parsePropertyName(r, e), !l && !u && this.maybeAsyncOrAccessorProp(r)) {
        let {
          key: c
        } = r, p = c.name;
        p === "async" && !this.hasPrecedingLineBreak() && (i = !0, this.resetPreviousNodeTrailingComments(c), l = this.eat(55), this.parsePropertyName(
        r)), (p === "get" || p === "set") && (a = !0, this.resetPreviousNodeTrailingComments(c), r.kind = p, this.match(55) && (l = !0, this.
        raise(Z.AccessorIsGenerator, this.state.curPosition(), {
          kind: p
        }), this.next()), this.parsePropertyName(r));
      }
      return this.parseObjPropValue(r, o, l, i, !1, a, e);
    }
    getGetterSetterExpectedParamCount(e) {
      return e.kind === "get" ? 0 : 1;
    }
    getObjectOrClassMethodParams(e) {
      return e.params;
    }
    checkGetterSetterParams(e) {
      var s;
      let r = this.getGetterSetterExpectedParamCount(e), i = this.getObjectOrClassMethodParams(e);
      i.length !== r && this.raise(e.kind === "get" ? Z.BadGetterArity : Z.BadSetterArity, e), e.kind === "set" && ((s = i[i.length - 1]) ==
      null ? void 0 : s.type) === "RestElement" && this.raise(Z.BadSetterRestParameter, e);
    }
    parseObjectMethod(e, s, r, i, a) {
      if (a) {
        let o = this.parseMethod(e, s, !1, !1, !1, "ObjectMethod");
        return this.checkGetterSetterParams(o), o;
      }
      if (r || s || this.match(10))
        return i && this.unexpected(), e.kind = "method", e.method = !0, this.parseMethod(e, s, r, !1, !1, "ObjectMethod");
    }
    parseObjectProperty(e, s, r, i) {
      if (e.shorthand = !1, this.eat(14))
        return e.value = r ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(i), this.finishNode(e, "ObjectProper\
ty");
      if (!e.computed && e.key.type === "Identifier") {
        if (this.checkReservedWord(e.key.name, e.key.loc.start, !0, !1), r)
          e.value = this.parseMaybeDefault(s, du(e.key));
        else if (this.match(29)) {
          let a = this.state.startLoc;
          i != null ? i.shorthandAssignLoc === null && (i.shorthandAssignLoc = a) : this.raise(Z.InvalidCoverInitializedName, a), e.value = this.
          parseMaybeDefault(s, du(e.key));
        } else
          e.value = du(e.key);
        return e.shorthand = !0, this.finishNode(e, "ObjectProperty");
      }
    }
    parseObjPropValue(e, s, r, i, a, o, l) {
      let u = this.parseObjectMethod(e, r, i, a, o) || this.parseObjectProperty(e, s, a, l);
      return u || this.unexpected(), u;
    }
    parsePropertyName(e, s) {
      if (this.eat(0))
        e.computed = !0, e.key = this.parseMaybeAssignAllowIn(), this.expect(3);
      else {
        let {
          type: r,
          value: i
        } = this.state, a;
        if (Eo(r))
          a = this.parseIdentifier(!0);
        else
          switch (r) {
            case 135:
              a = this.parseNumericLiteral(i);
              break;
            case 134:
              a = this.parseStringLiteral(i);
              break;
            case 136:
              a = this.parseBigIntLiteral(i);
              break;
            case 139: {
              let o = this.state.startLoc;
              s != null ? s.privateKeyLoc === null && (s.privateKeyLoc = o) : this.raise(Z.UnexpectedPrivateField, o), a = this.parsePrivateName();
              break;
            }
            default:
              if (r === 137) {
                a = this.parseDecimalLiteral(i);
                break;
              }
              this.unexpected();
          }
        e.key = a, r !== 139 && (e.computed = !1);
      }
    }
    initFunction(e, s) {
      e.id = null, e.generator = !1, e.async = s;
    }
    parseMethod(e, s, r, i, a, o, l = !1) {
      this.initFunction(e, r), e.generator = s, this.scope.enter(18 | (l ? 64 : 0) | (a ? 32 : 0)), this.prodParam.enter(KS(r, e.generator)),
      this.parseFunctionParams(e, i);
      let u = this.parseFunctionBodyAndFinish(e, o, !0);
      return this.prodParam.exit(), this.scope.exit(), u;
    }
    parseArrayLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = this.startNode();
      return this.next(), o.elements = this.parseExprList(e, !r, i, o), this.state.inFSharpPipelineDirectBody = a, this.finishNode(o, r ? "T\
upleExpression" : "ArrayExpression");
    }
    parseArrowExpression(e, s, r, i) {
      this.scope.enter(6);
      let a = KS(r, !1);
      !this.match(5) && this.prodParam.hasIn && (a |= 8), this.prodParam.enter(a), this.initFunction(e, r);
      let o = this.state.maybeInArrowParameters;
      return s && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(e, s, i)), this.state.maybeInArrowParameters = !1,
      this.parseFunctionBody(e, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = o, this.finishNode(e, "Ar\
rowFunctionExpression");
    }
    setArrowFunctionParameters(e, s, r) {
      this.toAssignableList(s, r, !1), e.params = s;
    }
    parseFunctionBodyAndFinish(e, s, r = !1) {
      return this.parseFunctionBody(e, !1, r), this.finishNode(e, s);
    }
    parseFunctionBody(e, s, r = !1) {
      let i = s && !this.match(5);
      if (this.expressionScope.enter(xX()), i)
        e.body = this.parseMaybeAssign(), this.checkParams(e, !1, s, !1);
      else {
        let a = this.state.strict, o = this.state.labels;
        this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), e.body = this.parseBlock(!0, !1, (l) => {
          let u = !this.isSimpleParamList(e.params);
          l && u && this.raise(Z.IllegalLanguageModeDirective, (e.kind === "method" || e.kind === "constructor") && e.key ? e.key.loc.end : e);
          let c = !a && this.state.strict;
          this.checkParams(e, !this.state.strict && !s && !r && !u, s, c), this.state.strict && e.id && this.checkIdentifier(e.id, 65, c);
        }), this.prodParam.exit(), this.state.labels = o;
      }
      this.expressionScope.exit();
    }
    isSimpleParameter(e) {
      return e.type === "Identifier";
    }
    isSimpleParamList(e) {
      for (let s = 0, r = e.length; s < r; s++)
        if (!this.isSimpleParameter(e[s])) return !1;
      return !0;
    }
    checkParams(e, s, r, i = !0) {
      let a = !s && /* @__PURE__ */ new Set(), o = {
        type: "FormalParameters"
      };
      for (let l of e.params)
        this.checkLVal(l, o, 5, a, i);
    }
    parseExprList(e, s, r, i) {
      let a = [], o = !0;
      for (; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          i && this.addTrailingCommaExtraToNode(i), this.next();
          break;
        }
        a.push(this.parseExprListItem(s, r));
      }
      return a;
    }
    parseExprListItem(e, s, r) {
      let i;
      if (this.match(12))
        e || this.raise(Z.UnexpectedToken, this.state.curPosition(), {
          unexpected: ","
        }), i = null;
      else if (this.match(21)) {
        let a = this.state.startLoc;
        i = this.parseParenItem(this.parseSpread(s), a);
      } else if (this.match(17)) {
        this.expectPlugin("partialApplication"), r || this.raise(Z.UnexpectedArgumentPlaceholder, this.state.startLoc);
        let a = this.startNode();
        this.next(), i = this.finishNode(a, "ArgumentPlaceholder");
      } else
        i = this.parseMaybeAssignAllowIn(s, this.parseParenItem);
      return i;
    }
    parseIdentifier(e) {
      let s = this.startNode(), r = this.parseIdentifierName(e);
      return this.createIdentifier(s, r);
    }
    createIdentifier(e, s) {
      return e.name = s, e.loc.identifierName = s, this.finishNode(e, "Identifier");
    }
    parseIdentifierName(e) {
      let s, {
        startLoc: r,
        type: i
      } = this.state;
      Eo(i) ? s = this.state.value : this.unexpected();
      let a = Pit(i);
      return e ? a && this.replaceToken(132) : this.checkReservedWord(s, r, a, !1), this.next(), s;
    }
    checkReservedWord(e, s, r, i) {
      if (e.length > 10 || !Uit(e))
        return;
      if (r && jit(e)) {
        this.raise(Z.UnexpectedKeyword, s, {
          keyword: e
        });
        return;
      }
      if ((this.state.strict ? i ? yX : dX : fX)(e, this.inModule)) {
        this.raise(Z.UnexpectedReservedWord, s, {
          reservedWord: e
        });
        return;
      } else if (e === "yield") {
        if (this.prodParam.hasYield) {
          this.raise(Z.YieldBindingIdentifier, s);
          return;
        }
      } else if (e === "await") {
        if (this.prodParam.hasAwait) {
          this.raise(Z.AwaitBindingIdentifier, s);
          return;
        }
        if (this.scope.inStaticBlock) {
          this.raise(Z.AwaitBindingIdentifierInStaticBlock, s);
          return;
        }
        this.expressionScope.recordAsyncArrowParametersError(s);
      } else if (e === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
        this.raise(Z.ArgumentsInClass, s);
        return;
      }
    }
    recordAwaitIfAllowed() {
      let e = this.prodParam.hasAwait || this.optionFlags & 1 && !this.scope.inFunction;
      return e && !this.scope.inFunction && (this.state.hasTopLevelAwait = !0), e;
    }
    parseAwait(e) {
      let s = this.startNodeAt(e);
      return this.expressionScope.recordParameterInitializerError(Z.AwaitExpressionFormalParameter, s), this.eat(55) && this.raise(Z.ObsoleteAwaitStar,
      s), !this.scope.inFunction && !(this.optionFlags & 1) && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM =
      !0), this.state.soloAwait || (s.argument = this.parseMaybeUnary(null, !0)), this.finishNode(s, "AwaitExpression");
    }
    isAmbiguousAwait() {
      if (this.hasPrecedingLineBreak()) return !0;
      let {
        type: e
      } = this.state;
      return e === 53 || e === 10 || e === 0 || WS(e) || e === 102 && !this.state.containsEsc || e === 138 || e === 56 || this.hasPlugin("v8\
intrinsic") && e === 54;
    }
    parseYield() {
      let e = this.startNode();
      this.expressionScope.recordParameterInitializerError(Z.YieldInParameter, e), this.next();
      let s = !1, r = null;
      if (!this.hasPrecedingLineBreak())
        switch (s = this.eat(55), this.state.type) {
          case 13:
          case 140:
          case 8:
          case 11:
          case 3:
          case 9:
          case 14:
          case 12:
            if (!s) break;
          default:
            r = this.parseMaybeAssign();
        }
      return e.delegate = s, e.argument = r, this.finishNode(e, "YieldExpression");
    }
    parseImportCall(e) {
      if (this.next(), e.source = this.parseMaybeAssignAllowIn(), e.options = null, this.eat(12) && !this.match(11) && (e.options = this.parseMaybeAssignAllowIn(),
      this.eat(12) && !this.match(11))) {
        do
          this.parseMaybeAssignAllowIn();
        while (this.eat(12) && !this.match(11));
        this.raise(Z.ImportCallArity, e);
      }
      return this.expect(11), this.finishNode(e, "ImportExpression");
    }
    checkPipelineAtInfixOperator(e, s) {
      this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }]) && e.type === "SequenceExpression" && this.raise(Z.PipelineHeadSequenceExpression, s);
    }
    parseSmartPipelineBodyInStyle(e, s) {
      if (this.isSimpleReference(e)) {
        let r = this.startNodeAt(s);
        return r.callee = e, this.finishNode(r, "PipelineBareFunction");
      } else {
        let r = this.startNodeAt(s);
        return this.checkSmartPipeTopicBodyEarlyErrors(s), r.expression = e, this.finishNode(r, "PipelineTopicExpression");
      }
    }
    isSimpleReference(e) {
      switch (e.type) {
        case "MemberExpression":
          return !e.computed && this.isSimpleReference(e.object);
        case "Identifier":
          return !0;
        default:
          return !1;
      }
    }
    checkSmartPipeTopicBodyEarlyErrors(e) {
      if (this.match(19))
        throw this.raise(Z.PipelineBodyNoArrow, this.state.startLoc);
      this.topicReferenceWasUsedInCurrentContext() || this.raise(Z.PipelineTopicUnused, e);
    }
    withTopicBindingContext(e) {
      let s = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 1,
        maxTopicIndex: null
      };
      try {
        return e();
      } finally {
        this.state.topicContext = s;
      }
    }
    withSmartMixTopicForbiddingContext(e) {
      if (this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }])) {
        let s = this.state.topicContext;
        this.state.topicContext = {
          maxNumOfResolvableTopics: 0,
          maxTopicIndex: null
        };
        try {
          return e();
        } finally {
          this.state.topicContext = s;
        }
      } else
        return e();
    }
    withSoloAwaitPermittingContext(e) {
      let s = this.state.soloAwait;
      this.state.soloAwait = !0;
      try {
        return e();
      } finally {
        this.state.soloAwait = s;
      }
    }
    allowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & ~s) {
        this.prodParam.enter(s | 8);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    disallowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & s) {
        this.prodParam.enter(s & -9);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    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(e) {
      let s = this.state.startLoc;
      this.state.potentialArrowAt = this.state.start;
      let r = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !0;
      let i = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), s, e);
      return this.state.inFSharpPipelineDirectBody = r, i;
    }
    parseModuleExpression() {
      this.expectPlugin("moduleBlocks");
      let e = this.startNode();
      this.next(), this.match(5) || this.unexpected(null, 5);
      let s = this.startNodeAt(this.state.endLoc);
      this.next();
      let r = this.initializeScopes(!0);
      this.enterInitialScopes();
      try {
        e.body = this.parseProgram(s, 8, "module");
      } finally {
        r();
      }
      return this.finishNode(e, "ModuleExpression");
    }
    parsePropertyNamePrefixOperator(e) {
    }
  }, kO = {
    kind: 1
  }, bnt = {
    kind: 2
  }, xnt = /[\uD800-\uDFFF]/u, DO = /in(?:stanceof)?/y;
  function Snt(t, e, s) {
    for (let r = 0; r < t.length; r++) {
      let i = t[r], {
        type: a
      } = i;
      if (typeof a == "number") {
        {
          if (a === 139) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Cn(o.start, 1);
            t.splice(r, 1, new ll({
              type: cu(27),
              value: "#",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }), new ll({
              type: cu(132),
              value: u,
              start: p,
              end: c,
              startLoc: h,
              endLoc: o.end
            })), r++;
            continue;
          }
          if (WS(a)) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Cn(o.start, 1), f;
            e.charCodeAt(l - s) === 96 ? f = new ll({
              type: cu(22),
              value: "`",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }) : f = new ll({
              type: cu(8),
              value: "}",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            });
            let d, m, y, T;
            a === 24 ? (m = c - 1, y = Cn(o.end, -1), d = u === null ? null : u.slice(1, -1), T = new ll({
              type: cu(22),
              value: "`",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })) : (m = c - 2, y = Cn(o.end, -2), d = u === null ? null : u.slice(1, -2), T = new ll({
              type: cu(23),
              value: "${",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })), t.splice(r, 1, f, new ll({
              type: cu(20),
              value: d,
              start: p,
              end: m,
              startLoc: h,
              endLoc: y
            }), T), r += 2;
            continue;
          }
        }
        i.type = cu(a);
      }
    }
    return t;
  }
  n(Snt, "babel7CompatTokens");
  var GO = class extends zO {
    static {
      n(this, "StatementParser");
    }
    parseTopLevel(e, s) {
      return e.program = this.parseProgram(s), e.comments = this.comments, this.optionFlags & 128 && (e.tokens = Snt(this.tokens, this.input,
      this.startIndex)), this.finishNode(e, "File");
    }
    parseProgram(e, s = 140, r = this.options.sourceType) {
      if (e.sourceType = r, e.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(e, !0, !0, s), this.inModule) {
        if (!(this.optionFlags & 32) && this.scope.undefinedExports.size > 0)
          for (let [a, o] of Array.from(this.scope.undefinedExports))
            this.raise(Z.ModuleExportUndefined, o, {
              localName: a
            });
        this.addExtra(e, "topLevelAwait", this.state.hasTopLevelAwait);
      }
      let i;
      return s === 140 ? i = this.finishNode(e, "Program") : i = this.finishNodeAt(e, "Program", Cn(this.state.startLoc, -1)), i;
    }
    stmtToDirective(e) {
      let s = e;
      s.type = "Directive", s.value = s.expression, delete s.expression;
      let r = s.value, i = r.value, a = this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(r.end)), o = r.value = a.slice(
      1, -1);
      return this.addExtra(r, "raw", a), this.addExtra(r, "rawValue", o), this.addExtra(r, "expressionValue", i), r.type = "DirectiveLiteral",
      s;
    }
    parseInterpreterDirective() {
      if (!this.match(28))
        return null;
      let e = this.startNode();
      return e.value = this.state.value, this.next(), this.finishNode(e, "InterpreterDirective");
    }
    isLet() {
      return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
    }
    chStartsBindingIdentifier(e, s) {
      if (hu(e)) {
        if (DO.lastIndex = s, DO.test(this.input)) {
          let r = this.codePointAtPos(DO.lastIndex);
          if (!Rd(r) && r !== 92)
            return !1;
        }
        return !0;
      } else return e === 92;
    }
    chStartsBindingPattern(e) {
      return e === 91 || e === 123;
    }
    hasFollowingBindingAtom() {
      let e = this.nextTokenStart(), s = this.codePointAtPos(e);
      return this.chStartsBindingPattern(s) || this.chStartsBindingIdentifier(s, e);
    }
    hasInLineFollowingBindingIdentifierOrBrace() {
      let e = this.nextTokenInLineStart(), s = this.codePointAtPos(e);
      return s === 123 || this.chStartsBindingIdentifier(s, e);
    }
    startsUsingForOf() {
      let {
        type: e,
        containsEsc: s
      } = this.lookahead();
      if (e === 102 && !s)
        return !1;
      if (Gs(e) && !this.hasFollowingLineBreak())
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    startsAwaitUsing() {
      let e = this.nextTokenInLineStart();
      if (this.isUnparsedContextual(e, "using")) {
        e = this.nextTokenInLineStartSince(e + 5);
        let s = this.codePointAtPos(e);
        if (this.chStartsBindingIdentifier(s, e))
          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(e = !1) {
      let s = 0;
      return this.options.annexB && !this.state.strict && (s |= 4, e && (s |= 8)), this.parseStatementLike(s);
    }
    parseStatement() {
      return this.parseStatementLike(0);
    }
    parseStatementLike(e) {
      let s = null;
      return this.match(26) && (s = this.parseDecorators(!0)), this.parseStatementContent(e, s);
    }
    parseStatementContent(e, s) {
      let r = this.state.type, i = this.startNode(), a = !!(e & 2), o = !!(e & 4), l = e & 1;
      switch (r) {
        case 60:
          return this.parseBreakContinueStatement(i, !0);
        case 63:
          return this.parseBreakContinueStatement(i, !1);
        case 64:
          return this.parseDebuggerStatement(i);
        case 90:
          return this.parseDoWhileStatement(i);
        case 91:
          return this.parseForStatement(i);
        case 68:
          if (this.lookaheadCharCode() === 46) break;
          return o || this.raise(this.state.strict ? Z.StrictFunction : this.options.annexB ? Z.SloppyFunctionAnnexB : Z.SloppyFunction, this.
          state.startLoc), this.parseFunctionStatement(i, !1, !a && o);
        case 80:
          return a || this.unexpected(), this.parseClass(this.maybeTakeDecorators(s, i), !0);
        case 69:
          return this.parseIfStatement(i);
        case 70:
          return this.parseReturnStatement(i);
        case 71:
          return this.parseSwitchStatement(i);
        case 72:
          return this.parseThrowStatement(i);
        case 73:
          return this.parseTryStatement(i);
        case 96:
          if (!this.state.containsEsc && this.startsAwaitUsing())
            return this.recordAwaitIfAllowed() ? a || this.raise(Z.UnexpectedLexicalDeclaration, i) : this.raise(Z.AwaitUsingNotInAsyncContext,
            i), this.next(), this.parseVarStatement(i, "await using");
          break;
        case 107:
          if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace())
            break;
          return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(Z.UnexpectedUsingDeclaration,
          this.state.startLoc) : a || this.raise(Z.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(i, "using");
        case 100: {
          if (this.state.containsEsc)
            break;
          let p = this.nextTokenStart(), h = this.codePointAtPos(p);
          if (h !== 91 && (!a && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(h, p) && h !== 123))
            break;
        }
        case 75:
          a || this.raise(Z.UnexpectedLexicalDeclaration, this.state.startLoc);
        case 74: {
          let p = this.state.value;
          return this.parseVarStatement(i, p);
        }
        case 92:
          return this.parseWhileStatement(i);
        case 76:
          return this.parseWithStatement(i);
        case 5:
          return this.parseBlock();
        case 13:
          return this.parseEmptyStatement(i);
        case 83: {
          let p = this.lookaheadCharCode();
          if (p === 40 || p === 46)
            break;
        }
        case 82: {
          !(this.optionFlags & 8) && !l && this.raise(Z.UnexpectedImportExport, this.state.startLoc), this.next();
          let p;
          return r === 83 ? (p = this.parseImport(i), p.type === "ImportDeclaration" && (!p.importKind || p.importKind === "value") && (this.
          sawUnambiguousESM = !0)) : (p = this.parseExport(i, s), (p.type === "ExportNamedDeclaration" && (!p.exportKind || p.exportKind ===
          "value") || p.type === "ExportAllDeclaration" && (!p.exportKind || p.exportKind === "value") || p.type === "ExportDefaultDeclarati\
on") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(p), p;
        }
        default:
          if (this.isAsyncFunction())
            return a || this.raise(Z.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(i,
            !0, !a && o);
      }
      let u = this.state.value, c = this.parseExpression();
      return Gs(r) && c.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(i, u, c, e) : this.parseExpressionStatement(i, c,
      s);
    }
    assertModuleNodeAllowed(e) {
      !(this.optionFlags & 8) && !this.inModule && this.raise(Z.ImportOutsideModule, e);
    }
    decoratorsEnabledBeforeExport() {
      return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBefore\
Export") !== !1;
    }
    maybeTakeDecorators(e, s, r) {
      if (e) {
        var i;
        (i = s.decorators) != null && i.length ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(
        Z.DecoratorsBeforeAfterExport, s.decorators[0]), s.decorators.unshift(...e)) : s.decorators = e, this.resetStartLocationFromNode(s, e[0]),
        r && this.resetStartLocationFromNode(r, s);
      }
      return s;
    }
    canHaveLeadingDecorator() {
      return this.match(80);
    }
    parseDecorators(e) {
      let s = [];
      do
        s.push(this.parseDecorator());
      while (this.match(26));
      if (this.match(82))
        e || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(Z.DecoratorExportClass, this.state.startLoc);
      else if (!this.canHaveLeadingDecorator())
        throw this.raise(Z.UnexpectedLeadingDecorator, this.state.startLoc);
      return s;
    }
    parseDecorator() {
      this.expectOnePlugin(["decorators", "decorators-legacy"]);
      let e = this.startNode();
      if (this.next(), this.hasPlugin("decorators")) {
        let s = this.state.startLoc, r;
        if (this.match(10)) {
          let i = this.state.startLoc;
          this.next(), r = this.parseExpression(), this.expect(11), r = this.wrapParenthesis(i, r);
          let a = this.state.startLoc;
          e.expression = this.parseMaybeDecoratorArguments(r, i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && e.expression !==
          r && this.raise(Z.DecoratorArgumentsOutsideParentheses, a);
        } else {
          for (r = this.parseIdentifier(!1); this.eat(16); ) {
            let i = this.startNodeAt(s);
            i.object = r, this.match(139) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), i.property = this.parsePrivateName()) :
            i.property = this.parseIdentifier(!0), i.computed = !1, r = this.finishNode(i, "MemberExpression");
          }
          e.expression = this.parseMaybeDecoratorArguments(r, s);
        }
      } else
        e.expression = this.parseExprSubscripts();
      return this.finishNode(e, "Decorator");
    }
    parseMaybeDecoratorArguments(e, s) {
      if (this.eat(10)) {
        let r = this.startNodeAt(s);
        return r.callee = e, r.arguments = this.parseCallExpressionArguments(11), this.toReferencedList(r.arguments), this.finishNode(r, "Ca\
llExpression");
      }
      return e;
    }
    parseBreakContinueStatement(e, s) {
      return this.next(), this.isLineTerminator() ? e.label = null : (e.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(
      e, s), this.finishNode(e, s ? "BreakStatement" : "ContinueStatement");
    }
    verifyBreakContinue(e, s) {
      let r;
      for (r = 0; r < this.state.labels.length; ++r) {
        let i = this.state.labels[r];
        if ((e.label == null || i.name === e.label.name) && (i.kind != null && (s || i.kind === 1) || e.label && s))
          break;
      }
      if (r === this.state.labels.length) {
        let i = s ? "BreakStatement" : "ContinueStatement";
        this.raise(Z.IllegalBreakContinue, e, {
          type: i
        });
      }
    }
    parseDebuggerStatement(e) {
      return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
    }
    parseHeaderExpression() {
      this.expect(10);
      let e = this.parseExpression();
      return this.expect(11), e;
    }
    parseDoWhileStatement(e) {
      return this.next(), this.state.labels.push(kO), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.
      labels.pop(), this.expect(92), e.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(e, "DoWhileStatement");
    }
    parseForStatement(e) {
      this.next(), this.state.labels.push(kO);
      let s = null;
      if (this.isContextual(96) && this.recordAwaitIfAllowed() && (s = this.state.startLoc, this.next()), this.scope.enter(0), this.expect(10),
      this.match(13))
        return s !== null && this.unexpected(s), this.parseFor(e, null);
      let r = this.isContextual(100);
      {
        let u = this.isContextual(96) && this.startsAwaitUsing(), c = u || this.isContextual(107) && this.startsUsingForOf(), p = r && this.
        hasFollowingBindingAtom() || c;
        if (this.match(74) || this.match(75) || p) {
          let h = this.startNode(), f;
          u ? (f = "await using", this.recordAwaitIfAllowed() || this.raise(Z.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) :
          f = this.state.value, this.next(), this.parseVar(h, !0, f);
          let d = this.finishNode(h, "VariableDeclaration"), m = this.match(58);
          return m && c && this.raise(Z.ForInUsing, d), (m || this.isContextual(102)) && d.declarations.length === 1 ? this.parseForIn(e, d,
          s) : (s !== null && this.unexpected(s), this.parseFor(e, d));
        }
      }
      let i = this.isContextual(95), a = new Ud(), o = this.parseExpression(!0, a), l = this.isContextual(102);
      if (l && (r && this.raise(Z.ForOfLet, o), s === null && i && o.type === "Identifier" && this.raise(Z.ForOfAsync, o)), l || this.match(
      58)) {
        this.checkDestructuringPrivate(a), this.toAssignable(o, !0);
        let u = l ? "ForOfStatement" : "ForInStatement";
        return this.checkLVal(o, {
          type: u
        }), this.parseForIn(e, o, s);
      } else
        this.checkExpressionErrors(a, !0);
      return s !== null && this.unexpected(s), this.parseFor(e, o);
    }
    parseFunctionStatement(e, s, r) {
      return this.next(), this.parseFunction(e, 1 | (r ? 2 : 0) | (s ? 8 : 0));
    }
    parseIfStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), e.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), e.alternate =
      this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(e, "IfStatement");
    }
    parseReturnStatement(e) {
      return !this.prodParam.hasReturn && !(this.optionFlags & 2) && this.raise(Z.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ?
      e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
    }
    parseSwitchStatement(e) {
      this.next(), e.discriminant = this.parseHeaderExpression();
      let s = e.cases = [];
      this.expect(5), this.state.labels.push(bnt), this.scope.enter(0);
      let r;
      for (let i; !this.match(8); )
        if (this.match(61) || this.match(65)) {
          let a = this.match(61);
          r && this.finishNode(r, "SwitchCase"), s.push(r = this.startNode()), r.consequent = [], this.next(), a ? r.test = this.parseExpression() :
          (i && this.raise(Z.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), i = !0, r.test = null), this.expect(14);
        } else
          r ? r.consequent.push(this.parseStatementListItem()) : this.unexpected();
      return this.scope.exit(), r && this.finishNode(r, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(e, "SwitchState\
ment");
    }
    parseThrowStatement(e) {
      return this.next(), this.hasPrecedingLineBreak() && this.raise(Z.NewlineAfterThrow, this.state.lastTokEndLoc), e.argument = this.parseExpression(),
      this.semicolon(), this.finishNode(e, "ThrowStatement");
    }
    parseCatchClauseParam() {
      let e = this.parseBindingAtom();
      return this.scope.enter(this.options.annexB && e.type === "Identifier" ? 8 : 0), this.checkLVal(e, {
        type: "CatchClause"
      }, 9), e;
    }
    parseTryStatement(e) {
      if (this.next(), e.block = this.parseBlock(), e.handler = null, this.match(62)) {
        let s = this.startNode();
        this.next(), this.match(10) ? (this.expect(10), s.param = this.parseCatchClauseParam(), this.expect(11)) : (s.param = null, this.scope.
        enter(0)), s.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), e.handler = this.finishNode(
        s, "CatchClause");
      }
      return e.finalizer = this.eat(67) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(Z.NoCatchOrFinally, e), this.finishNode(
      e, "TryStatement");
    }
    parseVarStatement(e, s, r = !1) {
      return this.next(), this.parseVar(e, !1, s, r), this.semicolon(), this.finishNode(e, "VariableDeclaration");
    }
    parseWhileStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), this.state.labels.push(kO), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.state.labels.pop(), this.finishNode(e, "WhileStatement");
    }
    parseWithStatement(e) {
      return this.state.strict && this.raise(Z.StrictWith, this.state.startLoc), this.next(), e.object = this.parseHeaderExpression(), e.body =
      this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(e, "WithStatement");
    }
    parseEmptyStatement(e) {
      return this.next(), this.finishNode(e, "EmptyStatement");
    }
    parseLabeledStatement(e, s, r, i) {
      for (let o of this.state.labels)
        o.name === s && this.raise(Z.LabelRedeclaration, r, {
          labelName: s
        });
      let a = vit(this.state.type) ? 1 : this.match(71) ? 2 : null;
      for (let o = this.state.labels.length - 1; o >= 0; o--) {
        let l = this.state.labels[o];
        if (l.statementStart === e.start)
          l.statementStart = this.sourceToOffsetPos(this.state.start), l.kind = a;
        else
          break;
      }
      return this.state.labels.push({
        name: s,
        kind: a,
        statementStart: this.sourceToOffsetPos(this.state.start)
      }), e.body = i & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), e.label =
      r, this.finishNode(e, "LabeledStatement");
    }
    parseExpressionStatement(e, s, r) {
      return e.expression = s, this.semicolon(), this.finishNode(e, "ExpressionStatement");
    }
    parseBlock(e = !1, s = !0, r) {
      let i = this.startNode();
      return e && this.state.strictErrors.clear(), this.expect(5), s && this.scope.enter(0), this.parseBlockBody(i, e, !1, 8, r), s && this.
      scope.exit(), this.finishNode(i, "BlockStatement");
    }
    isValidDirective(e) {
      return e.type === "ExpressionStatement" && e.expression.type === "StringLiteral" && !e.expression.extra.parenthesized;
    }
    parseBlockBody(e, s, r, i, a) {
      let o = e.body = [], l = e.directives = [];
      this.parseBlockOrModuleBlockBody(o, s ? l : void 0, r, i, a);
    }
    parseBlockOrModuleBlockBody(e, s, r, i, a) {
      let o = this.state.strict, l = !1, u = !1;
      for (; !this.match(i); ) {
        let c = r ? this.parseModuleItem() : this.parseStatementListItem();
        if (s && !u) {
          if (this.isValidDirective(c)) {
            let p = this.stmtToDirective(c);
            s.push(p), !l && p.value.value === "use strict" && (l = !0, this.setStrict(!0));
            continue;
          }
          u = !0, this.state.strictErrors.clear();
        }
        e.push(c);
      }
      a?.call(this, l), o || this.setStrict(!1), this.next();
    }
    parseFor(e, s) {
      return e.init = s, this.semicolon(!1), e.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), e.update = this.match(
      11) ? null : this.parseExpression(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.
      scope.exit(), this.state.labels.pop(), this.finishNode(e, "ForStatement");
    }
    parseForIn(e, s, r) {
      let i = this.match(58);
      return this.next(), i ? r !== null && this.unexpected(r) : e.await = r !== null, s.type === "VariableDeclaration" && s.declarations[0].
      init != null && (!i || !this.options.annexB || this.state.strict || s.kind !== "var" || s.declarations[0].id.type !== "Identifier") &&
      this.raise(Z.ForInOfLoopInitializer, s, {
        type: i ? "ForInStatement" : "ForOfStatement"
      }), s.type === "AssignmentPattern" && this.raise(Z.InvalidLhs, s, {
        ancestor: {
          type: "ForStatement"
        }
      }), e.left = s, e.right = i ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement");
    }
    parseVar(e, s, r, i = !1) {
      let a = e.declarations = [];
      for (e.kind = r; ; ) {
        let o = this.startNode();
        if (this.parseVarId(o, r), o.init = this.eat(29) ? s ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, o.
        init === null && !i && (o.id.type !== "Identifier" && !(s && (this.match(58) || this.isContextual(102))) ? this.raise(Z.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: "destructuring"
        }) : (r === "const" || r === "using" || r === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(Z.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: r
        })), a.push(this.finishNode(o, "VariableDeclarator")), !this.eat(12)) break;
      }
      return e;
    }
    parseVarId(e, s) {
      let r = this.parseBindingAtom();
      (s === "using" || s === "await using") && (r.type === "ArrayPattern" || r.type === "ObjectPattern") && this.raise(Z.UsingDeclarationHasBindingPattern,
      r.loc.start), this.checkLVal(r, {
        type: "VariableDeclarator"
      }, s === "var" ? 5 : 8201), e.id = r;
    }
    parseAsyncFunctionExpression(e) {
      return this.parseFunction(e, 8);
    }
    parseFunction(e, s = 0) {
      let r = s & 2, i = !!(s & 1), a = i && !(s & 4), o = !!(s & 8);
      this.initFunction(e, o), this.match(55) && (r && this.raise(Z.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), e.
      generator = !0), i && (e.id = this.parseFunctionId(a));
      let l = this.state.maybeInArrowParameters;
      return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(KS(o, e.generator)), i || (e.id = this.parseFunctionId()),
      this.parseFunctionParams(e, !1), this.withSmartMixTopicForbiddingContext(() => {
        this.parseFunctionBodyAndFinish(e, i ? "FunctionDeclaration" : "FunctionExpression");
      }), this.prodParam.exit(), this.scope.exit(), i && !r && this.registerFunctionStatementId(e), this.state.maybeInArrowParameters = l, e;
    }
    parseFunctionId(e) {
      return e || Gs(this.state.type) ? this.parseIdentifier() : null;
    }
    parseFunctionParams(e, s) {
      this.expect(10), this.expressionScope.enter(Xit()), e.params = this.parseBindingList(11, 41, 2 | (s ? 4 : 0)), this.expressionScope.exit();
    }
    registerFunctionStatementId(e) {
      e.id && this.scope.declareName(e.id.name, !this.options.annexB || this.state.strict || e.generator || e.async ? this.scope.treatFunctionsAsVar ?
      5 : 8201 : 17, e.id.loc.start);
    }
    parseClass(e, s, r) {
      this.next();
      let i = this.state.strict;
      return this.state.strict = !0, this.parseClassId(e, s, r), this.parseClassSuper(e), e.body = this.parseClassBody(!!e.superClass, i), this.
      finishNode(e, s ? "ClassDeclaration" : "ClassExpression");
    }
    isClassProperty() {
      return this.match(29) || this.match(13) || this.match(8);
    }
    isClassMethod() {
      return this.match(10);
    }
    nameIsConstructor(e) {
      return e.type === "Identifier" && e.name === "constructor" || e.type === "StringLiteral" && e.value === "constructor";
    }
    isNonstaticConstructor(e) {
      return !e.computed && !e.static && this.nameIsConstructor(e.key);
    }
    parseClassBody(e, s) {
      this.classScope.enter();
      let r = {
        hadConstructor: !1,
        hadSuperClass: e
      }, i = [], a = this.startNode();
      if (a.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
        for (; !this.match(8); ) {
          if (this.eat(13)) {
            if (i.length > 0)
              throw this.raise(Z.DecoratorSemicolon, this.state.lastTokEndLoc);
            continue;
          }
          if (this.match(26)) {
            i.push(this.parseDecorator());
            continue;
          }
          let o = this.startNode();
          i.length && (o.decorators = i, this.resetStartLocationFromNode(o, i[0]), i = []), this.parseClassMember(a, o, r), o.kind === "cons\
tructor" && o.decorators && o.decorators.length > 0 && this.raise(Z.DecoratorConstructor, o);
        }
      }), this.state.strict = s, this.next(), i.length)
        throw this.raise(Z.TrailingDecorator, this.state.startLoc);
      return this.classScope.exit(), this.finishNode(a, "ClassBody");
    }
    parseClassMemberFromModifier(e, s) {
      let r = this.parseIdentifier(!0);
      if (this.isClassMethod()) {
        let i = s;
        return i.kind = "method", i.computed = !1, i.key = r, i.static = !1, this.pushClassMethod(e, i, !1, !1, !1, !1), !0;
      } else if (this.isClassProperty()) {
        let i = s;
        return i.computed = !1, i.key = r, i.static = !1, e.body.push(this.parseClassProperty(i)), !0;
      }
      return this.resetPreviousNodeTrailingComments(r), !1;
    }
    parseClassMember(e, s, r) {
      let i = this.isContextual(106);
      if (i) {
        if (this.parseClassMemberFromModifier(e, s))
          return;
        if (this.eat(5)) {
          this.parseClassStaticBlock(e, s);
          return;
        }
      }
      this.parseClassMemberWithIsStatic(e, s, r, i);
    }
    parseClassMemberWithIsStatic(e, s, r, i) {
      let a = s, o = s, l = s, u = s, c = s, p = a, h = a;
      if (s.static = i, this.parsePropertyNamePrefixOperator(s), this.eat(55)) {
        p.kind = "method";
        let b = this.match(139);
        if (this.parseClassElementName(p), b) {
          this.pushClassPrivateMethod(e, o, !0, !1);
          return;
        }
        this.isNonstaticConstructor(a) && this.raise(Z.ConstructorIsGenerator, a.key), this.pushClassMethod(e, a, !0, !1, !1, !1);
        return;
      }
      let f = !this.state.containsEsc && Gs(this.state.type), d = this.parseClassElementName(s), m = f ? d.name : null, y = this.isPrivateName(
      d), T = this.state.startLoc;
      if (this.parsePostMemberNameModifiers(h), this.isClassMethod()) {
        if (p.kind = "method", y) {
          this.pushClassPrivateMethod(e, o, !1, !1);
          return;
        }
        let b = this.isNonstaticConstructor(a), E = !1;
        b && (a.kind = "constructor", r.hadConstructor && !this.hasPlugin("typescript") && this.raise(Z.DuplicateConstructor, d), b && this.
        hasPlugin("typescript") && s.override && this.raise(Z.OverrideOnConstructor, d), r.hadConstructor = !0, E = r.hadSuperClass), this.pushClassMethod(
        e, a, !1, !1, b, E);
      } else if (this.isClassProperty())
        y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l);
      else if (m === "async" && !this.isLineTerminator()) {
        this.resetPreviousNodeTrailingComments(d);
        let b = this.eat(55);
        h.optional && this.unexpected(T), p.kind = "method";
        let E = this.match(139);
        this.parseClassElementName(p), this.parsePostMemberNameModifiers(h), E ? this.pushClassPrivateMethod(e, o, b, !0) : (this.isNonstaticConstructor(
        a) && this.raise(Z.ConstructorIsAsync, a.key), this.pushClassMethod(e, a, b, !0, !1, !1));
      } else if ((m === "get" || m === "set") && !(this.match(55) && this.isLineTerminator())) {
        this.resetPreviousNodeTrailingComments(d), p.kind = m;
        let b = this.match(139);
        this.parseClassElementName(a), b ? this.pushClassPrivateMethod(e, o, !1, !1) : (this.isNonstaticConstructor(a) && this.raise(Z.ConstructorIsAccessor,
        a.key), this.pushClassMethod(e, a, !1, !1, !1, !1)), this.checkGetterSetterParams(a);
      } else if (m === "accessor" && !this.isLineTerminator()) {
        this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(d);
        let b = this.match(139);
        this.parseClassElementName(l), this.pushClassAccessorProperty(e, c, b);
      } else this.isLineTerminator() ? y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l) : this.unexpected();
    }
    parseClassElementName(e) {
      let {
        type: s,
        value: r
      } = this.state;
      if ((s === 132 || s === 134) && e.static && r === "prototype" && this.raise(Z.StaticPrototype, this.state.startLoc), s === 139) {
        r === "constructor" && this.raise(Z.ConstructorClassPrivateField, this.state.startLoc);
        let i = this.parsePrivateName();
        return e.key = i, i;
      }
      return this.parsePropertyName(e), e.key;
    }
    parseClassStaticBlock(e, s) {
      var r;
      this.scope.enter(208);
      let i = this.state.labels;
      this.state.labels = [], this.prodParam.enter(0);
      let a = s.body = [];
      this.parseBlockOrModuleBlockBody(a, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = i, e.body.push(this.
      finishNode(s, "StaticBlock")), (r = s.decorators) != null && r.length && this.raise(Z.DecoratorStaticBlock, s);
    }
    pushClassProperty(e, s) {
      !s.computed && this.nameIsConstructor(s.key) && this.raise(Z.ConstructorClassField, s.key), e.body.push(this.parseClassProperty(s));
    }
    pushClassPrivateProperty(e, s) {
      let r = this.parseClassPrivateProperty(s);
      e.body.push(r), this.classScope.declarePrivateName(this.getPrivateNameSV(r.key), 0, r.key.loc.start);
    }
    pushClassAccessorProperty(e, s, r) {
      !r && !s.computed && this.nameIsConstructor(s.key) && this.raise(Z.ConstructorClassField, s.key);
      let i = this.parseClassAccessorProperty(s);
      e.body.push(i), r && this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
    }
    pushClassMethod(e, s, r, i, a, o) {
      e.body.push(this.parseMethod(s, r, i, a, o, "ClassMethod", !0));
    }
    pushClassPrivateMethod(e, s, r, i) {
      let a = this.parseMethod(s, r, i, !1, !1, "ClassPrivateMethod", !0);
      e.body.push(a);
      let o = a.kind === "get" ? a.static ? 6 : 2 : a.kind === "set" ? a.static ? 5 : 1 : 0;
      this.declareClassPrivateMethodInScope(a, o);
    }
    declareClassPrivateMethodInScope(e, s) {
      this.classScope.declarePrivateName(this.getPrivateNameSV(e.key), s, e.key.loc.start);
    }
    parsePostMemberNameModifiers(e) {
    }
    parseClassPrivateProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassPrivateProperty");
    }
    parseClassProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassProperty");
    }
    parseClassAccessorProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassAccessorProperty");
    }
    parseInitializer(e) {
      this.scope.enter(80), this.expressionScope.enter(xX()), this.prodParam.enter(0), e.value = this.eat(29) ? this.parseMaybeAssignAllowIn() :
      null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
    }
    parseClassId(e, s, r, i = 8331) {
      if (Gs(this.state.type))
        e.id = this.parseIdentifier(), s && this.declareNameFromIdentifier(e.id, i);
      else if (r || !s)
        e.id = null;
      else
        throw this.raise(Z.MissingClassName, this.state.startLoc);
    }
    parseClassSuper(e) {
      e.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
    }
    parseExport(e, s) {
      let r = this.parseMaybeImportPhase(e, !0), i = this.maybeParseExportDefaultSpecifier(e, r), a = !i || this.eat(12), o = a && this.eatExportStar(
      e), l = o && this.maybeParseExportNamespaceSpecifier(e), u = a && (!l || this.eat(12)), c = i || o;
      if (o && !l) {
        if (i && this.unexpected(), s)
          throw this.raise(Z.UnsupportedDecoratorExport, e);
        return this.parseExportFrom(e, !0), this.finishNode(e, "ExportAllDeclaration");
      }
      let p = this.maybeParseExportNamedSpecifiers(e);
      i && a && !o && !p && this.unexpected(null, 5), l && u && this.unexpected(null, 98);
      let h;
      if (c || p) {
        if (h = !1, s)
          throw this.raise(Z.UnsupportedDecoratorExport, e);
        this.parseExportFrom(e, c);
      } else
        h = this.maybeParseExportDeclaration(e);
      if (c || p || h) {
        var f;
        let d = e;
        if (this.checkExport(d, !0, !1, !!d.source), ((f = d.declaration) == null ? void 0 : f.type) === "ClassDeclaration")
          this.maybeTakeDecorators(s, d.declaration, d);
        else if (s)
          throw this.raise(Z.UnsupportedDecoratorExport, e);
        return this.finishNode(d, "ExportNamedDeclaration");
      }
      if (this.eat(65)) {
        let d = e, m = this.parseExportDefaultExpression();
        if (d.declaration = m, m.type === "ClassDeclaration")
          this.maybeTakeDecorators(s, m, d);
        else if (s)
          throw this.raise(Z.UnsupportedDecoratorExport, e);
        return this.checkExport(d, !0, !0), this.finishNode(d, "ExportDefaultDeclaration");
      }
      this.unexpected(null, 5);
    }
    eatExportStar(e) {
      return this.eat(55);
    }
    maybeParseExportDefaultSpecifier(e, s) {
      if (s || this.isExportDefaultSpecifier()) {
        this.expectPlugin("exportDefaultFrom", s?.loc.start);
        let r = s || this.parseIdentifier(!0), i = this.startNodeAtNode(r);
        return i.exported = r, e.specifiers = [this.finishNode(i, "ExportDefaultSpecifier")], !0;
      }
      return !1;
    }
    maybeParseExportNamespaceSpecifier(e) {
      if (this.isContextual(93)) {
        var s, r;
        (r = (s = e).specifiers) != null || (s.specifiers = []);
        let i = this.startNodeAt(this.state.lastTokStartLoc);
        return this.next(), i.exported = this.parseModuleExportName(), e.specifiers.push(this.finishNode(i, "ExportNamespaceSpecifier")), !0;
      }
      return !1;
    }
    maybeParseExportNamedSpecifiers(e) {
      if (this.match(5)) {
        let s = e;
        s.specifiers || (s.specifiers = []);
        let r = s.exportKind === "type";
        return s.specifiers.push(...this.parseExportSpecifiers(r)), s.source = null, s.declaration = null, this.hasPlugin("importAssertions") &&
        (s.assertions = []), !0;
      }
      return !1;
    }
    maybeParseExportDeclaration(e) {
      return this.shouldParseExportDeclaration() ? (e.specifiers = [], e.source = null, this.hasPlugin("importAssertions") && (e.assertions =
      []), e.declaration = this.parseExportDeclaration(e), !0) : !1;
    }
    isAsyncFunction() {
      if (!this.isContextual(95)) return !1;
      let e = this.nextTokenInLineStart();
      return this.isUnparsedContextual(e, "function");
    }
    parseExportDefaultExpression() {
      let e = this.startNode();
      if (this.match(68))
        return this.next(), this.parseFunction(e, 5);
      if (this.isAsyncFunction())
        return this.next(), this.next(), this.parseFunction(e, 13);
      if (this.match(80))
        return this.parseClass(e, !0, !0);
      if (this.match(26))
        return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(Z.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(Z.UnsupportedDefaultExport, this.state.startLoc);
      let s = this.parseMaybeAssignAllowIn();
      return this.semicolon(), s;
    }
    parseExportDeclaration(e) {
      return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
    }
    isExportDefaultSpecifier() {
      let {
        type: e
      } = this.state;
      if (Gs(e)) {
        if (e === 95 && !this.state.containsEsc || e === 100)
          return !1;
        if ((e === 130 || e === 129) && !this.state.containsEsc) {
          let {
            type: i
          } = this.lookahead();
          if (Gs(i) && i !== 98 || i === 5)
            return this.expectOnePlugin(["flow", "typescript"]), !1;
        }
      } else if (!this.match(65))
        return !1;
      let s = this.nextTokenStart(), r = this.isUnparsedContextual(s, "from");
      if (this.input.charCodeAt(s) === 44 || Gs(this.state.type) && r)
        return !0;
      if (this.match(65) && r) {
        let i = this.input.charCodeAt(this.nextTokenStartSince(s + 4));
        return i === 34 || i === 39;
      }
      return !1;
    }
    parseExportFrom(e, s) {
      this.eatContextual(98) ? (e.source = this.parseImportSource(), this.checkExport(e), this.maybeParseImportAttributes(e), this.checkJSONModuleImport(
      e)) : s && this.unexpected(), this.semicolon();
    }
    shouldParseExportDeclaration() {
      let {
        type: e
      } = this.state;
      return e === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("\
decorators", "decoratorsBeforeExport") === !0 && this.raise(Z.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.
      raise(Z.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(Z.UsingDeclarationExport,
      this.state.startLoc), !0) : e === 74 || e === 75 || e === 68 || e === 80 || this.isLet() || this.isAsyncFunction();
    }
    checkExport(e, s, r, i) {
      if (s) {
        var a;
        if (r) {
          if (this.checkDuplicateExports(e, "default"), this.hasPlugin("exportDefaultFrom")) {
            var o;
            let l = e.declaration;
            l.type === "Identifier" && l.name === "from" && l.end - l.start === 4 && !((o = l.extra) != null && o.parenthesized) && this.raise(
            Z.ExportDefaultFromAsIdentifier, l);
          }
        } else if ((a = e.specifiers) != null && a.length)
          for (let l of e.specifiers) {
            let {
              exported: u
            } = l, c = u.type === "Identifier" ? u.name : u.value;
            if (this.checkDuplicateExports(l, c), !i && l.local) {
              let {
                local: p
              } = l;
              p.type !== "Identifier" ? this.raise(Z.ExportBindingIsString, l, {
                localName: p.value,
                exportName: c
              }) : (this.checkReservedWord(p.name, p.loc.start, !0, !1), this.scope.checkLocalExport(p));
            }
          }
        else if (e.declaration) {
          let l = e.declaration;
          if (l.type === "FunctionDeclaration" || l.type === "ClassDeclaration") {
            let {
              id: u
            } = l;
            if (!u) throw new Error("Assertion failure");
            this.checkDuplicateExports(e, u.name);
          } else if (l.type === "VariableDeclaration")
            for (let u of l.declarations)
              this.checkDeclaration(u.id);
        }
      }
    }
    checkDeclaration(e) {
      if (e.type === "Identifier")
        this.checkDuplicateExports(e, e.name);
      else if (e.type === "ObjectPattern")
        for (let s of e.properties)
          this.checkDeclaration(s);
      else if (e.type === "ArrayPattern")
        for (let s of e.elements)
          s && this.checkDeclaration(s);
      else e.type === "ObjectProperty" ? this.checkDeclaration(e.value) : e.type === "RestElement" ? this.checkDeclaration(e.argument) : e.type ===
      "AssignmentPattern" && this.checkDeclaration(e.left);
    }
    checkDuplicateExports(e, s) {
      this.exportedIdentifiers.has(s) && (s === "default" ? this.raise(Z.DuplicateDefaultExport, e) : this.raise(Z.DuplicateExport, e, {
        exportName: s
      })), this.exportedIdentifiers.add(s);
    }
    parseExportSpecifiers(e) {
      let s = [], r = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (r)
          r = !1;
        else if (this.expect(12), this.eat(8)) break;
        let i = this.isContextual(130), a = this.match(134), o = this.startNode();
        o.local = this.parseModuleExportName(), s.push(this.parseExportSpecifier(o, a, e, i));
      }
      return s;
    }
    parseExportSpecifier(e, s, r, i) {
      return this.eatContextual(93) ? e.exported = this.parseModuleExportName() : s ? e.exported = Zit(e.local) : e.exported || (e.exported =
      du(e.local)), this.finishNode(e, "ExportSpecifier");
    }
    parseModuleExportName() {
      if (this.match(134)) {
        let e = this.parseStringLiteral(this.state.value), s = xnt.exec(e.value);
        return s && this.raise(Z.ModuleExportNameHasLoneSurrogate, e, {
          surrogateCharCode: s[0].charCodeAt(0)
        }), e;
      }
      return this.parseIdentifier(!0);
    }
    isJSONModuleImport(e) {
      return e.assertions != null ? e.assertions.some(({
        key: s,
        value: r
      }) => r.value === "json" && (s.type === "Identifier" ? s.name === "type" : s.value === "type")) : !1;
    }
    checkImportReflection(e) {
      let {
        specifiers: s
      } = e, r = s.length === 1 ? s[0].type : null;
      if (e.phase === "source")
        r !== "ImportDefaultSpecifier" && this.raise(Z.SourcePhaseImportRequiresDefault, s[0].loc.start);
      else if (e.phase === "defer")
        r !== "ImportNamespaceSpecifier" && this.raise(Z.DeferImportRequiresNamespace, s[0].loc.start);
      else if (e.module) {
        var i;
        r !== "ImportDefaultSpecifier" && this.raise(Z.ImportReflectionNotBinding, s[0].loc.start), ((i = e.assertions) == null ? void 0 : i.
        length) > 0 && this.raise(Z.ImportReflectionHasAssertion, s[0].loc.start);
      }
    }
    checkJSONModuleImport(e) {
      if (this.isJSONModuleImport(e) && e.type !== "ExportAllDeclaration") {
        let {
          specifiers: s
        } = e;
        if (s != null) {
          let r = s.find((i) => {
            let a;
            if (i.type === "ExportSpecifier" ? a = i.local : i.type === "ImportSpecifier" && (a = i.imported), a !== void 0)
              return a.type === "Identifier" ? a.name !== "default" : a.value !== "default";
          });
          r !== void 0 && this.raise(Z.ImportJSONBindingNotDefault, r.loc.start);
        }
      }
    }
    isPotentialImportPhase(e) {
      return e ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
    }
    applyImportPhase(e, s, r, i) {
      s || (r === "module" ? (this.expectPlugin("importReflection", i), e.module = !0) : this.hasPlugin("importReflection") && (e.module = !1),
      r === "source" ? (this.expectPlugin("sourcePhaseImports", i), e.phase = "source") : r === "defer" ? (this.expectPlugin("deferredImport\
Evaluation", i), e.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (e.phase = null));
    }
    parseMaybeImportPhase(e, s) {
      if (!this.isPotentialImportPhase(s))
        return this.applyImportPhase(e, s, null), null;
      let r = this.parseIdentifier(!0), {
        type: i
      } = this.state;
      return (Eo(i) ? i !== 98 || this.lookaheadCharCode() === 102 : i !== 12) ? (this.resetPreviousIdentifierLeadingComments(r), this.applyImportPhase(
      e, s, r.name, r.loc.start), null) : (this.applyImportPhase(e, s, null), r);
    }
    isPrecedingIdImportPhase(e) {
      let {
        type: s
      } = this.state;
      return Gs(s) ? s !== 98 || this.lookaheadCharCode() === 102 : s !== 12;
    }
    parseImport(e) {
      return this.match(134) ? this.parseImportSourceAndAttributes(e) : this.parseImportSpecifiersAndAfter(e, this.parseMaybeImportPhase(e, !1));
    }
    parseImportSpecifiersAndAfter(e, s) {
      e.specifiers = [];
      let i = !this.maybeParseDefaultImportSpecifier(e, s) || this.eat(12), a = i && this.maybeParseStarImportSpecifier(e);
      return i && !a && this.parseNamedImportSpecifiers(e), this.expectContextual(98), this.parseImportSourceAndAttributes(e);
    }
    parseImportSourceAndAttributes(e) {
      var s;
      return (s = e.specifiers) != null || (e.specifiers = []), e.source = this.parseImportSource(), this.maybeParseImportAttributes(e), this.
      checkImportReflection(e), this.checkJSONModuleImport(e), this.semicolon(), this.finishNode(e, "ImportDeclaration");
    }
    parseImportSource() {
      return this.match(134) || this.unexpected(), this.parseExprAtom();
    }
    parseImportSpecifierLocal(e, s, r) {
      s.local = this.parseIdentifier(), e.specifiers.push(this.finishImportSpecifier(s, r));
    }
    finishImportSpecifier(e, s, r = 8201) {
      return this.checkLVal(e.local, {
        type: s
      }, r), this.finishNode(e, s);
    }
    parseImportAttributes() {
      this.expect(5);
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        if (this.match(8))
          break;
        let r = this.startNode(), i = this.state.value;
        if (s.has(i) && this.raise(Z.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
          key: i
        }), s.add(i), this.match(134) ? r.key = this.parseStringLiteral(i) : r.key = this.parseIdentifier(!0), this.expect(14), !this.match(
        134))
          throw this.raise(Z.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return this.expect(8), e;
    }
    parseModuleAttributes() {
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        let r = this.startNode();
        if (r.key = this.parseIdentifier(!0), r.key.name !== "type" && this.raise(Z.ModuleAttributeDifferentFromType, r.key), s.has(r.key.name) &&
        this.raise(Z.ModuleAttributesWithDuplicateKeys, r.key, {
          key: r.key.name
        }), s.add(r.key.name), this.expect(14), !this.match(134))
          throw this.raise(Z.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return e;
    }
    maybeParseImportAttributes(e) {
      let s;
      var r = !1;
      if (this.match(76)) {
        if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
          return;
        this.next(), this.hasPlugin("moduleAttributes") ? s = this.parseModuleAttributes() : s = this.parseImportAttributes(), r = !0;
      } else this.isContextual(94) && !this.hasPrecedingLineBreak() ? (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importA\
ssertions") && this.raise(Z.ImportAttributesUseAssert, this.state.startLoc), this.hasPlugin("importAssertions") || this.addExtra(e, "depreca\
tedAssertSyntax", !0), this.next(), s = this.parseImportAttributes()) : s = [];
      !r && this.hasPlugin("importAssertions") ? e.assertions = s : e.attributes = s;
    }
    maybeParseDefaultImportSpecifier(e, s) {
      if (s) {
        let r = this.startNodeAtNode(s);
        return r.local = s, e.specifiers.push(this.finishImportSpecifier(r, "ImportDefaultSpecifier")), !0;
      } else if (Eo(this.state.type))
        return this.parseImportSpecifierLocal(e, this.startNode(), "ImportDefaultSpecifier"), !0;
      return !1;
    }
    maybeParseStarImportSpecifier(e) {
      if (this.match(55)) {
        let s = this.startNode();
        return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(e, s, "ImportNamespaceSpecifier"), !0;
      }
      return !1;
    }
    parseNamedImportSpecifiers(e) {
      let s = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (s)
          s = !1;
        else {
          if (this.eat(14))
            throw this.raise(Z.DestructureNamedImport, this.state.startLoc);
          if (this.expect(12), this.eat(8)) break;
        }
        let r = this.startNode(), i = this.match(134), a = this.isContextual(130);
        r.imported = this.parseModuleExportName();
        let o = this.parseImportSpecifier(r, i, e.importKind === "type" || e.importKind === "typeof", a, void 0);
        e.specifiers.push(o);
      }
    }
    parseImportSpecifier(e, s, r, i, a) {
      if (this.eatContextual(93))
        e.local = this.parseIdentifier();
      else {
        let {
          imported: o
        } = e;
        if (s)
          throw this.raise(Z.ImportBindingIsString, e, {
            importName: o.value
          });
        this.checkReservedWord(o.name, e.loc.start, !0, !0), e.local || (e.local = du(o));
      }
      return this.finishImportSpecifier(e, "ImportSpecifier", a);
    }
    isThisParam(e) {
      return e.type === "Identifier" && e.name === "this";
    }
  }, HS = class extends GO {
    static {
      n(this, "Parser");
    }
    constructor(e, s, r) {
      e = git(e), super(e, s), this.options = e, this.initializeScopes(), this.plugins = r, this.filename = e.sourceFilename, this.startIndex =
      e.startIndex;
      let i = 0;
      e.allowAwaitOutsideFunction && (i |= 1), e.allowReturnOutsideFunction && (i |= 2), e.allowImportExportEverywhere && (i |= 8), e.allowSuperOutsideMethod &&
      (i |= 16), e.allowUndeclaredExports && (i |= 32), e.allowNewTargetOutsideFunction && (i |= 4), e.ranges && (i |= 64), e.tokens && (i |=
      128), e.createImportExpressions && (i |= 256), e.createParenthesizedExpressions && (i |= 512), e.errorRecovery && (i |= 1024), e.attachComment &&
      (i |= 2048), e.annexB && (i |= 4096), this.optionFlags = i;
    }
    getScopeHandler() {
      return Vg;
    }
    parse() {
      this.enterInitialScopes();
      let e = this.startNode(), s = this.startNode();
      return this.nextToken(), e.errors = null, this.parseTopLevel(e, s), e.errors = this.state.errors, e.comments.length = this.state.commentsLen,
      e;
    }
  };
  function Pnt(t, e) {
    var s;
    if (((s = e) == null ? void 0 : s.sourceType) === "unambiguous") {
      e = Object.assign({}, e);
      try {
        e.sourceType = "module";
        let r = qg(e, t), i = r.parse();
        if (r.sawUnambiguousESM)
          return i;
        if (r.ambiguousScriptDifferentAst)
          try {
            return e.sourceType = "script", qg(e, t).parse();
          } catch {
          }
        else
          i.program.sourceType = "script";
        return i;
      } catch (r) {
        try {
          return e.sourceType = "script", qg(e, t).parse();
        } catch {
        }
        throw r;
      }
    } else
      return qg(e, t).parse();
  }
  n(Pnt, "parse");
  function Ent(t, e) {
    let s = qg(e, t);
    return s.options.strictMode && (s.state.strict = !0), s.getExpression();
  }
  n(Ent, "parseExpression");
  function Ant(t) {
    let e = {};
    for (let s of Object.keys(t))
      e[s] = cu(t[s]);
    return e;
  }
  n(Ant, "generateExportedTokenTypes");
  var vnt = Ant(Sit);
  function qg(t, e) {
    let s = HS, r = /* @__PURE__ */ new Map();
    if (t != null && t.plugins) {
      for (let i of t.plugins) {
        let a, o;
        typeof i == "string" ? a = i : [a, o] = i, r.has(a) || r.set(a, o || {});
      }
      gnt(r), s = Cnt(r);
    }
    return new s(t, e, r);
  }
  n(qg, "getParser");
  var uX = /* @__PURE__ */ new Map();
  function Cnt(t) {
    let e = [];
    for (let i of Tnt)
      t.has(i) && e.push(i);
    let s = e.join("|"), r = uX.get(s);
    if (!r) {
      r = HS;
      for (let i of e)
        r = AX[i](r);
      uX.set(s, r);
    }
    return r;
  }
  n(Cnt, "getParserClass");
  $g.parse = Pnt;
  $g.parseExpression = Ent;
  $g.tokTypes = vnt;
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/replacement.js
var bO = g((ep) => {
  "use strict";
  Object.defineProperty(ep, "__esModule", {
    value: !0
  });
  ep._replaceWith = _X;
  ep.replaceExpressionWithStatements = eat;
  ep.replaceInline = tat;
  ep.replaceWith = Znt;
  ep.replaceWithMultiple = Gnt;
  ep.replaceWithSourceString = Qnt;
  var wnt = Hl(), u2 = Ld(), Int = zc(), kX = vh(), c2 = BS(), Nnt = vX(), knt = fe(), $d = ol(), {
    FUNCTION_TYPES: CX,
    arrowFunctionExpression: Dnt,
    assignmentExpression: DX,
    awaitExpression: Ont,
    blockStatement: _nt,
    buildUndefinedNode: l2,
    callExpression: Lnt,
    cloneNode: p2,
    conditionalExpression: Bnt,
    expressionStatement: Mnt,
    getBindingIdentifiers: Fnt,
    identifier: jnt,
    inheritLeadingComments: Rnt,
    inheritTrailingComments: qnt,
    inheritsComments: Unt,
    isBlockStatement: Knt,
    isEmptyStatement: wX,
    isExpression: OX,
    isExpressionStatement: Vnt,
    isIfStatement: Wnt,
    isProgram: $nt,
    isStatement: Hnt,
    isVariableDeclaration: Jnt,
    removeComments: Ynt,
    returnStatement: IX,
    sequenceExpression: Xnt,
    validate: NX,
    yieldExpression: znt
  } = knt;
  function Gnt(t) {
    var e;
    $d.resync.call(this), t = c2._verifyNodeList.call(this, t), Rnt(t[0], this.node), qnt(t[t.length - 1], this.node), (e = (0, kX.getCachedPaths)(
    this.hub, this.parent)) == null || e.delete(this.node), this.node = this.container[this.key] = null;
    let s = this.insertAfter(t);
    return this.node ? this.requeue() : this.remove(), s;
  }
  n(Gnt, "replaceWithMultiple");
  function Qnt(t) {
    $d.resync.call(this);
    let e;
    try {
      t = `(${t})`, e = (0, Nnt.parse)(t);
    } catch (r) {
      let i = r.loc;
      throw i && (r.message += ` - make sure this is an expression.
` + (0, wnt.codeFrameColumns)(t, {
        start: {
          line: i.line,
          column: i.column + 1
        }
      }), r.code = "BABEL_REPLACE_SOURCE_ERROR"), r;
    }
    let s = e.program.body[0].expression;
    return u2.default.removeProperties(s), this.replaceWith(s);
  }
  n(Qnt, "replaceWithSourceString");
  function Znt(t) {
    if ($d.resync.call(this), this.removed)
      throw new Error("You can't replace this node, we've already removed it");
    let e = t instanceof Int.default ? t.node : t;
    if (!e)
      throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");
    if (this.node === e)
      return [this];
    if (this.isProgram() && !$nt(e))
      throw new Error("You can only replace a Program root node with another Program node");
    if (Array.isArray(e))
      throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");
    if (typeof e == "string")
      throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");
    let s = "";
    if (this.isNodeType("Statement") && OX(e) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(
    e) && !this.parentPath.isExportDefaultDeclaration() && (e = Mnt(e), s = "expression"), this.isNodeType("Expression") && Hnt(e) && !this.
    canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(e))
      return this.replaceExpressionWithStatements([e]);
    let r = this.node;
    return r && (Unt(e, r), Ynt(r)), _X.call(this, e), this.type = e.type, $d.setScope.call(this), this.requeue(), [s ? this.get(s) : this];
  }
  n(Znt, "replaceWith");
  function _X(t) {
    var e;
    if (!this.container)
      throw new ReferenceError("Container is falsy");
    this.inList ? NX(this.parent, this.key, [t]) : NX(this.parent, this.key, t), this.debug(`Replace with ${t?.type}`), (e = (0, kX.getCachedPaths)(
    this.hub, this.parent)) == null || e.set(t, this).delete(this.node), this.node = this.container[this.key] = t;
  }
  n(_X, "_replaceWith");
  function eat(t) {
    $d.resync.call(this);
    let e = [], s = JS(t, e);
    if (s) {
      for (let f of e) this.scope.push({
        id: f
      });
      return this.replaceWith(s)[0].get("expressions");
    }
    let r = this.getFunctionParent(), i = r?.node.async, a = r?.node.generator, o = Dnt([], _nt(t));
    this.replaceWith(Lnt(o, []));
    let l = this.get("callee");
    l.get("body").scope.hoistVariables((f) => this.scope.push({
      id: f
    }));
    let u = l.getCompletionRecords();
    for (let f of u) {
      if (!f.isExpressionStatement()) continue;
      let d = f.findParent((m) => m.isLoop());
      if (d) {
        let m = d.getData("expressionReplacementReturnUid");
        m ? m = jnt(m.name) : (m = l.scope.generateDeclaredUidIdentifier("ret"), l.get("body").pushContainer("body", IX(p2(m))), d.setData("\
expressionReplacementReturnUid", m)), f.get("expression").replaceWith(DX("=", p2(m), f.node.expression));
      } else
        f.replaceWith(IX(f.node.expression));
    }
    l.arrowFunctionToExpression();
    let c = l, p = i && u2.default.hasType(this.get("callee.body").node, "AwaitExpression", CX), h = a && u2.default.hasType(this.get("calle\
e.body").node, "YieldExpression", CX);
    return p && (c.set("async", !0), h || this.replaceWith(Ont(this.node))), h && (c.set("generator", !0), this.replaceWith(znt(this.node, !0))),
    c.get("body.body");
  }
  n(eat, "replaceExpressionWithStatements");
  function JS(t, e) {
    let s = [], r = !0;
    for (let i of t)
      if (wX(i) || (r = !1), OX(i))
        s.push(i);
      else if (Vnt(i))
        s.push(i.expression);
      else if (Jnt(i)) {
        if (i.kind !== "var") return;
        for (let a of i.declarations) {
          let o = Fnt(a);
          for (let l of Object.keys(o))
            e.push(p2(o[l]));
          a.init && s.push(DX("=", a.id, a.init));
        }
        r = !0;
      } else if (Wnt(i)) {
        let a = i.consequent ? JS([i.consequent], e) : l2(), o = i.alternate ? JS([i.alternate], e) : l2();
        if (!a || !o) return;
        s.push(Bnt(i.test, a, o));
      } else if (Knt(i)) {
        let a = JS(i.body, e);
        if (!a) return;
        s.push(a);
      } else if (wX(i))
        t.indexOf(i) === 0 && (r = !0);
      else
        return;
    return r && s.push(l2()), s.length === 1 ? s[0] : Xnt(s);
  }
  n(JS, "gatherSequenceExpressions");
  function tat(t) {
    if ($d.resync.call(this), Array.isArray(t))
      if (Array.isArray(this.container)) {
        t = c2._verifyNodeList.call(this, t);
        let e = c2._containerInsertAfter.call(this, t);
        return this.remove(), e;
      } else
        return this.replaceWithMultiple(t);
    else
      return this.replaceWith(t);
  }
  n(tat, "replaceInline");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/evaluation.js
var FX = g((YS) => {
  "use strict";
  Object.defineProperty(YS, "__esModule", {
    value: !0
  });
  YS.evaluate = uat;
  YS.evaluateTruthy = oat;
  var sat = ["Number", "String", "Math"], rat = ["isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeUR\
I", "encodeURIComponent", null, null], iat = ["random"];
  function LX(t) {
    return sat.includes(t);
  }
  n(LX, "isValidObjectCallee");
  function nat(t) {
    return rat.includes(t);
  }
  n(nat, "isValidIdentifierCallee");
  function aat(t) {
    return iat.includes(t);
  }
  n(aat, "isInvalidMethod");
  function oat() {
    let t = this.evaluate();
    if (t.confident) return !!t.value;
  }
  n(oat, "evaluateTruthy");
  function mu(t, e) {
    e.confident && (e.deoptPath = t, e.confident = !1);
  }
  n(mu, "deopt");
  var BX = /* @__PURE__ */ new Map([["undefined", void 0], ["Infinity", 1 / 0], ["NaN", NaN]]);
  function wn(t, e) {
    let {
      node: s
    } = t, {
      seen: r
    } = e;
    if (r.has(s)) {
      let i = r.get(s);
      if (i.resolved)
        return i.value;
      mu(t, e);
      return;
    } else {
      let i = {
        resolved: !1
      };
      r.set(s, i);
      let a = lat(t, e);
      return e.confident && (i.resolved = !0, i.value = a), a;
    }
  }
  n(wn, "evaluateCached");
  function lat(t, e) {
    if (e.confident) {
      if (t.isSequenceExpression()) {
        let s = t.get("expressions");
        return wn(s[s.length - 1], e);
      }
      if (t.isStringLiteral() || t.isNumericLiteral() || t.isBooleanLiteral())
        return t.node.value;
      if (t.isNullLiteral())
        return null;
      if (t.isTemplateLiteral())
        return MX(t, t.node.quasis, e);
      if (t.isTaggedTemplateExpression() && t.get("tag").isMemberExpression()) {
        let s = t.get("tag.object"), {
          node: {
            name: r
          }
        } = s, i = t.get("tag.property");
        if (s.isIdentifier() && r === "String" && !t.scope.getBinding(r) && i.isIdentifier() && i.node.name === "raw")
          return MX(t, t.node.quasi.quasis, e, !0);
      }
      if (t.isConditionalExpression()) {
        let s = wn(t.get("test"), e);
        return e.confident ? wn(s ? t.get("consequent") : t.get("alternate"), e) : void 0;
      }
      if (t.isExpressionWrapper())
        return wn(t.get("expression"), e);
      if (t.isMemberExpression() && !t.parentPath.isCallExpression({
        callee: t.node
      })) {
        let s = t.get("property"), r = t.get("object");
        if (r.isLiteral()) {
          let i = r.node.value, a = typeof i, o = null;
          if (t.node.computed) {
            if (o = wn(s, e), !e.confident) return;
          } else s.isIdentifier() && (o = s.node.name);
          if ((a === "number" || a === "string") && o != null && (typeof o == "number" || typeof o == "string"))
            return i[o];
        }
      }
      if (t.isReferencedIdentifier()) {
        let s = t.scope.getBinding(t.node.name);
        if (s) {
          if (s.constantViolations.length > 0 || t.node.start < s.path.node.end) {
            mu(s.path, e);
            return;
          }
          if (s.hasValue)
            return s.value;
        }
        let r = t.node.name;
        if (BX.has(r)) {
          if (!s)
            return BX.get(r);
          mu(s.path, e);
          return;
        }
        let i = t.resolve();
        if (i === t) {
          mu(t, e);
          return;
        } else
          return wn(i, e);
      }
      if (t.isUnaryExpression({
        prefix: !0
      })) {
        if (t.node.operator === "void")
          return;
        let s = t.get("argument");
        if (t.node.operator === "typeof" && (s.isFunction() || s.isClass()))
          return "function";
        let r = wn(s, e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "!":
            return !r;
          case "+":
            return +r;
          case "-":
            return -r;
          case "~":
            return ~r;
          case "typeof":
            return typeof r;
        }
      }
      if (t.isArrayExpression()) {
        let s = [], r = t.get("elements");
        for (let i of r) {
          let a = i.evaluate();
          if (a.confident)
            s.push(a.value);
          else {
            mu(a.deopt, e);
            return;
          }
        }
        return s;
      }
      if (t.isObjectExpression()) {
        let s = {}, r = t.get("properties");
        for (let i of r) {
          if (i.isObjectMethod() || i.isSpreadElement()) {
            mu(i, e);
            return;
          }
          let a = i.get("key"), o;
          if (i.node.computed) {
            if (o = a.evaluate(), !o.confident) {
              mu(o.deopt, e);
              return;
            }
            o = o.value;
          } else a.isIdentifier() ? o = a.node.name : o = a.node.value;
          let u = i.get("value").evaluate();
          if (!u.confident) {
            mu(u.deopt, e);
            return;
          }
          u = u.value, s[o] = u;
        }
        return s;
      }
      if (t.isLogicalExpression()) {
        let s = e.confident, r = wn(t.get("left"), e), i = e.confident;
        e.confident = s;
        let a = wn(t.get("right"), e), o = e.confident;
        switch (t.node.operator) {
          case "||":
            return e.confident = i && (!!r || o), e.confident ? r || a : void 0;
          case "&&":
            return e.confident = i && (!r || o), e.confident ? r && a : void 0;
          case "??":
            return e.confident = i && (r != null || o), e.confident ? r ?? a : void 0;
        }
      }
      if (t.isBinaryExpression()) {
        let s = wn(t.get("left"), e);
        if (!e.confident) return;
        let r = wn(t.get("right"), e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "-":
            return s - r;
          case "+":
            return s + r;
          case "/":
            return s / r;
          case "*":
            return s * r;
          case "%":
            return s % r;
          case "**":
            return Math.pow(s, r);
          case "<":
            return s < r;
          case ">":
            return s > r;
          case "<=":
            return s <= r;
          case ">=":
            return s >= r;
          case "==":
            return s == r;
          case "!=":
            return s != r;
          case "===":
            return s === r;
          case "!==":
            return s !== r;
          case "|":
            return s | r;
          case "&":
            return s & r;
          case "^":
            return s ^ r;
          case "<<":
            return s << r;
          case ">>":
            return s >> r;
          case ">>>":
            return s >>> r;
        }
      }
      if (t.isCallExpression()) {
        let s = t.get("callee"), r, i;
        if (s.isIdentifier() && !t.scope.getBinding(s.node.name) && (LX(s.node.name) || nat(s.node.name)) && (i = global[s.node.name]), s.isMemberExpression()) {
          let a = s.get("object"), o = s.get("property");
          if (a.isIdentifier() && o.isIdentifier() && LX(a.node.name) && !aat(o.node.name)) {
            r = global[a.node.name];
            let l = o.node.name;
            hasOwnProperty.call(r, l) && (i = r[l]);
          }
          if (a.isLiteral() && o.isIdentifier()) {
            let l = typeof a.node.value;
            (l === "string" || l === "number") && (r = a.node.value, i = r[o.node.name]);
          }
        }
        if (i) {
          let a = t.get("arguments").map((o) => wn(o, e));
          return e.confident ? i.apply(r, a) : void 0;
        }
      }
      mu(t, e);
    }
  }
  n(lat, "_evaluate");
  function MX(t, e, s, r = !1) {
    let i = "", a = 0, o = t.isTemplateLiteral() ? t.get("expressions") : t.get("quasi.expressions");
    for (let l of e) {
      if (!s.confident) break;
      i += r ? l.value.raw : l.value.cooked;
      let u = o[a++];
      u && (i += String(wn(u, s)));
    }
    if (s.confident)
      return i;
  }
  n(MX, "evaluateQuasis");
  function uat() {
    let t = {
      confident: !0,
      deoptPath: null,
      seen: /* @__PURE__ */ new Map()
    }, e = wn(this, t);
    return t.confident || (e = void 0), {
      confident: t.confident,
      deopt: t.deoptPath,
      value: e
    };
  }
  n(uat, "evaluate");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/conversion.js
var $X = g((yu) => {
  "use strict";
  Object.defineProperty(yu, "__esModule", {
    value: !0
  });
  yu.arrowFunctionToExpression = Rat;
  yu.ensureBlock = Mat;
  yu.ensureFunctionName = Gat;
  yu.splitExportDeclaration = Xat;
  yu.toComputedKey = Bat;
  yu.unwrapFunctionEnvironment = Fat;
  var cat = fe(), pat = Jl(), d2 = Og(), hat = ol(), {
    arrowFunctionExpression: m2,
    assignmentExpression: Lh,
    binaryExpression: h2,
    blockStatement: fat,
    callExpression: Hd,
    conditionalExpression: dat,
    expressionStatement: qX,
    identifier: mr,
    isIdentifier: mat,
    jsxIdentifier: yat,
    logicalExpression: gat,
    LOGICAL_OPERATORS: Tat,
    memberExpression: Ao,
    metaProperty: bat,
    numericLiteral: xat,
    objectExpression: Sat,
    restElement: Pat,
    returnStatement: Eat,
    sequenceExpression: Aat,
    spreadElement: vat,
    stringLiteral: UX,
    super: f2,
    thisExpression: Hg,
    toExpression: KX,
    unaryExpression: Cat,
    toBindingIdentifierName: wat,
    isFunction: Iat,
    isAssignmentPattern: Nat,
    isRestElement: kat,
    getFunctionName: Dat,
    cloneNode: Bh,
    variableDeclaration: Oat,
    variableDeclarator: _at,
    exportNamedDeclaration: jX,
    exportSpecifier: RX,
    inherits: Lat
  } = cat;
  function Bat() {
    let t;
    if (this.isMemberExpression())
      t = this.node.property;
    else if (this.isProperty() || this.isMethod())
      t = this.node.key;
    else
      throw new ReferenceError("todo");
    return this.node.computed || mat(t) && (t = UX(t.name)), t;
  }
  n(Bat, "toComputedKey");
  function Mat() {
    let t = this.get("body"), e = t.node;
    if (Array.isArray(t))
      throw new Error("Can't convert array path to a block statement");
    if (!e)
      throw new Error("Can't convert node without a body");
    if (t.isBlockStatement())
      return e;
    let s = [], r = "body", i, a;
    t.isStatement() ? (a = "body", i = 0, s.push(t.node)) : (r += ".body.0", this.isFunction() ? (i = "argument", s.push(Eat(t.node))) : (i =
    "expression", s.push(qX(t.node)))), this.node.body = fat(s);
    let o = this.get(r);
    return hat.setup.call(t, o, a ? o.node[a] : o.node, a, i), this.node;
  }
  n(Mat, "ensureBlock");
  yu.arrowFunctionToShadowed = function() {
    this.isArrowFunctionExpression() && this.arrowFunctionToExpression();
  };
  function Fat() {
    if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration())
      throw this.buildCodeFrameError("Can only unwrap the environment of a function.");
    VX(this);
  }
  n(Fat, "unwrapFunctionEnvironment");
  function jat(t, e) {
    t.node.type = e;
  }
  n(jat, "setType");
  function Rat({
    allowInsertArrow: t = !0,
    allowInsertArrowWithRest: e = t,
    noNewArrows: s = !((r) => (r = arguments[0]) == null ? void 0 : r.specCompliant)()
  } = {}) {
    if (!this.isArrowFunctionExpression())
      throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");
    let r = this;
    if (!s) {
      var i;
      r = (i = r.ensureFunctionName(!1)) != null ? i : r;
    }
    let {
      thisBinding: a,
      fnPath: o
    } = VX(r, s, t, e);
    if (o.ensureBlock(), jat(o, "FunctionExpression"), !s) {
      let l = a ? null : o.scope.generateUidIdentifier("arrowCheckId");
      return l && o.parentPath.scope.push({
        id: l,
        init: Sat([])
      }), o.get("body").unshiftContainer("body", qX(Hd(this.hub.addHelper("newArrowCheck"), [Hg(), mr(l ? l.name : a)]))), o.replaceWith(Hd(
      Ao(o.node, mr("bind")), [l ? mr(l.name) : Hg()])), o.get("callee.object");
    }
    return o;
  }
  n(Rat, "arrowFunctionToExpression");
  var qat = (0, d2.environmentVisitor)({
    CallExpression(t, {
      allSuperCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    }
  });
  function VX(t, e = !0, s = !0, r = !0) {
    let i, a = t.findParent((d) => {
      if (d.isArrowFunctionExpression()) {
        var m;
        return (m = i) != null || (i = d), !1;
      }
      return d.isFunction() || d.isProgram() || d.isClassProperty({
        static: !1
      }) || d.isClassPrivateProperty({
        static: !1
      });
    }), o = a.isClassMethod({
      kind: "constructor"
    });
    if (a.isClassProperty() || a.isClassPrivateProperty())
      if (i)
        a = i;
      else if (s)
        t.replaceWith(Hd(m2([], KX(t.node)), [])), a = t.get("callee"), t = a.get("body");
      else
        throw t.buildCodeFrameError("Unable to transform arrow inside class property");
    let {
      thisPaths: l,
      argumentsPaths: u,
      newTargetPaths: c,
      superProps: p,
      superCalls: h
    } = Yat(t);
    if (o && h.length > 0) {
      if (!s)
        throw h[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an a\
rrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      if (!r)
        throw h[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\
.");
      let d = [];
      a.traverse(qat, {
        allSuperCalls: d
      });
      let m = $at(a);
      d.forEach((y) => {
        let T = mr(m);
        T.loc = y.node.callee.loc, y.get("callee").replaceWith(T);
      });
    }
    if (u.length > 0) {
      let d = Jg(a, "arguments", () => {
        let m = /* @__PURE__ */ n(() => mr("arguments"), "args");
        return a.scope.path.isProgram() ? dat(h2("===", Cat("typeof", m()), UX("undefined")), a.scope.buildUndefinedNode(), m()) : m();
      });
      u.forEach((m) => {
        let y = mr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (c.length > 0) {
      let d = Jg(a, "newtarget", () => bat(mr("new"), mr("target")));
      c.forEach((m) => {
        let y = mr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (p.length > 0) {
      if (!s)
        throw p[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in a\
n arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      p.reduce((m, y) => m.concat(Kat(y)), []).forEach((m) => {
        let y = m.node.computed ? "" : m.get("property").node.name, T = m.parentPath, b = T.isAssignmentExpression({
          left: m.node
        }), E = T.isCallExpression({
          callee: m.node
        }), V = T.isTaggedTemplateExpression({
          tag: m.node
        }), W = Hat(a, b, y), oe = [];
        if (m.node.computed && oe.push(m.get("property").node), b) {
          let ye = T.node.right;
          oe.push(ye);
        }
        let de = Hd(mr(W), oe);
        E ? (T.unshiftContainer("arguments", Hg()), m.replaceWith(Ao(de, mr("call"))), l.push(T.get("arguments.0"))) : b ? T.replaceWith(de) :
        V ? (m.replaceWith(Hd(Ao(de, mr("bind"), !1), [Hg()])), l.push(m.get("arguments.0"))) : m.replaceWith(de);
      });
    }
    let f;
    return (l.length > 0 || !e) && (f = Wat(a, o), (e || o && WX(a)) && (l.forEach((d) => {
      let m = d.isJSX() ? yat(f) : mr(f);
      m.loc = d.node.loc, d.replaceWith(m);
    }), e || (f = null))), {
      thisBinding: f,
      fnPath: t
    };
  }
  n(VX, "hoistFunctionEnvironment");
  function Uat(t) {
    return Tat.includes(t);
  }
  n(Uat, "isLogicalOp");
  function Kat(t) {
    if (t.parentPath.isAssignmentExpression() && t.parentPath.node.operator !== "=") {
      let s = t.parentPath, r = s.node.operator.slice(0, -1), i = s.node.right, a = Uat(r);
      if (t.node.computed) {
        let o = t.scope.generateDeclaredUidIdentifier("tmp"), l = t.node.object, u = t.node.property;
        s.get("left").replaceWith(Ao(l, Lh("=", o, u), !0)), s.get("right").replaceWith(e(a ? "=" : r, Ao(l, mr(o.name), !0), i));
      } else {
        let o = t.node.object, l = t.node.property;
        s.get("left").replaceWith(Ao(o, l)), s.get("right").replaceWith(e(a ? "=" : r, Ao(o, mr(l.name)), i));
      }
      return a ? s.replaceWith(gat(r, s.node.left, s.node.right)) : s.node.operator = "=", [s.get("left"), s.get("right").get("left")];
    } else if (t.parentPath.isUpdateExpression()) {
      let s = t.parentPath, r = t.scope.generateDeclaredUidIdentifier("tmp"), i = t.node.computed ? t.scope.generateDeclaredUidIdentifier("p\
rop") : null, a = [Lh("=", r, Ao(t.node.object, i ? Lh("=", i, t.node.property) : t.node.property, t.node.computed)), Lh("=", Ao(t.node.object,
      i ? mr(i.name) : t.node.property, t.node.computed), h2(t.parentPath.node.operator[0], mr(r.name), xat(1)))];
      t.parentPath.node.prefix || a.push(mr(r.name)), s.replaceWith(Aat(a));
      let o = s.get("expressions.0.right"), l = s.get("expressions.1.left");
      return [o, l];
    }
    return [t];
    function e(s, r, i) {
      return s === "=" ? Lh("=", r, i) : h2(s, r, i);
    }
  }
  n(Kat, "standardizeSuperProperty");
  function WX(t) {
    return t.isClassMethod() && !!t.parentPath.parentPath.node.superClass;
  }
  n(WX, "hasSuperClass");
  var Vat = (0, d2.environmentVisitor)({
    CallExpression(t, {
      supers: e,
      thisBinding: s
    }) {
      t.get("callee").isSuper() && (e.has(t.node) || (e.add(t.node), t.replaceWithMultiple([t.node, Lh("=", mr(s), mr("this"))])));
    }
  });
  function Wat(t, e) {
    return Jg(t, "this", (s) => {
      if (!e || !WX(t)) return Hg();
      t.traverse(Vat, {
        supers: /* @__PURE__ */ new WeakSet(),
        thisBinding: s
      });
    });
  }
  n(Wat, "getThisBinding");
  function $at(t) {
    return Jg(t, "supercall", () => {
      let e = t.scope.generateUidIdentifier("args");
      return m2([Pat(e)], Hd(f2(), [vat(mr(e.name))]));
    });
  }
  n($at, "getSuperBinding");
  function Hat(t, e, s) {
    return Jg(t, `superprop_${e ? "set" : "get"}:${s || ""}`, () => {
      let i = [], a;
      if (s)
        a = Ao(f2(), mr(s));
      else {
        let o = t.scope.generateUidIdentifier("prop");
        i.unshift(o), a = Ao(f2(), mr(o.name), !0);
      }
      if (e) {
        let o = t.scope.generateUidIdentifier("value");
        i.push(o), a = Lh("=", a, mr(o.name));
      }
      return m2(i, a);
    });
  }
  n(Hat, "getSuperPropBinding");
  function Jg(t, e, s) {
    let r = "binding:" + e, i = t.getData(r);
    if (!i) {
      let a = t.scope.generateUidIdentifier(e);
      i = a.name, t.setData(r, i), t.scope.push({
        id: a,
        init: s(i)
      });
    }
    return i;
  }
  n(Jg, "getBinding");
  var Jat = (0, d2.environmentVisitor)({
    ThisExpression(t, {
      thisPaths: e
    }) {
      e.push(t);
    },
    JSXIdentifier(t, {
      thisPaths: e
    }) {
      t.node.name === "this" && (!t.parentPath.isJSXMemberExpression({
        object: t.node
      }) && !t.parentPath.isJSXOpeningElement({
        name: t.node
      }) || e.push(t));
    },
    CallExpression(t, {
      superCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    },
    MemberExpression(t, {
      superProps: e
    }) {
      t.get("object").isSuper() && e.push(t);
    },
    Identifier(t, {
      argumentsPaths: e
    }) {
      if (!t.isReferencedIdentifier({
        name: "arguments"
      })) return;
      let s = t.scope;
      do {
        if (s.hasOwnBinding("arguments")) {
          s.rename("arguments");
          return;
        }
        if (s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
      } while (s = s.parent);
      e.push(t);
    },
    MetaProperty(t, {
      newTargetPaths: e
    }) {
      t.get("meta").isIdentifier({
        name: "new"
      }) && t.get("property").isIdentifier({
        name: "target"
      }) && e.push(t);
    }
  });
  function Yat(t) {
    let e = [], s = [], r = [], i = [], a = [];
    return t.traverse(Jat, {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    }), {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    };
  }
  n(Yat, "getScopeInformation");
  function Xat() {
    if (!this.isExportDeclaration() || this.isExportAllDeclaration())
      throw new Error("Only default and named export declarations can be split.");
    if (this.isExportNamedDeclaration() && this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let t = this.get("declaration");
    if (this.isExportDefaultDeclaration()) {
      let i = t.isFunctionDeclaration() || t.isClassDeclaration(), a = t.isFunctionExpression() || t.isClassExpression(), o = t.isScope() ? t.
      scope.parent : t.scope, l = t.node.id, u = !1;
      l ? a && o.hasBinding(l.name) && (u = !0, l = o.generateUidIdentifier(l.name)) : (u = !0, l = o.generateUidIdentifier("default"), (i ||
      a) && (t.node.id = Bh(l)));
      let c = i ? t.node : Oat("var", [_at(Bh(l), t.node)]), p = jX(null, [RX(Bh(l), mr("default"))]);
      return this.insertAfter(p), this.replaceWith(c), u && o.registerDeclaration(this), this;
    } else if (this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let e = t.getOuterBindingIdentifiers(), s = Object.keys(e).map((i) => RX(mr(i), mr(i))), r = jX(null, s);
    return this.insertAfter(r), this.replaceWith(t.node), this;
  }
  n(Xat, "splitExportDeclaration");
  var zat = {
    "ReferencedIdentifier|BindingIdentifier"(t, e) {
      t.node.name === e.name && (e.needsRename = !0, t.stop());
    },
    Scope(t, e) {
      t.scope.hasOwnBinding(e.name) && t.skip();
    }
  };
  function Gat(t) {
    if (this.node.id) return this;
    let e = Dat(this.node, this.parent);
    if (e == null) return this;
    let {
      name: s
    } = e;
    if (!t && /[\uD800-\uDFFF]/.test(s) || s.startsWith("get ") || s.startsWith("set "))
      return null;
    s = wat(s.replace(/[/ ]/g, "_"));
    let r = mr(s);
    Lat(r, e.originalNode);
    let i = {
      needsRename: !1,
      name: s
    }, {
      scope: a
    } = this, o = a.getOwnBinding(s);
    if (o ? o.kind === "param" && (i.needsRename = !0) : (a.parent.hasBinding(s) || a.hasGlobal(s)) && this.traverse(zat, i), !i.needsRename)
      return this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (a.hasBinding(r.name) && !a.hasGlobal(r.name))
      return a.rename(r.name), this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (!Iat(this.node)) return null;
    let l = a.generateUidIdentifier(r.name), u = [];
    for (let p = 0, h = Qat(this.node); p < h; p++)
      u.push(a.generateUidIdentifier("x"));
    let c = pat.default.expression.ast`
    (function (${l}) {
      function ${r}(${u}) {
        return ${Bh(l)}.apply(this, arguments);
      }

      ${Bh(r)}.toString = function () {
        return ${Bh(l)}.toString();
      }

      return ${Bh(r)};
    })(${KX(this.node)})
  `;
    return this.replaceWith(c)[0].get("arguments.0");
  }
  n(Gat, "ensureFunctionName");
  function Qat(t) {
    let e = t.params.findIndex((s) => Nat(s) || kat(s));
    return e === -1 ? t.params.length : e;
  }
  n(Qat, "getFunctionArity");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/introspection.js
var GX = g((ii) => {
  "use strict";
  Object.defineProperty(ii, "__esModule", {
    value: !0
  });
  ii._guessExecutionStatusRelativeTo = bot;
  ii._resolve = zX;
  ii.canHaveVariableDeclarationOrExpression = pot;
  ii.canSwapBetweenExpressionAndStatement = hot;
  ii.getSource = yot;
  ii.isCompletionRecord = fot;
  ii.isConstantExpression = Eot;
  ii.isInStrictMode = Aot;
  ii.isNodeType = cot;
  ii.isStatementOrBlock = dot;
  ii.isStatic = uot;
  ii.matchesPattern = lot;
  ii.referencesImport = mot;
  ii.resolve = Pot;
  ii.willIMaybeExecuteBefore = got;
  var Zat = fe(), {
    STATEMENT_OR_BLOCK_KEYS: eot,
    VISITOR_KEYS: tot,
    isBlockStatement: XX,
    isExpression: sot,
    isIdentifier: rot,
    isLiteral: iot,
    isStringLiteral: not,
    isType: aot,
    matchesPattern: oot
  } = Zat;
  function lot(t, e) {
    return oot(this.node, t, e);
  }
  n(lot, "matchesPattern");
  ii.has = /* @__PURE__ */ n(function(e) {
    var s;
    let r = (s = this.node) == null ? void 0 : s[e];
    return r && Array.isArray(r) ? !!r.length : !!r;
  }, "has");
  function uot() {
    return this.scope.isStatic(this.node);
  }
  n(uot, "isStatic");
  ii.is = ii.has, ii.isnt = /* @__PURE__ */ n(function(e) {
    return !this.has(e);
  }, "isnt"), ii.equals = /* @__PURE__ */ n(function(e, s) {
    return this.node[e] === s;
  }, "equals");
  function cot(t) {
    return aot(this.type, t);
  }
  n(cot, "isNodeType");
  function pot() {
    return (this.key === "init" || this.key === "left") && this.parentPath.isFor();
  }
  n(pot, "canHaveVariableDeclarationOrExpression");
  function hot(t) {
    return this.key !== "body" || !this.parentPath.isArrowFunctionExpression() ? !1 : this.isExpression() ? XX(t) : this.isBlockStatement() ?
    sot(t) : !1;
  }
  n(hot, "canSwapBetweenExpressionAndStatement");
  function fot(t) {
    let e = this, s = !0;
    do {
      let {
        type: r,
        container: i
      } = e;
      if (!s && (e.isFunction() || r === "StaticBlock"))
        return !!t;
      if (s = !1, Array.isArray(i) && e.key !== i.length - 1)
        return !1;
    } while ((e = e.parentPath) && !e.isProgram() && !e.isDoExpression());
    return !0;
  }
  n(fot, "isCompletionRecord");
  function dot() {
    return this.parentPath.isLabeledStatement() || XX(this.container) ? !1 : eot.includes(this.key);
  }
  n(dot, "isStatementOrBlock");
  function mot(t, e) {
    if (!this.isReferencedIdentifier()) {
      if (this.isJSXMemberExpression() && this.node.property.name === e || (this.isMemberExpression() || this.isOptionalMemberExpression()) &&
      (this.node.computed ? not(this.node.property, {
        value: e
      }) : this.node.property.name === e)) {
        let a = this.get("object");
        return a.isReferencedIdentifier() && a.referencesImport(t, "*");
      }
      return !1;
    }
    let s = this.scope.getBinding(this.node.name);
    if (!s || s.kind !== "module") return !1;
    let r = s.path, i = r.parentPath;
    if (!i.isImportDeclaration()) return !1;
    if (i.node.source.value === t) {
      if (!e) return !0;
    } else
      return !1;
    return !!(r.isImportDefaultSpecifier() && e === "default" || r.isImportNamespaceSpecifier() && e === "*" || r.isImportSpecifier() && rot(
    r.node.imported, {
      name: e
    }));
  }
  n(mot, "referencesImport");
  function yot() {
    let t = this.node;
    if (t.end) {
      let e = this.hub.getCode();
      if (e) return e.slice(t.start, t.end);
    }
    return "";
  }
  n(yot, "getSource");
  function got(t) {
    return this._guessExecutionStatusRelativeTo(t) !== "after";
  }
  n(got, "willIMaybeExecuteBefore");
  function HX(t) {
    return t.isProgram() ? t : (t.parentPath.scope.getFunctionParent() || t.parentPath.scope.getProgramParent()).path;
  }
  n(HX, "getOuterFunction");
  function Tot(t, e) {
    switch (t) {
      case "LogicalExpression":
        return e === "right";
      case "ConditionalExpression":
      case "IfStatement":
        return e === "consequent" || e === "alternate";
      case "WhileStatement":
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForOfStatement":
        return e === "body";
      case "ForStatement":
        return e === "body" || e === "update";
      case "SwitchStatement":
        return e === "cases";
      case "TryStatement":
        return e === "handler";
      case "AssignmentPattern":
        return e === "right";
      case "OptionalMemberExpression":
        return e === "property";
      case "OptionalCallExpression":
        return e === "arguments";
      default:
        return !1;
    }
  }
  n(Tot, "isExecutionUncertain");
  function JX(t, e) {
    for (let s = 0; s < e; s++) {
      let r = t[s];
      if (Tot(r.parent.type, r.parentKey))
        return !0;
    }
    return !1;
  }
  n(JX, "isExecutionUncertainInList");
  var YX = Symbol();
  function bot(t) {
    return y2(this, t, /* @__PURE__ */ new Map());
  }
  n(bot, "_guessExecutionStatusRelativeTo");
  function y2(t, e, s) {
    let r = {
      this: HX(t),
      target: HX(e)
    };
    if (r.target.node !== r.this.node)
      return Sot(t, r.target, s);
    let i = {
      target: e.getAncestry(),
      this: t.getAncestry()
    };
    if (i.target.includes(t)) return "after";
    if (i.this.includes(e)) return "before";
    let a, o = {
      target: 0,
      this: 0
    };
    for (; !a && o.this < i.this.length; ) {
      let p = i.this[o.this];
      o.target = i.target.indexOf(p), o.target >= 0 ? a = p : o.this++;
    }
    if (!a)
      throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");
    if (JX(i.this, o.this - 1) || JX(i.target, o.target - 1))
      return "unknown";
    let l = {
      this: i.this[o.this - 1],
      target: i.target[o.target - 1]
    };
    if (l.target.listKey && l.this.listKey && l.target.container === l.this.container)
      return l.target.key > l.this.key ? "before" : "after";
    let u = tot[a.type], c = {
      this: u.indexOf(l.this.parentKey),
      target: u.indexOf(l.target.parentKey)
    };
    return c.target > c.this ? "before" : "after";
  }
  n(y2, "_guessExecutionStatusRelativeToCached");
  function xot(t, e, s) {
    if (e.isFunctionDeclaration()) {
      if (e.parentPath.isExportDeclaration())
        return "unknown";
    } else return y2(t, e, s) === "before" ? "before" : "unknown";
    let r = e.scope.getBinding(e.node.id.name);
    if (!r.references) return "before";
    let i = r.referencePaths, a;
    for (let o of i) {
      if (!!o.find((c) => c.node === e.node)) continue;
      if (o.key !== "callee" || !o.parentPath.isCallExpression())
        return "unknown";
      let u = y2(t, o, s);
      if (a && a !== u)
        return "unknown";
      a = u;
    }
    return a;
  }
  n(xot, "_guessExecutionStatusRelativeToDifferentFunctionsInternal");
  function Sot(t, e, s) {
    let r = s.get(t.node), i;
    if (!r)
      s.set(t.node, r = /* @__PURE__ */ new Map());
    else if (i = r.get(e.node))
      return i === YX ? "unknown" : i;
    r.set(e.node, YX);
    let a = xot(t, e, s);
    return r.set(e.node, a), a;
  }
  n(Sot, "_guessExecutionStatusRelativeToDifferentFunctionsCached");
  function Pot(t, e) {
    return zX.call(this, t, e) || this;
  }
  n(Pot, "resolve");
  function zX(t, e) {
    var s;
    if (!((s = e) != null && s.includes(this)))
      if (e = e || [], e.push(this), this.isVariableDeclarator()) {
        if (this.get("id").isIdentifier())
          return this.get("init").resolve(t, e);
      } else if (this.isReferencedIdentifier()) {
        let r = this.scope.getBinding(this.node.name);
        if (!r || !r.constant || r.kind === "module") return;
        if (r.path !== this) {
          let i = r.path.resolve(t, e);
          return this.find((a) => a.node === i.node) ? void 0 : i;
        }
      } else {
        if (this.isTypeCastExpression())
          return this.get("expression").resolve(t, e);
        if (t && this.isMemberExpression()) {
          let r = this.toComputedKey();
          if (!iot(r)) return;
          let i = r.value, a = this.get("object").resolve(t, e);
          if (a.isObjectExpression()) {
            let o = a.get("properties");
            for (let l of o) {
              if (!l.isProperty()) continue;
              let u = l.get("key"), c = l.isnt("computed") && u.isIdentifier({
                name: i
              });
              if (c = c || u.isLiteral({
                value: i
              }), c) return l.get("value").resolve(t, e);
            }
          } else if (a.isArrayExpression() && !isNaN(+i)) {
            let l = a.get("elements")[i];
            if (l) return l.resolve(t, e);
          }
        }
      }
  }
  n(zX, "_resolve");
  function Eot() {
    if (this.isIdentifier()) {
      let t = this.scope.getBinding(this.node.name);
      return t ? t.constant : !1;
    }
    if (this.isLiteral())
      return this.isRegExpLiteral() ? !1 : this.isTemplateLiteral() ? this.get("expressions").every((t) => t.isConstantExpression()) : !0;
    if (this.isUnaryExpression())
      return this.node.operator !== "void" ? !1 : this.get("argument").isConstantExpression();
    if (this.isBinaryExpression()) {
      let {
        operator: t
      } = this.node;
      return t !== "in" && t !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression();
    }
    return this.isMemberExpression() ? !this.node.computed && this.get("object").isIdentifier({
      name: "Symbol"
    }) && !this.scope.hasBinding("Symbol", {
      noGlobals: !0
    }) : this.isCallExpression() ? this.node.arguments.length === 1 && this.get("callee").matchesPattern("Symbol.for") && !this.scope.hasBinding(
    "Symbol", {
      noGlobals: !0
    }) && this.get("arguments")[0].isStringLiteral() : !1;
  }
  n(Eot, "isConstantExpression");
  function Aot() {
    return !!(this.isProgram() ? this : this.parentPath).find((s) => {
      if (s.isProgram({
        sourceType: "module"
      }) || s.isClass()) return !0;
      if (s.isArrowFunctionExpression() && !s.get("body").isBlockStatement())
        return !1;
      let r;
      if (s.isFunction())
        r = s.node.body;
      else if (s.isProgram())
        r = s.node;
      else
        return !1;
      for (let i of r.directives)
        if (i.value.value === "use strict")
          return !0;
    });
  }
  n(Aot, "isInStrictMode");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/family.js
var sz = g((Wi) => {
  "use strict";
  Object.defineProperty(Wi, "__esModule", {
    value: !0
  });
  Wi._getKey = ez;
  Wi._getPattern = tz;
  Wi.get = Uot;
  Wi.getAllNextSiblings = Rot;
  Wi.getAllPrevSiblings = qot;
  Wi.getAssignmentIdentifiers = Kot;
  Wi.getBindingIdentifierPaths = $ot;
  Wi.getBindingIdentifiers = Vot;
  Wi.getCompletionRecords = Bot;
  Wi.getNextSibling = jot;
  Wi.getOpposite = Oot;
  Wi.getOuterBindingIdentifierPaths = Hot;
  Wi.getOuterBindingIdentifiers = Wot;
  Wi.getPrevSibling = Fot;
  Wi.getSibling = Mot;
  var T2 = zc(), vot = fe(), {
    getAssignmentIdentifiers: Cot,
    getBindingIdentifiers: ZX,
    getOuterBindingIdentifiers: wot,
    numericLiteral: Iot,
    unaryExpression: Not
  } = vot, b2 = 0, Yg = 1;
  function kot(t) {
    return {
      type: b2,
      path: t
    };
  }
  n(kot, "NormalCompletion");
  function Dot(t) {
    return {
      type: Yg,
      path: t
    };
  }
  n(Dot, "BreakCompletion");
  function Oot() {
    return this.key === "left" ? this.getSibling("right") : this.key === "right" ? this.getSibling("left") : null;
  }
  n(Oot, "getOpposite");
  function Jd(t, e, s) {
    return t && e.push(...Yd(t, s)), e;
  }
  n(Jd, "addCompletionRecords");
  function _ot(t, e, s) {
    let r = [];
    for (let i = 0; i < t.length; i++) {
      let a = t[i], o = Yd(a, s), l = [], u = [];
      for (let c of o)
        c.type === b2 && l.push(c), c.type === Yg && u.push(c);
      l.length && (r = l), e.push(...u);
    }
    return e.push(...r), e;
  }
  n(_ot, "completionRecordForSwitch");
  function Lot(t) {
    t.forEach((e) => {
      e.type = Yg;
    });
  }
  n(Lot, "normalCompletionToBreak");
  function g2(t, e) {
    t.forEach((s) => {
      s.path.isBreakStatement({
        label: null
      }) && (e ? s.path.replaceWith(Not("void", Iot(0))) : s.path.remove());
    });
  }
  n(g2, "replaceBreakStatementInBreakCompletion");
  function QX(t, e) {
    let s = [];
    if (e.canHaveBreak) {
      let r = [];
      for (let i = 0; i < t.length; i++) {
        let a = t[i], o = Object.assign({}, e, {
          inCaseClause: !1
        });
        a.isBlockStatement() && (e.inCaseClause || e.shouldPopulateBreak) ? o.shouldPopulateBreak = !0 : o.shouldPopulateBreak = !1;
        let l = Yd(a, o);
        if (l.length > 0 && l.every((u) => u.type === Yg)) {
          r.length > 0 && l.every((u) => u.path.isBreakStatement({
            label: null
          })) ? (Lot(r), s.push(...r), r.some((u) => u.path.isDeclaration()) && (s.push(...l), g2(l, !0)), g2(l, !1)) : (s.push(...l), e.shouldPopulateBreak ||
          g2(l, !0));
          break;
        }
        if (i === t.length - 1)
          s.push(...l);
        else {
          r = [];
          for (let u = 0; u < l.length; u++) {
            let c = l[u];
            c.type === Yg && s.push(c), c.type === b2 && r.push(c);
          }
        }
      }
    } else if (t.length)
      for (let r = t.length - 1; r >= 0; r--) {
        let i = Yd(t[r], e);
        if (i.length > 1 || i.length === 1 && !i[0].path.isVariableDeclaration()) {
          s.push(...i);
          break;
        }
      }
    return s;
  }
  n(QX, "getStatementListCompletion");
  function Yd(t, e) {
    let s = [];
    if (t.isIfStatement())
      s = Jd(t.get("consequent"), s, e), s = Jd(t.get("alternate"), s, e);
    else {
      if (t.isDoExpression() || t.isFor() || t.isWhile() || t.isLabeledStatement())
        return Jd(t.get("body"), s, e);
      if (t.isProgram() || t.isBlockStatement())
        return QX(t.get("body"), e);
      if (t.isFunction())
        return Yd(t.get("body"), e);
      if (t.isTryStatement())
        s = Jd(t.get("block"), s, e), s = Jd(t.get("handler"), s, e);
      else {
        if (t.isCatchClause())
          return Jd(t.get("body"), s, e);
        if (t.isSwitchStatement())
          return _ot(t.get("cases"), s, e);
        if (t.isSwitchCase())
          return QX(t.get("consequent"), {
            canHaveBreak: !0,
            shouldPopulateBreak: !1,
            inCaseClause: !0
          });
        t.isBreakStatement() ? s.push(Dot(t)) : s.push(kot(t));
      }
    }
    return s;
  }
  n(Yd, "_getCompletionRecords");
  function Bot() {
    return Yd(this, {
      canHaveBreak: !1,
      shouldPopulateBreak: !1,
      inCaseClause: !1
    }).map((e) => e.path);
  }
  n(Bot, "getCompletionRecords");
  function Mot(t) {
    return T2.default.get({
      parentPath: this.parentPath,
      parent: this.parent,
      container: this.container,
      listKey: this.listKey,
      key: t
    }).setContext(this.context);
  }
  n(Mot, "getSibling");
  function Fot() {
    return this.getSibling(this.key - 1);
  }
  n(Fot, "getPrevSibling");
  function jot() {
    return this.getSibling(this.key + 1);
  }
  n(jot, "getNextSibling");
  function Rot() {
    let t = this.key, e = this.getSibling(++t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(++t);
    return s;
  }
  n(Rot, "getAllNextSiblings");
  function qot() {
    let t = this.key, e = this.getSibling(--t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(--t);
    return s;
  }
  n(qot, "getAllPrevSiblings");
  function Uot(t, e = !0) {
    e === !0 && (e = this.context);
    let s = t.split(".");
    return s.length === 1 ? ez.call(this, t, e) : tz.call(this, s, e);
  }
  n(Uot, "get");
  function ez(t, e) {
    let s = this.node, r = s[t];
    return Array.isArray(r) ? r.map((i, a) => T2.default.get({
      listKey: t,
      parentPath: this,
      parent: s,
      container: r,
      key: a
    }).setContext(e)) : T2.default.get({
      parentPath: this,
      parent: s,
      container: s,
      key: t
    }).setContext(e);
  }
  n(ez, "_getKey");
  function tz(t, e) {
    let s = this;
    for (let r of t)
      r === "." ? s = s.parentPath : Array.isArray(s) ? s = s[r] : s = s.get(r, e);
    return s;
  }
  n(tz, "_getPattern");
  function Kot() {
    return Cot(this.node);
  }
  n(Kot, "getAssignmentIdentifiers");
  function Vot(t) {
    return ZX(this.node, t);
  }
  n(Vot, "getBindingIdentifiers");
  function Wot(t) {
    return wot(this.node, t);
  }
  n(Wot, "getOuterBindingIdentifiers");
  function $ot(t = !1, e = !1) {
    let r = [this], i = /* @__PURE__ */ Object.create(null);
    for (; r.length; ) {
      let a = r.shift();
      if (!a || !a.node) continue;
      let o = ZX.keys[a.node.type];
      if (a.isIdentifier()) {
        t ? (i[a.node.name] = i[a.node.name] || []).push(a) : i[a.node.name] = a;
        continue;
      }
      if (a.isExportDeclaration()) {
        let l = a.get("declaration");
        l.isDeclaration() && r.push(l);
        continue;
      }
      if (e) {
        if (a.isFunctionDeclaration()) {
          r.push(a.get("id"));
          continue;
        }
        if (a.isFunctionExpression())
          continue;
      }
      if (o)
        for (let l = 0; l < o.length; l++) {
          let u = o[l], c = a.get(u);
          Array.isArray(c) ? r.push(...c) : c.node && r.push(c);
        }
    }
    return i;
  }
  n($ot, "getBindingIdentifierPaths");
  function Hot(t = !1) {
    return this.getBindingIdentifierPaths(t, !0);
  }
  n(Hot, "getOuterBindingIdentifierPaths");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/comments.js
var iz = g((Xg) => {
  "use strict";
  Object.defineProperty(Xg, "__esModule", {
    value: !0
  });
  Xg.addComment = Got;
  Xg.addComments = Qot;
  Xg.shareCommentsWithSiblings = zot;
  var Jot = fe(), {
    addComment: Yot,
    addComments: Xot
  } = Jot;
  function zot() {
    if (typeof this.key == "string") return;
    let t = this.node;
    if (!t) return;
    let e = t.trailingComments, s = t.leadingComments;
    if (!e && !s) return;
    let r = this.getSibling(this.key - 1), i = this.getSibling(this.key + 1), a = !!r.node, o = !!i.node;
    a && (s && r.addComments("trailing", rz(s, r.node.trailingComments)), e && !o && r.addComments("trailing", e)), o && (e && i.addComments(
    "leading", rz(e, i.node.leadingComments)), s && !a && i.addComments("leading", s));
  }
  n(zot, "shareCommentsWithSiblings");
  function rz(t, e) {
    if (!(e != null && e.length)) return t;
    let s = new Set(e);
    return t.filter((r) => !s.has(r));
  }
  n(rz, "removeIfExisting");
  function Got(t, e, s) {
    Yot(this.node, t, e, s);
  }
  n(Got, "addComment");
  function Qot(t, e) {
    Xot(this.node, t, e);
  }
  n(Qot, "addComments");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/index.js
var zc = g((hl) => {
  "use strict";
  Object.defineProperty(hl, "__esModule", {
    value: !0
  });
  hl.default = hl.SHOULD_STOP = hl.SHOULD_SKIP = hl.REMOVED = void 0;
  var Zot = ND(), elt = go(), tlt = Ld(), slt = jD(), oz = fe(), XS = oz, rlt = vh(), ilt = fY(), cl = dY(), Xd = LY(), zd = bO(), nz = FX(),
  Mh = $X(), Si = GX(), lz = ol(), ni = lz, Gd = LS(), pl = BS(), In = sz(), x2 = iz(), nlt = DD(), {
    validate: alt
  } = oz, az = elt("babel"), ZUs = hl.REMOVED = 1, eKs = hl.SHOULD_STOP = 2, tKs = hl.SHOULD_SKIP = 4, gu = hl.default = class uz {
    static {
      n(this, "NodePath");
    }
    constructor(e, s) {
      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 = s, this.hub = e, this.data = null, this.
      context = null, this.scope = null;
    }
    get removed() {
      return (this._traverseFlags & 1) > 0;
    }
    set removed(e) {
      e ? this._traverseFlags |= 1 : this._traverseFlags &= -2;
    }
    get shouldStop() {
      return (this._traverseFlags & 2) > 0;
    }
    set shouldStop(e) {
      e ? this._traverseFlags |= 2 : this._traverseFlags &= -3;
    }
    get shouldSkip() {
      return (this._traverseFlags & 4) > 0;
    }
    set shouldSkip(e) {
      e ? this._traverseFlags |= 4 : this._traverseFlags &= -5;
    }
    static get({
      hub: e,
      parentPath: s,
      parent: r,
      container: i,
      listKey: a,
      key: o
    }) {
      if (!e && s && (e = s.hub), !r)
        throw new Error("To get a node path the parent needs to exist");
      let l = i[o], u = rlt.getOrCreateCachedPaths(e, r), c = u.get(l);
      return c || (c = new uz(e, r), l && u.set(l, c)), lz.setup.call(c, s, i, a, o), c;
    }
    getScope(e) {
      return this.isScope() ? new slt.default(this) : e;
    }
    setData(e, s) {
      return this.data == null && (this.data = /* @__PURE__ */ Object.create(null)), this.data[e] = s;
    }
    getData(e, s) {
      this.data == null && (this.data = /* @__PURE__ */ Object.create(null));
      let r = this.data[e];
      return r === void 0 && s !== void 0 && (r = this.data[e] = s), r;
    }
    hasNode() {
      return this.node != null;
    }
    buildCodeFrameError(e, s = SyntaxError) {
      return this.hub.buildError(this.node, e, s);
    }
    traverse(e, s) {
      (0, tlt.default)(this.node, e, this.scope, s, this);
    }
    set(e, s) {
      alt(this.node, e, s), this.node[e] = s;
    }
    getPathLocation() {
      let e = [], s = this;
      do {
        let r = s.key;
        s.inList && (r = `${s.listKey}[${r}]`), e.unshift(r);
      } while (s = s.parentPath);
      return e.join(".");
    }
    debug(e) {
      az.enabled && az(`${this.getPathLocation()} ${this.type}: ${e}`);
    }
    toString() {
      return (0, ilt.default)(this.node).code;
    }
    get inList() {
      return !!this.listKey;
    }
    set inList(e) {
      e || (this.listKey = null);
    }
    get parentKey() {
      return this.listKey || this.key;
    }
  }, olt = {
    findParent: cl.findParent,
    find: cl.find,
    getFunctionParent: cl.getFunctionParent,
    getStatementParent: cl.getStatementParent,
    getEarliestCommonAncestorFrom: cl.getEarliestCommonAncestorFrom,
    getDeepestCommonAncestorFrom: cl.getDeepestCommonAncestorFrom,
    getAncestry: cl.getAncestry,
    isAncestor: cl.isAncestor,
    isDescendant: cl.isDescendant,
    inType: cl.inType,
    getTypeAnnotation: Xd.getTypeAnnotation,
    isBaseType: Xd.isBaseType,
    couldBeBaseType: Xd.couldBeBaseType,
    baseTypeStrictlyMatches: Xd.baseTypeStrictlyMatches,
    isGenericType: Xd.isGenericType,
    replaceWithMultiple: zd.replaceWithMultiple,
    replaceWithSourceString: zd.replaceWithSourceString,
    replaceWith: zd.replaceWith,
    replaceExpressionWithStatements: zd.replaceExpressionWithStatements,
    replaceInline: zd.replaceInline,
    evaluateTruthy: nz.evaluateTruthy,
    evaluate: nz.evaluate,
    toComputedKey: Mh.toComputedKey,
    ensureBlock: Mh.ensureBlock,
    unwrapFunctionEnvironment: Mh.unwrapFunctionEnvironment,
    arrowFunctionToExpression: Mh.arrowFunctionToExpression,
    splitExportDeclaration: Mh.splitExportDeclaration,
    ensureFunctionName: Mh.ensureFunctionName,
    matchesPattern: Si.matchesPattern,
    isStatic: Si.isStatic,
    isNodeType: Si.isNodeType,
    canHaveVariableDeclarationOrExpression: Si.canHaveVariableDeclarationOrExpression,
    canSwapBetweenExpressionAndStatement: Si.canSwapBetweenExpressionAndStatement,
    isCompletionRecord: Si.isCompletionRecord,
    isStatementOrBlock: Si.isStatementOrBlock,
    referencesImport: Si.referencesImport,
    getSource: Si.getSource,
    willIMaybeExecuteBefore: Si.willIMaybeExecuteBefore,
    _guessExecutionStatusRelativeTo: Si._guessExecutionStatusRelativeTo,
    resolve: Si.resolve,
    isConstantExpression: Si.isConstantExpression,
    isInStrictMode: Si.isInStrictMode,
    isDenylisted: ni.isDenylisted,
    visit: ni.visit,
    skip: ni.skip,
    skipKey: ni.skipKey,
    stop: ni.stop,
    setContext: ni.setContext,
    requeue: ni.requeue,
    requeueComputedKeyAndDecorators: ni.requeueComputedKeyAndDecorators,
    remove: Gd.remove,
    insertBefore: pl.insertBefore,
    insertAfter: pl.insertAfter,
    unshiftContainer: pl.unshiftContainer,
    pushContainer: pl.pushContainer,
    getOpposite: In.getOpposite,
    getCompletionRecords: In.getCompletionRecords,
    getSibling: In.getSibling,
    getPrevSibling: In.getPrevSibling,
    getNextSibling: In.getNextSibling,
    getAllNextSiblings: In.getAllNextSiblings,
    getAllPrevSiblings: In.getAllPrevSiblings,
    get: In.get,
    getAssignmentIdentifiers: In.getAssignmentIdentifiers,
    getBindingIdentifiers: In.getBindingIdentifiers,
    getOuterBindingIdentifiers: In.getOuterBindingIdentifiers,
    getBindingIdentifierPaths: In.getBindingIdentifierPaths,
    getOuterBindingIdentifierPaths: In.getOuterBindingIdentifierPaths,
    shareCommentsWithSiblings: x2.shareCommentsWithSiblings,
    addComment: x2.addComment,
    addComments: x2.addComments
  };
  Object.assign(gu.prototype, olt);
  gu.prototype.arrowFunctionToShadowed = Mh.arrowFunctionToShadowed, Object.assign(gu.prototype, {
    has: Si.has,
    is: Si.is,
    isnt: Si.isnt,
    equals: Si.equals,
    hoist: pl.hoist,
    updateSiblingKeys: pl.updateSiblingKeys,
    call: ni.call,
    isBlacklisted: ni.isBlacklisted,
    setScope: ni.setScope,
    resync: ni.resync,
    popContext: ni.popContext,
    pushContext: ni.pushContext,
    setup: ni.setup,
    setKey: ni.setKey
  });
  gu.prototype._guessExecutionStatusRelativeToDifferentFunctions = Si._guessExecutionStatusRelativeTo, gu.prototype._guessExecutionStatusRelativeToDifferentFunctions =
  Si._guessExecutionStatusRelativeTo, Object.assign(gu.prototype, {
    _getTypeAnnotation: Xd._getTypeAnnotation,
    _replaceWith: zd._replaceWith,
    _resolve: Si._resolve,
    _call: ni._call,
    _resyncParent: ni._resyncParent,
    _resyncKey: ni._resyncKey,
    _resyncList: ni._resyncList,
    _resyncRemoved: ni._resyncRemoved,
    _getQueueContexts: ni._getQueueContexts,
    _removeFromScope: Gd._removeFromScope,
    _callRemovalHooks: Gd._callRemovalHooks,
    _remove: Gd._remove,
    _markRemoved: Gd._markRemoved,
    _assertUnremoved: Gd._assertUnremoved,
    _containerInsert: pl._containerInsert,
    _containerInsertBefore: pl._containerInsertBefore,
    _containerInsertAfter: pl._containerInsertAfter,
    _verifyNodeList: pl._verifyNodeList,
    _getKey: In._getKey,
    _getPattern: In._getPattern
  });
  for (let t of XS.TYPES) {
    let e = `is${t}`, s = XS[e];
    gu.prototype[e] = function(r) {
      return s(this.node, r);
    }, gu.prototype[`assert${t}`] = function(r) {
      if (!s(this.node, r))
        throw new TypeError(`Expected node path of type ${t}`);
    };
  }
  Object.assign(gu.prototype, nlt);
  for (let t of Object.keys(Zot))
    t[0] !== "_" && (XS.TYPES.includes(t) || XS.TYPES.push(t));
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/context.js
var cz = g((zS) => {
  "use strict";
  Object.defineProperty(zS, "__esModule", {
    value: !0
  });
  zS.default = void 0;
  var llt = zc(), ult = fe(), S2 = ol(), {
    VISITOR_KEYS: clt
  } = ult, P2 = class {
    static {
      n(this, "TraversalContext");
    }
    constructor(e, s, r, i) {
      this.queue = null, this.priorityQueue = null, this.parentPath = i, this.scope = e, this.state = r, this.opts = s;
    }
    shouldVisit(e) {
      let s = this.opts;
      if (s.enter || s.exit || s[e.type]) return !0;
      let r = clt[e.type];
      if (!(r != null && r.length)) return !1;
      for (let i of r)
        if (e[i])
          return !0;
      return !1;
    }
    create(e, s, r, i) {
      return llt.default.get({
        parentPath: this.parentPath,
        parent: e,
        container: s,
        key: r,
        listKey: i
      });
    }
    maybeQueue(e, s) {
      this.queue && (s ? this.queue.push(e) : this.priorityQueue.push(e));
    }
    visitMultiple(e, s, r) {
      if (e.length === 0) return !1;
      let i = [];
      for (let a = 0; a < e.length; a++) {
        let o = e[a];
        o && this.shouldVisit(o) && i.push(this.create(s, e, a, r));
      }
      return this.visitQueue(i);
    }
    visitSingle(e, s) {
      return this.shouldVisit(e[s]) ? this.visitQueue([this.create(e, e, s)]) : !1;
    }
    visitQueue(e) {
      this.queue = e, this.priorityQueue = [];
      let s = /* @__PURE__ */ new WeakSet(), r = !1, i = 0;
      for (; i < e.length; ) {
        let a = e[i];
        if (i++, S2.resync.call(a), (a.contexts.length === 0 || a.contexts[a.contexts.length - 1] !== this) && S2.pushContext.call(a, this),
        a.key === null) continue;
        let {
          node: o
        } = a;
        if (!s.has(o)) {
          if (o && s.add(o), a.visit()) {
            r = !0;
            break;
          }
          if (this.priorityQueue.length && (r = this.visitQueue(this.priorityQueue), this.priorityQueue = [], this.queue = e, r))
            break;
        }
      }
      for (let a = 0; a < i; a++)
        S2.popContext.call(e[a]);
      return this.queue = null, r;
    }
    visit(e, s) {
      let r = e[s];
      return r ? Array.isArray(r) ? this.visitMultiple(r, e, s) : this.visitSingle(e, s) : !1;
    }
  };
  zS.default = P2;
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/traverse-node.js
var pS = g((E2) => {
  "use strict";
  Object.defineProperty(E2, "__esModule", {
    value: !0
  });
  E2.traverseNode = dlt;
  var plt = cz(), hlt = fe(), {
    VISITOR_KEYS: flt
  } = hlt;
  function dlt(t, e, s, r, i, a, o) {
    let l = flt[t.type];
    if (!l) return !1;
    let u = new plt.default(s, e, r, i);
    if (o)
      return a != null && a[i.parentKey] ? !1 : u.visitQueue([i]);
    for (let c of l)
      if (!(a != null && a[c]) && u.visit(t, c))
        return !0;
    return !1;
  }
  n(dlt, "traverseNode");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/path/context.js
var ol = g((Ur) => {
  "use strict";
  Object.defineProperty(Ur, "__esModule", {
    value: !0
  });
  Ur._call = v2;
  Ur._getQueueContexts = klt;
  Ur._resyncKey = yz;
  Ur._resyncList = gz;
  Ur._resyncParent = mz;
  Ur._resyncRemoved = Alt;
  Ur.call = A2;
  Ur.isDenylisted = fz;
  Ur.popContext = vlt;
  Ur.pushContext = Clt;
  Ur.requeue = Ilt;
  Ur.requeueComputedKeyAndDecorators = Nlt;
  Ur.resync = Elt;
  Ur.setContext = Plt;
  Ur.setKey = GS;
  Ur.setScope = dz;
  Ur.setup = wlt;
  Ur.skip = blt;
  Ur.skipKey = xlt;
  Ur.stop = Slt;
  Ur.visit = Tlt;
  var mlt = pS(), pz = zc(), ylt = LS(), glt = fe();
  function A2(t) {
    let e = this.opts;
    if (this.debug(t), this.node && v2.call(this, e[t]))
      return !0;
    if (this.node) {
      var s;
      return v2.call(this, (s = e[this.node.type]) == null ? void 0 : s[t]);
    }
    return !1;
  }
  n(A2, "call");
  function v2(t) {
    if (!t) return !1;
    for (let e of t) {
      if (!e) continue;
      let s = this.node;
      if (!s) return !0;
      let r = e.call(this.state, this, this.state);
      if (r && typeof r == "object" && typeof r.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 suppo\
rt. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      if (r)
        throw new Error(`Unexpected return value from visitor method ${e}`);
      if (this.node !== s || this._traverseFlags > 0) return !0;
    }
    return !1;
  }
  n(v2, "_call");
  function fz() {
    var t;
    let e = (t = this.opts.denylist) != null ? t : this.opts.blacklist;
    return e?.includes(this.node.type);
  }
  n(fz, "isDenylisted");
  Ur.isBlacklisted = fz;
  function hz(t, e) {
    t.context !== e && (t.context = e, t.state = e.state, t.opts = e.opts);
  }
  n(hz, "restoreContext");
  function Tlt() {
    var t, e;
    if (!this.node || this.isDenylisted() || (t = (e = this.opts).shouldSkip) != null && t.call(e, this))
      return !1;
    let s = this.context;
    return this.shouldSkip || A2.call(this, "enter") ? (this.debug("Skip..."), this.shouldStop) : (hz(this, s), this.debug("Recursing into..\
."), this.shouldStop = (0, mlt.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys), hz(this, s), A2.call(this, "\
exit"), this.shouldStop);
  }
  n(Tlt, "visit");
  function blt() {
    this.shouldSkip = !0;
  }
  n(blt, "skip");
  function xlt(t) {
    this.skipKeys == null && (this.skipKeys = {}), this.skipKeys[t] = !0;
  }
  n(xlt, "skipKey");
  function Slt() {
    this._traverseFlags |= pz.SHOULD_SKIP | pz.SHOULD_STOP;
  }
  n(Slt, "stop");
  function dz() {
    var t, e;
    if ((t = this.opts) != null && t.noScope) return;
    let s = this.parentPath;
    ((this.key === "key" || this.listKey === "decorators") && s.isMethod() || this.key === "discriminant" && s.isSwitchStatement()) && (s = s.
    parentPath);
    let r;
    for (; s && !r; ) {
      var i;
      if ((i = s.opts) != null && i.noScope) return;
      r = s.scope, s = s.parentPath;
    }
    this.scope = this.getScope(r), (e = this.scope) == null || e.init();
  }
  n(dz, "setScope");
  function Plt(t) {
    return this.skipKeys != null && (this.skipKeys = {}), this._traverseFlags = 0, t && (this.context = t, this.state = t.state, this.opts =
    t.opts), dz.call(this), this;
  }
  n(Plt, "setContext");
  function Elt() {
    this.removed || (mz.call(this), gz.call(this), yz.call(this));
  }
  n(Elt, "resync");
  function mz() {
    this.parentPath && (this.parent = this.parentPath.node);
  }
  n(mz, "_resyncParent");
  function yz() {
    if (this.container && this.node !== this.container[this.key]) {
      if (Array.isArray(this.container)) {
        for (let t = 0; t < this.container.length; t++)
          if (this.container[t] === this.node) {
            GS.call(this, t);
            return;
          }
      } else
        for (let t of Object.keys(this.container))
          if (this.container[t] === this.node) {
            GS.call(this, t);
            return;
          }
      this.key = null;
    }
  }
  n(yz, "_resyncKey");
  function gz() {
    if (!this.parent || !this.inList) return;
    let t = this.parent[this.listKey];
    this.container !== t && (this.container = t || null);
  }
  n(gz, "_resyncList");
  function Alt() {
    (this.key == null || !this.container || this.container[this.key] !== this.node) && ylt._markRemoved.call(this);
  }
  n(Alt, "_resyncRemoved");
  function vlt() {
    this.contexts.pop(), this.contexts.length > 0 ? this.setContext(this.contexts[this.contexts.length - 1]) : this.setContext(void 0);
  }
  n(vlt, "popContext");
  function Clt(t) {
    this.contexts.push(t), this.setContext(t);
  }
  n(Clt, "pushContext");
  function wlt(t, e, s, r) {
    this.listKey = s, this.container = e, this.parentPath = t || this.parentPath, GS.call(this, r);
  }
  n(wlt, "setup");
  function GS(t) {
    var e;
    this.key = t, this.node = this.container[this.key], this.type = (e = this.node) == null ? void 0 : e.type;
  }
  n(GS, "setKey");
  function Ilt(t = this) {
    if (t.removed) return;
    let e = this.contexts;
    for (let s of e)
      s.maybeQueue(t);
  }
  n(Ilt, "requeue");
  function Nlt() {
    let {
      context: t,
      node: e
    } = this;
    if (!glt.isPrivate(e) && e.computed && t.maybeQueue(this.get("key")), e.decorators)
      for (let s of this.get("decorators"))
        t.maybeQueue(s);
  }
  n(Nlt, "requeueComputedKeyAndDecorators");
  function klt() {
    let t = this, e = this.contexts;
    for (; !e.length && (t = t.parentPath, !!t); )
      e = t.contexts;
    return e;
  }
  n(klt, "_getQueueContexts");
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/hub.js
var Tz = g((QS) => {
  "use strict";
  Object.defineProperty(QS, "__esModule", {
    value: !0
  });
  QS.default = void 0;
  var C2 = class {
    static {
      n(this, "Hub");
    }
    getCode() {
    }
    getScope() {
    }
    addHelper() {
      throw new Error("Helpers are not supported by the default hub.");
    }
    buildError(e, s, r = TypeError) {
      return new r(s);
    }
  };
  QS.default = C2;
});

// ../node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse/lib/index.js
var Ld = g((Tu) => {
  "use strict";
  Object.defineProperty(Tu, "__esModule", {
    value: !0
  });
  Object.defineProperty(Tu, "Hub", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Blt.default;
    }, "get")
  });
  Object.defineProperty(Tu, "NodePath", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return _lt.default;
    }, "get")
  });
  Object.defineProperty(Tu, "Scope", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Llt.default;
    }, "get")
  });
  Tu.visitors = Tu.default = void 0;
  ol();
  var zg = Og();
  Tu.visitors = zg;
  var Dlt = fe(), Olt = vh(), bz = pS(), _lt = zc(), Llt = jD(), Blt = Tz(), {
    VISITOR_KEYS: Mlt,
    removeProperties: Flt,
    traverseFast: xz
  } = Dlt;
  function Ma(t, e = {}, s, r, i, a) {
    if (t) {
      if (!e.noScope && !s && t.type !== "Program" && t.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 ${t.
        type} node without passing scope and parentPath.`);
      if (!i && a)
        throw new Error("visitSelf can only be used when providing a NodePath.");
      Mlt[t.type] && (zg.explode(e), (0, bz.traverseNode)(t, e, s, r, i, null, a));
    }
  }
  n(Ma, "traverse");
  var hKs = Tu.default = Ma;
  Ma.visitors = zg;
  Ma.verify = zg.verify;
  Ma.explode = zg.explode;
  Ma.cheap = function(t, e) {
    xz(t, e);
  };
  Ma.node = function(t, e, s, r, i, a) {
    (0, bz.traverseNode)(t, e, s, r, i, a);
  };
  Ma.clearNode = function(t, e) {
    Flt(t, e);
  };
  Ma.removeProperties = function(t, e) {
    return xz(t, Ma.clearNode, e), t;
  };
  function jlt(t, e) {
    t.node.type === e.type && (e.has = !0, t.stop());
  }
  n(jlt, "hasDenylistedType");
  Ma.hasType = function(t, e, s) {
    if (s != null && s.includes(t.type)) return !1;
    if (t.type === e) return !0;
    let r = {
      has: !1,
      type: e
    };
    return Ma(t, {
      noScope: !0,
      denylist: s,
      enter: jlt
    }, null, r), r.has;
  };
  Ma.cache = Olt;
});

// ../node_modules/@babel/helper-module-transforms/lib/rewrite-this.js
var Ez = g((w2) => {
  "use strict";
  Object.defineProperty(w2, "__esModule", {
    value: !0
  });
  w2.default = Rlt;
  var Sz = ai(), Pz = Ld(), ZS;
  function Rlt(t) {
    ZS || (ZS = Pz.visitors.environmentVisitor({
      ThisExpression(e) {
        e.replaceWith(Sz.types.unaryExpression("void", Sz.types.numericLiteral(0), !0));
      }
    }), ZS.noScope = !0), (0, Pz.default)(t.node, ZS);
  }
  n(Rlt, "rewriteThis");
});

// ../node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js
var Az = g((I2) => {
  "use strict";
  Object.defineProperty(I2, "__esModule", {
    value: !0
  });
  I2.default = Ult;
  var Kt = ai();
  function qlt(t) {
    do
      switch (t.parent.type) {
        case "TSTypeAnnotation":
        case "TSTypeAliasDeclaration":
        case "TSTypeReference":
        case "TypeAnnotation":
        case "TypeAlias":
          return !0;
        case "ExportSpecifier":
          return t.parentPath.parent.exportKind === "type";
        default:
          if (t.parentPath.isStatement() || t.parentPath.isExpression())
            return !1;
      }
    while (t = t.parentPath);
  }
  n(qlt, "isInType");
  function Ult(t, e, s) {
    let r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ n((u) => {
      t.requeue(u);
    }, "requeueInParent");
    for (let [u, c] of e.source) {
      for (let [p, h] of c.imports)
        r.set(p, [u, h, null]);
      for (let p of c.importsNamespace)
        r.set(p, [u, null, p]);
    }
    for (let [u, c] of e.local) {
      let p = i.get(u);
      p || (p = [], i.set(u, p)), p.push(...c.names);
    }
    let o = {
      metadata: e,
      requeueInParent: a,
      scope: t.scope,
      exported: i
    };
    t.traverse(Klt, o);
    let l = {
      seen: /* @__PURE__ */ new WeakSet(),
      metadata: e,
      requeueInParent: a,
      scope: t.scope,
      imported: r,
      exported: i,
      buildImportReference([u, c, p], h) {
        let f = e.source.get(u);
        if (f.referenced = !0, p) {
          if (f.wrap) {
            var d;
            h = (d = s(h, f.wrap)) != null ? d : h;
          }
          return h;
        }
        let m = Kt.types.identifier(f.name);
        if (f.wrap) {
          var y;
          m = (y = s(m, f.wrap)) != null ? y : m;
        }
        if (c === "default" && f.interop === "node-default")
          return m;
        let T = e.stringSpecifiers.has(c);
        return Kt.types.memberExpression(m, T ? Kt.types.stringLiteral(c) : Kt.types.identifier(c), T);
      }
    };
    t.traverse(Vlt, l);
  }
  n(Ult, "rewriteLiveReferences");
  var Klt = {
    Scope(t) {
      t.skip();
    },
    ClassDeclaration(t) {
      let {
        requeueInParent: e,
        exported: s,
        metadata: r
      } = this, {
        id: i
      } = t.node;
      if (!i) throw new Error("Expected class to have a name");
      let a = i.name, o = s.get(a) || [];
      if (o.length > 0) {
        let l = Kt.types.expressionStatement(Fh(r, o, Kt.types.identifier(a), t.scope));
        l._blockHoist = t.node._blockHoist, e(t.insertAfter(l)[0]);
      }
    },
    VariableDeclaration(t) {
      let {
        requeueInParent: e,
        exported: s,
        metadata: r
      } = this, i = t.node.kind === "var";
      for (let a of t.get("declarations")) {
        let {
          id: o
        } = a.node, {
          init: l
        } = a.node;
        if (Kt.types.isIdentifier(o) && s.has(o.name) && !Kt.types.isArrowFunctionExpression(l) && (!Kt.types.isFunctionExpression(l) || l.id) &&
        (!Kt.types.isClassExpression(l) || l.id)) {
          if (!l) {
            if (i)
              continue;
            l = t.scope.buildUndefinedNode();
          }
          a.node.init = Fh(r, s.get(o.name), l, t.scope), e(a.get("init"));
        } else
          for (let u of Object.keys(a.getOuterBindingIdentifiers()))
            if (s.has(u)) {
              let c = Kt.types.expressionStatement(Fh(r, s.get(u), Kt.types.identifier(u), t.scope));
              c._blockHoist = t.node._blockHoist, e(t.insertAfter(c)[0]);
            }
      }
    }
  }, Fh = /* @__PURE__ */ n((t, e, s, r) => {
    let i = t.exportName;
    for (let a = r; a != null; a = a.parent)
      a.hasOwnBinding(i) && a.rename(i);
    return (e || []).reduce((a, o) => {
      let {
        stringSpecifiers: l
      } = t, u = l.has(o);
      return Kt.types.assignmentExpression("=", Kt.types.memberExpression(Kt.types.identifier(i), u ? Kt.types.stringLiteral(o) : Kt.types.identifier(
      o), u), a);
    }, s);
  }, "buildBindingExportAssignmentExpression"), eP = /* @__PURE__ */ n((t) => Kt.template.expression.ast`
    (function() {
      throw new Error('"' + '${t}' + '" is read-only.');
    })()
  `, "buildImportThrow"), Vlt = {
    ReferencedIdentifier(t) {
      let {
        seen: e,
        buildImportReference: s,
        scope: r,
        imported: i,
        requeueInParent: a
      } = this;
      if (e.has(t.node)) return;
      e.add(t.node);
      let o = t.node.name, l = i.get(o);
      if (l) {
        if (qlt(t))
          throw t.buildCodeFrameError(`Cannot transform the imported binding "${o}" since it's also used in a type annotation. Please strip \
type annotations using @babel/preset-typescript or @babel/preset-flow.`);
        let u = t.scope.getBinding(o);
        if (r.getBinding(o) !== u) return;
        let p = s(l, t.node);
        if (p.loc = t.node.loc, (t.parentPath.isCallExpression({
          callee: t.node
        }) || t.parentPath.isOptionalCallExpression({
          callee: t.node
        }) || t.parentPath.isTaggedTemplateExpression({
          tag: t.node
        })) && Kt.types.isMemberExpression(p))
          t.replaceWith(Kt.types.sequenceExpression([Kt.types.numericLiteral(0), p]));
        else if (t.isJSXIdentifier() && Kt.types.isMemberExpression(p)) {
          let {
            object: h,
            property: f
          } = p;
          t.replaceWith(Kt.types.jsxMemberExpression(Kt.types.jsxIdentifier(h.name), Kt.types.jsxIdentifier(f.name)));
        } else
          t.replaceWith(p);
        a(t), t.skip();
      }
    },
    UpdateExpression(t) {
      let {
        scope: e,
        seen: s,
        imported: r,
        exported: i,
        requeueInParent: a,
        buildImportReference: o
      } = this;
      if (s.has(t.node)) return;
      s.add(t.node);
      let l = t.get("argument");
      if (l.isMemberExpression()) return;
      let u = t.node;
      if (l.isIdentifier()) {
        let c = l.node.name;
        if (e.getBinding(c) !== t.scope.getBinding(c))
          return;
        let p = i.get(c), h = r.get(c);
        if (p?.length > 0 || h)
          if (h)
            t.replaceWith(Kt.types.assignmentExpression(u.operator[0] + "=", o(h, l.node), eP(c)));
          else if (u.prefix)
            t.replaceWith(Fh(this.metadata, p, Kt.types.cloneNode(u), t.scope));
          else {
            let f = e.generateDeclaredUidIdentifier(c);
            t.replaceWith(Kt.types.sequenceExpression([Kt.types.assignmentExpression("=", Kt.types.cloneNode(f), Kt.types.cloneNode(u)), Fh(
            this.metadata, p, Kt.types.identifier(c), t.scope), Kt.types.cloneNode(f)]));
          }
      }
      a(t), t.skip();
    },
    AssignmentExpression: {
      exit(t) {
        let {
          scope: e,
          seen: s,
          imported: r,
          exported: i,
          requeueInParent: a,
          buildImportReference: o
        } = this;
        if (s.has(t.node)) return;
        s.add(t.node);
        let l = t.get("left");
        if (!l.isMemberExpression())
          if (l.isIdentifier()) {
            let u = l.node.name;
            if (e.getBinding(u) !== t.scope.getBinding(u))
              return;
            let c = i.get(u), p = r.get(u);
            if (c?.length > 0 || p) {
              let h = t.node;
              p && (h.left = o(p, l.node), h.right = Kt.types.sequenceExpression([h.right, eP(u)]));
              let {
                operator: f
              } = h, d;
              f === "=" ? d = h : f === "&&=" || f === "||=" || f === "??=" ? d = Kt.types.assignmentExpression("=", h.left, Kt.types.logicalExpression(
              f.slice(0, -1), Kt.types.cloneNode(h.left), h.right)) : d = Kt.types.assignmentExpression("=", h.left, Kt.types.binaryExpression(
              f.slice(0, -1), Kt.types.cloneNode(h.left), h.right)), t.replaceWith(Fh(this.metadata, c, d, t.scope)), a(t), t.skip();
            }
          } else {
            let u = l.getOuterBindingIdentifiers(), c = Object.keys(u).filter((f) => e.getBinding(f) === t.scope.getBinding(f)), p = c.find(
            (f) => r.has(f));
            p && (t.node.right = Kt.types.sequenceExpression([t.node.right, eP(p)]));
            let h = [];
            if (c.forEach((f) => {
              let d = i.get(f) || [];
              d.length > 0 && h.push(Fh(this.metadata, d, Kt.types.identifier(f), t.scope));
            }), h.length > 0) {
              let f = Kt.types.sequenceExpression(h);
              t.parentPath.isExpressionStatement() && (f = Kt.types.expressionStatement(f), f._blockHoist = t.parentPath.node._blockHoist);
              let d = t.insertAfter(f)[0];
              a(d);
            }
          }
      }
    },
    ForXStatement(t) {
      let {
        scope: e,
        node: s
      } = t, {
        left: r
      } = s, {
        exported: i,
        imported: a,
        scope: o
      } = this;
      if (!Kt.types.isVariableDeclaration(r)) {
        let l = !1, u, c = t.get("body").scope;
        for (let f of Object.keys(Kt.types.getOuterBindingIdentifiers(r)))
          o.getBinding(f) === e.getBinding(f) && (i.has(f) && (l = !0, c.hasOwnBinding(f) && c.rename(f)), a.has(f) && !u && (u = f));
        if (!l && !u)
          return;
        t.ensureBlock();
        let p = t.get("body"), h = e.generateUidIdentifierBasedOnNode(r);
        t.get("left").replaceWith(Kt.types.variableDeclaration("let", [Kt.types.variableDeclarator(Kt.types.cloneNode(h))])), e.registerDeclaration(
        t.get("left")), l && p.unshiftContainer("body", Kt.types.expressionStatement(Kt.types.assignmentExpression("=", r, h))), u && p.unshiftContainer(
        "body", Kt.types.expressionStatement(eP(u)));
      }
    }
  };
});

// ../node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js
var N2 = g((Qd) => {
  "use strict";
  Object.defineProperty(Qd, "__esModule", {
    value: !0
  });
  Qd.default = Ylt;
  Qd.hasExports = $lt;
  Qd.isSideEffectImport = Hlt;
  Qd.validateImportInteropOption = Cz;
  var vz = Je("path"), Wlt = xa();
  function $lt(t) {
    return t.hasExports;
  }
  n($lt, "hasExports");
  function Hlt(t) {
    return t.imports.size === 0 && t.importsNamespace.size === 0 && t.reexports.size === 0 && t.reexportNamespace.size === 0 && !t.reexportAll;
  }
  n(Hlt, "isSideEffectImport");
  function Cz(t) {
    if (typeof t != "function" && t !== "none" && t !== "babel" && t !== "node")
      throw new Error(`.importInterop must be one of "none", "babel", "node", or a function returning one of those values (received ${t}).`);
    return t;
  }
  n(Cz, "validateImportInteropOption");
  function Jlt(t, e, s) {
    return typeof t == "function" ? Cz(t(e, s)) : t;
  }
  n(Jlt, "resolveImportInterop");
  function Ylt(t, e, {
    importInterop: s,
    initializeReexports: r = !1,
    getWrapperPayload: i,
    esNamespaceOnly: a = !1,
    filename: o
  }) {
    e || (e = t.scope.generateUidIdentifier("exports").name);
    let l = /* @__PURE__ */ new Set();
    Glt(t);
    let {
      local: u,
      sources: c,
      hasExports: p
    } = Xlt(t, {
      initializeReexports: r,
      getWrapperPayload: i
    }, l);
    Qlt(t);
    for (let [h, f] of c) {
      let {
        importsNamespace: d,
        imports: m
      } = f;
      if (d.size > 0 && m.size === 0) {
        let [T] = d;
        f.name = T;
      }
      let y = Jlt(s, h, o);
      y === "none" ? f.interop = "none" : y === "node" && f.interop === "namespace" ? f.interop = "node-namespace" : y === "node" && f.interop ===
      "default" ? f.interop = "node-default" : a && f.interop === "namespace" && (f.interop = "default");
    }
    return {
      exportName: e,
      exportNameListName: null,
      hasExports: p,
      local: u,
      source: c,
      stringSpecifiers: l
    };
  }
  n(Ylt, "normalizeModuleAndLoadMetadata");
  function tP(t, e) {
    if (t.isIdentifier())
      return t.node.name;
    if (t.isStringLiteral()) {
      let s = t.node.value;
      return (0, Wlt.isIdentifierName)(s) || e.add(s), s;
    } else
      throw new Error(`Expected export specifier to be either Identifier or StringLiteral, got ${t.node.type}`);
  }
  n(tP, "getExportSpecifierName");
  function wz(t) {
    if (!t.isExportSpecifier())
      throw t.isExportNamespaceSpecifier() ? t.buildCodeFrameError("Export namespace should be first transformed by `@babel/plugin-transform\
-export-namespace-from`.") : t.buildCodeFrameError("Unexpected export specifier type");
  }
  n(wz, "assertExportSpecifier");
  function Xlt(t, {
    getWrapperPayload: e,
    initializeReexports: s
  }, r) {
    let i = zlt(t, s, r), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ n((c, p) => {
      let h = c.value, f = o.get(h);
      return f ? a.get(h).push(p) : (f = {
        name: t.scope.generateUidIdentifier((0, vz.basename)(h, (0, vz.extname)(h))).name,
        interop: "none",
        loc: null,
        imports: /* @__PURE__ */ new Map(),
        importsNamespace: /* @__PURE__ */ new Set(),
        reexports: /* @__PURE__ */ new Map(),
        reexportNamespace: /* @__PURE__ */ new Set(),
        reexportAll: null,
        wrap: null,
        get lazy() {
          return this.wrap === "lazy";
        },
        referenced: !1
      }, o.set(h, f), a.set(h, [p])), f;
    }, "getData"), u = !1;
    t.get("body").forEach((c) => {
      if (c.isImportDeclaration()) {
        let p = l(c.node.source, c.node);
        p.loc || (p.loc = c.node.loc), c.get("specifiers").forEach((h) => {
          if (h.isImportDefaultSpecifier()) {
            let f = h.get("local").node.name;
            p.imports.set(f, "default");
            let d = i.get(f);
            d && (i.delete(f), d.names.forEach((m) => {
              p.reexports.set(m, "default");
            }), p.referenced = !0);
          } else if (h.isImportNamespaceSpecifier()) {
            let f = h.get("local").node.name;
            p.importsNamespace.add(f);
            let d = i.get(f);
            d && (i.delete(f), d.names.forEach((m) => {
              p.reexportNamespace.add(m);
            }), p.referenced = !0);
          } else if (h.isImportSpecifier()) {
            let f = tP(h.get("imported"), r), d = h.get("local").node.name;
            p.imports.set(d, f);
            let m = i.get(d);
            m && (i.delete(d), m.names.forEach((y) => {
              p.reexports.set(y, f);
            }), p.referenced = !0);
          }
        });
      } else if (c.isExportAllDeclaration()) {
        u = !0;
        let p = l(c.node.source, c.node);
        p.loc || (p.loc = c.node.loc), p.reexportAll = {
          loc: c.node.loc
        }, p.referenced = !0;
      } else if (c.isExportNamedDeclaration() && c.node.source) {
        u = !0;
        let p = l(c.node.source, c.node);
        p.loc || (p.loc = c.node.loc), c.get("specifiers").forEach((h) => {
          wz(h);
          let f = tP(h.get("local"), r), d = tP(h.get("exported"), r);
          if (p.reexports.set(d, f), p.referenced = !0, d === "__esModule")
            throw h.get("exported").buildCodeFrameError('Illegal export "__esModule".');
        });
      } else (c.isExportNamedDeclaration() || c.isExportDefaultDeclaration()) && (u = !0);
    });
    for (let c of o.values()) {
      let p = !1, h = !1;
      c.importsNamespace.size > 0 && (p = !0, h = !0), c.reexportAll && (h = !0);
      for (let f of c.imports.values())
        f === "default" ? p = !0 : h = !0;
      for (let f of c.reexports.values())
        f === "default" ? p = !0 : h = !0;
      p && h ? c.interop = "namespace" : p && (c.interop = "default");
    }
    if (e)
      for (let [c, p] of o)
        p.wrap = e(c, p, a.get(c));
    return {
      hasExports: u,
      local: i,
      sources: o
    };
  }
  n(Xlt, "getModuleMetadata");
  function zlt(t, e, s) {
    let r = /* @__PURE__ */ new Map();
    t.get("body").forEach((o) => {
      let l;
      if (o.isImportDeclaration())
        l = "import";
      else {
        if (o.isExportDefaultDeclaration() && (o = o.get("declaration")), o.isExportNamedDeclaration()) {
          if (o.node.declaration)
            o = o.get("declaration");
          else if (e && o.node.source && o.get("source").isStringLiteral()) {
            o.get("specifiers").forEach((u) => {
              wz(u), r.set(u.get("local").node.name, "block");
            });
            return;
          }
        }
        if (o.isFunctionDeclaration())
          l = "hoisted";
        else if (o.isClassDeclaration())
          l = "block";
        else if (o.isVariableDeclaration({
          kind: "var"
        }))
          l = "var";
        else if (o.isVariableDeclaration())
          l = "block";
        else
          return;
      }
      Object.keys(o.getOuterBindingIdentifiers()).forEach((u) => {
        r.set(u, l);
      });
    });
    let i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ n((o) => {
      let l = o.node.name, u = i.get(l);
      if (!u) {
        let c = r.get(l);
        if (c === void 0)
          throw o.buildCodeFrameError(`Exporting local "${l}", which is not declared.`);
        u = {
          names: [],
          kind: c
        }, i.set(l, u);
      }
      return u;
    }, "getLocalMetadata");
    return t.get("body").forEach((o) => {
      if (o.isExportNamedDeclaration() && (e || !o.node.source))
        if (o.node.declaration) {
          let l = o.get("declaration"), u = l.getOuterBindingIdentifierPaths();
          Object.keys(u).forEach((c) => {
            if (c === "__esModule")
              throw l.buildCodeFrameError('Illegal export "__esModule".');
            a(u[c]).names.push(c);
          });
        } else
          o.get("specifiers").forEach((l) => {
            let u = l.get("local"), c = l.get("exported"), p = a(u), h = tP(c, s);
            if (h === "__esModule")
              throw c.buildCodeFrameError('Illegal export "__esModule".');
            p.names.push(h);
          });
      else if (o.isExportDefaultDeclaration()) {
        let l = o.get("declaration");
        if (l.isFunctionDeclaration() || l.isClassDeclaration())
          a(l.get("id")).names.push("default");
        else
          throw l.buildCodeFrameError("Unexpected default expression export.");
      }
    }), i;
  }
  n(zlt, "getLocalExportMetadata");
  function Glt(t) {
    t.get("body").forEach((e) => {
      if (e.isExportDefaultDeclaration()) {
        {
          var s;
          (s = e.splitExportDeclaration) != null || (e.splitExportDeclaration = Ld().NodePath.prototype.splitExportDeclaration);
        }
        e.splitExportDeclaration();
      }
    });
  }
  n(Glt, "nameAnonymousExports");
  function Qlt(t) {
    t.get("body").forEach((e) => {
      if (e.isImportDeclaration())
        e.remove();
      else if (e.isExportNamedDeclaration())
        e.node.declaration ? (e.node.declaration._blockHoist = e.node._blockHoist, e.replaceWith(e.node.declaration)) : e.remove();
      else if (e.isExportDefaultDeclaration()) {
        let s = e.get("declaration");
        if (s.isFunctionDeclaration() || s.isClassDeclaration())
          s._blockHoist = e.node._blockHoist, e.replaceWith(s);
        else
          throw s.buildCodeFrameError("Unexpected default expression export.");
      } else e.isExportAllDeclaration() && e.remove();
    });
  }
  n(Qlt, "removeImportExportDeclarations");
});

// ../node_modules/@babel/helper-module-transforms/lib/lazy-modules.js
var Iz = g((sP) => {
  "use strict";
  Object.defineProperty(sP, "__esModule", {
    value: !0
  });
  sP.toGetWrapperPayload = tut;
  sP.wrapReference = sut;
  var Zlt = ai(), eut = N2();
  function tut(t) {
    return (e, s) => {
      if (t === !1 || (0, eut.isSideEffectImport)(s) || s.reexportAll) return null;
      if (t === !0)
        return e.includes(".") ? null : "lazy";
      if (Array.isArray(t))
        return t.includes(e) ? "lazy" : null;
      if (typeof t == "function")
        return t(e) ? "lazy" : null;
      throw new Error(".lazy must be a boolean, string array, or function");
    };
  }
  n(tut, "toGetWrapperPayload");
  function sut(t, e) {
    return e === "lazy" ? Zlt.types.callExpression(t, []) : null;
  }
  n(sut, "wrapReference");
});

// ../node_modules/@babel/helper-module-transforms/lib/dynamic-import.js
var k2 = g((rP) => {
  "use strict";
  Object.defineProperty(rP, "__esModule", {
    value: !0
  });
  rP.buildDynamicImport = rut;
  var $i = ai();
  rP.getDynamicImportSource = /* @__PURE__ */ n(function(e) {
    let [s] = e.arguments;
    return $i.types.isStringLiteral(s) || $i.types.isTemplateLiteral(s) ? s : $i.template.expression.ast`\`\${${s}}\``;
  }, "getDynamicImportSource");
  function rut(t, e, s, r) {
    let i = $i.types.isCallExpression(t) ? t.arguments[0] : t.source;
    if ($i.types.isStringLiteral(i) || $i.types.isTemplateLiteral(i) && i.quasis.length === 0)
      return e ? $i.template.expression.ast`
        Promise.resolve().then(() => ${r(i)})
      ` : r(i);
    let a = $i.types.isTemplateLiteral(i) ? $i.types.identifier("specifier") : $i.types.templateLiteral([$i.types.templateElement({
      raw: ""
    }), $i.types.templateElement({
      raw: ""
    })], [$i.types.identifier("specifier")]);
    return e ? $i.template.expression.ast`
      (specifier =>
        new Promise(r => r(${a}))
          .then(s => ${r($i.types.identifier("s"))})
      )(${i})
    ` : s ? $i.template.expression.ast`
      (specifier =>
        new Promise(r => r(${r(a)}))
      )(${i})
    ` : $i.template.expression.ast`
      (specifier => ${r(a)})(${i})
    `;
  }
  n(rut, "buildDynamicImport");
});

// ../node_modules/@babel/helper-module-transforms/lib/get-module-name.js
var Nz = g((iP) => {
  "use strict";
  Object.defineProperty(iP, "__esModule", {
    value: !0
  });
  iP.default = D2;
  {
    let t = D2;
    iP.default = D2 = /* @__PURE__ */ n(function(s, r) {
      var i, a, o, l;
      return t(s, {
        moduleId: (i = r.moduleId) != null ? i : s.moduleId,
        moduleIds: (a = r.moduleIds) != null ? a : s.moduleIds,
        getModuleId: (o = r.getModuleId) != null ? o : s.getModuleId,
        moduleRoot: (l = r.moduleRoot) != null ? l : s.moduleRoot
      });
    }, "getModuleName");
  }
  function D2(t, e) {
    let {
      filename: s,
      filenameRelative: r = s,
      sourceRoot: i = e.moduleRoot
    } = t, {
      moduleId: a,
      moduleIds: o = !!a,
      getModuleId: l,
      moduleRoot: u = i
    } = e;
    if (!o) return null;
    if (a != null && !l)
      return a;
    let c = u != null ? u + "/" : "";
    if (r) {
      let p = i != null ? new RegExp("^" + i + "/?") : "";
      c += r.replace(p, "").replace(/\.\w*$/, "");
    }
    return c = c.replace(/\\/g, "/"), l && l(c) || c;
  }
  n(D2, "getModuleName");
});

// ../node_modules/@babel/helper-module-transforms/lib/index.js
var Qg = g((ca) => {
  "use strict";
  Object.defineProperty(ca, "__esModule", {
    value: !0
  });
  Object.defineProperty(ca, "buildDynamicImport", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return aut.buildDynamicImport;
    }, "get")
  });
  ca.buildNamespaceInitStatements = put;
  ca.ensureStatementsHoisted = uut;
  Object.defineProperty(ca, "getModuleName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return out.default;
    }, "get")
  });
  Object.defineProperty(ca, "hasExports", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Gg.hasExports;
    }, "get")
  });
  Object.defineProperty(ca, "isModule", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return kz.isModule;
    }, "get")
  });
  Object.defineProperty(ca, "isSideEffectImport", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Gg.isSideEffectImport;
    }, "get")
  });
  ca.rewriteModuleStatementsAndPrepareHeader = lut;
  Object.defineProperty(ca, "rewriteThis", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Dz.default;
    }, "get")
  });
  ca.wrapInterop = cut;
  var iut = Je("assert"), Es = ai(), kz = BH(), Dz = Ez(), nut = Az(), Gg = N2(), B2 = Iz(), aut = k2(), out = Nz();
  ca.getDynamicImportSource = k2().getDynamicImportSource;
  function lut(t, {
    exportName: e,
    strict: s,
    allowTopLevelThis: r,
    strictMode: i,
    noInterop: a,
    importInterop: o = a ? "none" : "babel",
    lazy: l,
    getWrapperPayload: u = B2.toGetWrapperPayload(l ?? !1),
    wrapReference: c = B2.wrapReference,
    esNamespaceOnly: p,
    filename: h,
    constantReexports: f = arguments[1].loose,
    enumerableModuleMeta: d = arguments[1].loose,
    noIncompleteNsImportDetection: m
  }) {
    (0, Gg.validateImportInteropOption)(o), iut((0, kz.isModule)(t), "Cannot process module statements in a script"), t.node.sourceType = "s\
cript";
    let y = (0, Gg.default)(t, e, {
      importInterop: o,
      initializeReexports: f,
      getWrapperPayload: u,
      esNamespaceOnly: p,
      filename: h
    });
    r || (0, Dz.default)(t), (0, nut.default)(t, y, c), i !== !1 && (t.node.directives.some((V) => V.value.value === "use strict") || t.unshiftContainer(
    "directives", Es.types.directive(Es.types.directiveLiteral("use strict"))));
    let T = [];
    (0, Gg.hasExports)(y) && !s && T.push(hut(y, d));
    let b = dut(t, y);
    return b && (y.exportNameListName = b.name, T.push(b.statement)), T.push(...mut(t, y, c, f, m)), {
      meta: y,
      headers: T
    };
  }
  n(lut, "rewriteModuleStatementsAndPrepareHeader");
  function uut(t) {
    t.forEach((e) => {
      e._blockHoist = 3;
    });
  }
  n(uut, "ensureStatementsHoisted");
  function cut(t, e, s) {
    if (s === "none")
      return null;
    if (s === "node-namespace")
      return Es.types.callExpression(t.hub.addHelper("interopRequireWildcard"), [e, Es.types.booleanLiteral(!0)]);
    if (s === "node-default")
      return null;
    let r;
    if (s === "default")
      r = "interopRequireDefault";
    else if (s === "namespace")
      r = "interopRequireWildcard";
    else
      throw new Error(`Unknown interop: ${s}`);
    return Es.types.callExpression(t.hub.addHelper(r), [e]);
  }
  n(cut, "wrapInterop");
  function put(t, e, s = !1, r = B2.wrapReference) {
    var i;
    let a = [], o = Es.types.identifier(e.name);
    for (let u of e.importsNamespace)
      u !== e.name && a.push(Es.template.statement`var NAME = SOURCE;`({
        NAME: u,
        SOURCE: Es.types.cloneNode(o)
      }));
    let l = (i = r(o, e.wrap)) != null ? i : o;
    s && a.push(...Oz(t, e, !0, r));
    for (let u of e.reexportNamespace)
      a.push((Es.types.isIdentifier(l) ? Es.template.statement`EXPORTS.NAME = NAMESPACE;` : Es.template.statement`
            Object.defineProperty(EXPORTS, "NAME", {
              enumerable: true,
              get: function() {
                return NAMESPACE;
              }
            });
          `)({
        EXPORTS: t.exportName,
        NAME: u,
        NAMESPACE: Es.types.cloneNode(l)
      }));
    if (e.reexportAll) {
      let u = fut(t, Es.types.cloneNode(l), s);
      u.loc = e.reexportAll.loc, a.push(u);
    }
    return a;
  }
  n(put, "buildNamespaceInitStatements");
  var O2 = {
    constant: /* @__PURE__ */ n(({
      exports: t,
      exportName: e,
      namespaceImport: s
    }) => Es.template.statement.ast`
      ${t}.${e} = ${s};
    `, "constant"),
    constantComputed: /* @__PURE__ */ n(({
      exports: t,
      exportName: e,
      namespaceImport: s
    }) => Es.template.statement.ast`
      ${t}["${e}"] = ${s};
    `, "constantComputed"),
    spec: /* @__PURE__ */ n(({
      exports: t,
      exportName: e,
      namespaceImport: s
    }) => Es.template.statement.ast`
      Object.defineProperty(${t}, "${e}", {
        enumerable: true,
        get: function() {
          return ${s};
        },
      });
    `, "spec")
  };
  function Oz(t, e, s, r) {
    var i;
    let a = Es.types.identifier(e.name);
    a = (i = r(a, e.wrap)) != null ? i : a;
    let {
      stringSpecifiers: o
    } = t;
    return Array.from(e.reexports, ([l, u]) => {
      let c = Es.types.cloneNode(a);
      u === "default" && e.interop === "node-default" || (o.has(u) ? c = Es.types.memberExpression(c, Es.types.stringLiteral(u), !0) : c = Es.
      types.memberExpression(c, Es.types.identifier(u)));
      let p = {
        exports: t.exportName,
        exportName: l,
        namespaceImport: c
      };
      return s || Es.types.isIdentifier(c) ? o.has(l) ? O2.constantComputed(p) : O2.constant(p) : O2.spec(p);
    });
  }
  n(Oz, "buildReexportsFromMeta");
  function hut(t, e = !1) {
    return (e ? Es.template.statement`
        EXPORTS.__esModule = true;
      ` : Es.template.statement`
        Object.defineProperty(EXPORTS, "__esModule", {
          value: true,
        });
      `)({
      EXPORTS: t.exportName
    });
  }
  n(hut, "buildESModuleHeader");
  function fut(t, e, s) {
    return (s ? Es.template.statement`
        Object.keys(NAMESPACE).forEach(function(key) {
          if (key === "default" || key === "__esModule") return;
          VERIFY_NAME_LIST;
          if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;

          EXPORTS[key] = NAMESPACE[key];
        });
      ` : Es.template.statement`
        Object.keys(NAMESPACE).forEach(function(key) {
          if (key === "default" || key === "__esModule") return;
          VERIFY_NAME_LIST;
          if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;

          Object.defineProperty(EXPORTS, key, {
            enumerable: true,
            get: function() {
              return NAMESPACE[key];
            },
          });
        });
    `)({
      NAMESPACE: e,
      EXPORTS: t.exportName,
      VERIFY_NAME_LIST: t.exportNameListName ? (0, Es.template)`
            if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;
          `({
        EXPORTS_LIST: t.exportNameListName
      }) : null
    });
  }
  n(fut, "buildNamespaceReexport");
  function dut(t, e) {
    let s = /* @__PURE__ */ Object.create(null);
    for (let a of e.local.values())
      for (let o of a.names)
        s[o] = !0;
    let r = !1;
    for (let a of e.source.values()) {
      for (let o of a.reexports.keys())
        s[o] = !0;
      for (let o of a.reexportNamespace)
        s[o] = !0;
      r = r || !!a.reexportAll;
    }
    if (!r || Object.keys(s).length === 0) return null;
    let i = t.scope.generateUidIdentifier("exportNames");
    return delete s.default, {
      name: i.name,
      statement: Es.types.variableDeclaration("var", [Es.types.variableDeclarator(i, Es.types.valueToNode(s))])
    };
  }
  n(dut, "buildExportNameListDeclaration");
  function mut(t, e, s, r = !1, i = !1) {
    let a = [];
    for (let [l, u] of e.local)
      if (u.kind !== "import") {
        if (u.kind === "hoisted")
          a.push([u.names[0], L2(e, u.names, Es.types.identifier(l))]);
        else if (!i)
          for (let c of u.names)
            a.push([c, null]);
      }
    for (let l of e.source.values()) {
      if (!r) {
        let u = Oz(e, l, !1, s), c = [...l.reexports.keys()];
        for (let p = 0; p < u.length; p++)
          a.push([c[p], u[p]]);
      }
      if (!i)
        for (let u of l.reexportNamespace)
          a.push([u, null]);
    }
    a.sort(([l], [u]) => l < u ? -1 : u < l ? 1 : 0);
    let o = [];
    if (i)
      for (let [, l] of a)
        o.push(l);
    else
      for (let u = 0; u < a.length; u += 100) {
        let c = [];
        for (let p = 0; p < 100 && u + p < a.length; p++) {
          let [h, f] = a[u + p];
          f !== null ? (c.length > 0 && (o.push(L2(e, c, t.scope.buildUndefinedNode())), c = []), o.push(f)) : c.push(h);
        }
        c.length > 0 && o.push(L2(e, c, t.scope.buildUndefinedNode()));
      }
    return o;
  }
  n(mut, "buildExportInitializationStatements");
  var _2 = {
    computed: /* @__PURE__ */ n(({
      exports: t,
      name: e,
      value: s
    }) => Es.template.expression.ast`${t}["${e}"] = ${s}`, "computed"),
    default: /* @__PURE__ */ n(({
      exports: t,
      name: e,
      value: s
    }) => Es.template.expression.ast`${t}.${e} = ${s}`, "default"),
    define: /* @__PURE__ */ n(({
      exports: t,
      name: e,
      value: s
    }) => Es.template.expression.ast`
      Object.defineProperty(${t}, "${e}", {
        enumerable: true,
        value: void 0,
        writable: true
      })["${e}"] = ${s}`, "define")
  };
  function L2(t, e, s) {
    let {
      stringSpecifiers: r,
      exportName: i
    } = t;
    return Es.types.expressionStatement(e.reduce((a, o) => {
      let l = {
        exports: i,
        name: o,
        value: a
      };
      return o === "__proto__" ? _2.define(l) : r.has(o) ? _2.computed(l) : _2.default(l);
    }, s));
  }
  n(L2, "buildInitStatement");
});

// ../node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs
var Lz = g((_z) => {
  _z.getModuleName = () => Qg().getModuleName;
});

// ../node_modules/@babel/core/lib/transformation/file/file.js
var F2 = g((aP) => {
  "use strict";
  Object.defineProperty(aP, "__esModule", {
    value: !0
  });
  aP.default = void 0;
  function Zg() {
    let t = gN();
    return Zg = /* @__PURE__ */ n(function() {
      return t;
    }, "helpers"), t;
  }
  n(Zg, "helpers");
  function M2() {
    let t = Yl();
    return M2 = /* @__PURE__ */ n(function() {
      return t;
    }, "_traverse"), t;
  }
  n(M2, "_traverse");
  function Bz() {
    let t = Hl();
    return Bz = /* @__PURE__ */ n(function() {
      return t;
    }, "_codeFrame"), t;
  }
  n(Bz, "_codeFrame");
  function Mz() {
    let t = fe();
    return Mz = /* @__PURE__ */ n(function() {
      return t;
    }, "_t"), t;
  }
  n(Mz, "_t");
  function nP() {
    let t = Je("semver");
    return nP = /* @__PURE__ */ n(function() {
      return t;
    }, "_semver"), t;
  }
  n(nP, "_semver");
  var yut = Lz(), {
    cloneNode: gut,
    interpreterDirective: Tut
  } = Mz(), but = {
    enter(t, e) {
      let s = t.node.loc;
      s && (e.loc = s, t.stop());
    }
  }, Zd = class {
    static {
      n(this, "File");
    }
    constructor(e, {
      code: s,
      ast: r,
      inputMap: i
    }) {
      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: /* @__PURE__ */ n(() => this.code, "getCode"),
        getScope: /* @__PURE__ */ n(() => this.scope, "getScope"),
        addHelper: this.addHelper.bind(this),
        buildError: this.buildCodeFrameError.bind(this)
      }, this.opts = e, this.code = s, this.ast = r, this.inputMap = i, this.path = M2().NodePath.get({
        hub: this.hub,
        parentPath: null,
        parent: this.ast,
        container: this.ast,
        key: "program"
      }).setContext(), this.scope = this.path.scope;
    }
    get shebang() {
      let {
        interpreter: e
      } = this.path.node;
      return e ? e.value : "";
    }
    set shebang(e) {
      e ? this.path.get("interpreter").replaceWith(Tut(e)) : this.path.get("interpreter").remove();
    }
    set(e, s) {
      if (e === "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(e, s);
    }
    get(e) {
      return this._map.get(e);
    }
    has(e) {
      return this._map.has(e);
    }
    availableHelper(e, s) {
      let r;
      try {
        r = Zg().minVersion(e);
      } catch (i) {
        if (i.code !== "BABEL_HELPER_UNKNOWN") throw i;
        return !1;
      }
      return typeof s != "string" ? !0 : (nP().valid(s) && (s = `^${s}`), !nP().intersects(`<${r}`, s) && !nP().intersects(">=8.0.0", s));
    }
    addHelper(e) {
      let s = this.declarations[e];
      if (s) return gut(s);
      let r = this.get("helperGenerator");
      if (r) {
        let c = r(e);
        if (c) return c;
      }
      Zg().minVersion(e);
      let i = this.declarations[e] = this.scope.generateUidIdentifier(e), a = {};
      for (let c of Zg().getDependencies(e))
        a[c] = this.addHelper(c);
      let {
        nodes: o,
        globals: l
      } = Zg().get(e, (c) => a[c], i.name, Object.keys(this.scope.getAllBindings()));
      l.forEach((c) => {
        this.path.scope.hasBinding(c, !0) && this.path.scope.rename(c);
      }), o.forEach((c) => {
        c._compact = !0;
      });
      let u = this.path.unshiftContainer("body", o);
      for (let c of u)
        c.isVariableDeclaration() && this.scope.registerDeclaration(c);
      return i;
    }
    buildCodeFrameError(e, s, r = SyntaxError) {
      let i = e?.loc;
      if (!i && e) {
        let a = {
          loc: null
        };
        (0, M2().default)(e, but, this.scope, a), i = a.loc;
        let o = "This is an error on an internal node. Probably an internal error.";
        i && (o += " Location has been estimated."), s += ` (${o})`;
      }
      if (i) {
        let {
          highlightCode: a = !0
        } = this.opts;
        s += `
` + (0, Bz().codeFrameColumns)(this.code, {
          start: {
            line: i.start.line,
            column: i.start.column + 1
          },
          end: i.end && i.start.line === i.end.line ? {
            line: i.end.line,
            column: i.end.column + 1
          } : void 0
        }, {
          highlightCode: a
        });
      }
      return new r(s);
    }
  };
  aP.default = Zd;
  Zd.prototype.addImport = /* @__PURE__ */ n(function() {
    throw new Error("This API has been removed. If you're looking for this functionality in Babel 7, you should import the '@babel/helper-mo\
dule-imports' module and use the functions exposed  from that module, such as 'addNamed' or 'addDefault'.");
  }, "addImport"), Zd.prototype.addTemplateObject = /* @__PURE__ */ n(function() {
    throw new Error("This function has been moved into the template literal transform itself.");
  }, "addTemplateObject"), Zd.prototype.getModuleName = /* @__PURE__ */ n(function() {
    return yut.getModuleName()(this.opts, this.opts);
  }, "getModuleName");
});

// ../node_modules/@babel/core/lib/tools/build-external-helpers.js
var Uz = g((W2) => {
  "use strict";
  Object.defineProperty(W2, "__esModule", {
    value: !0
  });
  W2.default = But;
  function j2() {
    let t = gN();
    return j2 = /* @__PURE__ */ n(function() {
      return t;
    }, "helpers"), t;
  }
  n(j2, "helpers");
  function Fz() {
    let t = Bx();
    return Fz = /* @__PURE__ */ n(function() {
      return t;
    }, "_generator"), t;
  }
  n(Fz, "_generator");
  function jz() {
    let t = Jl();
    return jz = /* @__PURE__ */ n(function() {
      return t;
    }, "_template"), t;
  }
  n(jz, "_template");
  function Rz() {
    let t = fe();
    return Rz = /* @__PURE__ */ n(function() {
      return t;
    }, "_t"), t;
  }
  n(Rz, "_t");
  var {
    arrayExpression: xut,
    assignmentExpression: oP,
    binaryExpression: Sut,
    blockStatement: Put,
    callExpression: Eut,
    cloneNode: Aut,
    conditionalExpression: vut,
    exportNamedDeclaration: Cut,
    exportSpecifier: wut,
    expressionStatement: R2,
    functionExpression: Iut,
    identifier: Hi,
    memberExpression: q2,
    objectExpression: U2,
    program: lP,
    stringLiteral: qz,
    unaryExpression: Nut,
    variableDeclaration: K2,
    variableDeclarator: V2
  } = Rz(), kut = /* @__PURE__ */ n((t) => jz().default.statement`
    (function (root, factory) {
      if (typeof define === "function" && define.amd) {
        define(AMD_ARGUMENTS, factory);
      } else if (typeof exports === "object") {
        factory(COMMON_ARGUMENTS);
      } else {
        factory(BROWSER_ARGUMENTS);
      }
    })(UMD_ROOT, function (FACTORY_PARAMETERS) {
      FACTORY_BODY
    });
  `(t), "buildUmdWrapper");
  function Dut(t) {
    let e = Hi("babelHelpers"), s = [], r = Iut(null, [Hi("global")], Put(s)), i = lP([R2(Eut(r, [vut(Sut("===", Nut("typeof", Hi("global")),
    qz("undefined")), Hi("self"), Hi("global"))]))]);
    return s.push(K2("var", [V2(e, oP("=", q2(Hi("global"), e), U2([])))])), uP(s, e, t), i;
  }
  n(Dut, "buildGlobal");
  function Out(t) {
    let e = [], s = uP(e, null, t);
    return e.unshift(Cut(null, Object.keys(s).map((r) => wut(Aut(s[r]), Hi(r))))), lP(e, [], "module");
  }
  n(Out, "buildModule");
  function _ut(t) {
    let e = Hi("babelHelpers"), s = [];
    return s.push(K2("var", [V2(e, Hi("global"))])), uP(s, e, t), lP([kut({
      FACTORY_PARAMETERS: Hi("global"),
      BROWSER_ARGUMENTS: oP("=", q2(Hi("root"), e), U2([])),
      COMMON_ARGUMENTS: Hi("exports"),
      AMD_ARGUMENTS: xut([qz("exports")]),
      FACTORY_BODY: s,
      UMD_ROOT: Hi("this")
    })]);
  }
  n(_ut, "buildUmd");
  function Lut(t) {
    let e = Hi("babelHelpers"), s = [];
    s.push(K2("var", [V2(e, U2([]))]));
    let r = lP(s);
    return uP(s, e, t), s.push(R2(e)), r;
  }
  n(Lut, "buildVar");
  function uP(t, e, s) {
    let r = /* @__PURE__ */ n((a) => e ? q2(e, Hi(a)) : Hi(`_${a}`), "getHelperReference"), i = {};
    return j2().list.forEach(function(a) {
      if (s && !s.includes(a)) return;
      let o = i[a] = r(a), {
        nodes: l
      } = j2().get(a, r, e ? null : `_${a}`, [], e ? (u, c, p) => {
        p((h) => oP("=", o, h)), u.body.push(R2(oP("=", o, Hi(c))));
      } : null);
      t.push(...l);
    }), i;
  }
  n(uP, "buildHelpers");
  function But(t, e = "global") {
    let s, r = {
      global: Dut,
      module: Out,
      umd: _ut,
      var: Lut
    }[e];
    if (r)
      s = r(t);
    else
      throw new Error(`Unsupported output type ${e}`);
    return (0, Fz().default)(s).code;
  }
  n(But, "_default");
});

// ../node_modules/gensync/index.js
var pa = g((LKs, Xz) => {
  "use strict";
  var Vz = Symbol.for("gensync:v1:start"), Wz = Symbol.for("gensync:v1:suspend"), Mut = "GENSYNC_EXPECTED_START", Fut = "GENSYNC_EXPECTED_SU\
SPEND", $z = "GENSYNC_OPTIONS_ERROR", Kz = "GENSYNC_RACE_NONEMPTY", jut = "GENSYNC_ERRBACK_NO_CALLBACK";
  Xz.exports = Object.assign(
    /* @__PURE__ */ n(function(e) {
      let s = e;
      return typeof e != "function" ? s = qut(e) : s = Uut(e), Object.assign(s, Rut(s));
    }, "gensync"),
    {
      all: $2({
        name: "all",
        arity: 1,
        sync: /* @__PURE__ */ n(function(t) {
          return Array.from(t[0]).map((s) => H2(s));
        }, "sync"),
        async: /* @__PURE__ */ n(function(t, e, s) {
          let r = Array.from(t[0]);
          if (r.length === 0) {
            Promise.resolve().then(() => e([]));
            return;
          }
          let i = 0, a = r.map(() => {
          });
          r.forEach((o, l) => {
            cP(
              o,
              (u) => {
                a[l] = u, i += 1, i === a.length && e(a);
              },
              s
            );
          });
        }, "async")
      }),
      race: $2({
        name: "race",
        arity: 1,
        sync: /* @__PURE__ */ n(function(t) {
          let e = Array.from(t[0]);
          if (e.length === 0)
            throw jh("Must race at least 1 item", Kz);
          return H2(e[0]);
        }, "sync"),
        async: /* @__PURE__ */ n(function(t, e, s) {
          let r = Array.from(t[0]);
          if (r.length === 0)
            throw jh("Must race at least 1 item", Kz);
          for (let i of r)
            cP(i, e, s);
        }, "async")
      })
    }
  );
  function Rut(t) {
    return {
      sync: /* @__PURE__ */ n(function(...s) {
        return H2(t.apply(this, s));
      }, "sync"),
      async: /* @__PURE__ */ n(function(...s) {
        return new Promise((r, i) => {
          cP(t.apply(this, s), r, i);
        });
      }, "async"),
      errback: /* @__PURE__ */ n(function(...s) {
        let r = s.pop();
        if (typeof r != "function")
          throw jh(
            "Asynchronous function called without callback",
            jut
          );
        let i;
        try {
          i = t.apply(this, s);
        } catch (a) {
          r(a);
          return;
        }
        cP(i, (a) => r(void 0, a), (a) => r(a));
      }, "errback")
    };
  }
  n(Rut, "makeFunctionAPI");
  function e0(t, e, s, r) {
    if (typeof s === t || r && typeof s > "u")
      return;
    let i;
    throw r ? i = `Expected opts.${e} to be either a ${t}, or undefined.` : i = `Expected opts.${e} to be a ${t}.`, jh(i, $z);
  }
  n(e0, "assertTypeof");
  function jh(t, e) {
    return Object.assign(new Error(t), { code: e });
  }
  n(jh, "makeError");
  function qut({ name: t, arity: e, sync: s, async: r, errback: i }) {
    if (e0(
      "string",
      "name",
      t,
      !0
      /* allowUndefined */
    ), e0(
      "number",
      "arity",
      e,
      !0
      /* allowUndefined */
    ), e0("function", "sync", s), e0(
      "function",
      "async",
      r,
      !0
      /* allowUndefined */
    ), e0(
      "function",
      "errback",
      i,
      !0
      /* allowUndefined */
    ), r && i)
      throw jh(
        "Expected one of either opts.async or opts.errback, but got _both_.",
        $z
      );
    if (typeof t != "string") {
      let a;
      i && i.name && i.name !== "errback" && (a = i.name), r && r.name && r.name !== "async" && (a = r.name.replace(/Async$/, "")), s && s.name &&
      s.name !== "sync" && (a = s.name.replace(/Sync$/, "")), typeof a == "string" && (t = a);
    }
    return typeof e != "number" && (e = s.length), $2({
      name: t,
      arity: e,
      sync: /* @__PURE__ */ n(function(a) {
        return s.apply(this, a);
      }, "sync"),
      async: /* @__PURE__ */ n(function(a, o, l) {
        r ? r.apply(this, a).then(o, l) : i ? i.call(this, ...a, (u, c) => {
          u == null ? o(c) : l(u);
        }) : o(s.apply(this, a));
      }, "async")
    });
  }
  n(qut, "newGenerator");
  function Uut(t) {
    return Yz(t.name, t.length, function(...e) {
      return t.apply(this, e);
    });
  }
  n(Uut, "wrapGenerator");
  function $2({ name: t, arity: e, sync: s, async: r }) {
    return Yz(t, e, function* (...i) {
      let a = yield Vz;
      if (!a)
        return s.call(this, i);
      let o;
      try {
        r.call(
          this,
          i,
          (l) => {
            o || (o = { value: l }, a());
          },
          (l) => {
            o || (o = { err: l }, a());
          }
        );
      } catch (l) {
        o = { err: l }, a();
      }
      if (yield Wz, o.hasOwnProperty("err"))
        throw o.err;
      return o.value;
    });
  }
  n($2, "buildOperation");
  function H2(t) {
    let e;
    for (; !({ value: e } = t.next()).done; )
      Hz(e, t);
    return e;
  }
  n(H2, "evaluateSync");
  function cP(t, e, s) {
    (/* @__PURE__ */ n(function r() {
      try {
        let i;
        for (; !({ value: i } = t.next()).done; ) {
          Hz(i, t);
          let a = !0, o = !1, l = t.next(() => {
            a ? o = !0 : r();
          });
          if (a = !1, Kut(l, t), !o)
            return;
        }
        return e(i);
      } catch (i) {
        return s(i);
      }
    }, "step"))();
  }
  n(cP, "evaluateAsync");
  function Hz(t, e) {
    t !== Vz && Jz(
      e,
      jh(
        `Got unexpected yielded value in gensync generator: ${JSON.stringify(
          t
        )}. Did you perhaps mean to use 'yield*' instead of 'yield'?`,
        Mut
      )
    );
  }
  n(Hz, "assertStart");
  function Kut({ value: t, done: e }, s) {
    !e && t === Wz || Jz(
      s,
      jh(
        e ? "Unexpected generator completion. If you get this, it is probably a gensync bug." : `Expected GENSYNC_SUSPEND, got ${JSON.stringify(
          t
        )}. If you get this, it is probably a gensync bug.`,
        Fut
      )
    );
  }
  n(Kut, "assertSuspend");
  function Jz(t, e) {
    throw t.throw && t.throw(e), e;
  }
  n(Jz, "throwError");
  function Yz(t, e, s) {
    if (typeof t == "string") {
      let r = Object.getOwnPropertyDescriptor(s, "name");
      (!r || r.configurable) && Object.defineProperty(
        s,
        "name",
        Object.assign(r || {}, {
          configurable: !0,
          value: t
        })
      );
    }
    if (typeof e == "number") {
      let r = Object.getOwnPropertyDescriptor(s, "length");
      (!r || r.configurable) && Object.defineProperty(
        s,
        "length",
        Object.assign(r || {}, {
          configurable: !0,
          value: e
        })
      );
    }
    return s;
  }
  n(Yz, "setFunctionMetadata");
});

// ../node_modules/@babel/core/lib/gensync-utils/async.js
var sp = g((vo) => {
  "use strict";
  Object.defineProperty(vo, "__esModule", {
    value: !0
  });
  vo.forwardAsync = $ut;
  vo.isAsync = void 0;
  vo.isThenable = Zz;
  vo.maybeAsync = Vut;
  vo.waitFor = vo.onFirstPause = void 0;
  function tp() {
    let t = pa();
    return tp = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(tp, "_gensync");
  function zz(t, e, s, r, i, a, o) {
    try {
      var l = t[a](o), u = l.value;
    } catch (c) {
      return void s(c);
    }
    l.done ? e(u) : Promise.resolve(u).then(r, i);
  }
  n(zz, "asyncGeneratorStep");
  function Qz(t) {
    return function() {
      var e = this, s = arguments;
      return new Promise(function(r, i) {
        var a = t.apply(e, s);
        function o(u) {
          zz(a, r, i, o, l, "next", u);
        }
        n(o, "_next");
        function l(u) {
          zz(a, r, i, o, l, "throw", u);
        }
        n(l, "_throw"), o(void 0);
      });
    };
  }
  n(Qz, "_asyncToGenerator");
  var Gz = tp()(function* (t) {
    return yield* t;
  }), MKs = vo.isAsync = tp()({
    sync: /* @__PURE__ */ n(() => !1, "sync"),
    errback: /* @__PURE__ */ n((t) => t(null, !0), "errback")
  });
  function Vut(t, e) {
    return tp()({
      sync(...s) {
        let r = t.apply(this, s);
        if (Zz(r)) throw new Error(e);
        return r;
      },
      async(...s) {
        return Promise.resolve(t.apply(this, s));
      }
    });
  }
  n(Vut, "maybeAsync");
  var Wut = tp()({
    sync: /* @__PURE__ */ n((t) => t("sync"), "sync"),
    async: function() {
      var t = Qz(function* (e) {
        return e("async");
      });
      return /* @__PURE__ */ n(function(s) {
        return t.apply(this, arguments);
      }, "async");
    }()
  });
  function $ut(t, e) {
    let s = tp()(t);
    return Wut((r) => {
      let i = s[r];
      return e(i);
    });
  }
  n($ut, "forwardAsync");
  var FKs = vo.onFirstPause = tp()({
    name: "onFirstPause",
    arity: 2,
    sync: /* @__PURE__ */ n(function(t) {
      return Gz.sync(t);
    }, "sync"),
    errback: /* @__PURE__ */ n(function(t, e, s) {
      let r = !1;
      Gz.errback(t, (i, a) => {
        r = !0, s(i, a);
      }), r || e();
    }, "errback")
  }), jKs = vo.waitFor = tp()({
    sync: /* @__PURE__ */ n((t) => t, "sync"),
    async: function() {
      var t = Qz(function* (e) {
        return e;
      });
      return /* @__PURE__ */ n(function(s) {
        return t.apply(this, arguments);
      }, "async");
    }()
  });
  function Zz(t) {
    return !!t && (typeof t == "object" || typeof t == "function") && !!t.then && typeof t.then == "function";
  }
  n(Zz, "isThenable");
});

// ../node_modules/@babel/core/lib/config/util.js
var hP = g((pP) => {
  "use strict";
  Object.defineProperty(pP, "__esModule", {
    value: !0
  });
  pP.isIterableIterator = Yut;
  pP.mergeOptions = Hut;
  function Hut(t, e) {
    for (let s of Object.keys(e))
      if ((s === "parserOpts" || s === "generatorOpts" || s === "assumptions") && e[s]) {
        let r = e[s], i = t[s] || (t[s] = {});
        Jut(i, r);
      } else {
        let r = e[s];
        r !== void 0 && (t[s] = r);
      }
  }
  n(Hut, "mergeOptions");
  function Jut(t, e) {
    for (let s of Object.keys(e)) {
      let r = e[s];
      r !== void 0 && (t[s] = r);
    }
  }
  n(Jut, "mergeDefaultFields");
  function Yut(t) {
    return !!t && typeof t.next == "function" && typeof t[Symbol.iterator] == "function";
  }
  n(Yut, "isIterableIterator");
});

// ../node_modules/@babel/core/lib/config/caching.js
var qh = g((Rh) => {
  "use strict";
  Object.defineProperty(Rh, "__esModule", {
    value: !0
  });
  Rh.assertSimpleType = fP;
  Rh.makeStrongCache = iG;
  Rh.makeStrongCacheSync = Qut;
  Rh.makeWeakCache = rG;
  Rh.makeWeakCacheSync = Gut;
  function tG() {
    let t = pa();
    return tG = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(tG, "_gensync");
  var em = sp(), Xut = hP(), sG = /* @__PURE__ */ n((t) => tG()(t).sync, "synchronize");
  function* zut() {
    return !0;
  }
  n(zut, "genTrue");
  function rG(t) {
    return nG(WeakMap, t);
  }
  n(rG, "makeWeakCache");
  function Gut(t) {
    return sG(rG(t));
  }
  n(Gut, "makeWeakCacheSync");
  function iG(t) {
    return nG(Map, t);
  }
  n(iG, "makeStrongCache");
  function Qut(t) {
    return sG(iG(t));
  }
  n(Qut, "makeStrongCacheSync");
  function nG(t, e) {
    let s = new t(), r = new t(), i = new t();
    return /* @__PURE__ */ n(function* (o, l) {
      let u = yield* (0, em.isAsync)(), c = u ? r : s, p = yield* Zut(u, c, i, o, l);
      if (p.valid) return p.value;
      let h = new J2(l), f = e(o, h), d, m;
      return (0, Xut.isIterableIterator)(f) ? m = yield* (0, em.onFirstPause)(f, () => {
        d = ect(h, i, o);
      }) : m = f, aG(c, h, o, m), d && (i.delete(o), d.release(m)), m;
    }, "cachedFunction");
  }
  n(nG, "makeCachedFunction");
  function* eG(t, e, s) {
    let r = t.get(e);
    if (r) {
      for (let {
        value: i,
        valid: a
      } of r)
        if (yield* a(s)) return {
          valid: !0,
          value: i
        };
    }
    return {
      valid: !1,
      value: null
    };
  }
  n(eG, "getCachedValue");
  function* Zut(t, e, s, r, i) {
    let a = yield* eG(e, r, i);
    if (a.valid)
      return a;
    if (t) {
      let o = yield* eG(s, r, i);
      if (o.valid)
        return {
          valid: !0,
          value: yield* (0, em.waitFor)(o.value.promise)
        };
    }
    return {
      valid: !1,
      value: null
    };
  }
  n(Zut, "getCachedValueOrWait");
  function ect(t, e, s) {
    let r = new Y2();
    return aG(e, t, s, r), r;
  }
  n(ect, "setupAsyncLocks");
  function aG(t, e, s, r) {
    e.configured() || e.forever();
    let i = t.get(s);
    switch (e.deactivate(), e.mode()) {
      case "forever":
        i = [{
          value: r,
          valid: zut
        }], t.set(s, i);
        break;
      case "invalidate":
        i = [{
          value: r,
          valid: e.validator()
        }], t.set(s, i);
        break;
      case "valid":
        i ? i.push({
          value: r,
          valid: e.validator()
        }) : (i = [{
          value: r,
          valid: e.validator()
        }], t.set(s, i));
    }
  }
  n(aG, "updateFunctionCache");
  var J2 = class {
    static {
      n(this, "CacheConfigurator");
    }
    constructor(e) {
      this._active = !0, this._never = !1, this._forever = !1, this._invalidate = !1, this._configured = !1, this._pairs = [], this._data = void 0,
      this._data = e;
    }
    simple() {
      return tct(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(e) {
      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;
      let s = e(this._data), r = (0, em.maybeAsync)(e, "You appear to be using an async cache handler, but Babel has been called synchronous\
ly");
      return (0, em.isThenable)(s) ? s.then((i) => (this._pairs.push([i, r]), i)) : (this._pairs.push([s, r]), s);
    }
    invalidate(e) {
      return this._invalidate = !0, this.using(e);
    }
    validator() {
      let e = this._pairs;
      return function* (s) {
        for (let [r, i] of e)
          if (r !== (yield* i(s))) return !1;
        return !0;
      };
    }
    deactivate() {
      this._active = !1;
    }
    configured() {
      return this._configured;
    }
  };
  function tct(t) {
    function e(s) {
      if (typeof s == "boolean") {
        s ? t.forever() : t.never();
        return;
      }
      return t.using(() => fP(s()));
    }
    return n(e, "cacheFn"), e.forever = () => t.forever(), e.never = () => t.never(), e.using = (s) => t.using(() => fP(s())), e.invalidate =
    (s) => t.invalidate(() => fP(s())), e;
  }
  n(tct, "makeSimpleConfigurator");
  function fP(t) {
    if ((0, em.isThenable)(t))
      throw new Error("You appear to be using an async cache handler, which your current version of Babel does not support. We may add suppo\
rt 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 synchron\
ously handle your caching logic.");
    if (t != null && typeof t != "string" && typeof t != "boolean" && typeof t != "number")
      throw new Error("Cache keys must be either string, boolean, number, null, or undefined.");
    return t;
  }
  n(fP, "assertSimpleType");
  var Y2 = class {
    static {
      n(this, "Lock");
    }
    constructor() {
      this.released = !1, this.promise = void 0, this._resolve = void 0, this.promise = new Promise((e) => {
        this._resolve = e;
      });
    }
    release(e) {
      this.released = !0, this._resolve(e);
    }
  };
});

// ../node_modules/@babel/core/lib/gensync-utils/fs.js
var dP = g((tm) => {
  "use strict";
  Object.defineProperty(tm, "__esModule", {
    value: !0
  });
  tm.stat = tm.readFile = void 0;
  function t0() {
    let t = Je("fs");
    return t0 = /* @__PURE__ */ n(function() {
      return t;
    }, "_fs"), t;
  }
  n(t0, "_fs");
  function X2() {
    let t = pa();
    return X2 = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(X2, "_gensync");
  var $Ks = tm.readFile = X2()({
    sync: t0().readFileSync,
    errback: t0().readFile
  }), HKs = tm.stat = X2()({
    sync: t0().statSync,
    errback: t0().stat
  });
});

// ../node_modules/@babel/core/lib/config/files/utils.js
var Q2 = g((G2) => {
  "use strict";
  Object.defineProperty(G2, "__esModule", {
    value: !0
  });
  G2.makeStaticFileCache = ict;
  var sct = qh(), rct = dP();
  function z2() {
    let t = Je("fs");
    return z2 = /* @__PURE__ */ n(function() {
      return t;
    }, "_fs2"), t;
  }
  n(z2, "_fs2");
  function ict(t) {
    return (0, sct.makeStrongCache)(function* (e, s) {
      return s.invalidate(() => nct(e)) === null ? null : t(e, yield* rct.readFile(e, "utf8"));
    });
  }
  n(ict, "makeStaticFileCache");
  function nct(t) {
    if (!z2().existsSync(t)) return null;
    try {
      return +z2().statSync(t).mtime;
    } catch (e) {
      if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e;
    }
    return null;
  }
  n(nct, "fileMtime");
});

// ../node_modules/@babel/core/lib/errors/rewrite-stack-trace.js
var bu = g((sm) => {
  "use strict";
  Object.defineProperty(sm, "__esModule", {
    value: !0
  });
  sm.beginHiddenCallStack = uct;
  sm.endHiddenCallStack = cct;
  sm.expectedError = lct;
  sm.injectVirtualStackFrame = oct;
  var oG, lG = Function.call.bind(Error.prototype.toString), yP = !!Error.captureStackTrace && ((oG = Object.getOwnPropertyDescriptor(Error,
  "stackTraceLimit")) == null ? void 0 : oG.writable) === !0, uG = "startHiding - secret - don't use this - v1", cG = "stopHiding - secret -\
 don't use this - v1", pG = /* @__PURE__ */ new WeakSet(), mP = /* @__PURE__ */ new WeakMap();
  function act(t) {
    return /* @__PURE__ */ Object.create({
      isNative: /* @__PURE__ */ n(() => !1, "isNative"),
      isConstructor: /* @__PURE__ */ n(() => !1, "isConstructor"),
      isToplevel: /* @__PURE__ */ n(() => !0, "isToplevel"),
      getFileName: /* @__PURE__ */ n(() => t, "getFileName"),
      getLineNumber: /* @__PURE__ */ n(() => {
      }, "getLineNumber"),
      getColumnNumber: /* @__PURE__ */ n(() => {
      }, "getColumnNumber"),
      getFunctionName: /* @__PURE__ */ n(() => {
      }, "getFunctionName"),
      getMethodName: /* @__PURE__ */ n(() => {
      }, "getMethodName"),
      getTypeName: /* @__PURE__ */ n(() => {
      }, "getTypeName"),
      toString: /* @__PURE__ */ n(() => t, "toString")
    });
  }
  n(act, "CallSite");
  function oct(t, e) {
    if (!yP) return;
    let s = mP.get(t);
    return s || mP.set(t, s = []), s.push(act(e)), t;
  }
  n(oct, "injectVirtualStackFrame");
  function lct(t) {
    if (yP)
      return pG.add(t), t;
  }
  n(lct, "expectedError");
  function uct(t) {
    return yP ? Object.defineProperty(function(...e) {
      return hG(), t(...e);
    }, "name", {
      value: cG
    }) : t;
  }
  n(uct, "beginHiddenCallStack");
  function cct(t) {
    return yP ? Object.defineProperty(function(...e) {
      return t(...e);
    }, "name", {
      value: uG
    }) : t;
  }
  n(cct, "endHiddenCallStack");
  function hG() {
    hG = /* @__PURE__ */ n(() => {
    }, "setupPrepareStackTrace");
    let {
      prepareStackTrace: t = pct
    } = Error, e = 50;
    Error.stackTraceLimit && (Error.stackTraceLimit = Math.max(Error.stackTraceLimit, e)), Error.prepareStackTrace = /* @__PURE__ */ n(function(r, i) {
      let a = [], l = pG.has(r) ? "hiding" : "unknown";
      for (let u = 0; u < i.length; u++) {
        let c = i[u].getFunctionName();
        if (c === uG)
          l = "hiding";
        else if (c === cG) {
          if (l === "hiding")
            l = "showing", mP.has(r) && a.unshift(...mP.get(r));
          else if (l === "unknown") {
            a = i;
            break;
          }
        } else l !== "hiding" && a.push(i[u]);
      }
      return t(r, a);
    }, "stackTraceRewriter");
  }
  n(hG, "setupPrepareStackTrace");
  function pct(t, e) {
    return e.length === 0 ? lG(t) : `${lG(t)}
    at ${e.join(`
    at `)}`;
  }
  n(pct, "defaultPrepareStackTrace");
});

// ../node_modules/@babel/core/lib/errors/config-error.js
var Uh = g((gP) => {
  "use strict";
  Object.defineProperty(gP, "__esModule", {
    value: !0
  });
  gP.default = void 0;
  var fG = bu(), Z2 = class extends Error {
    static {
      n(this, "ConfigError");
    }
    constructor(e, s) {
      super(e), (0, fG.expectedError)(this), s && (0, fG.injectVirtualStackFrame)(this, s);
    }
  };
  gP.default = Z2;
});

// ../node_modules/@babel/core/lib/config/files/package.js
var dG = g((t_) => {
  "use strict";
  Object.defineProperty(t_, "__esModule", {
    value: !0
  });
  t_.findPackageData = mct;
  function rm() {
    let t = Je("path");
    return rm = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(rm, "_path");
  var hct = Q2(), e_ = Uh(), fct = "package.json", dct = (0, hct.makeStaticFileCache)((t, e) => {
    let s;
    try {
      s = JSON.parse(e);
    } catch (r) {
      throw new e_.default(`Error while parsing JSON - ${r.message}`, t);
    }
    if (!s) throw new Error(`${t}: No config detected`);
    if (typeof s != "object")
      throw new e_.default(`Config returned typeof ${typeof s}`, t);
    if (Array.isArray(s))
      throw new e_.default("Expected config object but found array", t);
    return {
      filepath: t,
      dirname: rm().dirname(t),
      options: s
    };
  });
  function* mct(t) {
    let e = null, s = [], r = !0, i = rm().dirname(t);
    for (; !e && rm().basename(i) !== "node_modules"; ) {
      s.push(i), e = yield* dct(rm().join(i, fct));
      let a = rm().dirname(i);
      if (i === a) {
        r = !1;
        break;
      }
      i = a;
    }
    return {
      filepath: t,
      directories: s,
      pkg: e,
      isPackage: r
    };
  }
  n(mct, "findPackageData");
});

// ../node_modules/json5/lib/unicode.js
var mG = g((rVs, TP) => {
  TP.exports.Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
  TP.exports.ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
  TP.exports.ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
});

// ../node_modules/json5/lib/util.js
var r_ = g((iVs, yG) => {
  var s_ = mG();
  yG.exports = {
    isSpaceSeparator(t) {
      return typeof t == "string" && s_.Space_Separator.test(t);
    },
    isIdStartChar(t) {
      return typeof t == "string" && (t >= "a" && t <= "z" || t >= "A" && t <= "Z" || t === "$" || t === "_" || s_.ID_Start.test(t));
    },
    isIdContinueChar(t) {
      return typeof t == "string" && (t >= "a" && t <= "z" || t >= "A" && t <= "Z" || t >= "0" && t <= "9" || t === "$" || t === "_" || t ===
      "\u200C" || t === "\u200D" || s_.ID_Continue.test(t));
    },
    isDigit(t) {
      return typeof t == "string" && /[0-9]/.test(t);
    },
    isHexDigit(t) {
      return typeof t == "string" && /[0-9A-Fa-f]/.test(t);
    }
  };
});

// ../node_modules/json5/lib/parse.js
var SG = g((nVs, xG) => {
  var Mi = r_(), n_, Nn, Su, xP, rp, Co, Fi, l_, r0;
  xG.exports = /* @__PURE__ */ n(function(e, s) {
    n_ = String(e), Nn = "start", Su = [], xP = 0, rp = 1, Co = 0, Fi = void 0, l_ = void 0, r0 = void 0;
    do
      Fi = yct(), bct[Nn]();
    while (Fi.type !== "eof");
    return typeof s == "function" ? a_({ "": r0 }, "", s) : r0;
  }, "parse");
  function a_(t, e, s) {
    let r = t[e];
    if (r != null && typeof r == "object")
      if (Array.isArray(r))
        for (let i = 0; i < r.length; i++) {
          let a = String(i), o = a_(r, a, s);
          o === void 0 ? delete r[a] : Object.defineProperty(r, a, {
            value: o,
            writable: !0,
            enumerable: !0,
            configurable: !0
          });
        }
      else
        for (let i in r) {
          let a = a_(r, i, s);
          a === void 0 ? delete r[i] : Object.defineProperty(r, i, {
            value: a,
            writable: !0,
            enumerable: !0,
            configurable: !0
          });
        }
    return s.call(t, e, r);
  }
  n(a_, "internalize");
  var ss, Gt, s0, xu, As;
  function yct() {
    for (ss = "default", Gt = "", s0 = !1, xu = 1; ; ) {
      As = Pu();
      let t = TG[ss]();
      if (t)
        return t;
    }
  }
  n(yct, "lex");
  function Pu() {
    if (n_[xP])
      return String.fromCodePoint(n_.codePointAt(xP));
  }
  n(Pu, "peek");
  function ve() {
    let t = Pu();
    return t === `
` ? (rp++, Co = 0) : t ? Co += t.length : Co++, t && (xP += t.length), t;
  }
  n(ve, "read");
  var TG = {
    default() {
      switch (As) {
        case "	":
        case "\v":
        case "\f":
        case " ":
        case "\xA0":
        case "\uFEFF":
        case `
`:
        case "\r":
        case "\u2028":
        case "\u2029":
          ve();
          return;
        case "/":
          ve(), ss = "comment";
          return;
        case void 0:
          return ve(), _r("eof");
      }
      if (Mi.isSpaceSeparator(As)) {
        ve();
        return;
      }
      return TG[Nn]();
    },
    comment() {
      switch (As) {
        case "*":
          ve(), ss = "multiLineComment";
          return;
        case "/":
          ve(), ss = "singleLineComment";
          return;
      }
      throw Lr(ve());
    },
    multiLineComment() {
      switch (As) {
        case "*":
          ve(), ss = "multiLineCommentAsterisk";
          return;
        case void 0:
          throw Lr(ve());
      }
      ve();
    },
    multiLineCommentAsterisk() {
      switch (As) {
        case "*":
          ve();
          return;
        case "/":
          ve(), ss = "default";
          return;
        case void 0:
          throw Lr(ve());
      }
      ve(), ss = "multiLineComment";
    },
    singleLineComment() {
      switch (As) {
        case `
`:
        case "\r":
        case "\u2028":
        case "\u2029":
          ve(), ss = "default";
          return;
        case void 0:
          return ve(), _r("eof");
      }
      ve();
    },
    value() {
      switch (As) {
        case "{":
        case "[":
          return _r("punctuator", ve());
        case "n":
          return ve(), Kh("ull"), _r("null", null);
        case "t":
          return ve(), Kh("rue"), _r("boolean", !0);
        case "f":
          return ve(), Kh("alse"), _r("boolean", !1);
        case "-":
        case "+":
          ve() === "-" && (xu = -1), ss = "sign";
          return;
        case ".":
          Gt = ve(), ss = "decimalPointLeading";
          return;
        case "0":
          Gt = ve(), ss = "zero";
          return;
        case "1":
        case "2":
        case "3":
        case "4":
        case "5":
        case "6":
        case "7":
        case "8":
        case "9":
          Gt = ve(), ss = "decimalInteger";
          return;
        case "I":
          return ve(), Kh("nfinity"), _r("numeric", 1 / 0);
        case "N":
          return ve(), Kh("aN"), _r("numeric", NaN);
        case '"':
        case "'":
          s0 = ve() === '"', Gt = "", ss = "string";
          return;
      }
      throw Lr(ve());
    },
    identifierNameStartEscape() {
      if (As !== "u")
        throw Lr(ve());
      ve();
      let t = o_();
      switch (t) {
        case "$":
        case "_":
          break;
        default:
          if (!Mi.isIdStartChar(t))
            throw gG();
          break;
      }
      Gt += t, ss = "identifierName";
    },
    identifierName() {
      switch (As) {
        case "$":
        case "_":
        case "\u200C":
        case "\u200D":
          Gt += ve();
          return;
        case "\\":
          ve(), ss = "identifierNameEscape";
          return;
      }
      if (Mi.isIdContinueChar(As)) {
        Gt += ve();
        return;
      }
      return _r("identifier", Gt);
    },
    identifierNameEscape() {
      if (As !== "u")
        throw Lr(ve());
      ve();
      let t = o_();
      switch (t) {
        case "$":
        case "_":
        case "\u200C":
        case "\u200D":
          break;
        default:
          if (!Mi.isIdContinueChar(t))
            throw gG();
          break;
      }
      Gt += t, ss = "identifierName";
    },
    sign() {
      switch (As) {
        case ".":
          Gt = ve(), ss = "decimalPointLeading";
          return;
        case "0":
          Gt = ve(), ss = "zero";
          return;
        case "1":
        case "2":
        case "3":
        case "4":
        case "5":
        case "6":
        case "7":
        case "8":
        case "9":
          Gt = ve(), ss = "decimalInteger";
          return;
        case "I":
          return ve(), Kh("nfinity"), _r("numeric", xu * (1 / 0));
        case "N":
          return ve(), Kh("aN"), _r("numeric", NaN);
      }
      throw Lr(ve());
    },
    zero() {
      switch (As) {
        case ".":
          Gt += ve(), ss = "decimalPoint";
          return;
        case "e":
        case "E":
          Gt += ve(), ss = "decimalExponent";
          return;
        case "x":
        case "X":
          Gt += ve(), ss = "hexadecimal";
          return;
      }
      return _r("numeric", xu * 0);
    },
    decimalInteger() {
      switch (As) {
        case ".":
          Gt += ve(), ss = "decimalPoint";
          return;
        case "e":
        case "E":
          Gt += ve(), ss = "decimalExponent";
          return;
      }
      if (Mi.isDigit(As)) {
        Gt += ve();
        return;
      }
      return _r("numeric", xu * Number(Gt));
    },
    decimalPointLeading() {
      if (Mi.isDigit(As)) {
        Gt += ve(), ss = "decimalFraction";
        return;
      }
      throw Lr(ve());
    },
    decimalPoint() {
      switch (As) {
        case "e":
        case "E":
          Gt += ve(), ss = "decimalExponent";
          return;
      }
      if (Mi.isDigit(As)) {
        Gt += ve(), ss = "decimalFraction";
        return;
      }
      return _r("numeric", xu * Number(Gt));
    },
    decimalFraction() {
      switch (As) {
        case "e":
        case "E":
          Gt += ve(), ss = "decimalExponent";
          return;
      }
      if (Mi.isDigit(As)) {
        Gt += ve();
        return;
      }
      return _r("numeric", xu * Number(Gt));
    },
    decimalExponent() {
      switch (As) {
        case "+":
        case "-":
          Gt += ve(), ss = "decimalExponentSign";
          return;
      }
      if (Mi.isDigit(As)) {
        Gt += ve(), ss = "decimalExponentInteger";
        return;
      }
      throw Lr(ve());
    },
    decimalExponentSign() {
      if (Mi.isDigit(As)) {
        Gt += ve(), ss = "decimalExponentInteger";
        return;
      }
      throw Lr(ve());
    },
    decimalExponentInteger() {
      if (Mi.isDigit(As)) {
        Gt += ve();
        return;
      }
      return _r("numeric", xu * Number(Gt));
    },
    hexadecimal() {
      if (Mi.isHexDigit(As)) {
        Gt += ve(), ss = "hexadecimalInteger";
        return;
      }
      throw Lr(ve());
    },
    hexadecimalInteger() {
      if (Mi.isHexDigit(As)) {
        Gt += ve();
        return;
      }
      return _r("numeric", xu * Number(Gt));
    },
    string() {
      switch (As) {
        case "\\":
          ve(), Gt += gct();
          return;
        case '"':
          if (s0)
            return ve(), _r("string", Gt);
          Gt += ve();
          return;
        case "'":
          if (!s0)
            return ve(), _r("string", Gt);
          Gt += ve();
          return;
        case `
`:
        case "\r":
          throw Lr(ve());
        case "\u2028":
        case "\u2029":
          xct(As);
          break;
        case void 0:
          throw Lr(ve());
      }
      Gt += ve();
    },
    start() {
      switch (As) {
        case "{":
        case "[":
          return _r("punctuator", ve());
      }
      ss = "value";
    },
    beforePropertyName() {
      switch (As) {
        case "$":
        case "_":
          Gt = ve(), ss = "identifierName";
          return;
        case "\\":
          ve(), ss = "identifierNameStartEscape";
          return;
        case "}":
          return _r("punctuator", ve());
        case '"':
        case "'":
          s0 = ve() === '"', ss = "string";
          return;
      }
      if (Mi.isIdStartChar(As)) {
        Gt += ve(), ss = "identifierName";
        return;
      }
      throw Lr(ve());
    },
    afterPropertyName() {
      if (As === ":")
        return _r("punctuator", ve());
      throw Lr(ve());
    },
    beforePropertyValue() {
      ss = "value";
    },
    afterPropertyValue() {
      switch (As) {
        case ",":
        case "}":
          return _r("punctuator", ve());
      }
      throw Lr(ve());
    },
    beforeArrayValue() {
      if (As === "]")
        return _r("punctuator", ve());
      ss = "value";
    },
    afterArrayValue() {
      switch (As) {
        case ",":
        case "]":
          return _r("punctuator", ve());
      }
      throw Lr(ve());
    },
    end() {
      throw Lr(ve());
    }
  };
  function _r(t, e) {
    return {
      type: t,
      value: e,
      line: rp,
      column: Co
    };
  }
  n(_r, "newToken");
  function Kh(t) {
    for (let e of t) {
      if (Pu() !== e)
        throw Lr(ve());
      ve();
    }
  }
  n(Kh, "literal");
  function gct() {
    switch (Pu()) {
      case "b":
        return ve(), "\b";
      case "f":
        return ve(), "\f";
      case "n":
        return ve(), `
`;
      case "r":
        return ve(), "\r";
      case "t":
        return ve(), "	";
      case "v":
        return ve(), "\v";
      case "0":
        if (ve(), Mi.isDigit(Pu()))
          throw Lr(ve());
        return "\0";
      case "x":
        return ve(), Tct();
      case "u":
        return ve(), o_();
      case `
`:
      case "\u2028":
      case "\u2029":
        return ve(), "";
      case "\r":
        return ve(), Pu() === `
` && ve(), "";
      case "1":
      case "2":
      case "3":
      case "4":
      case "5":
      case "6":
      case "7":
      case "8":
      case "9":
        throw Lr(ve());
      case void 0:
        throw Lr(ve());
    }
    return ve();
  }
  n(gct, "escape");
  function Tct() {
    let t = "", e = Pu();
    if (!Mi.isHexDigit(e) || (t += ve(), e = Pu(), !Mi.isHexDigit(e)))
      throw Lr(ve());
    return t += ve(), String.fromCodePoint(parseInt(t, 16));
  }
  n(Tct, "hexEscape");
  function o_() {
    let t = "", e = 4;
    for (; e-- > 0; ) {
      let s = Pu();
      if (!Mi.isHexDigit(s))
        throw Lr(ve());
      t += ve();
    }
    return String.fromCodePoint(parseInt(t, 16));
  }
  n(o_, "unicodeEscape");
  var bct = {
    start() {
      if (Fi.type === "eof")
        throw Vh();
      i_();
    },
    beforePropertyName() {
      switch (Fi.type) {
        case "identifier":
        case "string":
          l_ = Fi.value, Nn = "afterPropertyName";
          return;
        case "punctuator":
          bP();
          return;
        case "eof":
          throw Vh();
      }
    },
    afterPropertyName() {
      if (Fi.type === "eof")
        throw Vh();
      Nn = "beforePropertyValue";
    },
    beforePropertyValue() {
      if (Fi.type === "eof")
        throw Vh();
      i_();
    },
    beforeArrayValue() {
      if (Fi.type === "eof")
        throw Vh();
      if (Fi.type === "punctuator" && Fi.value === "]") {
        bP();
        return;
      }
      i_();
    },
    afterPropertyValue() {
      if (Fi.type === "eof")
        throw Vh();
      switch (Fi.value) {
        case ",":
          Nn = "beforePropertyName";
          return;
        case "}":
          bP();
      }
    },
    afterArrayValue() {
      if (Fi.type === "eof")
        throw Vh();
      switch (Fi.value) {
        case ",":
          Nn = "beforeArrayValue";
          return;
        case "]":
          bP();
      }
    },
    end() {
    }
  };
  function i_() {
    let t;
    switch (Fi.type) {
      case "punctuator":
        switch (Fi.value) {
          case "{":
            t = {};
            break;
          case "[":
            t = [];
            break;
        }
        break;
      case "null":
      case "boolean":
      case "numeric":
      case "string":
        t = Fi.value;
        break;
    }
    if (r0 === void 0)
      r0 = t;
    else {
      let e = Su[Su.length - 1];
      Array.isArray(e) ? e.push(t) : Object.defineProperty(e, l_, {
        value: t,
        writable: !0,
        enumerable: !0,
        configurable: !0
      });
    }
    if (t !== null && typeof t == "object")
      Su.push(t), Array.isArray(t) ? Nn = "beforeArrayValue" : Nn = "beforePropertyName";
    else {
      let e = Su[Su.length - 1];
      e == null ? Nn = "end" : Array.isArray(e) ? Nn = "afterArrayValue" : Nn = "afterPropertyValue";
    }
  }
  n(i_, "push");
  function bP() {
    Su.pop();
    let t = Su[Su.length - 1];
    t == null ? Nn = "end" : Array.isArray(t) ? Nn = "afterArrayValue" : Nn = "afterPropertyValue";
  }
  n(bP, "pop");
  function Lr(t) {
    return SP(t === void 0 ? `JSON5: invalid end of input at ${rp}:${Co}` : `JSON5: invalid character '${bG(t)}' at ${rp}:${Co}`);
  }
  n(Lr, "invalidChar");
  function Vh() {
    return SP(`JSON5: invalid end of input at ${rp}:${Co}`);
  }
  n(Vh, "invalidEOF");
  function gG() {
    return Co -= 5, SP(`JSON5: invalid identifier character at ${rp}:${Co}`);
  }
  n(gG, "invalidIdentifier");
  function xct(t) {
    console.warn(`JSON5: '${bG(t)}' in strings is not valid ECMAScript; consider escaping`);
  }
  n(xct, "separatorChar");
  function bG(t) {
    let e = {
      "'": "\\'",
      '"': '\\"',
      "\\": "\\\\",
      "\b": "\\b",
      "\f": "\\f",
      "\n": "\\n",
      "\r": "\\r",
      "	": "\\t",
      "\v": "\\v",
      "\0": "\\0",
      "\u2028": "\\u2028",
      "\u2029": "\\u2029"
    };
    if (e[t])
      return e[t];
    if (t < " ") {
      let s = t.charCodeAt(0).toString(16);
      return "\\x" + ("00" + s).substring(s.length);
    }
    return t;
  }
  n(bG, "formatChar");
  function SP(t) {
    let e = new SyntaxError(t);
    return e.lineNumber = rp, e.columnNumber = Co, e;
  }
  n(SP, "syntaxError");
});

// ../node_modules/json5/lib/stringify.js
var EG = g((oVs, PG) => {
  var u_ = r_();
  PG.exports = /* @__PURE__ */ n(function(e, s, r) {
    let i = [], a = "", o, l, u = "", c;
    if (s != null && typeof s == "object" && !Array.isArray(s) && (r = s.space, c = s.quote, s = s.replacer), typeof s == "function")
      l = s;
    else if (Array.isArray(s)) {
      o = [];
      for (let y of s) {
        let T;
        typeof y == "string" ? T = y : (typeof y == "number" || y instanceof String || y instanceof Number) && (T = String(y)), T !== void 0 &&
        o.indexOf(T) < 0 && o.push(T);
      }
    }
    return r instanceof Number ? r = Number(r) : r instanceof String && (r = String(r)), typeof r == "number" ? r > 0 && (r = Math.min(10, Math.
    floor(r)), u = "          ".substr(0, r)) : typeof r == "string" && (u = r.substr(0, 10)), p("", { "": e });
    function p(y, T) {
      let b = T[y];
      switch (b != null && (typeof b.toJSON5 == "function" ? b = b.toJSON5(y) : typeof b.toJSON == "function" && (b = b.toJSON(y))), l && (b =
      l.call(T, y, b)), b instanceof Number ? b = Number(b) : b instanceof String ? b = String(b) : b instanceof Boolean && (b = b.valueOf()),
      b) {
        case null:
          return "null";
        case !0:
          return "true";
        case !1:
          return "false";
      }
      if (typeof b == "string")
        return h(b, !1);
      if (typeof b == "number")
        return String(b);
      if (typeof b == "object")
        return Array.isArray(b) ? m(b) : f(b);
    }
    n(p, "serializeProperty");
    function h(y) {
      let T = {
        "'": 0.1,
        '"': 0.2
      }, b = {
        "'": "\\'",
        '"': '\\"',
        "\\": "\\\\",
        "\b": "\\b",
        "\f": "\\f",
        "\n": "\\n",
        "\r": "\\r",
        "	": "\\t",
        "\v": "\\v",
        "\0": "\\0",
        "\u2028": "\\u2028",
        "\u2029": "\\u2029"
      }, E = "";
      for (let W = 0; W < y.length; W++) {
        let oe = y[W];
        switch (oe) {
          case "'":
          case '"':
            T[oe]++, E += oe;
            continue;
          case "\0":
            if (u_.isDigit(y[W + 1])) {
              E += "\\x00";
              continue;
            }
        }
        if (b[oe]) {
          E += b[oe];
          continue;
        }
        if (oe < " ") {
          let de = oe.charCodeAt(0).toString(16);
          E += "\\x" + ("00" + de).substring(de.length);
          continue;
        }
        E += oe;
      }
      let V = c || Object.keys(T).reduce((W, oe) => T[W] < T[oe] ? W : oe);
      return E = E.replace(new RegExp(V, "g"), b[V]), V + E + V;
    }
    n(h, "quoteString");
    function f(y) {
      if (i.indexOf(y) >= 0)
        throw TypeError("Converting circular structure to JSON5");
      i.push(y);
      let T = a;
      a = a + u;
      let b = o || Object.keys(y), E = [];
      for (let W of b) {
        let oe = p(W, y);
        if (oe !== void 0) {
          let de = d(W) + ":";
          u !== "" && (de += " "), de += oe, E.push(de);
        }
      }
      let V;
      if (E.length === 0)
        V = "{}";
      else {
        let W;
        if (u === "")
          W = E.join(","), V = "{" + W + "}";
        else {
          let oe = `,
` + a;
          W = E.join(oe), V = `{
` + a + W + `,
` + T + "}";
        }
      }
      return i.pop(), a = T, V;
    }
    n(f, "serializeObject");
    function d(y) {
      if (y.length === 0)
        return h(y, !0);
      let T = String.fromCodePoint(y.codePointAt(0));
      if (!u_.isIdStartChar(T))
        return h(y, !0);
      for (let b = T.length; b < y.length; b++)
        if (!u_.isIdContinueChar(String.fromCodePoint(y.codePointAt(b))))
          return h(y, !0);
      return y;
    }
    n(d, "serializeKey");
    function m(y) {
      if (i.indexOf(y) >= 0)
        throw TypeError("Converting circular structure to JSON5");
      i.push(y);
      let T = a;
      a = a + u;
      let b = [];
      for (let V = 0; V < y.length; V++) {
        let W = p(String(V), y);
        b.push(W !== void 0 ? W : "null");
      }
      let E;
      if (b.length === 0)
        E = "[]";
      else if (u === "")
        E = "[" + b.join(",") + "]";
      else {
        let V = `,
` + a, W = b.join(V);
        E = `[
` + a + W + `,
` + T + "]";
      }
      return i.pop(), a = T, E;
    }
    n(m, "serializeArray");
  }, "stringify");
});

// ../node_modules/json5/lib/index.js
var vG = g((uVs, AG) => {
  var Sct = SG(), Pct = EG(), Ect = {
    parse: Sct,
    stringify: Pct
  };
  AG.exports = Ect;
});

// ../node_modules/@babel/core/lib/config/helpers/config-api.js
var c_ = g((i0) => {
  "use strict";
  Object.defineProperty(i0, "__esModule", {
    value: !0
  });
  i0.makeConfigAPI = IG;
  i0.makePluginAPI = Act;
  i0.makePresetAPI = NG;
  function wG() {
    let t = Je("semver");
    return wG = /* @__PURE__ */ n(function() {
      return t;
    }, "_semver"), t;
  }
  n(wG, "_semver");
  var PP = ai(), CG = qh();
  function IG(t) {
    let e = /* @__PURE__ */ n((r) => t.using((i) => r === void 0 ? i.envName : typeof r == "function" ? (0, CG.assertSimpleType)(r(i.envName)) :
    (Array.isArray(r) ? r : [r]).some((a) => {
      if (typeof a != "string")
        throw new Error("Unexpected non-string value");
      return a === i.envName;
    })), "env"), s = /* @__PURE__ */ n((r) => t.using((i) => (0, CG.assertSimpleType)(r(i.caller))), "caller");
    return {
      version: PP.version,
      cache: t.simple(),
      env: e,
      async: /* @__PURE__ */ n(() => !1, "async"),
      caller: s,
      assertVersion: vct
    };
  }
  n(IG, "makeConfigAPI");
  function NG(t, e) {
    let s = /* @__PURE__ */ n(() => JSON.parse(t.using((i) => JSON.stringify(i.targets))), "targets"), r = /* @__PURE__ */ n((i) => {
      e.push(i);
    }, "addExternalDependency");
    return Object.assign({}, IG(t), {
      targets: s,
      addExternalDependency: r
    });
  }
  n(NG, "makePresetAPI");
  function Act(t, e) {
    let s = /* @__PURE__ */ n((r) => t.using((i) => i.assumptions[r]), "assumption");
    return Object.assign({}, NG(t, e), {
      assumption: s
    });
  }
  n(Act, "makePluginAPI");
  function vct(t) {
    if (typeof t == "number") {
      if (!Number.isInteger(t))
        throw new Error("Expected string or integer value.");
      t = `^${t}.0.0-0`;
    }
    if (typeof t != "string")
      throw new Error("Expected string or integer value.");
    if (t === "*" || wG().satisfies(PP.version, t)) return;
    let e = Error.stackTraceLimit;
    typeof e == "number" && e < 25 && (Error.stackTraceLimit = 25);
    let s = new Error(`Requires Babel "${t}", but was loaded with "${PP.version}". If you are sure you have a compatible version of @babel/c\
ore, 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 f\
irst entry that doesn't mention "@babel/core" or "babel-core" to see what is calling Babel.`);
    throw typeof e == "number" && (Error.stackTraceLimit = e), Object.assign(s, {
      code: "BABEL_VERSION_UNSUPPORTED",
      version: PP.version,
      range: t
    });
  }
  n(vct, "assertVersion");
});

// ../node_modules/@babel/core/lib/config/helpers/deep-array.js
var AP = g((EP) => {
  "use strict";
  Object.defineProperty(EP, "__esModule", {
    value: !0
  });
  EP.finalize = Cct;
  EP.flattenToSet = wct;
  function Cct(t) {
    return Object.freeze(t);
  }
  n(Cct, "finalize");
  function wct(t) {
    let e = /* @__PURE__ */ new Set(), s = [t];
    for (; s.length > 0; )
      for (let r of s.pop())
        Array.isArray(r) ? s.push(r) : e.add(r);
    return e;
  }
  n(wct, "flattenToSet");
});

// ../node_modules/@babel/core/lib/config/plugin.js
var CP = g((vP) => {
  "use strict";
  Object.defineProperty(vP, "__esModule", {
    value: !0
  });
  vP.default = void 0;
  var Ict = AP(), p_ = class {
    static {
      n(this, "Plugin");
    }
    constructor(e, s, r, i = (0, Ict.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 = e.name || r, this.manipulateOptions =
      e.manipulateOptions, this.post = e.post, this.pre = e.pre, this.visitor = e.visitor || {}, this.parserOverride = e.parserOverride, this.
      generatorOverride = e.generatorOverride, this.options = s, this.externalDependencies = i;
    }
  };
  vP.default = p_;
});

// ../node_modules/@babel/core/lib/gensync-utils/functional.js
var DG = g((h_) => {
  "use strict";
  Object.defineProperty(h_, "__esModule", {
    value: !0
  });
  h_.once = Nct;
  var kG = sp();
  function Nct(t) {
    let e, s, r = !1;
    return function* () {
      if (!e) {
        if (s)
          return r = !0, yield* (0, kG.waitFor)(s);
        if (yield* (0, kG.isAsync)()) {
          let i, a;
          s = new Promise((o, l) => {
            i = o, a = l;
          });
          try {
            e = {
              ok: !0,
              value: yield* t()
            }, s = null, r && i(e.value);
          } catch (o) {
            e = {
              ok: !1,
              value: o
            }, s = null, r && a(o);
          }
        } else
          try {
            e = {
              ok: !0,
              value: yield* t()
            };
          } catch (i) {
            e = {
              ok: !1,
              value: i
            };
          }
      }
      if (e.ok) return e.value;
      throw e.value;
    };
  }
  n(Nct, "once");
});

// ../node_modules/node-releases/data/processed/envs.json
var OG = g((TVs, kct) => {
  kct.exports = [{ name: "nodejs", version: "0.2.0", date: "2011-08-26", lts: !1, security: !1, v8: "2.3.8.0" }, { name: "nodejs", version: "\
0.3.0", date: "2011-08-26", lts: !1, security: !1, v8: "2.5.1.0" }, { name: "nodejs", version: "0.4.0", date: "2011-08-26", lts: !1, security: !1,
  v8: "3.1.2.0" }, { name: "nodejs", version: "0.5.0", date: "2011-08-26", lts: !1, security: !1, v8: "3.1.8.25" }, { name: "nodejs", version: "\
0.6.0", date: "2011-11-04", lts: !1, security: !1, v8: "3.6.6.6" }, { name: "nodejs", version: "0.7.0", date: "2012-01-17", lts: !1, security: !1,
  v8: "3.8.6.0" }, { name: "nodejs", version: "0.8.0", date: "2012-06-22", lts: !1, security: !1, v8: "3.11.10.10" }, { name: "nodejs", version: "\
0.9.0", date: "2012-07-20", lts: !1, security: !1, v8: "3.11.10.15" }, { name: "nodejs", version: "0.10.0", date: "2013-03-11", lts: !1, security: !1,
  v8: "3.14.5.8" }, { name: "nodejs", version: "0.11.0", date: "2013-03-28", lts: !1, security: !1, v8: "3.17.13.0" }, { name: "nodejs", version: "\
0.12.0", date: "2015-02-06", lts: !1, security: !1, v8: "3.28.73.0" }, { name: "nodejs", version: "4.0.0", date: "2015-09-08", lts: !1, security: !1,
  v8: "4.5.103.30" }, { name: "nodejs", version: "4.1.0", date: "2015-09-17", lts: !1, security: !1, v8: "4.5.103.33" }, { name: "nodejs", version: "\
4.2.0", date: "2015-10-12", lts: "Argon", security: !1, v8: "4.5.103.35" }, { name: "nodejs", version: "4.3.0", date: "2016-02-09", lts: "Ar\
gon", security: !1, v8: "4.5.103.35" }, { name: "nodejs", version: "4.4.0", date: "2016-03-08", lts: "Argon", security: !1, v8: "4.5.103.35" },
  { name: "nodejs", version: "4.5.0", date: "2016-08-16", lts: "Argon", security: !1, v8: "4.5.103.37" }, { name: "nodejs", version: "4.6.0",
  date: "2016-09-27", lts: "Argon", security: !0, v8: "4.5.103.37" }, { name: "nodejs", version: "4.7.0", date: "2016-12-06", lts: "Argon", security: !1,
  v8: "4.5.103.43" }, { name: "nodejs", version: "4.8.0", date: "2017-02-21", lts: "Argon", security: !1, v8: "4.5.103.45" }, { name: "nodej\
s", version: "4.9.0", date: "2018-03-28", lts: "Argon", security: !0, v8: "4.5.103.53" }, { name: "nodejs", version: "5.0.0", date: "2015-10\
-29", lts: !1, security: !1, v8: "4.6.85.28" }, { name: "nodejs", version: "5.1.0", date: "2015-11-17", lts: !1, security: !1, v8: "4.6.85.3\
1" }, { name: "nodejs", version: "5.2.0", date: "2015-12-09", lts: !1, security: !1, v8: "4.6.85.31" }, { name: "nodejs", version: "5.3.0", date: "\
2015-12-15", lts: !1, security: !1, v8: "4.6.85.31" }, { name: "nodejs", version: "5.4.0", date: "2016-01-06", lts: !1, security: !1, v8: "4\
.6.85.31" }, { name: "nodejs", version: "5.5.0", date: "2016-01-21", lts: !1, security: !1, v8: "4.6.85.31" }, { name: "nodejs", version: "5\
.6.0", date: "2016-02-09", lts: !1, security: !1, v8: "4.6.85.31" }, { name: "nodejs", version: "5.7.0", date: "2016-02-23", lts: !1, security: !1,
  v8: "4.6.85.31" }, { name: "nodejs", version: "5.8.0", date: "2016-03-09", lts: !1, security: !1, v8: "4.6.85.31" }, { name: "nodejs", version: "\
5.9.0", date: "2016-03-16", lts: !1, security: !1, v8: "4.6.85.31" }, { name: "nodejs", version: "5.10.0", date: "2016-04-01", lts: !1, security: !1,
  v8: "4.6.85.31" }, { name: "nodejs", version: "5.11.0", date: "2016-04-21", lts: !1, security: !1, v8: "4.6.85.31" }, { name: "nodejs", version: "\
5.12.0", date: "2016-06-23", lts: !1, security: !1, v8: "4.6.85.32" }, { name: "nodejs", version: "6.0.0", date: "2016-04-26", lts: !1, security: !1,
  v8: "5.0.71.35" }, { name: "nodejs", version: "6.1.0", date: "2016-05-05", lts: !1, security: !1, v8: "5.0.71.35" }, { name: "nodejs", version: "\
6.2.0", date: "2016-05-17", lts: !1, security: !1, v8: "5.0.71.47" }, { name: "nodejs", version: "6.3.0", date: "2016-07-06", lts: !1, security: !1,
  v8: "5.0.71.52" }, { name: "nodejs", version: "6.4.0", date: "2016-08-12", lts: !1, security: !1, v8: "5.0.71.60" }, { name: "nodejs", version: "\
6.5.0", date: "2016-08-26", lts: !1, security: !1, v8: "5.1.281.81" }, { name: "nodejs", version: "6.6.0", date: "2016-09-14", lts: !1, security: !1,
  v8: "5.1.281.83" }, { name: "nodejs", version: "6.7.0", date: "2016-09-27", lts: !1, security: !0, v8: "5.1.281.83" }, { name: "nodejs", version: "\
6.8.0", date: "2016-10-12", lts: !1, security: !1, v8: "5.1.281.84" }, { name: "nodejs", version: "6.9.0", date: "2016-10-18", lts: "Boron",
  security: !1, v8: "5.1.281.84" }, { name: "nodejs", version: "6.10.0", date: "2017-02-21", lts: "Boron", security: !1, v8: "5.1.281.93" },
  { name: "nodejs", version: "6.11.0", date: "2017-06-06", lts: "Boron", security: !1, v8: "5.1.281.102" }, { name: "nodejs", version: "6.12\
.0", date: "2017-11-06", lts: "Boron", security: !1, v8: "5.1.281.108" }, { name: "nodejs", version: "6.13.0", date: "2018-02-10", lts: "Bor\
on", security: !1, v8: "5.1.281.111" }, { name: "nodejs", version: "6.14.0", date: "2018-03-28", lts: "Boron", security: !0, v8: "5.1.281.11\
1" }, { name: "nodejs", version: "6.15.0", date: "2018-11-27", lts: "Boron", security: !0, v8: "5.1.281.111" }, { name: "nodejs", version: "\
6.16.0", date: "2018-12-26", lts: "Boron", security: !1, v8: "5.1.281.111" }, { name: "nodejs", version: "6.17.0", date: "2019-02-28", lts: "\
Boron", security: !0, v8: "5.1.281.111" }, { name: "nodejs", version: "7.0.0", date: "2016-10-25", lts: !1, security: !1, v8: "5.4.500.36" },
  { name: "nodejs", version: "7.1.0", date: "2016-11-08", lts: !1, security: !1, v8: "5.4.500.36" }, { name: "nodejs", version: "7.2.0", date: "\
2016-11-22", lts: !1, security: !1, v8: "5.4.500.43" }, { name: "nodejs", version: "7.3.0", date: "2016-12-20", lts: !1, security: !1, v8: "\
5.4.500.45" }, { name: "nodejs", version: "7.4.0", date: "2017-01-04", lts: !1, security: !1, v8: "5.4.500.45" }, { name: "nodejs", version: "\
7.5.0", date: "2017-01-31", lts: !1, security: !1, v8: "5.4.500.48" }, { name: "nodejs", version: "7.6.0", date: "2017-02-21", lts: !1, security: !1,
  v8: "5.5.372.40" }, { name: "nodejs", version: "7.7.0", date: "2017-02-28", lts: !1, security: !1, v8: "5.5.372.41" }, { name: "nodejs", version: "\
7.8.0", date: "2017-03-29", lts: !1, security: !1, v8: "5.5.372.43" }, { name: "nodejs", version: "7.9.0", date: "2017-04-11", lts: !1, security: !1,
  v8: "5.5.372.43" }, { name: "nodejs", version: "7.10.0", date: "2017-05-02", lts: !1, security: !1, v8: "5.5.372.43" }, { name: "nodejs", version: "\
8.0.0", date: "2017-05-30", lts: !1, security: !1, v8: "5.8.283.41" }, { name: "nodejs", version: "8.1.0", date: "2017-06-08", lts: !1, security: !1,
  v8: "5.8.283.41" }, { name: "nodejs", version: "8.2.0", date: "2017-07-19", lts: !1, security: !1, v8: "5.8.283.41" }, { name: "nodejs", version: "\
8.3.0", date: "2017-08-08", lts: !1, security: !1, v8: "6.0.286.52" }, { name: "nodejs", version: "8.4.0", date: "2017-08-15", lts: !1, security: !1,
  v8: "6.0.286.52" }, { name: "nodejs", version: "8.5.0", date: "2017-09-12", lts: !1, security: !1, v8: "6.0.287.53" }, { name: "nodejs", version: "\
8.6.0", date: "2017-09-26", lts: !1, security: !1, v8: "6.0.287.53" }, { name: "nodejs", version: "8.7.0", date: "2017-10-11", lts: !1, security: !1,
  v8: "6.1.534.42" }, { name: "nodejs", version: "8.8.0", date: "2017-10-24", lts: !1, security: !1, v8: "6.1.534.42" }, { name: "nodejs", version: "\
8.9.0", date: "2017-10-31", lts: "Carbon", security: !1, v8: "6.1.534.46" }, { name: "nodejs", version: "8.10.0", date: "2018-03-06", lts: "\
Carbon", security: !1, v8: "6.2.414.50" }, { name: "nodejs", version: "8.11.0", date: "2018-03-28", lts: "Carbon", security: !0, v8: "6.2.41\
4.50" }, { name: "nodejs", version: "8.12.0", date: "2018-09-10", lts: "Carbon", security: !1, v8: "6.2.414.66" }, { name: "nodejs", version: "\
8.13.0", date: "2018-11-20", lts: "Carbon", security: !1, v8: "6.2.414.72" }, { name: "nodejs", version: "8.14.0", date: "2018-11-27", lts: "\
Carbon", security: !0, v8: "6.2.414.72" }, { name: "nodejs", version: "8.15.0", date: "2018-12-26", lts: "Carbon", security: !1, v8: "6.2.41\
4.75" }, { name: "nodejs", version: "8.16.0", date: "2019-04-16", lts: "Carbon", security: !1, v8: "6.2.414.77" }, { name: "nodejs", version: "\
8.17.0", date: "2019-12-17", lts: "Carbon", security: !0, v8: "6.2.414.78" }, { name: "nodejs", version: "9.0.0", date: "2017-10-31", lts: !1,
  security: !1, v8: "6.2.414.32" }, { name: "nodejs", version: "9.1.0", date: "2017-11-07", lts: !1, security: !1, v8: "6.2.414.32" }, { name: "\
nodejs", version: "9.2.0", date: "2017-11-14", lts: !1, security: !1, v8: "6.2.414.44" }, { name: "nodejs", version: "9.3.0", date: "2017-12\
-12", lts: !1, security: !1, v8: "6.2.414.46" }, { name: "nodejs", version: "9.4.0", date: "2018-01-10", lts: !1, security: !1, v8: "6.2.414\
.46" }, { name: "nodejs", version: "9.5.0", date: "2018-01-31", lts: !1, security: !1, v8: "6.2.414.46" }, { name: "nodejs", version: "9.6.0",
  date: "2018-02-21", lts: !1, security: !1, v8: "6.2.414.46" }, { name: "nodejs", version: "9.7.0", date: "2018-03-01", lts: !1, security: !1,
  v8: "6.2.414.46" }, { name: "nodejs", version: "9.8.0", date: "2018-03-07", lts: !1, security: !1, v8: "6.2.414.46" }, { name: "nodejs", version: "\
9.9.0", date: "2018-03-21", lts: !1, security: !1, v8: "6.2.414.46" }, { name: "nodejs", version: "9.10.0", date: "2018-03-28", lts: !1, security: !0,
  v8: "6.2.414.46" }, { name: "nodejs", version: "9.11.0", date: "2018-04-04", lts: !1, security: !1, v8: "6.2.414.46" }, { name: "nodejs", version: "\
10.0.0", date: "2018-04-24", lts: !1, security: !1, v8: "6.6.346.24" }, { name: "nodejs", version: "10.1.0", date: "2018-05-08", lts: !1, security: !1,
  v8: "6.6.346.27" }, { name: "nodejs", version: "10.2.0", date: "2018-05-23", lts: !1, security: !1, v8: "6.6.346.32" }, { name: "nodejs", version: "\
10.3.0", date: "2018-05-29", lts: !1, security: !1, v8: "6.6.346.32" }, { name: "nodejs", version: "10.4.0", date: "2018-06-06", lts: !1, security: !1,
  v8: "6.7.288.43" }, { name: "nodejs", version: "10.5.0", date: "2018-06-20", lts: !1, security: !1, v8: "6.7.288.46" }, { name: "nodejs", version: "\
10.6.0", date: "2018-07-04", lts: !1, security: !1, v8: "6.7.288.46" }, { name: "nodejs", version: "10.7.0", date: "2018-07-18", lts: !1, security: !1,
  v8: "6.7.288.49" }, { name: "nodejs", version: "10.8.0", date: "2018-08-01", lts: !1, security: !1, v8: "6.7.288.49" }, { name: "nodejs", version: "\
10.9.0", date: "2018-08-15", lts: !1, security: !1, v8: "6.8.275.24" }, { name: "nodejs", version: "10.10.0", date: "2018-09-06", lts: !1, security: !1,
  v8: "6.8.275.30" }, { name: "nodejs", version: "10.11.0", date: "2018-09-19", lts: !1, security: !1, v8: "6.8.275.32" }, { name: "nodejs",
  version: "10.12.0", date: "2018-10-10", lts: !1, security: !1, v8: "6.8.275.32" }, { name: "nodejs", version: "10.13.0", date: "2018-10-30",
  lts: "Dubnium", security: !1, v8: "6.8.275.32" }, { name: "nodejs", version: "10.14.0", date: "2018-11-27", lts: "Dubnium", security: !0, v8: "\
6.8.275.32" }, { name: "nodejs", version: "10.15.0", date: "2018-12-26", lts: "Dubnium", security: !1, v8: "6.8.275.32" }, { name: "nodejs",
  version: "10.16.0", date: "2019-05-28", lts: "Dubnium", security: !1, v8: "6.8.275.32" }, { name: "nodejs", version: "10.17.0", date: "201\
9-10-22", lts: "Dubnium", security: !1, v8: "6.8.275.32" }, { name: "nodejs", version: "10.18.0", date: "2019-12-17", lts: "Dubnium", security: !0,
  v8: "6.8.275.32" }, { name: "nodejs", version: "10.19.0", date: "2020-02-05", lts: "Dubnium", security: !0, v8: "6.8.275.32" }, { name: "n\
odejs", version: "10.20.0", date: "2020-03-26", lts: "Dubnium", security: !1, v8: "6.8.275.32" }, { name: "nodejs", version: "10.21.0", date: "\
2020-06-02", lts: "Dubnium", security: !0, v8: "6.8.275.32" }, { name: "nodejs", version: "10.22.0", date: "2020-07-21", lts: "Dubnium", security: !1,
  v8: "6.8.275.32" }, { name: "nodejs", version: "10.23.0", date: "2020-10-27", lts: "Dubnium", security: !1, v8: "6.8.275.32" }, { name: "n\
odejs", version: "10.24.0", date: "2021-02-23", lts: "Dubnium", security: !0, v8: "6.8.275.32" }, { name: "nodejs", version: "11.0.0", date: "\
2018-10-23", lts: !1, security: !1, v8: "7.0.276.28" }, { name: "nodejs", version: "11.1.0", date: "2018-10-30", lts: !1, security: !1, v8: "\
7.0.276.32" }, { name: "nodejs", version: "11.2.0", date: "2018-11-15", lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs", version: "\
11.3.0", date: "2018-11-27", lts: !1, security: !0, v8: "7.0.276.38" }, { name: "nodejs", version: "11.4.0", date: "2018-12-07", lts: !1, security: !1,
  v8: "7.0.276.38" }, { name: "nodejs", version: "11.5.0", date: "2018-12-18", lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs", version: "\
11.6.0", date: "2018-12-26", lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs", version: "11.7.0", date: "2019-01-17", lts: !1, security: !1,
  v8: "7.0.276.38" }, { name: "nodejs", version: "11.8.0", date: "2019-01-24", lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs", version: "\
11.9.0", date: "2019-01-30", lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs", version: "11.10.0", date: "2019-02-14", lts: !1, security: !1,
  v8: "7.0.276.38" }, { name: "nodejs", version: "11.11.0", date: "2019-03-05", lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs",
  version: "11.12.0", date: "2019-03-14", lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs", version: "11.13.0", date: "2019-03-28",
  lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs", version: "11.14.0", date: "2019-04-10", lts: !1, security: !1, v8: "7.0.276.3\
8" }, { name: "nodejs", version: "11.15.0", date: "2019-04-30", lts: !1, security: !1, v8: "7.0.276.38" }, { name: "nodejs", version: "12.0.\
0", date: "2019-04-23", lts: !1, security: !1, v8: "7.4.288.21" }, { name: "nodejs", version: "12.1.0", date: "2019-04-29", lts: !1, security: !1,
  v8: "7.4.288.21" }, { name: "nodejs", version: "12.2.0", date: "2019-05-07", lts: !1, security: !1, v8: "7.4.288.21" }, { name: "nodejs", version: "\
12.3.0", date: "2019-05-21", lts: !1, security: !1, v8: "7.4.288.27" }, { name: "nodejs", version: "12.4.0", date: "2019-06-04", lts: !1, security: !1,
  v8: "7.4.288.27" }, { name: "nodejs", version: "12.5.0", date: "2019-06-26", lts: !1, security: !1, v8: "7.5.288.22" }, { name: "nodejs", version: "\
12.6.0", date: "2019-07-03", lts: !1, security: !1, v8: "7.5.288.22" }, { name: "nodejs", version: "12.7.0", date: "2019-07-23", lts: !1, security: !1,
  v8: "7.5.288.22" }, { name: "nodejs", version: "12.8.0", date: "2019-08-06", lts: !1, security: !1, v8: "7.5.288.22" }, { name: "nodejs", version: "\
12.9.0", date: "2019-08-20", lts: !1, security: !1, v8: "7.6.303.29" }, { name: "nodejs", version: "12.10.0", date: "2019-09-04", lts: !1, security: !1,
  v8: "7.6.303.29" }, { name: "nodejs", version: "12.11.0", date: "2019-09-25", lts: !1, security: !1, v8: "7.7.299.11" }, { name: "nodejs",
  version: "12.12.0", date: "2019-10-11", lts: !1, security: !1, v8: "7.7.299.13" }, { name: "nodejs", version: "12.13.0", date: "2019-10-21",
  lts: "Erbium", security: !1, v8: "7.7.299.13" }, { name: "nodejs", version: "12.14.0", date: "2019-12-17", lts: "Erbium", security: !0, v8: "\
7.7.299.13" }, { name: "nodejs", version: "12.15.0", date: "2020-02-05", lts: "Erbium", security: !0, v8: "7.7.299.13" }, { name: "nodejs", version: "\
12.16.0", date: "2020-02-11", lts: "Erbium", security: !1, v8: "7.8.279.23" }, { name: "nodejs", version: "12.17.0", date: "2020-05-26", lts: "\
Erbium", security: !1, v8: "7.8.279.23" }, { name: "nodejs", version: "12.18.0", date: "2020-06-02", lts: "Erbium", security: !0, v8: "7.8.2\
79.23" }, { name: "nodejs", version: "12.19.0", date: "2020-10-06", lts: "Erbium", security: !1, v8: "7.8.279.23" }, { name: "nodejs", version: "\
12.20.0", date: "2020-11-24", lts: "Erbium", security: !1, v8: "7.8.279.23" }, { name: "nodejs", version: "12.21.0", date: "2021-02-23", lts: "\
Erbium", security: !0, v8: "7.8.279.23" }, { name: "nodejs", version: "12.22.0", date: "2021-03-30", lts: "Erbium", security: !1, v8: "7.8.2\
79.23" }, { name: "nodejs", version: "13.0.0", date: "2019-10-22", lts: !1, security: !1, v8: "7.8.279.17" }, { name: "nodejs", version: "13\
.1.0", date: "2019-11-05", lts: !1, security: !1, v8: "7.8.279.17" }, { name: "nodejs", version: "13.2.0", date: "2019-11-21", lts: !1, security: !1,
  v8: "7.9.317.23" }, { name: "nodejs", version: "13.3.0", date: "2019-12-03", lts: !1, security: !1, v8: "7.9.317.25" }, { name: "nodejs", version: "\
13.4.0", date: "2019-12-17", lts: !1, security: !0, v8: "7.9.317.25" }, { name: "nodejs", version: "13.5.0", date: "2019-12-18", lts: !1, security: !1,
  v8: "7.9.317.25" }, { name: "nodejs", version: "13.6.0", date: "2020-01-07", lts: !1, security: !1, v8: "7.9.317.25" }, { name: "nodejs", version: "\
13.7.0", date: "2020-01-21", lts: !1, security: !1, v8: "7.9.317.25" }, { name: "nodejs", version: "13.8.0", date: "2020-02-05", lts: !1, security: !0,
  v8: "7.9.317.25" }, { name: "nodejs", version: "13.9.0", date: "2020-02-18", lts: !1, security: !1, v8: "7.9.317.25" }, { name: "nodejs", version: "\
13.10.0", date: "2020-03-04", lts: !1, security: !1, v8: "7.9.317.25" }, { name: "nodejs", version: "13.11.0", date: "2020-03-12", lts: !1, security: !1,
  v8: "7.9.317.25" }, { name: "nodejs", version: "13.12.0", date: "2020-03-26", lts: !1, security: !1, v8: "7.9.317.25" }, { name: "nodejs",
  version: "13.13.0", date: "2020-04-14", lts: !1, security: !1, v8: "7.9.317.25" }, { name: "nodejs", version: "13.14.0", date: "2020-04-29",
  lts: !1, security: !1, v8: "7.9.317.25" }, { name: "nodejs", version: "14.0.0", date: "2020-04-21", lts: !1, security: !1, v8: "8.1.307.30" },
  { name: "nodejs", version: "14.1.0", date: "2020-04-29", lts: !1, security: !1, v8: "8.1.307.31" }, { name: "nodejs", version: "14.2.0", date: "\
2020-05-05", lts: !1, security: !1, v8: "8.1.307.31" }, { name: "nodejs", version: "14.3.0", date: "2020-05-19", lts: !1, security: !1, v8: "\
8.1.307.31" }, { name: "nodejs", version: "14.4.0", date: "2020-06-02", lts: !1, security: !0, v8: "8.1.307.31" }, { name: "nodejs", version: "\
14.5.0", date: "2020-06-30", lts: !1, security: !1, v8: "8.3.110.9" }, { name: "nodejs", version: "14.6.0", date: "2020-07-20", lts: !1, security: !1,
  v8: "8.4.371.19" }, { name: "nodejs", version: "14.7.0", date: "2020-07-29", lts: !1, security: !1, v8: "8.4.371.19" }, { name: "nodejs", version: "\
14.8.0", date: "2020-08-11", lts: !1, security: !1, v8: "8.4.371.19" }, { name: "nodejs", version: "14.9.0", date: "2020-08-27", lts: !1, security: !1,
  v8: "8.4.371.19" }, { name: "nodejs", version: "14.10.0", date: "2020-09-08", lts: !1, security: !1, v8: "8.4.371.19" }, { name: "nodejs",
  version: "14.11.0", date: "2020-09-15", lts: !1, security: !0, v8: "8.4.371.19" }, { name: "nodejs", version: "14.12.0", date: "2020-09-22",
  lts: !1, security: !1, v8: "8.4.371.19" }, { name: "nodejs", version: "14.13.0", date: "2020-09-29", lts: !1, security: !1, v8: "8.4.371.1\
9" }, { name: "nodejs", version: "14.14.0", date: "2020-10-15", lts: !1, security: !1, v8: "8.4.371.19" }, { name: "nodejs", version: "14.15\
.0", date: "2020-10-27", lts: "Fermium", security: !1, v8: "8.4.371.19" }, { name: "nodejs", version: "14.16.0", date: "2021-02-23", lts: "F\
ermium", security: !0, v8: "8.4.371.19" }, { name: "nodejs", version: "14.17.0", date: "2021-05-11", lts: "Fermium", security: !1, v8: "8.4.\
371.23" }, { name: "nodejs", version: "14.18.0", date: "2021-09-28", lts: "Fermium", security: !1, v8: "8.4.371.23" }, { name: "nodejs", version: "\
14.19.0", date: "2022-02-01", lts: "Fermium", security: !1, v8: "8.4.371.23" }, { name: "nodejs", version: "14.20.0", date: "2022-07-07", lts: "\
Fermium", security: !0, v8: "8.4.371.23" }, { name: "nodejs", version: "14.21.0", date: "2022-11-01", lts: "Fermium", security: !1, v8: "8.4\
.371.23" }, { name: "nodejs", version: "15.0.0", date: "2020-10-20", lts: !1, security: !1, v8: "8.6.395.16" }, { name: "nodejs", version: "\
15.1.0", date: "2020-11-04", lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs", version: "15.2.0", date: "2020-11-10", lts: !1, security: !1,
  v8: "8.6.395.17" }, { name: "nodejs", version: "15.3.0", date: "2020-11-24", lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs", version: "\
15.4.0", date: "2020-12-09", lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs", version: "15.5.0", date: "2020-12-22", lts: !1, security: !1,
  v8: "8.6.395.17" }, { name: "nodejs", version: "15.6.0", date: "2021-01-14", lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs", version: "\
15.7.0", date: "2021-01-25", lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs", version: "15.8.0", date: "2021-02-02", lts: !1, security: !1,
  v8: "8.6.395.17" }, { name: "nodejs", version: "15.9.0", date: "2021-02-18", lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs", version: "\
15.10.0", date: "2021-02-23", lts: !1, security: !0, v8: "8.6.395.17" }, { name: "nodejs", version: "15.11.0", date: "2021-03-03", lts: !1, security: !1,
  v8: "8.6.395.17" }, { name: "nodejs", version: "15.12.0", date: "2021-03-17", lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs",
  version: "15.13.0", date: "2021-03-31", lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs", version: "15.14.0", date: "2021-04-06",
  lts: !1, security: !1, v8: "8.6.395.17" }, { name: "nodejs", version: "16.0.0", date: "2021-04-20", lts: !1, security: !1, v8: "9.0.257.17" },
  { name: "nodejs", version: "16.1.0", date: "2021-05-04", lts: !1, security: !1, v8: "9.0.257.24" }, { name: "nodejs", version: "16.2.0", date: "\
2021-05-19", lts: !1, security: !1, v8: "9.0.257.25" }, { name: "nodejs", version: "16.3.0", date: "2021-06-03", lts: !1, security: !1, v8: "\
9.0.257.25" }, { name: "nodejs", version: "16.4.0", date: "2021-06-23", lts: !1, security: !1, v8: "9.1.269.36" }, { name: "nodejs", version: "\
16.5.0", date: "2021-07-14", lts: !1, security: !1, v8: "9.1.269.38" }, { name: "nodejs", version: "16.6.0", date: "2021-07-29", lts: !1, security: !0,
  v8: "9.2.230.21" }, { name: "nodejs", version: "16.7.0", date: "2021-08-18", lts: !1, security: !1, v8: "9.2.230.21" }, { name: "nodejs", version: "\
16.8.0", date: "2021-08-25", lts: !1, security: !1, v8: "9.2.230.21" }, { name: "nodejs", version: "16.9.0", date: "2021-09-07", lts: !1, security: !1,
  v8: "9.3.345.16" }, { name: "nodejs", version: "16.10.0", date: "2021-09-22", lts: !1, security: !1, v8: "9.3.345.19" }, { name: "nodejs",
  version: "16.11.0", date: "2021-10-08", lts: !1, security: !1, v8: "9.4.146.19" }, { name: "nodejs", version: "16.12.0", date: "2021-10-20",
  lts: !1, security: !1, v8: "9.4.146.19" }, { name: "nodejs", version: "16.13.0", date: "2021-10-26", lts: "Gallium", security: !1, v8: "9.\
4.146.19" }, { name: "nodejs", version: "16.14.0", date: "2022-02-08", lts: "Gallium", security: !1, v8: "9.4.146.24" }, { name: "nodejs", version: "\
16.15.0", date: "2022-04-26", lts: "Gallium", security: !1, v8: "9.4.146.24" }, { name: "nodejs", version: "16.16.0", date: "2022-07-07", lts: "\
Gallium", security: !0, v8: "9.4.146.24" }, { name: "nodejs", version: "16.17.0", date: "2022-08-16", lts: "Gallium", security: !1, v8: "9.4\
.146.26" }, { name: "nodejs", version: "16.18.0", date: "2022-10-12", lts: "Gallium", security: !1, v8: "9.4.146.26" }, { name: "nodejs", version: "\
16.19.0", date: "2022-12-13", lts: "Gallium", security: !1, v8: "9.4.146.26" }, { name: "nodejs", version: "16.20.0", date: "2023-03-28", lts: "\
Gallium", security: !1, v8: "9.4.146.26" }, { name: "nodejs", version: "17.0.0", date: "2021-10-19", lts: !1, security: !1, v8: "9.5.172.21" },
  { name: "nodejs", version: "17.1.0", date: "2021-11-09", lts: !1, security: !1, v8: "9.5.172.25" }, { name: "nodejs", version: "17.2.0", date: "\
2021-11-30", lts: !1, security: !1, v8: "9.6.180.14" }, { name: "nodejs", version: "17.3.0", date: "2021-12-17", lts: !1, security: !1, v8: "\
9.6.180.15" }, { name: "nodejs", version: "17.4.0", date: "2022-01-18", lts: !1, security: !1, v8: "9.6.180.15" }, { name: "nodejs", version: "\
17.5.0", date: "2022-02-10", lts: !1, security: !1, v8: "9.6.180.15" }, { name: "nodejs", version: "17.6.0", date: "2022-02-22", lts: !1, security: !1,
  v8: "9.6.180.15" }, { name: "nodejs", version: "17.7.0", date: "2022-03-09", lts: !1, security: !1, v8: "9.6.180.15" }, { name: "nodejs", version: "\
17.8.0", date: "2022-03-22", lts: !1, security: !1, v8: "9.6.180.15" }, { name: "nodejs", version: "17.9.0", date: "2022-04-07", lts: !1, security: !1,
  v8: "9.6.180.15" }, { name: "nodejs", version: "18.0.0", date: "2022-04-18", lts: !1, security: !1, v8: "10.1.124.8" }, { name: "nodejs", version: "\
18.1.0", date: "2022-05-03", lts: !1, security: !1, v8: "10.1.124.8" }, { name: "nodejs", version: "18.2.0", date: "2022-05-17", lts: !1, security: !1,
  v8: "10.1.124.8" }, { name: "nodejs", version: "18.3.0", date: "2022-06-02", lts: !1, security: !1, v8: "10.2.154.4" }, { name: "nodejs", version: "\
18.4.0", date: "2022-06-16", lts: !1, security: !1, v8: "10.2.154.4" }, { name: "nodejs", version: "18.5.0", date: "2022-07-06", lts: !1, security: !0,
  v8: "10.2.154.4" }, { name: "nodejs", version: "18.6.0", date: "2022-07-13", lts: !1, security: !1, v8: "10.2.154.13" }, { name: "nodejs",
  version: "18.7.0", date: "2022-07-26", lts: !1, security: !1, v8: "10.2.154.13" }, { name: "nodejs", version: "18.8.0", date: "2022-08-24",
  lts: !1, security: !1, v8: "10.2.154.13" }, { name: "nodejs", version: "18.9.0", date: "2022-09-07", lts: !1, security: !1, v8: "10.2.154.\
15" }, { name: "nodejs", version: "18.10.0", date: "2022-09-28", lts: !1, security: !1, v8: "10.2.154.15" }, { name: "nodejs", version: "18.\
11.0", date: "2022-10-13", lts: !1, security: !1, v8: "10.2.154.15" }, { name: "nodejs", version: "18.12.0", date: "2022-10-25", lts: "Hydro\
gen", security: !1, v8: "10.2.154.15" }, { name: "nodejs", version: "18.13.0", date: "2023-01-05", lts: "Hydrogen", security: !1, v8: "10.2.\
154.23" }, { name: "nodejs", version: "18.14.0", date: "2023-02-01", lts: "Hydrogen", security: !1, v8: "10.2.154.23" }, { name: "nodejs", version: "\
18.15.0", date: "2023-03-05", lts: "Hydrogen", security: !1, v8: "10.2.154.26" }, { name: "nodejs", version: "18.16.0", date: "2023-04-12", lts: "\
Hydrogen", security: !1, v8: "10.2.154.26" }, { name: "nodejs", version: "18.17.0", date: "2023-07-18", lts: "Hydrogen", security: !1, v8: "\
10.2.154.26" }, { name: "nodejs", version: "18.18.0", date: "2023-09-18", lts: "Hydrogen", security: !1, v8: "10.2.154.26" }, { name: "nodej\
s", version: "18.19.0", date: "2023-11-29", lts: "Hydrogen", security: !1, v8: "10.2.154.26" }, { name: "nodejs", version: "18.20.0", date: "\
2024-03-26", lts: "Hydrogen", security: !1, v8: "10.2.154.26" }, { name: "nodejs", version: "19.0.0", date: "2022-10-17", lts: !1, security: !1,
  v8: "10.7.193.13" }, { name: "nodejs", version: "19.1.0", date: "2022-11-14", lts: !1, security: !1, v8: "10.7.193.20" }, { name: "nodejs",
  version: "19.2.0", date: "2022-11-29", lts: !1, security: !1, v8: "10.8.168.20" }, { name: "nodejs", version: "19.3.0", date: "2022-12-14",
  lts: !1, security: !1, v8: "10.8.168.21" }, { name: "nodejs", version: "19.4.0", date: "2023-01-05", lts: !1, security: !1, v8: "10.8.168.\
25" }, { name: "nodejs", version: "19.5.0", date: "2023-01-24", lts: !1, security: !1, v8: "10.8.168.25" }, { name: "nodejs", version: "19.6\
.0", date: "2023-02-01", lts: !1, security: !1, v8: "10.8.168.25" }, { name: "nodejs", version: "19.7.0", date: "2023-02-21", lts: !1, security: !1,
  v8: "10.8.168.25" }, { name: "nodejs", version: "19.8.0", date: "2023-03-14", lts: !1, security: !1, v8: "10.8.168.25" }, { name: "nodejs",
  version: "19.9.0", date: "2023-04-10", lts: !1, security: !1, v8: "10.8.168.25" }, { name: "nodejs", version: "20.0.0", date: "2023-04-17",
  lts: !1, security: !1, v8: "11.3.244.4" }, { name: "nodejs", version: "20.1.0", date: "2023-05-03", lts: !1, security: !1, v8: "11.3.244.8" },
  { name: "nodejs", version: "20.2.0", date: "2023-05-16", lts: !1, security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "20.3.0", date: "\
2023-06-08", lts: !1, security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "20.4.0", date: "2023-07-04", lts: !1, security: !1, v8: "\
11.3.244.8" }, { name: "nodejs", version: "20.5.0", date: "2023-07-19", lts: !1, security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "\
20.6.0", date: "2023-08-23", lts: !1, security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "20.7.0", date: "2023-09-18", lts: !1, security: !1,
  v8: "11.3.244.8" }, { name: "nodejs", version: "20.8.0", date: "2023-09-28", lts: !1, security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "\
20.9.0", date: "2023-10-24", lts: "Iron", security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "20.10.0", date: "2023-11-22", lts: "\
Iron", security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "20.11.0", date: "2024-01-09", lts: "Iron", security: !1, v8: "11.3.244.\
8" }, { name: "nodejs", version: "20.12.0", date: "2024-03-26", lts: "Iron", security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "2\
0.13.0", date: "2024-05-07", lts: "Iron", security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "20.14.0", date: "2024-05-28", lts: "\
Iron", security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "20.15.0", date: "2024-06-20", lts: "Iron", security: !1, v8: "11.3.244.\
8" }, { name: "nodejs", version: "20.16.0", date: "2024-07-24", lts: "Iron", security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "2\
0.17.0", date: "2024-08-21", lts: "Iron", security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "20.18.0", date: "2024-10-03", lts: "\
Iron", security: !1, v8: "11.3.244.8" }, { name: "nodejs", version: "21.0.0", date: "2023-10-17", lts: !1, security: !1, v8: "11.8.172.13" },
  { name: "nodejs", version: "21.1.0", date: "2023-10-24", lts: !1, security: !1, v8: "11.8.172.15" }, { name: "nodejs", version: "21.2.0", date: "\
2023-11-14", lts: !1, security: !1, v8: "11.8.172.17" }, { name: "nodejs", version: "21.3.0", date: "2023-11-30", lts: !1, security: !1, v8: "\
11.8.172.17" }, { name: "nodejs", version: "21.4.0", date: "2023-12-05", lts: !1, security: !1, v8: "11.8.172.17" }, { name: "nodejs", version: "\
21.5.0", date: "2023-12-19", lts: !1, security: !1, v8: "11.8.172.17" }, { name: "nodejs", version: "21.6.0", date: "2024-01-14", lts: !1, security: !1,
  v8: "11.8.172.17" }, { name: "nodejs", version: "21.7.0", date: "2024-03-06", lts: !1, security: !1, v8: "11.8.172.17" }, { name: "nodejs",
  version: "22.0.0", date: "2024-04-24", lts: !1, security: !1, v8: "12.4.254.14" }, { name: "nodejs", version: "22.1.0", date: "2024-05-02",
  lts: !1, security: !1, v8: "12.4.254.14" }, { name: "nodejs", version: "22.2.0", date: "2024-05-15", lts: !1, security: !1, v8: "12.4.254.\
14" }, { name: "nodejs", version: "22.3.0", date: "2024-06-11", lts: !1, security: !1, v8: "12.4.254.20" }, { name: "nodejs", version: "22.4\
.0", date: "2024-07-02", lts: !1, security: !1, v8: "12.4.254.21" }, { name: "nodejs", version: "22.5.0", date: "2024-07-17", lts: !1, security: !1,
  v8: "12.4.254.21" }, { name: "nodejs", version: "22.6.0", date: "2024-08-06", lts: !1, security: !1, v8: "12.4.254.21" }, { name: "nodejs",
  version: "22.7.0", date: "2024-08-21", lts: !1, security: !1, v8: "12.4.254.21" }, { name: "nodejs", version: "22.8.0", date: "2024-09-03",
  lts: !1, security: !1, v8: "12.4.254.21" }, { name: "nodejs", version: "22.9.0", date: "2024-09-17", lts: !1, security: !1, v8: "12.4.254.\
21" }, { name: "nodejs", version: "22.10.0", date: "2024-10-16", lts: !1, security: !1, v8: "12.4.254.21" }, { name: "nodejs", version: "22.\
11.0", date: "2024-10-29", lts: "Jod", security: !1, v8: "12.4.254.21" }, { name: "nodejs", version: "22.12.0", date: "2024-12-02", lts: "Jo\
d", security: !1, v8: "12.4.254.21" }, { name: "nodejs", version: "23.0.0", date: "2024-10-16", lts: !1, security: !1, v8: "12.9.202.26" }, {
  name: "nodejs", version: "23.1.0", date: "2024-10-24", lts: !1, security: !1, v8: "12.9.202.28" }, { name: "nodejs", version: "23.2.0", date: "\
2024-11-11", lts: !1, security: !1, v8: "12.9.202.28" }, { name: "nodejs", version: "23.3.0", date: "2024-11-20", lts: !1, security: !1, v8: "\
12.9.202.28" }];
});

// ../node_modules/caniuse-lite/data/browsers.js
var LG = g((bVs, _G) => {
  _G.exports = { 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" };
});

// ../node_modules/caniuse-lite/dist/unpacker/browsers.js
var wP = g((xVs, BG) => {
  BG.exports.browsers = LG();
});

// ../node_modules/caniuse-lite/data/browserVersions.js
var FG = g((SVs, MG) => {
  MG.exports = { 0: "22", 1: "23", 2: "24", 3: "25", 4: "26", 5: "27", 6: "115", 7: "116", 8: "117", 9: "118", A: "10", B: "11", C: "12", D: "\
7", E: "8", F: "9", G: "15", H: "80", I: "131", J: "4", K: "6", L: "13", M: "14", N: "16", O: "17", P: "18", Q: "79", 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: "96", g: "97", h: "98", i: "99", j: "\
100", k: "101", l: "102", m: "103", n: "104", o: "105", p: "106", q: "107", r: "108", s: "109", t: "110", u: "111", v: "112", w: "113", x: "\
114", y: "20", z: "21", AB: "119", BB: "120", CB: "121", DB: "122", EB: "123", FB: "124", GB: "125", HB: "126", IB: "127", JB: "128", KB: "1\
29", LB: "130", MB: "5", NB: "19", OB: "28", PB: "29", QB: "30", RB: "31", SB: "32", TB: "33", UB: "34", VB: "35", WB: "36", XB: "37", YB: "\
38", ZB: "39", aB: "40", bB: "41", cB: "42", dB: "43", eB: "44", fB: "45", gB: "46", hB: "47", iB: "48", jB: "49", kB: "50", lB: "51", mB: "\
52", nB: "53", oB: "54", pB: "55", qB: "56", rB: "57", sB: "58", tB: "60", uB: "62", vB: "63", wB: "64", xB: "65", yB: "66", zB: "67", "0B": "\
68", "1B": "69", "2B": "70", "3B": "71", "4B": "72", "5B": "73", "6B": "74", "7B": "75", "8B": "76", "9B": "77", AC: "78", BC: "132", CC: "1\
1.1", DC: "12.1", EC: "15.5", FC: "16.0", GC: "17.0", HC: "18.0", IC: "3", JC: "59", KC: "61", LC: "82", MC: "133", NC: "134", OC: "3.2", PC: "\
10.1", QC: "15.2-15.3", RC: "15.4", SC: "16.1", TC: "16.2", UC: "16.3", VC: "16.4", WC: "16.5", XC: "17.1", YC: "17.2", ZC: "17.3", aC: "17.\
4", bC: "17.5", cC: "18.1", dC: "18.2", eC: "18.3", fC: "11.5", gC: "4.2-4.3", hC: "5.5", iC: "2", jC: "135", kC: "136", lC: "3.5", mC: "3.6",
  nC: "3.1", oC: "5.1", pC: "6.1", qC: "7.1", rC: "9.1", sC: "13.1", tC: "14.1", uC: "15.1", vC: "15.6", wC: "16.6", xC: "17.6", yC: "TP", zC: "\
9.5-9.6", "0C": "10.0-10.1", "1C": "10.5", "2C": "10.6", "3C": "11.6", "4C": "4.0-4.1", "5C": "5.0-5.1", "6C": "6.0-6.1", "7C": "7.0-7.1", "\
8C": "8.1-8.4", "9C": "9.0-9.2", AD: "9.3", BD: "10.0-10.2", CD: "10.3", DD: "11.0-11.2", ED: "11.3-11.4", FD: "12.0-12.1", GD: "12.2-12.5",
  HD: "13.0-13.1", ID: "13.2", JD: "13.3", KD: "13.4-13.7", LD: "14.0-14.4", MD: "14.5-14.8", ND: "15.0-15.1", OD: "15.6-15.8", PD: "16.6-16\
.7", QD: "17.6-17.7", RD: "all", SD: "2.1", TD: "2.2", UD: "2.3", VD: "4.1", WD: "4.4", XD: "4.4.3-4.4.4", YD: "5.0-5.4", ZD: "6.2-6.4", aD: "\
7.2-7.4", bD: "8.2", cD: "9.2", dD: "11.1-11.2", eD: "12.0", fD: "13.0", gD: "14.0", hD: "15.0", iD: "19.0", jD: "14.9", kD: "13.52", lD: "2\
.5", mD: "3.0-3.1" };
});

// ../node_modules/caniuse-lite/dist/unpacker/browserVersions.js
var f_ = g((PVs, jG) => {
  jG.exports.browserVersions = FG();
});

// ../node_modules/caniuse-lite/data/agents.js
var qG = g((EVs, RG) => {
  RG.exports = { A: { A: { K: 0, D: 0, E: 0, F: 0.0346884, A: 0, B: 0.433605, hC: 0 }, B: "ms", C: ["", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "hC", "K", "D", "E", "F", "A", "B", "", "", ""], E: "IE", F: { hC: 962323200, K: 998870400, D: 1161129600,
  E: 1237420800, F: 1300060800, A: 1346716800, B: 1381968e3 } }, B: { A: { 6: 3521e-6, 7: 3521e-6, 8: 3521e-6, 9: 3521e-6, C: 0, L: 0, M: 0,
  G: 0, N: 0, O: 3521e-6, P: 0.084504, Q: 0, H: 0, R: 0, S: 0, T: 0, U: 0, V: 0, W: 0, X: 0, Y: 0, Z: 0, a: 0, b: 0.014084, c: 0, d: 0, e: 0,
  f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0, m: 3521e-6, n: 0, o: 0, p: 0, q: 0, r: 3521e-6, s: 0.052815, t: 0, u: 3521e-6, v: 3521e-6, w: 7042e-6,
  x: 0.010563, AB: 7042e-6, BB: 0.017605, CB: 0.010563, DB: 0.014084, EB: 7042e-6, FB: 0.010563, GB: 0.010563, HB: 0.024647, IB: 0.021126, JB: 0.024647,
  KB: 0.03521, LB: 0.137319, I: 4.16182 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "C", "L", "M", "G", "N", "O", "P", "Q", "H", "R", "S", "T", "U",
  "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
  "x", "6", "7", "8", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "JB", "KB", "LB", "I", "", "", ""], E: "Edge", F: { 6: 1689897600,
  7: 1692576e3, 8: 1694649600, 9: 1697155200, C: 1438128e3, L: 1447286400, M: 1470096e3, G: 1491868800, N: 1508198400, O: 1525046400, P: 1542067200,
  Q: 1579046400, H: 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, f: 1637539200, g: 1641427200, h: 1643932800, i: 1646265600,
  j: 1649635200, k: 1651190400, l: 1653955200, m: 1655942400, n: 1659657600, o: 1661990400, p: 1664755200, q: 1666915200, r: 1670198400, s: 1673481600,
  t: 1675900800, u: 1678665600, v: 1680825600, w: 1683158400, x: 1685664e3, AB: 1698969600, BB: 1701993600, CB: 1706227200, DB: 1708732800, EB: 1711152e3,
  FB: 1713398400, GB: 1715990400, HB: 1718841600, IB: 1721865600, JB: 1724371200, KB: 1726704e3, LB: 1729123200, I: 1731542400 }, D: { C: "m\
s", L: "ms", M: "ms", G: "ms", N: "ms", O: "ms", P: "ms" } }, C: { A: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0.253512, 7: 0, 8: 0, 9: 0.088025,
  iC: 0, IC: 0, J: 0, MB: 0, K: 0, D: 0, E: 0, F: 0, A: 0, B: 0.014084, C: 0, L: 0, M: 0, G: 0, N: 0, O: 0, P: 0, NB: 0, y: 0, z: 0, OB: 0, PB: 0,
  QB: 0, RB: 0, SB: 0, TB: 0, UB: 0, VB: 0, WB: 0, XB: 0, YB: 0, ZB: 0, aB: 0, bB: 0, cB: 0, dB: 7042e-6, eB: 3521e-6, fB: 0, gB: 0, hB: 0, iB: 0,
  jB: 0, kB: 0, lB: 0, mB: 0.028168, nB: 0, oB: 0, pB: 7042e-6, qB: 0.014084, rB: 0, sB: 0, JC: 3521e-6, tB: 0, KC: 0, uB: 0, vB: 0, wB: 0, xB: 0,
  yB: 0, zB: 0, "0B": 0, "1B": 0, "2B": 0, "3B": 0, "4B": 0, "5B": 0, "6B": 0, "7B": 0, "8B": 0, "9B": 0, AC: 0.010563, Q: 0, H: 0, R: 0, LC: 0,
  S: 0, T: 0, U: 0, V: 0, W: 0, X: 3521e-6, Y: 0, Z: 0, a: 0, b: 0, c: 0, d: 0, e: 0, f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0, m: 7042e-6, n: 0,
  o: 0, p: 0, q: 0, r: 0, s: 3521e-6, t: 0, u: 0, v: 0, w: 7042e-6, x: 3521e-6, AB: 0, BB: 3521e-6, CB: 0, DB: 0, EB: 0, FB: 0, GB: 0.017605,
  HB: 3521e-6, IB: 0.010563, JB: 0.07042, KB: 7042e-6, LB: 7042e-6, I: 0.017605, BC: 0.077462, MC: 1.38727, NC: 7042e-6, jC: 0, kC: 0, lC: 0,
  mC: 0 }, B: "moz", C: ["iC", "IC", "lC", "mC", "J", "MB", "K", "D", "E", "F", "A", "B", "C", "L", "M", "G", "N", "O", "P", "NB", "y", "z",
  "0", "1", "2", "3", "4", "5", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "bB", "cB", "dB", "eB", "fB", "\
gB", "hB", "iB", "jB", "kB", "lB", "mB", "nB", "oB", "pB", "qB", "rB", "sB", "JC", "tB", "KC", "uB", "vB", "wB", "xB", "yB", "zB", "0B", "1B",
  "2B", "3B", "4B", "5B", "6B", "7B", "8B", "9B", "AC", "Q", "H", "R", "LC", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e",
  "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "6", "7", "8", "9", "AB", "BB", "CB", "DB",
  "EB", "FB", "GB", "HB", "IB", "JB", "KB", "LB", "I", "BC", "MC", "NC", "jC", "kC"], E: "Firefox", F: { 0: 1368489600, 1: 1372118400, 2: 1375747200,
  3: 1379376e3, 4: 1386633600, 5: 1391472e3, 6: 1688428800, 7: 1690848e3, 8: 1693267200, 9: 1695686400, iC: 1161648e3, IC: 1213660800, lC: 124632e4,
  mC: 1264032e3, J: 1300752e3, MB: 1308614400, K: 1313452800, D: 1317081600, E: 1317081600, F: 1320710400, A: 1324339200, B: 1327968e3, C: 1331596800,
  L: 1335225600, M: 1338854400, G: 1342483200, N: 1346112e3, O: 1349740800, P: 1353628800, NB: 1357603200, y: 1361232e3, z: 1364860800, OB: 1395100800,
  PB: 1398729600, QB: 1402358400, RB: 1405987200, SB: 1409616e3, TB: 1413244800, UB: 1417392e3, VB: 1421107200, WB: 1424736e3, XB: 1428278400,
  YB: 1431475200, ZB: 1435881600, aB: 1439251200, bB: 144288e4, cB: 1446508800, dB: 1450137600, eB: 1453852800, fB: 1457395200, gB: 1461628800,
  hB: 1465257600, iB: 1470096e3, jB: 1474329600, kB: 1479168e3, lB: 1485216e3, mB: 1488844800, nB: 149256e4, oB: 1497312e3, pB: 1502150400, qB: 1506556800,
  rB: 1510617600, sB: 1516665600, JC: 1520985600, tB: 1525824e3, KC: 1529971200, uB: 1536105600, vB: 1540252800, wB: 1544486400, xB: 154872e4,
  yB: 1552953600, zB: 1558396800, "0B": 1562630400, "1B": 1567468800, "2B": 1571788800, "3B": 1575331200, "4B": 1578355200, "5B": 1581379200,
  "6B": 1583798400, "7B": 1586304e3, "8B": 1588636800, "9B": 1591056e3, AC: 1593475200, Q: 1595894400, H: 1598313600, R: 1600732800, LC: 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, f: 1641859200, g: 1644364800, h: 1646697600, i: 1649116800, j: 1651536e3, k: 1653955200, l: 1656374400,
  m: 1658793600, n: 1661212800, o: 1663632e3, p: 1666051200, q: 1668470400, r: 1670889600, s: 1673913600, t: 1676332800, u: 1678752e3, v: 1681171200,
  w: 1683590400, x: 1686009600, AB: 1698105600, BB: 1700524800, CB: 1702944e3, DB: 1705968e3, EB: 1708387200, FB: 1710806400, GB: 1713225600,
  HB: 1715644800, IB: 1718064e3, JB: 1720483200, KB: 1722902400, LB: 1725321600, I: 1727740800, BC: 173016e4, MC: 1732579200, NC: null, jC: null,
  kC: null } }, D: { A: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0.024647, 7: 0.130277, 8: 0.07042, 9: 0.059857, J: 0, MB: 0, K: 0, D: 0, E: 0,
  F: 0, A: 0, B: 0, C: 0, L: 0, M: 0, G: 0, N: 0, O: 0, P: 0, NB: 0, y: 0, z: 0, OB: 0, PB: 0, QB: 0, RB: 0, SB: 0, TB: 0, UB: 0, VB: 0, WB: 0,
  XB: 0, YB: 7042e-6, ZB: 0, aB: 0, bB: 0, cB: 0, dB: 0, eB: 0, fB: 3521e-6, gB: 0, hB: 3521e-6, iB: 0.017605, jB: 0.014084, kB: 0.014084, lB: 0,
  mB: 3521e-6, nB: 3521e-6, oB: 0, pB: 0, qB: 7042e-6, rB: 0, sB: 0.024647, JC: 0, tB: 0, KC: 7042e-6, uB: 0, vB: 0, wB: 0, xB: 0, yB: 0.021126,
  zB: 0, "0B": 0, "1B": 0.010563, "2B": 0.014084, "3B": 0, "4B": 0, "5B": 7042e-6, "6B": 7042e-6, "7B": 7042e-6, "8B": 3521e-6, "9B": 0.017605,
  AC: 0.010563, Q: 0.084504, H: 7042e-6, R: 0.03521, S: 0.028168, T: 3521e-6, U: 0.014084, V: 0.021126, W: 0.063378, X: 7042e-6, Y: 0.010563,
  Z: 7042e-6, a: 0.031689, b: 0.014084, c: 0.014084, d: 0.03521, e: 0.038731, f: 7042e-6, g: 0.010563, h: 0.042252, i: 0.014084, j: 0.021126,
  k: 0.014084, l: 0.010563, m: 0.10563, n: 0.021126, o: 0.010563, p: 0.017605, q: 0.021126, r: 0.03521, s: 1.09503, t: 0.017605, u: 0.031689,
  v: 0.03521, w: 0.109151, x: 0.07042, AB: 0.042252, BB: 0.063378, CB: 0.119714, DB: 0.077462, EB: 0.080983, FB: 0.14084, GB: 1.28869, HB: 0.415478,
  IB: 0.334495, JB: 0.179571, KB: 0.232386, LB: 0.982359, I: 15.0065, BC: 0.017605, MC: 0.014084, NC: 0 }, B: "webkit", C: ["", "", "", "", "",
  "", "", "J", "MB", "K", "D", "E", "F", "A", "B", "C", "L", "M", "G", "N", "O", "P", "NB", "y", "z", "0", "1", "2", "3", "4", "5", "OB", "P\
B", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "bB", "cB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "lB", "mB",
  "nB", "oB", "pB", "qB", "rB", "sB", "JC", "tB", "KC", "uB", "vB", "wB", "xB", "yB", "zB", "0B", "1B", "2B", "3B", "4B", "5B", "6B", "7B", "\
8B", "9B", "AC", "Q", "H", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
  "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "6", "7", "8", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "JB", "KB", "L\
B", "I", "BC", "MC", "NC"], E: "Chrome", F: { 0: 1343692800, 1: 1348531200, 2: 1352246400, 3: 1357862400, 4: 1361404800, 5: 1364428800, 6: 1689724800,
  7: 1692057600, 8: 1694476800, 9: 1696896e3, J: 1264377600, MB: 1274745600, K: 1283385600, D: 1287619200, E: 1291248e3, F: 1296777600, A: 1299542400,
  B: 1303862400, C: 1307404800, L: 1312243200, M: 1316131200, G: 1316131200, N: 1319500800, O: 1323734400, P: 1328659200, NB: 1332892800, y: 133704e4,
  z: 1340668800, OB: 1369094400, PB: 1374105600, QB: 1376956800, RB: 1384214400, SB: 1389657600, TB: 1392940800, UB: 1397001600, VB: 1400544e3,
  WB: 1405468800, XB: 1409011200, YB: 141264e4, ZB: 1416268800, aB: 1421798400, bB: 1425513600, cB: 1429401600, dB: 143208e4, eB: 1437523200,
  fB: 1441152e3, gB: 1444780800, hB: 1449014400, iB: 1453248e3, jB: 1456963200, kB: 1460592e3, lB: 1464134400, mB: 1469059200, nB: 1472601600,
  oB: 1476230400, pB: 1480550400, qB: 1485302400, rB: 1489017600, sB: 149256e4, JC: 1496707200, tB: 1500940800, KC: 1504569600, uB: 1508198400,
  vB: 1512518400, wB: 1516752e3, xB: 1520294400, yB: 1523923200, zB: 1527552e3, "0B": 1532390400, "1B": 1536019200, "2B": 1539648e3, "3B": 1543968e3,
  "4B": 154872e4, "5B": 1552348800, "6B": 1555977600, "7B": 1559606400, "8B": 1564444800, "9B": 1568073600, AC: 1571702400, Q: 1575936e3, H: 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, f: 1637020800, g: 1641340800, h: 1643673600, i: 1646092800, j: 1648512e3, k: 1650931200,
  l: 1653350400, m: 1655769600, n: 1659398400, o: 1661817600, p: 1664236800, q: 1666656e3, r: 166968e4, s: 1673308800, t: 1675728e3, u: 1678147200,
  v: 1680566400, w: 1682985600, x: 1685404800, AB: 1698710400, BB: 1701993600, CB: 1705968e3, DB: 1708387200, EB: 1710806400, FB: 1713225600,
  GB: 1715644800, HB: 1718064e3, IB: 1721174400, JB: 1724112e3, KB: 1726531200, LB: 1728950400, I: 1731369600, BC: null, MC: null, NC: null } },
  E: { A: { J: 0, MB: 0, K: 0, D: 0, E: 0, F: 0, A: 0, B: 0, C: 0, L: 3521e-6, M: 0.017605, G: 3521e-6, nC: 0, OC: 0, oC: 0, pC: 0, qC: 0, rC: 0,
  PC: 0, CC: 3521e-6, DC: 7042e-6, sC: 0.038731, tC: 0.052815, uC: 0.014084, QC: 7042e-6, RC: 0.014084, EC: 0.021126, vC: 0.169008, FC: 0.024647,
  SC: 0.028168, TC: 0.021126, UC: 0.049294, VC: 0.017605, WC: 0.031689, wC: 0.225344, GC: 0.014084, XC: 0.024647, YC: 0.024647, ZC: 0.028168,
  aC: 0.066899, bC: 0.130277, xC: 0.415478, HC: 0.080983, cC: 1.05278, dC: 0.144361, eC: 3521e-6, yC: 0 }, B: "webkit", C: ["", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "nC", "OC", "J", "MB", "oC", "K", "pC", "D", "qC", "E", "F", "rC", "A", "PC", "B",
  "CC", "C", "DC", "L", "sC", "M", "tC", "G", "uC", "QC", "RC", "EC", "vC", "FC", "SC", "TC", "UC", "VC", "WC", "wC", "GC", "XC", "YC", "ZC",
  "aC", "bC", "xC", "HC", "cC", "dC", "eC", "yC", ""], E: "Safari", F: { nC: 1205798400, OC: 1226534400, J: 1244419200, MB: 1275868800, oC: 131112e4,
  K: 1343174400, pC: 13824e5, D: 13824e5, qC: 1410998400, E: 1413417600, F: 1443657600, rC: 1458518400, A: 1474329600, PC: 1490572800, B: 1505779200,
  CC: 1522281600, C: 1537142400, DC: 1553472e3, L: 1568851200, sC: 1585008e3, M: 1600214400, tC: 1619395200, G: 1632096e3, uC: 1635292800, QC: 1639353600,
  RC: 1647216e3, EC: 1652745600, vC: 1658275200, FC: 1662940800, SC: 1666569600, TC: 1670889600, UC: 1674432e3, VC: 1679875200, WC: 1684368e3,
  wC: 1690156800, GC: 1695686400, XC: 1698192e3, YC: 1702252800, ZC: 1705881600, aC: 1709596800, bC: 1715558400, xC: 1722211200, HC: 1726444800,
  cC: 1730073600, dC: 1733875200, eC: null, yC: null } }, F: { A: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, F: 0, B: 0, C: 0, G: 0, N: 0, O: 0, P: 0,
  NB: 0, y: 0, z: 0, OB: 0, PB: 0, QB: 0, RB: 0, SB: 0, TB: 0, UB: 0, VB: 0, WB: 0, XB: 0, YB: 0, ZB: 0, aB: 3521e-6, bB: 0, cB: 0, dB: 0, eB: 0,
  fB: 0, gB: 0.014084, hB: 0, iB: 0, jB: 0, kB: 0, lB: 0, mB: 0, nB: 0, oB: 0, pB: 0, qB: 0, rB: 0, sB: 0, tB: 0, uB: 0, vB: 0, wB: 0, xB: 0,
  yB: 0, zB: 0, "0B": 0, "1B": 0, "2B": 0, "3B": 0, "4B": 0, "5B": 0, "6B": 0, "7B": 0, "8B": 0, "9B": 0, AC: 0, Q: 0, H: 0, R: 0, LC: 0, S: 0,
  T: 0, U: 7042e-6, V: 0.028168, W: 0, X: 0, Y: 0, Z: 0, a: 0, b: 0, c: 0, d: 0, e: 0.031689, f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0.021126,
  m: 0, n: 0, o: 0, p: 0, q: 0, r: 0, s: 0, t: 0, u: 0, v: 0, w: 3521e-6, x: 0.616175, zC: 0, "0C": 0, "1C": 0, "2C": 0, CC: 0, fC: 0, "3C": 0,
  DC: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "F", "zC", "\
0C", "1C", "2C", "B", "CC", "fC", "3C", "C", "DC", "G", "N", "O", "P", "NB", "y", "z", "0", "1", "2", "3", "4", "5", "OB", "PB", "QB", "RB",
  "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "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", "0B", "1B", "2B", "3B", "4B", "5B", "6B", "7B", "8B", "9B", "AC", "Q", "H",
  "R", "LC", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
  "s", "t", "u", "v", "w", "x", "", "", ""], E: "Opera", F: { 0: 1401753600, 1: 1405987200, 2: 1409616e3, 3: 1413331200, 4: 1417132800, 5: 1422316800,
  F: 1150761600, zC: 1223424e3, "0C": 1251763200, "1C": 1267488e3, "2C": 1277942400, B: 1292457600, CC: 1302566400, fC: 1309219200, "3C": 1323129600,
  C: 1323129600, DC: 1352073600, G: 1372723200, N: 1377561600, O: 1381104e3, P: 1386288e3, NB: 1390867200, y: 1393891200, z: 1399334400, OB: 1425945600,
  PB: 1430179200, QB: 1433808e3, RB: 1438646400, SB: 1442448e3, TB: 1445904e3, UB: 1449100800, VB: 1454371200, WB: 1457308800, XB: 146232e4,
  YB: 1465344e3, ZB: 1470096e3, aB: 1474329600, bB: 1477267200, cB: 1481587200, dB: 1486425600, eB: 1490054400, fB: 1494374400, gB: 1498003200,
  hB: 1502236800, iB: 1506470400, jB: 1510099200, kB: 1515024e3, lB: 1517961600, mB: 1521676800, nB: 1525910400, oB: 1530144e3, pB: 1534982400,
  qB: 1537833600, rB: 1543363200, sB: 1548201600, tB: 1554768e3, uB: 1561593600, vB: 1566259200, wB: 1570406400, xB: 1573689600, yB: 1578441600,
  zB: 1583971200, "0B": 1587513600, "1B": 1592956800, "2B": 1595894400, "3B": 1600128e3, "4B": 1603238400, "5B": 161352e4, "6B": 1612224e3, "\
7B": 1616544e3, "8B": 1619568e3, "9B": 1623715200, AC: 1627948800, Q: 1631577600, H: 1633392e3, R: 1635984e3, LC: 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, f: 1677024e3, g: 1679529600, h: 1681948800, i: 1684195200, j: 1687219200, k: 1690329600, l: 1692748800, m: 1696204800,
  n: 169992e4, o: 169992e4, p: 1702944e3, q: 1707264e3, r: 1710115200, s: 1711497600, t: 1716336e3, u: 1719273600, v: 1721088e3, w: 1724284800,
  x: 1727222400 }, D: { F: "o", B: "o", C: "o", zC: "o", "0C": "o", "1C": "o", "2C": "o", CC: "o", fC: "o", "3C": "o", DC: "o" } }, G: { A: {
  E: 0, OC: 0, "4C": 0, gC: 278986e-8, "5C": 139493e-8, "6C": 557971e-8, "7C": 836957e-8, "8C": 0, "9C": 557971e-8, AD: 0.0223189, BD: 278986e-8,
  CD: 0.0320834, DD: 0.234348, ED: 0.0111594, FD: 697464e-8, GD: 0.156232, HD: 278986e-8, ID: 0.0474276, JD: 697464e-8, KD: 0.0237138, LD: 0.10462,
  MD: 0.0655617, ND: 0.0362681, QC: 0.0348732, RC: 0.0418479, EC: 0.0474276, OD: 0.542627, FC: 0.0906704, SC: 0.193895, TC: 0.0990399, UC: 0.171576,
  VC: 0.0348732, WC: 0.0711414, PD: 0.683515, GC: 0.0474276, XC: 0.078116, YC: 0.0641667, ZC: 0.0920653, aC: 0.199475, bC: 0.485435, QD: 1.82178,
  HC: 0.59424, cC: 6.92303, dC: 0.813243, eC: 0.0306884 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "OC", "4C", "gC", "5C", "6C", "7C", "E", "8C", "9C", "AD", "BD", "CD", "DD", "ED", "FD", "GD", "HD", "ID", "JD", "KD", "LD", "\
MD", "ND", "QC", "RC", "EC", "OD", "FC", "SC", "TC", "UC", "VC", "WC", "PD", "GC", "XC", "YC", "ZC", "aC", "bC", "QD", "HC", "cC", "dC", "eC",
  "", ""], E: "Safari on iOS", F: { OC: 1270252800, "4C": 1283904e3, gC: 1299628800, "5C": 1331078400, "6C": 1359331200, "7C": 1394409600, E: 1410912e3,
  "8C": 1413763200, "9C": 1442361600, AD: 1458518400, BD: 1473724800, CD: 1490572800, DD: 1505779200, ED: 1522281600, FD: 1537142400, GD: 1553472e3,
  HD: 1568851200, ID: 1572220800, JD: 1580169600, KD: 1585008e3, LD: 1600214400, MD: 1619395200, ND: 1632096e3, QC: 1639353600, RC: 1647216e3,
  EC: 1652659200, OD: 1658275200, FC: 1662940800, SC: 1666569600, TC: 1670889600, UC: 1674432e3, VC: 1679875200, WC: 1684368e3, PD: 1690156800,
  GC: 1694995200, XC: 1698192e3, YC: 1702252800, ZC: 1705881600, aC: 1709596800, bC: 1715558400, QD: 1722211200, HC: 1726444800, cC: 1730073600,
  dC: 1733875200, eC: null } }, H: { A: { RD: 0.04 }, B: "o", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "RD", "", "", ""], E: "Opera Mini", F: { RD: 1426464e3 } }, I: { A: { IC: 0, J: 0, I: 0.24566, SD: 0, TD: 0,
  UD: 0, VD: 246202e-10, gC: 492404e-10, WD: 0, XD: 295442e-9 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "SD", "TD", "UD", "IC", "J", "VD", "gC", "WD", "XD", "I", "", "", ""], E: "Android Browser", F: { SD: 1256515200, TD: 1274313600,
  UD: 1291593600, IC: 1298332800, J: 1318896e3, VD: 1341792e3, gC: 1374624e3, WD: 1386547200, XD: 1401667200, I: 1731369600 } }, 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: 1.0096, CC: 0, fC: 0, DC: 0 },
  B: "o", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "A", "B", "CC", "fC", "C", "DC", "H", "",
  "", ""], E: "Opera Mobile", F: { A: 1287100800, B: 1300752e3, CC: 1314835200, fC: 1318291200, C: 1330300800, DC: 1349740800, H: 1709769600 },
  D: { H: "webkit" } }, L: { A: { I: 47.0453 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "I", "", "", ""], E: "Chrome for Android", F: { I: 1731369600 } }, M: { A: { BC: 0.32395 }, B: "moz", C: [
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "BC", "", "", ""], E: "Fir\
efox for Android", F: { BC: 173016e4 } }, N: { A: { A: 0, B: 0 }, B: "ms", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "A", "B", "", "", ""], E: "IE Mobile", F: { A: 1340150400, B: 1353456e3 } }, O: { A: { EC: 0.855228 },
  B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "EC", "", "",
  ""], E: "UC Browser for Android", F: { EC: 1710115200 }, D: { EC: "webkit" } }, P: { A: { 0: 0.0322125, 1: 0.04295, 2: 0.0536875, 3: 0.04295,
  4: 0.1718, 5: 1.77169, J: 0.0859, y: 0, z: 0.0322125, YD: 0.0107375, ZD: 0, aD: 0.021475, bD: 0, cD: 0, PC: 0, dD: 0, eD: 0, fD: 0, gD: 0,
  hD: 0, FC: 0, GC: 0.0107375, HC: 0, iD: 0.0107375 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "J", "YD", "ZD", "aD", "bD", "cD", "PC", "dD", "eD",
  "fD", "gD", "hD", "FC", "GC", "HC", "iD", "y", "z", "0", "1", "2", "3", "4", "5", "", "", ""], E: "Samsung Internet", F: { 0: 1689292800, 1: 1697587200,
  2: 1711497600, 3: 1715126400, 4: 1717718400, 5: 1725667200, J: 1461024e3, YD: 1481846400, ZD: 1509408e3, aD: 1528329600, bD: 1546128e3, cD: 1554163200,
  PC: 1567900800, dD: 1582588800, eD: 1593475200, fD: 1605657600, gD: 1618531200, hD: 1629072e3, FC: 1640736e3, GC: 1651708800, HC: 1659657600,
  iD: 1667260800, y: 1677369600, z: 1684454400 } }, Q: { A: { jD: 0.239723 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "jD", "", "", ""], E: "QQ Browser", F: { jD: 1710288e3 } }, R: { A: { kD: 0 },
  B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "kD", "", "",
  ""], E: "Baidu Browser", F: { kD: 1710201600 } }, S: { A: { lD: 0.019437, mD: 0 }, B: "moz", C: ["", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "lD", "mD", "", "", ""], E: "KaiOS Browser", F: { lD: 1527811200, mD: 1631664e3 } } };
});

// ../node_modules/caniuse-lite/dist/unpacker/agents.js
var WG = g((AVs, VG) => {
  "use strict";
  var Dct = wP().browsers, d_ = f_().browserVersions, UG = qG();
  function KG(t) {
    return Object.keys(t).reduce((e, s) => (e[d_[s]] = t[s], e), {});
  }
  n(KG, "unpackBrowserVersions");
  VG.exports.agents = Object.keys(UG).reduce((t, e) => {
    let s = UG[e];
    return t[Dct[e]] = Object.keys(s).reduce((r, i) => (i === "A" ? r.usage_global = KG(s[i]) : i === "C" ? r.versions = s[i].reduce((a, o) => (o ===
    "" ? a.push(null) : a.push(d_[o]), a), []) : i === "D" ? r.prefix_exceptions = KG(s[i]) : i === "E" ? r.browser = s[i] : i === "F" ? r.release_date =
    Object.keys(s[i]).reduce(
      (a, o) => (a[d_[o]] = s[i][o], a),
      {}
    ) : r.prefix = s[i], r), {}), t;
  }, {});
});

// ../node_modules/electron-to-chromium/versions.js
var HG = g((CVs, $G) => {
  $G.exports = {
    "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",
    "23.2": "110",
    "23.3": "110",
    "24.0": "112",
    "24.1": "112",
    "24.2": "112",
    "24.3": "112",
    "24.4": "112",
    "24.5": "112",
    "24.6": "112",
    "24.7": "112",
    "24.8": "112",
    "25.0": "114",
    "25.1": "114",
    "25.2": "114",
    "25.3": "114",
    "25.4": "114",
    "25.5": "114",
    "25.6": "114",
    "25.7": "114",
    "25.8": "114",
    "25.9": "114",
    "26.0": "116",
    "26.1": "116",
    "26.2": "116",
    "26.3": "116",
    "26.4": "116",
    "26.5": "116",
    "26.6": "116",
    "27.0": "118",
    "27.1": "118",
    "27.2": "118",
    "27.3": "118",
    "28.0": "120",
    "28.1": "120",
    "28.2": "120",
    "28.3": "120",
    "29.0": "122",
    "29.1": "122",
    "29.2": "122",
    "29.3": "122",
    "29.4": "122",
    "30.0": "124",
    "30.1": "124",
    "30.2": "124",
    "30.3": "124",
    "30.4": "124",
    "30.5": "124",
    "31.0": "126",
    "31.1": "126",
    "31.2": "126",
    "31.3": "126",
    "31.4": "126",
    "31.5": "126",
    "31.6": "126",
    "31.7": "126",
    "32.0": "128",
    "32.1": "128",
    "32.2": "128",
    "33.0": "130",
    "33.1": "130",
    "33.2": "130",
    "33.3": "130",
    "34.0": "132",
    "35.0": "133"
  };
});

// ../node_modules/node-releases/data/release-schedule/release-schedule.json
var JG = g((wVs, Oct) => {
  Oct.exports = { "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: { start: "2015-09-08", lts: "2015-10-12", maintenance: "2017-04-01", end: "2018-04-30", codename: "Arg\
on" }, v5: { start: "2015-10-29", maintenance: "2016-04-30", end: "2016-06-30" }, v6: { start: "2016-04-26", lts: "2016-10-18", maintenance: "\
2018-04-30", end: "2019-04-30", codename: "Boron" }, v7: { start: "2016-10-25", maintenance: "2017-04-30", end: "2017-06-30" }, v8: { start: "\
2017-05-30", lts: "2017-10-31", maintenance: "2019-01-01", end: "2019-12-31", codename: "Carbon" }, v9: { start: "2017-10-01", maintenance: "\
2018-04-01", end: "2018-06-30" }, v10: { start: "2018-04-24", lts: "2018-10-30", maintenance: "2020-05-19", end: "2021-04-30", codename: "Du\
bnium" }, v11: { start: "2018-10-23", maintenance: "2019-04-22", end: "2019-06-01" }, v12: { start: "2019-04-23", lts: "2019-10-21", maintenance: "\
2020-11-30", end: "2022-04-30", codename: "Erbium" }, v13: { start: "2019-10-22", maintenance: "2020-04-01", end: "2020-06-01" }, v14: { start: "\
2020-04-21", lts: "2020-10-27", maintenance: "2021-10-19", end: "2023-04-30", codename: "Fermium" }, v15: { start: "2020-10-20", maintenance: "\
2021-04-01", end: "2021-06-01" }, v16: { start: "2021-04-20", lts: "2021-10-26", maintenance: "2022-10-18", end: "2023-09-11", codename: "Ga\
llium" }, v17: { start: "2021-10-19", maintenance: "2022-04-01", end: "2022-06-01" }, v18: { start: "2022-04-19", lts: "2022-10-25", maintenance: "\
2023-10-18", end: "2025-04-30", codename: "Hydrogen" }, v19: { start: "2022-10-18", maintenance: "2023-04-01", end: "2023-06-01" }, v20: { start: "\
2023-04-18", lts: "2023-10-24", maintenance: "2024-10-22", end: "2026-04-30", codename: "Iron" }, v21: { start: "2023-10-17", maintenance: "\
2024-04-01", end: "2024-06-01" }, v22: { start: "2024-04-24", lts: "2024-10-29", maintenance: "2025-10-21", end: "2027-04-30", codename: "Jo\
d" }, v23: { start: "2024-10-16", maintenance: "2025-04-01", end: "2025-06-01" }, v24: { start: "2025-04-22", lts: "2025-10-28", maintenance: "\
2026-10-20", end: "2028-04-30", codename: "" } };
});

// ../node_modules/browserslist/error.js
var y_ = g((IVs, YG) => {
  function m_(t) {
    this.name = "BrowserslistError", this.message = t, this.browserslist = !0, Error.captureStackTrace && Error.captureStackTrace(this, m_);
  }
  n(m_, "BrowserslistError");
  m_.prototype = Error.prototype;
  YG.exports = m_;
});

// ../node_modules/caniuse-lite/dist/lib/statuses.js
var zG = g((kVs, XG) => {
  XG.exports = {
    1: "ls",
    // WHATWG Living Standard
    2: "rec",
    // W3C Recommendation
    3: "pr",
    // W3C Proposed Recommendation
    4: "cr",
    // W3C Candidate Recommendation
    5: "wd",
    // W3C Working Draft
    6: "other",
    // Non-W3C, but reputable
    7: "unoff"
    // Unofficial, Editor's Draft or W3C "Note"
  };
});

// ../node_modules/caniuse-lite/dist/lib/supported.js
var QG = g((DVs, GG) => {
  GG.exports = {
    y: 1,
    n: 2,
    a: 4,
    p: 8,
    u: 16,
    x: 32,
    d: 64
  };
});

// ../node_modules/caniuse-lite/dist/unpacker/feature.js
var tQ = g((OVs, g_) => {
  "use strict";
  var _ct = zG(), ZG = QG(), Lct = wP().browsers, Bct = f_().browserVersions, Mct = Math.log(2);
  function Fct(t) {
    let e = Object.keys(ZG).reduce((i, a) => (t & ZG[a] && i.push(a), i), []), s = t >> 7, r = [];
    for (; s; ) {
      let i = Math.floor(Math.log(s) / Mct) + 1;
      r.unshift(`#${i}`), s -= Math.pow(2, i - 1);
    }
    return e.concat(r).join(" ");
  }
  n(Fct, "unpackSupport");
  function eQ(t) {
    let e = {
      status: _ct[t.B],
      title: t.C,
      shown: t.D
    };
    return e.stats = Object.keys(t.A).reduce((s, r) => {
      let i = t.A[r];
      return s[Lct[r]] = Object.keys(i).reduce(
        (a, o) => {
          let l = i[o].split(" "), u = Fct(o);
          return l.forEach((c) => a[Bct[c]] = u), a;
        },
        {}
      ), s;
    }, {}), e;
  }
  n(eQ, "unpackFeature");
  g_.exports = eQ;
  g_.exports.default = eQ;
});

// ../node_modules/caniuse-lite/dist/unpacker/region.js
var rQ = g((LVs, T_) => {
  "use strict";
  var jct = wP().browsers;
  function sQ(t) {
    return Object.keys(t).reduce((e, s) => {
      let r = t[s];
      return e[jct[s]] = Object.keys(r).reduce((i, a) => {
        let o = r[a];
        return a === "_" ? o.split(" ").forEach((l) => i[l] = null) : i[a] = o, i;
      }, {}), e;
    }, {});
  }
  n(sQ, "unpackRegion");
  T_.exports = sQ;
  T_.exports.default = sQ;
});

// ../node_modules/browserslist/node.js
var fQ = g((MVs, n0) => {
  var Rct = tQ().default, qct = rQ().default, ip = Je("fs"), wo = Je("path"), rn = y_(), iQ = /^\s*\[(.+)]\s*$/, Uct = /^browserslist-config-/,
  Kct = /@[^/]+(?:\/[^/]+)?\/browserslist-config(?:-|$|\/)/, nQ = "Browserslist config should be a string or an array of strings with browse\
r queries", b_ = !1, aQ = {}, oQ = {}, IP = {};
  function lQ(t) {
    var e = " Use `dangerousExtend` option to disable.";
    if (!Uct.test(t) && !Kct.test(t))
      throw new rn(
        "Browserslist config needs `browserslist-config-` prefix. " + e
      );
    if (t.replace(/^@[^/]+\//, "").indexOf(".") !== -1)
      throw new rn(
        "`.` not allowed in Browserslist config name. " + e
      );
    if (t.indexOf("node_modules") !== -1)
      throw new rn(
        "`node_modules` not allowed in Browserslist config." + e
      );
  }
  n(lQ, "checkExtend");
  function Eu(t) {
    return ip.existsSync(t) && ip.statSync(t).isFile();
  }
  n(Eu, "isFile");
  function Vct(t) {
    return ip.existsSync(t) && ip.statSync(t).isDirectory();
  }
  n(Vct, "isDirectory");
  function uQ(t, e, s) {
    var r = wo.resolve(t), i = [], a;
    do {
      if (!Wct(r))
        break;
      if (s && r in s) {
        a = s[r];
        break;
      }
      if (i.push(r), !!Vct(r)) {
        var o = e(r);
        if (typeof o < "u") {
          a = o;
          break;
        }
      }
    } while (r !== (r = wo.dirname(r)));
    return s && !process.env.BROWSERSLIST_DISABLE_CACHE && i.forEach(function(l) {
      s[l] = a;
    }), a;
  }
  n(uQ, "eachParent");
  function Wct(t) {
    if (!process.env.BROWSERSLIST_ROOT_PATH) return !0;
    var e = wo.resolve(process.env.BROWSERSLIST_ROOT_PATH);
    return wo.relative(e, t).substring(0, 2) !== "..";
  }
  n(Wct, "pathInRoot");
  function $ct(t) {
    if (Array.isArray(t)) {
      for (var e = 0; e < t.length; e++)
        if (typeof t[e] != "string")
          throw new rn(nQ);
    } else if (typeof t != "string")
      throw new rn(nQ);
  }
  n($ct, "check");
  function x_(t, e) {
    if (typeof t != "object") return t;
    var s;
    if (typeof e.env == "string" ? s = e.env : process.env.BROWSERSLIST_ENV ? s = process.env.BROWSERSLIST_ENV : process.env.NODE_ENV ? s = process.
    env.NODE_ENV : s = "production", e.throwOnMissing && s && s !== "defaults" && !t[s])
      throw new rn(
        "Missing config for Browserslist environment `" + s + "`"
      );
    return t[s] || t.defaults;
  }
  n(x_, "pickEnv");
  function hQ(t) {
    var e = ip.readFileSync(t).toString().replace(/^\uFEFF/m, ""), s;
    if (e.indexOf('"browserslist"') >= 0)
      s = JSON.parse(e).browserslist;
    else if (e.indexOf('"browserlist"') >= 0) {
      var r = JSON.parse(e);
      if (r.browserlist && !r.browserslist)
        throw new rn(
          "`browserlist` key instead of `browserslist` in " + t
        );
    }
    (Array.isArray(s) || typeof s == "string") && (s = { defaults: s });
    for (var i in s)
      $ct(s[i]);
    return s;
  }
  n(hQ, "parsePackage");
  function cQ(t) {
    if (t in IP)
      return IP[t];
    var e = wo.basename(t) === "package.json", s = e ? hQ(t) : n0.exports.readConfig(t);
    return process.env.BROWSERSLIST_DISABLE_CACHE || (IP[t] = s), s;
  }
  n(cQ, "parsePackageOrReadConfig");
  function Hct(t) {
    var e = 0;
    for (var s in t) {
      var r = t[s].releaseDate || {};
      for (var i in r)
        e < r[i] && (e = r[i]);
    }
    return e * 1e3;
  }
  n(Hct, "latestReleaseTime");
  function Jct(t) {
    var e = /* @__PURE__ */ new Date(), s = new Date(t), r = e.getFullYear() - s.getFullYear(), i = e.getMonth() - s.getMonth();
    return r * 12 + i;
  }
  n(Jct, "getMonthsPassed");
  function pQ(t, e) {
    if (t || (t = {}), e && "dataByBrowser" in e && (e = e.dataByBrowser), typeof e == "object") {
      var s = {};
      for (var r in e) {
        var i = Object.keys(e[r]);
        if (i.length === 1 && t[r] && t[r].versions.length === 1) {
          var a = t[r].versions[0];
          s[r] = {}, s[r][a] = e[r][i[0]];
        } else
          s[r] = e[r];
      }
      return s;
    }
  }
  n(pQ, "normalizeStats");
  function Yct(t, e) {
    for (var s in t) {
      var r = t[s];
      if ("0" in r) {
        var i = e[s].versions;
        r[i[i.length - 1]] = r[0], delete r[0];
      }
    }
  }
  n(Yct, "normalizeUsageData");
  n0.exports = {
    loadQueries: /* @__PURE__ */ n(function(e, s) {
      !e.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND && lQ(s);
      var r = Je(Je.resolve(s, { paths: [".", e.path] }));
      if (r) {
        if (Array.isArray(r))
          return r;
        if (typeof r == "object")
          return r.defaults || (r.defaults = []), x_(r, e, s);
      }
      throw new rn(
        "`" + s + "` config exports not an array of queries or an object of envs"
      );
    }, "loadQueries"),
    loadStat: /* @__PURE__ */ n(function(e, s, r) {
      !e.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND && lQ(s);
      var i = Je(Je.resolve(
        wo.join(s, "browserslist-stats.json"),
        { paths: ["."] }
      ));
      return pQ(r, i);
    }, "loadStat"),
    getStat: /* @__PURE__ */ n(function(e, s) {
      var r;
      if (e.stats ? r = e.stats : process.env.BROWSERSLIST_STATS ? r = process.env.BROWSERSLIST_STATS : e.path && wo.resolve && ip.existsSync &&
      (r = uQ(e.path, function(i) {
        var a = wo.join(i, "browserslist-stats.json");
        return Eu(a) ? a : void 0;
      }, aQ)), typeof r == "string")
        try {
          r = JSON.parse(ip.readFileSync(r));
        } catch {
          throw new rn("Can't read " + r);
        }
      return pQ(s, r);
    }, "getStat"),
    loadConfig: /* @__PURE__ */ n(function(e) {
      if (process.env.BROWSERSLIST)
        return process.env.BROWSERSLIST;
      if (e.config || process.env.BROWSERSLIST_CONFIG) {
        var s = e.config || process.env.BROWSERSLIST_CONFIG;
        return x_(cQ(s), e);
      } else return e.path ? x_(n0.exports.findConfig(e.path), e) : void 0;
    }, "loadConfig"),
    loadCountry: /* @__PURE__ */ n(function(e, s, r) {
      var i = s.replace(/[^\w-]/g, "");
      if (!e[i]) {
        var a;
        try {
          a = Je("caniuse-lite/data/regions/" + i + ".js");
        } catch {
          throw new rn("Unknown region name `" + i + "`.");
        }
        var o = qct(a);
        Yct(o, r), e[s] = {};
        for (var l in o)
          for (var u in o[l])
            e[s][l + " " + u] = o[l][u];
      }
    }, "loadCountry"),
    loadFeature: /* @__PURE__ */ n(function(e, s) {
      if (s = s.replace(/[^\w-]/g, ""), !e[s]) {
        var r;
        try {
          r = Je("caniuse-lite/data/features/" + s + ".js");
        } catch {
          throw new rn("Unknown feature name `" + s + "`.");
        }
        var i = Rct(r).stats;
        e[s] = {};
        for (var a in i) {
          e[s][a] = {};
          for (var o in i[a])
            e[s][a][o] = i[a][o];
        }
      }
    }, "loadFeature"),
    parseConfig: /* @__PURE__ */ n(function(e) {
      var s = { defaults: [] }, r = ["defaults"];
      return e.toString().replace(/#[^\n]*/g, "").split(/\n|,/).map(function(i) {
        return i.trim();
      }).filter(function(i) {
        return i !== "";
      }).forEach(function(i) {
        iQ.test(i) ? (r = i.match(iQ)[1].trim().split(" "), r.forEach(function(a) {
          if (s[a])
            throw new rn(
              "Duplicate section " + a + " in Browserslist config"
            );
          s[a] = [];
        })) : r.forEach(function(a) {
          s[a].push(i);
        });
      }), s;
    }, "parseConfig"),
    readConfig: /* @__PURE__ */ n(function(e) {
      if (!Eu(e))
        throw new rn("Can't read " + e + " config");
      return n0.exports.parseConfig(ip.readFileSync(e));
    }, "readConfig"),
    findConfigFile: /* @__PURE__ */ n(function(e) {
      return uQ(e, function(s) {
        var r = wo.join(s, "browserslist"), i = wo.join(s, "package.json"), a = wo.join(s, ".browserslistrc"), o;
        if (Eu(i))
          try {
            o = hQ(i);
          } catch (l) {
            if (l.name === "BrowserslistError") throw l;
            console.warn(
              "[Browserslist] Could not parse " + i + ". Ignoring it."
            );
          }
        if (Eu(r) && o)
          throw new rn(
            s + " contains both browserslist and package.json with browsers"
          );
        if (Eu(a) && o)
          throw new rn(
            s + " contains both .browserslistrc and package.json with browsers"
          );
        if (Eu(r) && Eu(a))
          throw new rn(
            s + " contains both .browserslistrc and browserslist"
          );
        if (Eu(r))
          return r;
        if (Eu(a))
          return a;
        if (o)
          return i;
      }, oQ);
    }, "findConfigFile"),
    findConfig: /* @__PURE__ */ n(function(e) {
      var s = this.findConfigFile(e);
      return s ? cQ(s) : void 0;
    }, "findConfig"),
    clearCaches: /* @__PURE__ */ n(function() {
      b_ = !1, aQ = {}, oQ = {}, IP = {}, this.cache = {};
    }, "clearCaches"),
    oldDataWarning: /* @__PURE__ */ n(function(e) {
      if (!b_ && (b_ = !0, !process.env.BROWSERSLIST_IGNORE_OLD_DATA)) {
        var s = Hct(e), r = Jct(s);
        if (s !== 0 && r >= 6) {
          var i = r + " " + (r > 1 ? "months" : "month");
          console.warn(
            "Browserslist: browsers data (caniuse-lite) is " + i + ` old. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme`
          );
        }
      }
    }, "oldDataWarning"),
    currentNode: /* @__PURE__ */ n(function() {
      return "node " + process.versions.node;
    }, "currentNode"),
    env: process.env
  };
});

// ../node_modules/browserslist/parse.js
var TQ = g((jVs, gQ) => {
  var dQ = /^\s+and\s+(.*)/i, mQ = /^(?:,\s*|\s+or\s+)(.*)/i;
  function yQ(t) {
    return Array.isArray(t) ? t.reduce(function(e, s) {
      return e.concat(yQ(s));
    }, []) : [t];
  }
  n(yQ, "flatten");
  function Xct(t, e) {
    for (var s = t.length, r = 1; r <= s; r++) {
      var i = t.substr(-r, r);
      if (e(i, r, s))
        return t.slice(0, -r);
    }
    return "";
  }
  n(Xct, "find");
  function S_(t, e) {
    var s = { query: e };
    e.indexOf("not ") === 0 && (s.not = !0, e = e.slice(4));
    for (var r in t) {
      var i = t[r], a = e.match(i.regexp);
      if (a) {
        s.type = r;
        for (var o = 0; o < i.matches.length; o++)
          s[i.matches[o]] = a[o + 1];
        return s;
      }
    }
    return s.type = "unknown", s;
  }
  n(S_, "matchQuery");
  function zct(t, e, s) {
    var r;
    return Xct(e, function(i, a, o) {
      return dQ.test(i) ? (r = S_(t, i.match(dQ)[1]), r.compose = "and", s.unshift(r), !0) : mQ.test(i) ? (r = S_(t, i.match(mQ)[1]), r.compose =
      "or", s.unshift(r), !0) : a === o ? (r = S_(t, i.trim()), r.compose = "or", s.unshift(r), !0) : !1;
    });
  }
  n(zct, "matchBlock");
  gQ.exports = /* @__PURE__ */ n(function(e, s) {
    return Array.isArray(s) || (s = [s]), yQ(
      s.map(function(r) {
        var i = [];
        do
          r = zct(e, r, i);
        while (r);
        return i;
      })
    );
  }, "parse");
});

// ../node_modules/browserslist/index.js
var BQ = g((qVs, LQ) => {
  var Gct = OG(), Au = WG().agents, Io = HG(), P_ = JG(), LP = Je("path"), ia = y_(), ji = fQ(), Qct = TQ(), Zct = 365.259641 * 24 * 60 * 60 *
  1e3, wQ = "37", ept = 14;
  function IQ(t, e) {
    return (t + ".").indexOf(e + ".") === 0;
  }
  n(IQ, "isVersionsMatch");
  function tpt(t) {
    var e = t.slice(1);
    return St.nodeVersions.some(function(s) {
      return IQ(s, e);
    });
  }
  n(tpt, "isEolReleased");
  function bQ(t) {
    return t.filter(function(e) {
      return typeof e == "string";
    });
  }
  n(bQ, "normalize");
  function NP(t) {
    var e = t;
    return t.split(".").length === 3 && (e = t.split(".").slice(0, -1).join(".")), e;
  }
  n(NP, "normalizeElectron");
  function np(t) {
    return /* @__PURE__ */ n(function(s) {
      return t + " " + s;
    }, "mapName");
  }
  n(np, "nameMapper");
  function w_(t) {
    return parseInt(t.split(".")[0]);
  }
  n(w_, "getMajor");
  function kP(t, e) {
    if (t.length === 0) return [];
    var s = NQ(t.map(w_)), r = s[s.length - e];
    if (!r)
      return t;
    for (var i = [], a = t.length - 1; a >= 0 && !(r > w_(t[a])); a--)
      i.unshift(t[a]);
    return i;
  }
  n(kP, "getMajorVersions");
  function NQ(t) {
    for (var e = [], s = 0; s < t.length; s++)
      e.indexOf(t[s]) === -1 && e.push(t[s]);
    return e;
  }
  n(NQ, "uniq");
  function BP(t, e, s) {
    for (var r in s)
      t[e + " " + r] = s[r];
  }
  n(BP, "fillUsage");
  function xQ(t, e) {
    if (e = parseFloat(e), t === ">")
      return function(r) {
        return s(r) > e;
      };
    return t === ">=" ? function(r) {
      return s(r) >= e;
    } : t === "<" ? function(r) {
      return parseFloat(r) < e;
    } : function(r) {
      return parseFloat(r) <= e;
    };
    function s(r) {
      return parseFloat(r.split("-")[1] || r);
    }
  }
  n(xQ, "generateFilter");
  function spt(t, e) {
    return e = e.split(".").map(ap), e[1] = e[1] || 0, e[2] = e[2] || 0, t === ">" ? function(s) {
      return s = s.split(".").map(ap), a0(s, e) > 0;
    } : t === ">=" ? function(s) {
      return s = s.split(".").map(ap), a0(s, e) >= 0;
    } : t === "<" ? function(s) {
      return s = s.split(".").map(ap), a0(e, s) > 0;
    } : function(s) {
      return s = s.split(".").map(ap), a0(e, s) >= 0;
    };
  }
  n(spt, "generateSemverFilter");
  function ap(t) {
    return parseInt(t);
  }
  n(ap, "parseSimpleInt");
  function _P(t, e) {
    return t < e ? -1 : t > e ? 1 : 0;
  }
  n(_P, "compare");
  function a0(t, e) {
    return _P(parseInt(t[0]), parseInt(e[0])) || _P(parseInt(t[1] || "0"), parseInt(e[1] || "0")) || _P(parseInt(t[2] || "0"), parseInt(e[2] ||
    "0"));
  }
  n(a0, "compareSemver");
  function SQ(t, e) {
    switch (e = e.split(".").map(ap), typeof e[1] > "u" && (e[1] = "x"), t) {
      case "<=":
        return function(s) {
          return s = s.split(".").map(ap), PQ(s, e) <= 0;
        };
      case ">=":
      default:
        return function(s) {
          return s = s.split(".").map(ap), PQ(s, e) >= 0;
        };
    }
  }
  n(SQ, "semverFilterLoose");
  function PQ(t, e) {
    return t[0] !== e[0] ? t[0] < e[0] ? -1 : 1 : e[1] === "x" ? 0 : t[1] !== e[1] ? t[1] < e[1] ? -1 : 1 : 0;
  }
  n(PQ, "compareSemverLoose");
  function rpt(t, e) {
    return t.versions.indexOf(e) !== -1 ? e : St.versionAliases[t.name][e] ? St.versionAliases[t.name][e] : !1;
  }
  n(rpt, "resolveVersion");
  function DP(t, e) {
    var s = rpt(t, e);
    return s || (t.versions.length === 1 ? t.versions[0] : !1);
  }
  n(DP, "normalizeVersion");
  function kQ(t, e) {
    return t = t / 1e3, Object.keys(Au).reduce(function(s, r) {
      var i = op(r, e);
      if (!i) return s;
      var a = Object.keys(i.releaseDate).filter(function(o) {
        var l = i.releaseDate[o];
        return l !== null && l >= t;
      });
      return s.concat(a.map(np(i.name)));
    }, []);
  }
  n(kQ, "filterByYear");
  function EQ(t) {
    return {
      name: t.name,
      versions: t.versions,
      released: t.released,
      releaseDate: t.releaseDate
    };
  }
  n(EQ, "cloneData");
  function op(t, e) {
    if (t = t.toLowerCase(), t = St.aliases[t] || t, e.mobileToDesktop && St.desktopNames[t]) {
      var s = St.data[St.desktopNames[t]];
      if (t === "android")
        return npt(EQ(St.data[t]), s);
      var r = EQ(s);
      return r.name = t, r;
    }
    return St.data[t];
  }
  n(op, "byName");
  function AQ(t, e) {
    var s = e.indexOf(wQ);
    return t.filter(function(r) {
      return /^(?:[2-4]\.|[34]$)/.test(r);
    }).concat(e.slice(s));
  }
  n(AQ, "normalizeAndroidVersions");
  function ipt(t) {
    var e = {};
    for (var s in t)
      e[s] = t[s];
    return e;
  }
  n(ipt, "copyObject");
  function npt(t, e) {
    return t.released = AQ(t.released, e.released), t.versions = AQ(t.versions, e.versions), t.releaseDate = ipt(t.releaseDate), t.released.
    forEach(function(s) {
      t.releaseDate[s] === void 0 && (t.releaseDate[s] = e.releaseDate[s]);
    }), t;
  }
  n(npt, "normalizeAndroidData");
  function im(t, e) {
    var s = op(t, e);
    if (!s) throw new ia("Unknown browser " + t);
    return s;
  }
  n(im, "checkName");
  function apt(t) {
    return new ia(
      "Unknown browser query `" + t + "`. Maybe you are using old Browserslist or made typo in query."
    );
  }
  n(apt, "unknownQuery");
  function OP(t, e, s, r) {
    var i = 1;
    switch (e) {
      case "android":
        if (r.mobileToDesktop) return t;
        var a = St.data.chrome.released;
        i = a.length - a.indexOf(wQ);
        break;
      case "op_mob":
        var o = St.data.op_mob.released.slice(-1)[0];
        i = w_(o) - ept + 1;
        break;
      default:
        return t;
    }
    return s <= i ? t.slice(-1) : t.slice(i - 1 - s);
  }
  n(OP, "filterJumps");
  function vQ(t, e) {
    return typeof t == "string" && (t.indexOf("y") >= 0 || e && t.indexOf("a") >= 0);
  }
  n(vQ, "isSupported");
  function nm(t, e) {
    return I_(t).reduce(function(s, r, i) {
      if (r.not && i === 0)
        throw new ia(
          "Write any browsers query (for instance, `defaults`) before `" + r.query + "`"
        );
      var a = N_[r.type], o = a.select.call(St, e, r).map(function(u) {
        var c = u.split(" ");
        return c[1] === "0" ? c[0] + " " + op(c[0], e).versions[0] : u;
      });
      if (r.compose === "and")
        return r.not ? s.filter(function(u) {
          return o.indexOf(u) === -1;
        }) : s.filter(function(u) {
          return o.indexOf(u) !== -1;
        });
      if (r.not) {
        var l = {};
        return o.forEach(function(u) {
          l[u] = !0;
        }), s.filter(function(u) {
          return !l[u];
        });
      }
      return s.concat(o);
    }, []);
  }
  n(nm, "resolve");
  function DQ(t) {
    return typeof t > "u" && (t = {}), typeof t.path > "u" && (t.path = LP.resolve ? LP.resolve(".") : "."), t;
  }
  n(DQ, "prepareOpts");
  function OQ(t, e) {
    if (typeof t > "u" || t === null) {
      var s = St.loadConfig(e);
      s ? t = s : t = St.defaults;
    }
    return t;
  }
  n(OQ, "prepareQueries");
  function _Q(t) {
    if (!(typeof t == "string" || Array.isArray(t)))
      throw new ia(
        "Browser queries must be an array or string. Got " + typeof t + "."
      );
  }
  n(_Q, "checkQueries");
  var E_ = {}, A_ = {};
  function St(t, e) {
    e = DQ(e), t = OQ(t, e), _Q(t);
    var s = I_(t).some(function(u) {
      return N_[u.type].needsPath;
    }), r = {
      ignoreUnknownVersions: e.ignoreUnknownVersions,
      dangerousExtend: e.dangerousExtend,
      mobileToDesktop: e.mobileToDesktop,
      env: e.env
    };
    s && (r.path = e.path), ji.oldDataWarning(St.data);
    var i = ji.getStat(e, St.data);
    if (i) {
      r.customUsage = {};
      for (var a in i)
        BP(r.customUsage, a, i[a]);
    }
    var o = JSON.stringify([t, r]);
    if (E_[o]) return E_[o];
    var l = NQ(nm(t, r)).sort(function(u, c) {
      if (u = u.split(" "), c = c.split(" "), u[0] === c[0]) {
        var p = u[1].split("-")[0], h = c[1].split("-")[0];
        return a0(h.split("."), p.split("."));
      } else
        return _P(u[0], c[0]);
    });
    return ji.env.BROWSERSLIST_DISABLE_CACHE || (E_[o] = l), l;
  }
  n(St, "browserslist");
  function I_(t) {
    var e = JSON.stringify(t);
    if (e in A_) return A_[e];
    var s = Qct(N_, t);
    return ji.env.BROWSERSLIST_DISABLE_CACHE || (A_[e] = s), s;
  }
  n(I_, "parseQueries");
  St.parse = function(t, e) {
    return e = DQ(e), t = OQ(t, e), _Q(t), I_(t);
  };
  St.cache = {};
  St.data = {};
  St.usage = {
    global: {},
    custom: null
  };
  St.defaults = ["> 0.5%", "last 2 versions", "Firefox ESR", "not dead"];
  St.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"
  };
  St.desktopNames = {
    and_chr: "chrome",
    and_ff: "firefox",
    ie_mob: "ie",
    android: "chrome"
    // has extra processing logic
  };
  St.versionAliases = {};
  St.clearCaches = ji.clearCaches;
  St.parseConfig = ji.parseConfig;
  St.readConfig = ji.readConfig;
  St.findConfigFile = ji.findConfigFile;
  St.findConfig = ji.findConfig;
  St.loadConfig = ji.loadConfig;
  St.coverage = function(t, e) {
    var s;
    if (typeof e > "u")
      s = St.usage.global;
    else if (e === "my stats") {
      var r = {};
      r.path = LP.resolve ? LP.resolve(".") : ".";
      var i = ji.getStat(r);
      if (!i)
        throw new ia("Custom usage statistics was not provided");
      s = {};
      for (var a in i)
        BP(s, a, i[a]);
    } else if (typeof e == "string")
      e.length > 2 ? e = e.toLowerCase() : e = e.toUpperCase(), ji.loadCountry(St.usage, e, St.data), s = St.usage[e];
    else {
      "dataByBrowser" in e && (e = e.dataByBrowser), s = {};
      for (var o in e)
        for (var l in e[o])
          s[o + " " + l] = e[o][l];
    }
    return t.reduce(function(u, c) {
      var p = s[c];
      return p === void 0 && (p = s[c.replace(/ \S+$/, " 0")]), u + (p || 0);
    }, 0);
  };
  function v_(t, e) {
    var s = St.nodeVersions.filter(function(r) {
      return IQ(r, e.version);
    });
    if (s.length === 0) {
      if (t.ignoreUnknownVersions)
        return [];
      throw new ia(
        "Unknown version " + e.version + " of Node.js"
      );
    }
    return ["node " + s[s.length - 1]];
  }
  n(v_, "nodeQuery");
  function C_(t, e) {
    var s = parseInt(e.year), r = parseInt(e.month || "01") - 1, i = parseInt(e.day || "01");
    return kQ(Date.UTC(s, r, i, 0, 0, 0), t);
  }
  n(C_, "sinceQuery");
  function CQ(t, e) {
    var s = parseFloat(e.coverage), r = St.usage.global;
    if (e.place)
      if (e.place.match(/^my\s+stats$/i)) {
        if (!t.customUsage)
          throw new ia("Custom usage statistics was not provided");
        r = t.customUsage;
      } else {
        var i;
        e.place.length === 2 ? i = e.place.toUpperCase() : i = e.place.toLowerCase(), ji.loadCountry(St.usage, i, St.data), r = St.usage[i];
      }
    for (var a = Object.keys(r).sort(function(p, h) {
      return r[h] - r[p];
    }), o = 0, l = [], u, c = 0; c < a.length && (u = a[c], !(r[u] === 0 || (o += r[u], l.push(u), o >= s))); c++)
      ;
    return l;
  }
  n(CQ, "coverQuery");
  var N_ = {
    last_major_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+major\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        return Object.keys(Au).reduce(function(s, r) {
          var i = op(r, t);
          if (!i) return s;
          var a = kP(i.released, e.versions);
          return a = a.map(np(i.name)), a = OP(a, i.name, e.versions, t), s.concat(a);
        }, []);
      }, "select")
    },
    last_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        return Object.keys(Au).reduce(function(s, r) {
          var i = op(r, t);
          if (!i) return s;
          var a = i.released.slice(-e.versions);
          return a = a.map(np(i.name)), a = OP(a, i.name, e.versions, t), s.concat(a);
        }, []);
      }, "select")
    },
    last_electron_major_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = kP(Object.keys(Io), e.versions);
        return s.map(function(r) {
          return "chrome " + Io[r];
        });
      }, "select")
    },
    last_node_major_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        return kP(St.nodeVersions, e.versions).map(
          function(s) {
            return "node " + s;
          }
        );
      }, "select")
    },
    last_browser_major_versions: {
      matches: ["versions", "browser"],
      regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = im(e.browser, t), r = kP(s.released, e.versions), i = r.map(np(s.name));
        return i = OP(i, s.name, e.versions, t), i;
      }, "select")
    },
    last_electron_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+electron\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        return Object.keys(Io).slice(-e.versions).map(function(s) {
          return "chrome " + Io[s];
        });
      }, "select")
    },
    last_node_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+node\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        return St.nodeVersions.slice(-e.versions).map(function(s) {
          return "node " + s;
        });
      }, "select")
    },
    last_browser_versions: {
      matches: ["versions", "browser"],
      regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = im(e.browser, t), r = s.released.slice(-e.versions).map(np(s.name));
        return r = OP(r, s.name, e.versions, t), r;
      }, "select")
    },
    unreleased_versions: {
      matches: [],
      regexp: /^unreleased\s+versions$/i,
      select: /* @__PURE__ */ n(function(t) {
        return Object.keys(Au).reduce(function(e, s) {
          var r = op(s, t);
          if (!r) return e;
          var i = r.versions.filter(function(a) {
            return r.released.indexOf(a) === -1;
          });
          return i = i.map(np(r.name)), e.concat(i);
        }, []);
      }, "select")
    },
    unreleased_electron_versions: {
      matches: [],
      regexp: /^unreleased\s+electron\s+versions?$/i,
      select: /* @__PURE__ */ n(function() {
        return [];
      }, "select")
    },
    unreleased_browser_versions: {
      matches: ["browser"],
      regexp: /^unreleased\s+(\w+)\s+versions?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = im(e.browser, t);
        return s.versions.filter(function(r) {
          return s.released.indexOf(r) === -1;
        }).map(np(s.name));
      }, "select")
    },
    last_years: {
      matches: ["years"],
      regexp: /^last\s+(\d*.?\d+)\s+years?$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        return kQ(Date.now() - Zct * e.years, t);
      }, "select")
    },
    since_y: {
      matches: ["year"],
      regexp: /^since (\d+)$/i,
      select: C_
    },
    since_y_m: {
      matches: ["year", "month"],
      regexp: /^since (\d+)-(\d+)$/i,
      select: C_
    },
    since_y_m_d: {
      matches: ["year", "month", "day"],
      regexp: /^since (\d+)-(\d+)-(\d+)$/i,
      select: C_
    },
    popularity: {
      matches: ["sign", "popularity"],
      regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = parseFloat(e.popularity), r = St.usage.global;
        return Object.keys(r).reduce(function(i, a) {
          return e.sign === ">" ? r[a] > s && i.push(a) : e.sign === "<" ? r[a] < s && i.push(a) : e.sign === "<=" ? r[a] <= s && i.push(a) :
          r[a] >= s && i.push(a), i;
        }, []);
      }, "select")
    },
    popularity_in_my_stats: {
      matches: ["sign", "popularity"],
      regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = parseFloat(e.popularity);
        if (!t.customUsage)
          throw new ia("Custom usage statistics was not provided");
        var r = t.customUsage;
        return Object.keys(r).reduce(function(i, a) {
          var o = r[a];
          return o == null || (e.sign === ">" ? o > s && i.push(a) : e.sign === "<" ? o < s && i.push(a) : e.sign === "<=" ? o <= s && i.push(
          a) : o >= s && i.push(a)), i;
        }, []);
      }, "select")
    },
    popularity_in_config_stats: {
      matches: ["sign", "popularity", "config"],
      regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = parseFloat(e.popularity), r = ji.loadStat(t, e.config, St.data);
        if (r) {
          t.customUsage = {};
          for (var i in r)
            BP(t.customUsage, i, r[i]);
        }
        if (!t.customUsage)
          throw new ia("Custom usage statistics was not provided");
        var a = t.customUsage;
        return Object.keys(a).reduce(function(o, l) {
          var u = a[l];
          return u == null || (e.sign === ">" ? u > s && o.push(l) : e.sign === "<" ? u < s && o.push(l) : e.sign === "<=" ? u <= s && o.push(
          l) : u >= s && o.push(l)), o;
        }, []);
      }, "select")
    },
    popularity_in_place: {
      matches: ["sign", "popularity", "place"],
      regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = parseFloat(e.popularity), r = e.place;
        r.length === 2 ? r = r.toUpperCase() : r = r.toLowerCase(), ji.loadCountry(St.usage, r, St.data);
        var i = St.usage[r];
        return Object.keys(i).reduce(function(a, o) {
          var l = i[o];
          return l == null || (e.sign === ">" ? l > s && a.push(o) : e.sign === "<" ? l < s && a.push(o) : e.sign === "<=" ? l <= s && a.push(
          o) : l >= s && a.push(o)), a;
        }, []);
      }, "select")
    },
    cover: {
      matches: ["coverage"],
      regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,
      select: CQ
    },
    cover_in: {
      matches: ["coverage", "place"],
      regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,
      select: CQ
    },
    supports: {
      matches: ["supportType", "feature"],
      regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,
      select: /* @__PURE__ */ n(function(t, e) {
        ji.loadFeature(St.cache, e.feature);
        var s = e.supportType !== "fully", r = St.cache[e.feature], i = [];
        for (var a in r) {
          for (var o = op(a, t), l = o.released.length - 1; l >= 0 && !(o.released[l] in r[a]); )
            l--;
          var u = t.mobileToDesktop && a in St.desktopNames && vQ(r[a][o.released[l]], s);
          o.versions.forEach(function(c) {
            var p = r[a][c];
            p === void 0 && u && (p = r[St.desktopNames[a]][c]), vQ(p, s) && i.push(a + " " + c);
          });
        }
        return i;
      }, "select")
    },
    electron_range: {
      matches: ["from", "to"],
      regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = NP(e.from), r = NP(e.to), i = parseFloat(e.from), a = parseFloat(e.to);
        if (!Io[s])
          throw new ia("Unknown version " + i + " of electron");
        if (!Io[r])
          throw new ia("Unknown version " + a + " of electron");
        return Object.keys(Io).filter(function(o) {
          var l = parseFloat(o);
          return l >= i && l <= a;
        }).map(function(o) {
          return "chrome " + Io[o];
        });
      }, "select")
    },
    node_range: {
      matches: ["from", "to"],
      regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        return St.nodeVersions.filter(SQ(">=", e.from)).filter(SQ("<=", e.to)).map(function(s) {
          return "node " + s;
        });
      }, "select")
    },
    browser_range: {
      matches: ["browser", "from", "to"],
      regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = im(e.browser, t), r = parseFloat(DP(s, e.from) || e.from), i = parseFloat(DP(s, e.to) || e.to);
        function a(o) {
          var l = parseFloat(o);
          return l >= r && l <= i;
        }
        return n(a, "filter"), s.released.filter(a).map(np(s.name));
      }, "select")
    },
    electron_ray: {
      matches: ["sign", "version"],
      regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = NP(e.version);
        return Object.keys(Io).filter(xQ(e.sign, s)).map(function(r) {
          return "chrome " + Io[r];
        });
      }, "select")
    },
    node_ray: {
      matches: ["sign", "version"],
      regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        return St.nodeVersions.filter(spt(e.sign, e.version)).map(function(s) {
          return "node " + s;
        });
      }, "select")
    },
    browser_ray: {
      matches: ["browser", "sign", "version"],
      regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = e.version, r = im(e.browser, t), i = St.versionAliases[r.name][s];
        return i && (s = i), r.released.filter(xQ(e.sign, s)).map(function(a) {
          return r.name + " " + a;
        });
      }, "select")
    },
    firefox_esr: {
      matches: [],
      regexp: /^(firefox|ff|fx)\s+esr$/i,
      select: /* @__PURE__ */ n(function() {
        return ["firefox 128"];
      }, "select")
    },
    opera_mini_all: {
      matches: [],
      regexp: /(operamini|op_mini)\s+all/i,
      select: /* @__PURE__ */ n(function() {
        return ["op_mini all"];
      }, "select")
    },
    electron_version: {
      matches: ["version"],
      regexp: /^electron\s+([\d.]+)$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = NP(e.version), r = Io[s];
        if (!r)
          throw new ia(
            "Unknown version " + e.version + " of electron"
          );
        return ["chrome " + r];
      }, "select")
    },
    node_major_version: {
      matches: ["version"],
      regexp: /^node\s+(\d+)$/i,
      select: v_
    },
    node_minor_version: {
      matches: ["version"],
      regexp: /^node\s+(\d+\.\d+)$/i,
      select: v_
    },
    node_patch_version: {
      matches: ["version"],
      regexp: /^node\s+(\d+\.\d+\.\d+)$/i,
      select: v_
    },
    current_node: {
      matches: [],
      regexp: /^current\s+node$/i,
      select: /* @__PURE__ */ n(function(t) {
        return [ji.currentNode(nm, t)];
      }, "select")
    },
    maintained_node: {
      matches: [],
      regexp: /^maintained\s+node\s+versions$/i,
      select: /* @__PURE__ */ n(function(t) {
        var e = Date.now(), s = Object.keys(P_).filter(function(r) {
          return e < Date.parse(P_[r].end) && e > Date.parse(P_[r].start) && tpt(r);
        }).map(function(r) {
          return "node " + r.slice(1);
        });
        return nm(s, t);
      }, "select")
    },
    phantomjs_1_9: {
      matches: [],
      regexp: /^phantomjs\s+1.9$/i,
      select: /* @__PURE__ */ n(function() {
        return ["safari 5"];
      }, "select")
    },
    phantomjs_2_1: {
      matches: [],
      regexp: /^phantomjs\s+2.1$/i,
      select: /* @__PURE__ */ n(function() {
        return ["safari 6"];
      }, "select")
    },
    browser_version: {
      matches: ["browser", "version"],
      regexp: /^(\w+)\s+(tp|[\d.]+)$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        var s = e.version;
        /^tp$/i.test(s) && (s = "TP");
        var r = im(e.browser, t), i = DP(r, s);
        if (i)
          s = i;
        else if (s.indexOf(".") === -1 ? i = s + ".0" : i = s.replace(/\.0$/, ""), i = DP(r, i), i)
          s = i;
        else {
          if (t.ignoreUnknownVersions)
            return [];
          throw new ia(
            "Unknown version " + s + " of " + e.browser
          );
        }
        return [r.name + " " + s];
      }, "select")
    },
    browserslist_config: {
      matches: [],
      regexp: /^browserslist config$/i,
      needsPath: !0,
      select: /* @__PURE__ */ n(function(t) {
        return St(void 0, t);
      }, "select")
    },
    extends: {
      matches: ["config"],
      regexp: /^extends (.+)$/i,
      needsPath: !0,
      select: /* @__PURE__ */ n(function(t, e) {
        return nm(ji.loadQueries(t, e.config), t);
      }, "select")
    },
    defaults: {
      matches: [],
      regexp: /^defaults$/i,
      select: /* @__PURE__ */ n(function(t) {
        return nm(St.defaults, t);
      }, "select")
    },
    dead: {
      matches: [],
      regexp: /^dead$/i,
      select: /* @__PURE__ */ n(function(t) {
        var e = [
          "Baidu >= 0",
          "ie <= 11",
          "ie_mob <= 11",
          "bb <= 10",
          "op_mob <= 12.1",
          "samsung 4"
        ];
        return nm(e, t);
      }, "select")
    },
    unknown: {
      matches: [],
      regexp: /^(\w+)$/i,
      select: /* @__PURE__ */ n(function(t, e) {
        throw op(e.query, t) ? new ia(
          "Specify versions in Browserslist query for browser " + e.query
        ) : apt(e.query);
      }, "select")
    }
  };
  (function() {
    for (var t in Au) {
      var e = Au[t];
      St.data[t] = {
        name: t,
        versions: bQ(Au[t].versions),
        released: bQ(Au[t].versions.slice(0, -3)),
        releaseDate: Au[t].release_date
      }, BP(St.usage.global, t, e.usage_global), St.versionAliases[t] = {};
      for (var s = 0; s < e.versions.length; s++) {
        var r = e.versions[s];
        if (r && r.indexOf("-") !== -1)
          for (var i = r.split("-"), a = 0; a < i.length; a++)
            St.versionAliases[t][i[a]] = r;
      }
    }
    St.nodeVersions = Gct.map(function(o) {
      return o.version;
    });
  })();
  LQ.exports = St;
});

// ../node_modules/@babel/helper-validator-option/lib/find-suggestion.js
var D_ = g((k_) => {
  "use strict";
  Object.defineProperty(k_, "__esModule", {
    value: !0
  });
  k_.findSuggestion = lpt;
  var {
    min: MQ
  } = Math;
  function opt(t, e) {
    let s = [], r = [], i, a, o = t.length, l = e.length;
    if (!o)
      return l;
    if (!l)
      return o;
    for (a = 0; a <= l; a++)
      s[a] = a;
    for (i = 1; i <= o; i++) {
      for (r = [i], a = 1; a <= l; a++)
        r[a] = t[i - 1] === e[a - 1] ? s[a - 1] : MQ(s[a - 1], s[a], r[a - 1]) + 1;
      s = r;
    }
    return r[l];
  }
  n(opt, "levenshtein");
  function lpt(t, e) {
    let s = e.map((r) => opt(r, t));
    return e[s.indexOf(MQ(...s))];
  }
  n(lpt, "findSuggestion");
});

// ../node_modules/@babel/helper-validator-option/lib/validator.js
var FQ = g((MP) => {
  "use strict";
  Object.defineProperty(MP, "__esModule", {
    value: !0
  });
  MP.OptionValidator = void 0;
  var upt = D_(), O_ = class {
    static {
      n(this, "OptionValidator");
    }
    constructor(e) {
      this.descriptor = e;
    }
    validateTopLevelOptions(e, s) {
      let r = Object.keys(s);
      for (let i of Object.keys(e))
        if (!r.includes(i))
          throw new Error(this.formatMessage(`'${i}' is not a valid top-level option.
- Did you mean '${(0, upt.findSuggestion)(i, r)}'?`));
    }
    validateBooleanOption(e, s, r) {
      return s === void 0 ? r : (this.invariant(typeof s == "boolean", `'${e}' option must be a boolean.`), s);
    }
    validateStringOption(e, s, r) {
      return s === void 0 ? r : (this.invariant(typeof s == "string", `'${e}' option must be a string.`), s);
    }
    invariant(e, s) {
      if (!e)
        throw new Error(this.formatMessage(s));
    }
    formatMessage(e) {
      return `${this.descriptor}: ${e}`;
    }
  };
  MP.OptionValidator = O_;
});

// ../node_modules/@babel/helper-validator-option/lib/index.js
var jP = g((FP) => {
  "use strict";
  Object.defineProperty(FP, "__esModule", {
    value: !0
  });
  Object.defineProperty(FP, "OptionValidator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return cpt.OptionValidator;
    }, "get")
  });
  Object.defineProperty(FP, "findSuggestion", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ppt.findSuggestion;
    }, "get")
  });
  var cpt = FQ(), ppt = D_();
});

// ../node_modules/@babel/compat-data/data/native-modules.json
var jQ = g((YVs, hpt) => {
  hpt.exports = {
    "es6.module": {
      chrome: "61",
      and_chr: "61",
      edge: "16",
      firefox: "60",
      and_ff: "60",
      node: "13.2.0",
      opera: "48",
      op_mob: "45",
      safari: "10.1",
      ios: "10.3",
      samsung: "8.2",
      android: "61",
      electron: "2.0",
      ios_saf: "10.3"
    }
  };
});

// ../node_modules/@babel/compat-data/native-modules.js
var qQ = g((XVs, RQ) => {
  RQ.exports = jQ();
});

// ../node_modules/@babel/helper-compilation-targets/node_modules/yallist/iterator.js
var KQ = g((zVs, UQ) => {
  "use strict";
  UQ.exports = function(t) {
    t.prototype[Symbol.iterator] = function* () {
      for (let e = this.head; e; e = e.next)
        yield e.value;
    };
  };
});

// ../node_modules/@babel/helper-compilation-targets/node_modules/yallist/yallist.js
var WQ = g((GVs, VQ) => {
  "use strict";
  VQ.exports = Qs;
  Qs.Node = Wh;
  Qs.create = Qs;
  function Qs(t) {
    var e = this;
    if (e instanceof Qs || (e = new Qs()), e.tail = null, e.head = null, e.length = 0, t && typeof t.forEach == "function")
      t.forEach(function(i) {
        e.push(i);
      });
    else if (arguments.length > 0)
      for (var s = 0, r = arguments.length; s < r; s++)
        e.push(arguments[s]);
    return e;
  }
  n(Qs, "Yallist");
  Qs.prototype.removeNode = function(t) {
    if (t.list !== this)
      throw new Error("removing node which does not belong to this list");
    var e = t.next, s = t.prev;
    return e && (e.prev = s), s && (s.next = e), t === this.head && (this.head = e), t === this.tail && (this.tail = s), t.list.length--, t.
    next = null, t.prev = null, t.list = null, e;
  };
  Qs.prototype.unshiftNode = function(t) {
    if (t !== this.head) {
      t.list && t.list.removeNode(t);
      var e = this.head;
      t.list = this, t.next = e, e && (e.prev = t), this.head = t, this.tail || (this.tail = t), this.length++;
    }
  };
  Qs.prototype.pushNode = function(t) {
    if (t !== this.tail) {
      t.list && t.list.removeNode(t);
      var e = this.tail;
      t.list = this, t.prev = e, e && (e.next = t), this.tail = t, this.head || (this.head = t), this.length++;
    }
  };
  Qs.prototype.push = function() {
    for (var t = 0, e = arguments.length; t < e; t++)
      dpt(this, arguments[t]);
    return this.length;
  };
  Qs.prototype.unshift = function() {
    for (var t = 0, e = arguments.length; t < e; t++)
      mpt(this, arguments[t]);
    return this.length;
  };
  Qs.prototype.pop = function() {
    if (this.tail) {
      var t = this.tail.value;
      return this.tail = this.tail.prev, this.tail ? this.tail.next = null : this.head = null, this.length--, t;
    }
  };
  Qs.prototype.shift = function() {
    if (this.head) {
      var t = this.head.value;
      return this.head = this.head.next, this.head ? this.head.prev = null : this.tail = null, this.length--, t;
    }
  };
  Qs.prototype.forEach = function(t, e) {
    e = e || this;
    for (var s = this.head, r = 0; s !== null; r++)
      t.call(e, s.value, r, this), s = s.next;
  };
  Qs.prototype.forEachReverse = function(t, e) {
    e = e || this;
    for (var s = this.tail, r = this.length - 1; s !== null; r--)
      t.call(e, s.value, r, this), s = s.prev;
  };
  Qs.prototype.get = function(t) {
    for (var e = 0, s = this.head; s !== null && e < t; e++)
      s = s.next;
    if (e === t && s !== null)
      return s.value;
  };
  Qs.prototype.getReverse = function(t) {
    for (var e = 0, s = this.tail; s !== null && e < t; e++)
      s = s.prev;
    if (e === t && s !== null)
      return s.value;
  };
  Qs.prototype.map = function(t, e) {
    e = e || this;
    for (var s = new Qs(), r = this.head; r !== null; )
      s.push(t.call(e, r.value, this)), r = r.next;
    return s;
  };
  Qs.prototype.mapReverse = function(t, e) {
    e = e || this;
    for (var s = new Qs(), r = this.tail; r !== null; )
      s.push(t.call(e, r.value, this)), r = r.prev;
    return s;
  };
  Qs.prototype.reduce = function(t, e) {
    var s, r = this.head;
    if (arguments.length > 1)
      s = e;
    else if (this.head)
      r = this.head.next, s = this.head.value;
    else
      throw new TypeError("Reduce of empty list with no initial value");
    for (var i = 0; r !== null; i++)
      s = t(s, r.value, i), r = r.next;
    return s;
  };
  Qs.prototype.reduceReverse = function(t, e) {
    var s, r = this.tail;
    if (arguments.length > 1)
      s = e;
    else if (this.tail)
      r = this.tail.prev, s = this.tail.value;
    else
      throw new TypeError("Reduce of empty list with no initial value");
    for (var i = this.length - 1; r !== null; i--)
      s = t(s, r.value, i), r = r.prev;
    return s;
  };
  Qs.prototype.toArray = function() {
    for (var t = new Array(this.length), e = 0, s = this.head; s !== null; e++)
      t[e] = s.value, s = s.next;
    return t;
  };
  Qs.prototype.toArrayReverse = function() {
    for (var t = new Array(this.length), e = 0, s = this.tail; s !== null; e++)
      t[e] = s.value, s = s.prev;
    return t;
  };
  Qs.prototype.slice = function(t, e) {
    e = e || this.length, e < 0 && (e += this.length), t = t || 0, t < 0 && (t += this.length);
    var s = new Qs();
    if (e < t || e < 0)
      return s;
    t < 0 && (t = 0), e > this.length && (e = this.length);
    for (var r = 0, i = this.head; i !== null && r < t; r++)
      i = i.next;
    for (; i !== null && r < e; r++, i = i.next)
      s.push(i.value);
    return s;
  };
  Qs.prototype.sliceReverse = function(t, e) {
    e = e || this.length, e < 0 && (e += this.length), t = t || 0, t < 0 && (t += this.length);
    var s = new Qs();
    if (e < t || e < 0)
      return s;
    t < 0 && (t = 0), e > this.length && (e = this.length);
    for (var r = this.length, i = this.tail; i !== null && r > e; r--)
      i = i.prev;
    for (; i !== null && r > t; r--, i = i.prev)
      s.push(i.value);
    return s;
  };
  Qs.prototype.splice = function(t, e) {
    t > this.length && (t = this.length - 1), t < 0 && (t = this.length + t);
    for (var s = 0, r = this.head; r !== null && s < t; s++)
      r = r.next;
    for (var i = [], s = 0; r && s < e; s++)
      i.push(r.value), r = this.removeNode(r);
    r === null && (r = this.tail), r !== this.head && r !== this.tail && (r = r.prev);
    for (var s = 2; s < arguments.length; s++)
      r = fpt(this, r, arguments[s]);
    return i;
  };
  Qs.prototype.reverse = function() {
    for (var t = this.head, e = this.tail, s = t; s !== null; s = s.prev) {
      var r = s.prev;
      s.prev = s.next, s.next = r;
    }
    return this.head = e, this.tail = t, this;
  };
  function fpt(t, e, s) {
    var r = e === t.head ? new Wh(s, null, e, t) : new Wh(s, e, e.next, t);
    return r.next === null && (t.tail = r), r.prev === null && (t.head = r), t.length++, r;
  }
  n(fpt, "insert");
  function dpt(t, e) {
    t.tail = new Wh(e, t.tail, null, t), t.head || (t.head = t.tail), t.length++;
  }
  n(dpt, "push");
  function mpt(t, e) {
    t.head = new Wh(e, null, t.head, t), t.tail || (t.tail = t.head), t.length++;
  }
  n(mpt, "unshift");
  function Wh(t, e, s, r) {
    if (!(this instanceof Wh))
      return new Wh(t, e, s, r);
    this.list = r, this.value = t, e ? (e.next = this, this.prev = e) : this.prev = null, s ? (s.prev = this, this.next = s) : this.next = null;
  }
  n(Wh, "Node");
  try {
    KQ()(Qs);
  } catch {
  }
});

// ../node_modules/@babel/helper-compilation-targets/node_modules/lru-cache/index.js
var XQ = g((ZVs, YQ) => {
  "use strict";
  var ypt = WQ(), $h = Symbol("max"), Cu = Symbol("length"), am = Symbol("lengthCalculator"), l0 = Symbol("allowStale"), Hh = Symbol("maxAge"),
  vu = Symbol("dispose"), $Q = Symbol("noDisposeOnSet"), Ri = Symbol("lruList"), No = Symbol("cache"), JQ = Symbol("updateAgeOnGet"), __ = /* @__PURE__ */ n(
  () => 1, "naiveLength"), B_ = class {
    static {
      n(this, "LRUCache");
    }
    constructor(e) {
      if (typeof e == "number" && (e = { max: e }), e || (e = {}), e.max && (typeof e.max != "number" || e.max < 0))
        throw new TypeError("max must be a non-negative number");
      let s = this[$h] = e.max || 1 / 0, r = e.length || __;
      if (this[am] = typeof r != "function" ? __ : r, this[l0] = e.stale || !1, e.maxAge && typeof e.maxAge != "number")
        throw new TypeError("maxAge must be a number");
      this[Hh] = e.maxAge || 0, this[vu] = e.dispose, this[$Q] = e.noDisposeOnSet || !1, this[JQ] = e.updateAgeOnGet || !1, this.reset();
    }
    // resize the cache when the max changes.
    set max(e) {
      if (typeof e != "number" || e < 0)
        throw new TypeError("max must be a non-negative number");
      this[$h] = e || 1 / 0, o0(this);
    }
    get max() {
      return this[$h];
    }
    set allowStale(e) {
      this[l0] = !!e;
    }
    get allowStale() {
      return this[l0];
    }
    set maxAge(e) {
      if (typeof e != "number")
        throw new TypeError("maxAge must be a non-negative number");
      this[Hh] = e, o0(this);
    }
    get maxAge() {
      return this[Hh];
    }
    // resize the cache when the lengthCalculator changes.
    set lengthCalculator(e) {
      typeof e != "function" && (e = __), e !== this[am] && (this[am] = e, this[Cu] = 0, this[Ri].forEach((s) => {
        s.length = this[am](s.value, s.key), this[Cu] += s.length;
      })), o0(this);
    }
    get lengthCalculator() {
      return this[am];
    }
    get length() {
      return this[Cu];
    }
    get itemCount() {
      return this[Ri].length;
    }
    rforEach(e, s) {
      s = s || this;
      for (let r = this[Ri].tail; r !== null; ) {
        let i = r.prev;
        HQ(this, e, r, s), r = i;
      }
    }
    forEach(e, s) {
      s = s || this;
      for (let r = this[Ri].head; r !== null; ) {
        let i = r.next;
        HQ(this, e, r, s), r = i;
      }
    }
    keys() {
      return this[Ri].toArray().map((e) => e.key);
    }
    values() {
      return this[Ri].toArray().map((e) => e.value);
    }
    reset() {
      this[vu] && this[Ri] && this[Ri].length && this[Ri].forEach((e) => this[vu](e.key, e.value)), this[No] = /* @__PURE__ */ new Map(), this[Ri] =
      new ypt(), this[Cu] = 0;
    }
    dump() {
      return this[Ri].map((e) => RP(this, e) ? !1 : {
        k: e.key,
        v: e.value,
        e: e.now + (e.maxAge || 0)
      }).toArray().filter((e) => e);
    }
    dumpLru() {
      return this[Ri];
    }
    set(e, s, r) {
      if (r = r || this[Hh], r && typeof r != "number")
        throw new TypeError("maxAge must be a number");
      let i = r ? Date.now() : 0, a = this[am](s, e);
      if (this[No].has(e)) {
        if (a > this[$h])
          return om(this, this[No].get(e)), !1;
        let u = this[No].get(e).value;
        return this[vu] && (this[$Q] || this[vu](e, u.value)), u.now = i, u.maxAge = r, u.value = s, this[Cu] += a - u.length, u.length = a,
        this.get(e), o0(this), !0;
      }
      let o = new M_(e, s, a, i, r);
      return o.length > this[$h] ? (this[vu] && this[vu](e, s), !1) : (this[Cu] += o.length, this[Ri].unshift(o), this[No].set(e, this[Ri].head),
      o0(this), !0);
    }
    has(e) {
      if (!this[No].has(e)) return !1;
      let s = this[No].get(e).value;
      return !RP(this, s);
    }
    get(e) {
      return L_(this, e, !0);
    }
    peek(e) {
      return L_(this, e, !1);
    }
    pop() {
      let e = this[Ri].tail;
      return e ? (om(this, e), e.value) : null;
    }
    del(e) {
      om(this, this[No].get(e));
    }
    load(e) {
      this.reset();
      let s = Date.now();
      for (let r = e.length - 1; r >= 0; r--) {
        let i = e[r], a = i.e || 0;
        if (a === 0)
          this.set(i.k, i.v);
        else {
          let o = a - s;
          o > 0 && this.set(i.k, i.v, o);
        }
      }
    }
    prune() {
      this[No].forEach((e, s) => L_(this, s, !1));
    }
  }, L_ = /* @__PURE__ */ n((t, e, s) => {
    let r = t[No].get(e);
    if (r) {
      let i = r.value;
      if (RP(t, i)) {
        if (om(t, r), !t[l0])
          return;
      } else
        s && (t[JQ] && (r.value.now = Date.now()), t[Ri].unshiftNode(r));
      return i.value;
    }
  }, "get"), RP = /* @__PURE__ */ n((t, e) => {
    if (!e || !e.maxAge && !t[Hh])
      return !1;
    let s = Date.now() - e.now;
    return e.maxAge ? s > e.maxAge : t[Hh] && s > t[Hh];
  }, "isStale"), o0 = /* @__PURE__ */ n((t) => {
    if (t[Cu] > t[$h])
      for (let e = t[Ri].tail; t[Cu] > t[$h] && e !== null; ) {
        let s = e.prev;
        om(t, e), e = s;
      }
  }, "trim"), om = /* @__PURE__ */ n((t, e) => {
    if (e) {
      let s = e.value;
      t[vu] && t[vu](s.key, s.value), t[Cu] -= s.length, t[No].delete(s.key), t[Ri].removeNode(e);
    }
  }, "del"), M_ = class {
    static {
      n(this, "Entry");
    }
    constructor(e, s, r, i, a) {
      this.key = e, this.value = s, this.length = r, this.now = i, this.maxAge = a || 0;
    }
  }, HQ = /* @__PURE__ */ n((t, e, s, r) => {
    let i = s.value;
    RP(t, i) && (om(t, s), t[l0] || (i = void 0)), i && e.call(r, i.value, i.key, t);
  }, "forEachStep");
  YQ.exports = B_;
});

// ../node_modules/@babel/helper-compilation-targets/lib/targets.js
var qP = g((lm) => {
  "use strict";
  Object.defineProperty(lm, "__esModule", {
    value: !0
  });
  lm.unreleasedLabels = lm.browserNameMap = void 0;
  var tWs = lm.unreleasedLabels = {
    safari: "tp"
  }, sWs = lm.browserNameMap = {
    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_mobile",
    opera: "opera",
    safari: "safari",
    samsung: "samsung"
  };
});

// ../node_modules/@babel/helper-compilation-targets/lib/utils.js
var UP = g((lp) => {
  "use strict";
  Object.defineProperty(lp, "__esModule", {
    value: !0
  });
  lp.getHighestUnreleased = Ppt;
  lp.getLowestImplementedVersion = Ept;
  lp.getLowestUnreleased = ZQ;
  lp.isUnreleasedVersion = Spt;
  lp.semverMin = QQ;
  lp.semverify = xpt;
  var zQ = Je("semver"), gpt = jP(), GQ = qP(), Tpt = /^(?:\d+|\d(?:\d?[^\d\n\r\u2028\u2029]\d+|\d{2,}(?:[^\d\n\r\u2028\u2029]\d+)?))$/, bpt = new gpt.
  OptionValidator("@babel/helper-compilation-targets");
  function QQ(t, e) {
    return t && zQ.lt(t, e) ? t : e;
  }
  n(QQ, "semverMin");
  function xpt(t) {
    if (typeof t == "string" && zQ.valid(t))
      return t;
    bpt.invariant(typeof t == "number" || typeof t == "string" && Tpt.test(t), `'${t}' is not a valid version`), t = t.toString();
    let e = 0, s = 0;
    for (; (e = t.indexOf(".", e + 1)) > 0; )
      s++;
    return t + ".0".repeat(2 - s);
  }
  n(xpt, "semverify");
  function Spt(t, e) {
    let s = GQ.unreleasedLabels[e];
    return !!s && s === t.toString().toLowerCase();
  }
  n(Spt, "isUnreleasedVersion");
  function ZQ(t, e, s) {
    let r = GQ.unreleasedLabels[s];
    return t === r ? e : e === r ? t : QQ(t, e);
  }
  n(ZQ, "getLowestUnreleased");
  function Ppt(t, e, s) {
    return ZQ(t, e, s) === t ? e : t;
  }
  n(Ppt, "getHighestUnreleased");
  function Ept(t, e) {
    let s = t[e];
    return !s && e === "android" ? t.chrome : s;
  }
  n(Ept, "getLowestImplementedVersion");
});

// ../node_modules/@babel/helper-compilation-targets/lib/options.js
var eZ = g((KP) => {
  "use strict";
  Object.defineProperty(KP, "__esModule", {
    value: !0
  });
  KP.TargetNames = void 0;
  var aWs = KP.TargetNames = {
    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",
    opera_mobile: "opera_mobile"
  };
});

// ../node_modules/@babel/helper-compilation-targets/lib/pretty.js
var F_ = g((VP) => {
  "use strict";
  Object.defineProperty(VP, "__esModule", {
    value: !0
  });
  VP.prettifyTargets = Cpt;
  VP.prettifyVersion = tZ;
  var Apt = Je("semver"), vpt = qP();
  function tZ(t) {
    if (typeof t != "string")
      return t;
    let {
      major: e,
      minor: s,
      patch: r
    } = Apt.parse(t), i = [e];
    return (s || r) && i.push(s), r && i.push(r), i.join(".");
  }
  n(tZ, "prettifyVersion");
  function Cpt(t) {
    return Object.keys(t).reduce((e, s) => {
      let r = t[s], i = vpt.unreleasedLabels[s];
      return typeof r == "string" && i !== r && (r = tZ(r)), e[s] = r, e;
    }, {});
  }
  n(Cpt, "prettifyTargets");
});

// ../node_modules/@babel/helper-compilation-targets/lib/debug.js
var rZ = g((j_) => {
  "use strict";
  Object.defineProperty(j_, "__esModule", {
    value: !0
  });
  j_.getInclusionReasons = Ipt;
  var wpt = Je("semver"), sZ = F_(), WP = UP();
  function Ipt(t, e, s) {
    let r = s[t] || {};
    return Object.keys(e).reduce((i, a) => {
      let o = (0, WP.getLowestImplementedVersion)(r, a), l = e[a];
      if (!o)
        i[a] = (0, sZ.prettifyVersion)(l);
      else {
        let u = (0, WP.isUnreleasedVersion)(o, a);
        !(0, WP.isUnreleasedVersion)(l, a) && (u || wpt.lt(l.toString(), (0, WP.semverify)(o))) && (i[a] = (0, sZ.prettifyVersion)(l));
      }
      return i;
    }, {});
  }
  n(Ipt, "getInclusionReasons");
});

// ../node_modules/@babel/compat-data/data/plugins.json
var iZ = g((hWs, Npt) => {
  Npt.exports = {
    "transform-duplicate-named-capturing-groups-regex": {
      chrome: "126",
      opera: "112",
      edge: "126",
      firefox: "129",
      safari: "17.4",
      node: "23",
      ios: "17.4",
      electron: "31.0"
    },
    "transform-regexp-modifiers": {
      chrome: "125",
      opera: "111",
      edge: "125",
      firefox: "132",
      node: "23",
      electron: "31.0"
    },
    "transform-unicode-sets-regex": {
      chrome: "112",
      opera: "98",
      edge: "112",
      firefox: "116",
      safari: "17",
      node: "20",
      deno: "1.32",
      ios: "17",
      opera_mobile: "75",
      electron: "24.0"
    },
    "bugfix/transform-v8-static-class-fields-redefine-readonly": {
      chrome: "98",
      opera: "84",
      edge: "98",
      firefox: "75",
      safari: "15",
      node: "12",
      deno: "1.18",
      ios: "15",
      samsung: "11",
      opera_mobile: "52",
      electron: "17.0"
    },
    "bugfix/transform-firefox-class-in-computed-class-key": {
      chrome: "74",
      opera: "62",
      edge: "79",
      safari: "16",
      node: "12",
      deno: "1",
      ios: "16",
      samsung: "11",
      opera_mobile: "53",
      electron: "6.0"
    },
    "bugfix/transform-safari-class-field-initializer-scope": {
      chrome: "74",
      opera: "62",
      edge: "79",
      firefox: "69",
      safari: "16",
      node: "12",
      deno: "1",
      ios: "16",
      samsung: "11",
      opera_mobile: "53",
      electron: "6.0"
    },
    "transform-class-static-block": {
      chrome: "94",
      opera: "80",
      edge: "94",
      firefox: "93",
      safari: "16.4",
      node: "16.11",
      deno: "1.14",
      ios: "16.4",
      samsung: "17",
      opera_mobile: "66",
      electron: "15.0"
    },
    "proposal-class-static-block": {
      chrome: "94",
      opera: "80",
      edge: "94",
      firefox: "93",
      safari: "16.4",
      node: "16.11",
      deno: "1.14",
      ios: "16.4",
      samsung: "17",
      opera_mobile: "66",
      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",
      opera_mobile: "64",
      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",
      opera_mobile: "64",
      electron: "13.0"
    },
    "transform-class-properties": {
      chrome: "74",
      opera: "62",
      edge: "79",
      firefox: "90",
      safari: "14.1",
      node: "12",
      deno: "1",
      ios: "14.5",
      samsung: "11",
      opera_mobile: "53",
      electron: "6.0"
    },
    "proposal-class-properties": {
      chrome: "74",
      opera: "62",
      edge: "79",
      firefox: "90",
      safari: "14.1",
      node: "12",
      deno: "1",
      ios: "14.5",
      samsung: "11",
      opera_mobile: "53",
      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",
      opera_mobile: "60",
      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",
      opera_mobile: "60",
      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",
      opera_mobile: "54",
      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",
      opera_mobile: "54",
      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",
      opera_mobile: "60",
      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",
      opera_mobile: "60",
      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",
      opera_mobile: "57",
      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",
      opera_mobile: "57",
      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",
      opera_mobile: "64",
      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",
      opera_mobile: "64",
      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",
      opera_mobile: "47",
      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",
      opera_mobile: "47",
      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",
      opera_mobile: "47",
      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",
      opera_mobile: "47",
      electron: "3.0"
    },
    "transform-parameters": {
      chrome: "49",
      opera: "36",
      edge: "18",
      firefox: "53",
      safari: "16.3",
      node: "6",
      deno: "1",
      ios: "16.3",
      samsung: "5",
      opera_mobile: "36",
      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",
      opera_mobile: "46",
      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",
      opera_mobile: "46",
      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",
      opera_mobile: "44",
      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",
      opera_mobile: "44",
      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",
      rhino: "1.7.15",
      opera_mobile: "46",
      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",
      opera_mobile: "47",
      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",
      opera_mobile: "47",
      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",
      opera_mobile: "47",
      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",
      opera_mobile: "42",
      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",
      opera_mobile: "41",
      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",
      opera_mobile: "28",
      electron: "0.21"
    },
    "transform-literals": {
      chrome: "44",
      opera: "31",
      edge: "12",
      firefox: "53",
      safari: "9",
      node: "4",
      deno: "1",
      ios: "9",
      samsung: "4",
      rhino: "1.7.15",
      opera_mobile: "32",
      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",
      opera_mobile: "41",
      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",
      opera_mobile: "34",
      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",
      opera_mobile: "28",
      electron: "0.21"
    },
    "transform-classes": {
      chrome: "46",
      opera: "33",
      edge: "13",
      firefox: "45",
      safari: "10",
      node: "5",
      deno: "1",
      ios: "10",
      samsung: "5",
      opera_mobile: "33",
      electron: "0.36"
    },
    "transform-object-super": {
      chrome: "46",
      opera: "33",
      edge: "13",
      firefox: "45",
      safari: "10",
      node: "5",
      deno: "1",
      ios: "10",
      samsung: "5",
      opera_mobile: "33",
      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",
      opera_mobile: "30",
      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",
      opera_mobile: "29",
      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",
      opera_mobile: "32",
      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",
      opera_mobile: "41",
      electron: "1.2"
    },
    "transform-sticky-regex": {
      chrome: "49",
      opera: "36",
      edge: "13",
      firefox: "3",
      safari: "10",
      node: "6",
      deno: "1",
      ios: "10",
      samsung: "5",
      rhino: "1.7.15",
      opera_mobile: "36",
      electron: "0.37"
    },
    "transform-unicode-escapes": {
      chrome: "44",
      opera: "31",
      edge: "12",
      firefox: "53",
      safari: "9",
      node: "4",
      deno: "1",
      ios: "9",
      samsung: "4",
      rhino: "1.7.15",
      opera_mobile: "32",
      electron: "0.30"
    },
    "transform-unicode-regex": {
      chrome: "50",
      opera: "37",
      edge: "13",
      firefox: "46",
      safari: "12",
      node: "6",
      deno: "1",
      ios: "12",
      samsung: "5",
      opera_mobile: "37",
      electron: "1.1"
    },
    "transform-spread": {
      chrome: "46",
      opera: "33",
      edge: "13",
      firefox: "45",
      safari: "10",
      node: "5",
      deno: "1",
      ios: "10",
      samsung: "5",
      opera_mobile: "33",
      electron: "0.36"
    },
    "transform-destructuring": {
      chrome: "51",
      opera: "38",
      edge: "15",
      firefox: "53",
      safari: "10",
      node: "6.5",
      deno: "1",
      ios: "10",
      samsung: "5",
      opera_mobile: "41",
      electron: "1.2"
    },
    "transform-block-scoping": {
      chrome: "50",
      opera: "37",
      edge: "14",
      firefox: "53",
      safari: "11",
      node: "6",
      deno: "1",
      ios: "11",
      samsung: "5",
      opera_mobile: "37",
      electron: "1.1"
    },
    "transform-typeof-symbol": {
      chrome: "48",
      opera: "35",
      edge: "12",
      firefox: "36",
      safari: "9",
      node: "6",
      deno: "1",
      ios: "9",
      samsung: "5",
      opera_mobile: "35",
      electron: "0.37"
    },
    "transform-new-target": {
      chrome: "46",
      opera: "33",
      edge: "14",
      firefox: "41",
      safari: "10",
      node: "5",
      deno: "1",
      ios: "10",
      samsung: "5",
      opera_mobile: "33",
      electron: "0.36"
    },
    "transform-regenerator": {
      chrome: "50",
      opera: "37",
      edge: "13",
      firefox: "53",
      safari: "10",
      node: "6",
      deno: "1",
      ios: "10",
      samsung: "5",
      opera_mobile: "37",
      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",
      opera_mobile: "12",
      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",
      opera_mobile: "12",
      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",
      opera_mobile: "10.1",
      electron: "0.20"
    },
    "transform-export-namespace-from": {
      chrome: "72",
      deno: "1.0",
      edge: "79",
      firefox: "80",
      node: "13.2",
      opera: "60",
      opera_mobile: "51",
      safari: "14.1",
      ios: "14.5",
      samsung: "11.0",
      android: "72",
      electron: "5.0"
    },
    "proposal-export-namespace-from": {
      chrome: "72",
      deno: "1.0",
      edge: "79",
      firefox: "80",
      node: "13.2",
      opera: "60",
      opera_mobile: "51",
      safari: "14.1",
      ios: "14.5",
      samsung: "11.0",
      android: "72",
      electron: "5.0"
    }
  };
});

// ../node_modules/@babel/compat-data/plugins.js
var aZ = g((fWs, nZ) => {
  nZ.exports = iZ();
});

// ../node_modules/@babel/helper-compilation-targets/lib/filter-items.js
var cZ = g((u0) => {
  "use strict";
  Object.defineProperty(u0, "__esModule", {
    value: !0
  });
  u0.default = Dpt;
  u0.isRequired = uZ;
  u0.targetsSupported = lZ;
  var oZ = Je("semver"), kpt = aZ(), $P = UP();
  function lZ(t, e) {
    let s = Object.keys(t);
    return s.length === 0 ? !1 : s.filter((i) => {
      let a = (0, $P.getLowestImplementedVersion)(e, i);
      if (!a)
        return !0;
      let o = t[i];
      if ((0, $P.isUnreleasedVersion)(o, i))
        return !1;
      if ((0, $P.isUnreleasedVersion)(a, i))
        return !0;
      if (!oZ.valid(o.toString()))
        throw new Error(`Invalid version passed for target "${i}": "${o}". Versions must be in semver format (major.minor.patch)`);
      return oZ.gt((0, $P.semverify)(a), o.toString());
    }).length === 0;
  }
  n(lZ, "targetsSupported");
  function uZ(t, e, {
    compatData: s = kpt,
    includes: r,
    excludes: i
  } = {}) {
    return i != null && i.has(t) ? !1 : r != null && r.has(t) ? !0 : !lZ(e, s[t]);
  }
  n(uZ, "isRequired");
  function Dpt(t, e, s, r, i, a, o) {
    let l = /* @__PURE__ */ new Set(), u = {
      compatData: t,
      includes: e,
      excludes: s
    };
    for (let c in t)
      if (uZ(c, r, u))
        l.add(c);
      else if (o) {
        let p = o.get(c);
        p && l.add(p);
      }
    return i?.forEach((c) => !s.has(c) && l.add(c)), a?.forEach((c) => !e.has(c) && l.delete(c)), l;
  }
  n(Dpt, "filterItems");
});

// ../node_modules/@babel/helper-compilation-targets/lib/index.js
var V_ = g((fl) => {
  "use strict";
  Object.defineProperty(fl, "__esModule", {
    value: !0
  });
  Object.defineProperty(fl, "TargetNames", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return U_.TargetNames;
    }, "get")
  });
  fl.default = $pt;
  Object.defineProperty(fl, "filterItems", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return dZ.default;
    }, "get")
  });
  Object.defineProperty(fl, "getInclusionReasons", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Bpt.getInclusionReasons;
    }, "get")
  });
  fl.isBrowsersQueryValid = mZ;
  Object.defineProperty(fl, "isRequired", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return dZ.isRequired;
    }, "get")
  });
  Object.defineProperty(fl, "prettifyTargets", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Lpt.prettifyTargets;
    }, "get")
  });
  Object.defineProperty(fl, "unreleasedLabels", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fZ.unreleasedLabels;
    }, "get")
  });
  var q_ = BQ(), hZ = jP(), Opt = qQ(), _pt = XQ(), ko = UP(), fZ = qP(), U_ = eZ(), Lpt = F_(), Bpt = rZ(), dZ = cZ(), R_ = Opt["es6.module"],
  K_ = new hZ.OptionValidator("@babel/helper-compilation-targets");
  function Mpt(t) {
    let e = Object.keys(U_.TargetNames);
    for (let s of Object.keys(t))
      if (!(s in U_.TargetNames))
        throw new Error(K_.formatMessage(`'${s}' is not a valid target
- Did you mean '${(0, hZ.findSuggestion)(s, e)}'?`));
    return t;
  }
  n(Mpt, "validateTargetNames");
  function mZ(t) {
    return typeof t == "string" || Array.isArray(t) && t.every((e) => typeof e == "string");
  }
  n(mZ, "isBrowsersQueryValid");
  function Fpt(t) {
    return K_.invariant(t === void 0 || mZ(t), `'${String(t)}' is not a valid browserslist query`), t;
  }
  n(Fpt, "validateBrowsers");
  function jpt(t) {
    return t.reduce((e, s) => {
      let [r, i] = s.split(" "), a = fZ.browserNameMap[r];
      if (!a)
        return e;
      try {
        let o = i.split("-")[0].toLowerCase(), l = (0, ko.isUnreleasedVersion)(o, a);
        if (!e[a])
          return e[a] = l ? o : (0, ko.semverify)(o), e;
        let u = e[a], c = (0, ko.isUnreleasedVersion)(u, a);
        if (c && l)
          e[a] = (0, ko.getLowestUnreleased)(u, o, a);
        else if (c)
          e[a] = (0, ko.semverify)(o);
        else if (!c && !l) {
          let p = (0, ko.semverify)(o);
          e[a] = (0, ko.semverMin)(u, p);
        }
      } catch {
      }
      return e;
    }, {});
  }
  n(jpt, "getLowestVersions");
  function Rpt(t) {
    t.length && (console.warn(`Warning, the following targets are using a decimal version:
`), t.forEach(({
      target: e,
      value: s
    }) => console.warn(`  ${e}: ${s}`)), console.warn(`
We recommend using a string for minor/patch versions to avoid numbers like 6.10
getting parsed as 6.1, which can lead to unexpected behavior.
`));
  }
  n(Rpt, "outputDecimalWarning");
  function yZ(t, e) {
    try {
      return (0, ko.semverify)(e);
    } catch {
      throw new Error(K_.formatMessage(`'${e}' is not a valid value for 'targets.${t}'.`));
    }
  }
  n(yZ, "semverifyTarget");
  function qpt(t) {
    return ["node", t === !0 || t === "current" ? process.versions.node.split("-")[0] : yZ("node", t)];
  }
  n(qpt, "nodeTargetParser");
  function Upt(t, e) {
    let s = (0, ko.isUnreleasedVersion)(e, t) ? e.toLowerCase() : yZ(t, e);
    return [t, s];
  }
  n(Upt, "defaultTargetParser");
  function Kpt(t) {
    let e = Object.assign({}, t);
    return delete e.esmodules, delete e.browsers, e;
  }
  n(Kpt, "generateTargets");
  function Vpt(t, e) {
    let s = q_(t, {
      mobileToDesktop: !0,
      env: e
    });
    return jpt(s);
  }
  n(Vpt, "resolveTargets");
  var pZ = new _pt({
    max: 64
  });
  function Wpt(t, e) {
    let s = typeof t == "string" ? t : t.join() + e, r = pZ.get(s);
    return r || (r = Vpt(t, e), pZ.set(s, r)), Object.assign({}, r);
  }
  n(Wpt, "resolveTargetsCached");
  function $pt(t = {}, e = {}) {
    var s, r;
    let {
      browsers: i,
      esmodules: a
    } = t, {
      configPath: o = ".",
      onBrowserslistConfigFound: l
    } = e;
    Fpt(i);
    let u = Kpt(t), c = Mpt(u), h = !!i || Object.keys(c).length > 0, f = !e.ignoreBrowserslistConfig && !h;
    if (!i && f) {
      if (i = process.env.BROWSERSLIST, !i) {
        let y = e.configFile || process.env.BROWSERSLIST_CONFIG || q_.findConfigFile(o);
        y != null && (l?.(y), i = q_.loadConfig({
          config: y,
          env: e.browserslistEnv
        }));
      }
      i == null && (i = []);
    }
    if (a && (a !== "intersect" || !((s = i) != null && s.length)) && (i = Object.keys(R_).map((y) => `${y} >= ${R_[y]}`).join(", "), a = !1),
    (r = i) != null && r.length) {
      let y = Wpt(i, e.browserslistEnv);
      if (a === "intersect")
        for (let T of Object.keys(y))
          if (T !== "deno" && T !== "ie") {
            let b = R_[T === "opera_mobile" ? "op_mob" : T];
            if (b) {
              let E = y[T];
              y[T] = (0, ko.getHighestUnreleased)(E, (0, ko.semverify)(b), T);
            } else
              delete y[T];
          } else
            delete y[T];
      c = Object.assign(y, c);
    }
    let d = {}, m = [];
    for (let y of Object.keys(c).sort()) {
      let T = c[y];
      typeof T == "number" && T % 1 !== 0 && m.push({
        target: y,
        value: T
      });
      let [b, E] = y === "node" ? qpt(T) : Upt(y, T);
      E && (d[b] = E);
    }
    return Rpt(m), d;
  }
  n($pt, "getTargets");
});

// ../node_modules/@babel/core/lib/config/resolve-targets.js
var W_ = g((HP) => {
  "use strict";
  Object.defineProperty(HP, "__esModule", {
    value: !0
  });
  HP.resolveBrowserslistConfigFile = Hpt;
  HP.resolveTargets = Jpt;
  function gZ() {
    let t = Je("path");
    return gZ = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(gZ, "_path");
  function TZ() {
    let t = V_();
    return TZ = /* @__PURE__ */ n(function() {
      return t;
    }, "_helperCompilationTargets"), t;
  }
  n(TZ, "_helperCompilationTargets");
  function Hpt(t, e) {
    return gZ().resolve(e, t);
  }
  n(Hpt, "resolveBrowserslistConfigFile");
  function Jpt(t, e) {
    let s = t.targets, r;
    typeof s == "string" || Array.isArray(s) ? r = {
      browsers: s
    } : s && ("esmodules" in s ? r = Object.assign({}, s, {
      esmodules: "intersect"
    }) : r = s);
    let {
      browserslistConfigFile: i
    } = t, a, o = !1;
    return typeof i == "string" ? a = i : o = i === !1, (0, TZ().default)(r, {
      ignoreBrowserslistConfig: o,
      configFile: a,
      configPath: e,
      browserslistEnv: t.browserslistEnv
    });
  }
  n(Jpt, "resolveTargets");
});

// ../node_modules/@babel/core/lib/config/config-descriptors.js
var $_ = g((p0) => {
  "use strict";
  Object.defineProperty(p0, "__esModule", {
    value: !0
  });
  p0.createCachedDescriptors = Gpt;
  p0.createDescriptor = IZ;
  p0.createUncachedDescriptors = Qpt;
  function PZ() {
    let t = pa();
    return PZ = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(PZ, "_gensync");
  var bZ = DG(), xZ = f0(), Ypt = h0(), c0 = qh(), Xpt = W_();
  function zpt(t, e) {
    var s, r, i, a;
    return t.name === e.name && t.value === e.value && t.options === e.options && t.dirname === e.dirname && t.alias === e.alias && t.ownPass ===
    e.ownPass && ((s = t.file) == null ? void 0 : s.request) === ((r = e.file) == null ? void 0 : r.request) && ((i = t.file) == null ? void 0 :
    i.resolved) === ((a = e.file) == null ? void 0 : a.resolved);
  }
  n(zpt, "isEqualDescriptor");
  function* SZ(t) {
    return t;
  }
  n(SZ, "handlerOf");
  function EZ(t, e) {
    return typeof t.browserslistConfigFile == "string" && (t.browserslistConfigFile = (0, Xpt.resolveBrowserslistConfigFile)(t.browserslistConfigFile,
    e)), t;
  }
  n(EZ, "optionsWithResolvedBrowserslistConfigFile");
  function Gpt(t, e, s) {
    let {
      plugins: r,
      presets: i,
      passPerPreset: a
    } = e;
    return {
      options: EZ(e, t),
      plugins: r ? () => sht(r, t)(s) : () => SZ([]),
      presets: i ? () => eht(i, t)(s)(!!a) : () => SZ([])
    };
  }
  n(Gpt, "createCachedDescriptors");
  function Qpt(t, e, s) {
    return {
      options: EZ(e, t),
      plugins: (0, bZ.once)(() => CZ(e.plugins || [], t, s)),
      presets: (0, bZ.once)(() => vZ(e.presets || [], t, s, !!e.passPerPreset))
    };
  }
  n(Qpt, "createUncachedDescriptors");
  var Zpt = /* @__PURE__ */ new WeakMap(), eht = (0, c0.makeWeakCacheSync)((t, e) => {
    let s = e.using((r) => r);
    return (0, c0.makeStrongCacheSync)((r) => (0, c0.makeStrongCache)(function* (i) {
      return (yield* vZ(t, s, r, i)).map((o) => AZ(Zpt, o));
    }));
  }), tht = /* @__PURE__ */ new WeakMap(), sht = (0, c0.makeWeakCacheSync)((t, e) => {
    let s = e.using((r) => r);
    return (0, c0.makeStrongCache)(function* (r) {
      return (yield* CZ(t, s, r)).map((a) => AZ(tht, a));
    });
  }), rht = {};
  function AZ(t, e) {
    let {
      value: s,
      options: r = rht
    } = e;
    if (r === !1) return e;
    let i = t.get(s);
    i || (i = /* @__PURE__ */ new WeakMap(), t.set(s, i));
    let a = i.get(r);
    if (a || (a = [], i.set(r, a)), !a.includes(e)) {
      let o = a.filter((l) => zpt(l, e));
      if (o.length > 0)
        return o[0];
      a.push(e);
    }
    return e;
  }
  n(AZ, "loadCachedDescriptor");
  function* vZ(t, e, s, r) {
    return yield* wZ("preset", t, e, s, r);
  }
  n(vZ, "createPresetDescriptors");
  function* CZ(t, e, s) {
    return yield* wZ("plugin", t, e, s);
  }
  n(CZ, "createPluginDescriptors");
  function* wZ(t, e, s, r, i) {
    let a = yield* PZ().all(e.map((o, l) => IZ(o, s, {
      type: t,
      alias: `${r}$${l}`,
      ownPass: !!i
    })));
    return iht(a), a;
  }
  n(wZ, "createDescriptors");
  function* IZ(t, e, {
    type: s,
    alias: r,
    ownPass: i
  }) {
    let a = (0, Ypt.getItemDescriptor)(t);
    if (a)
      return a;
    let o, l, u = t;
    Array.isArray(u) && (u.length === 3 ? [u, l, o] = u : [u, l] = u);
    let c, p = null;
    if (typeof u == "string") {
      if (typeof s != "string")
        throw new Error("To resolve a string-based item, the type of item must be given");
      let h = s === "plugin" ? xZ.loadPlugin : xZ.loadPreset, f = u;
      ({
        filepath: p,
        value: u
      } = yield* h(u, e)), c = {
        request: f,
        resolved: p
      };
    }
    if (!u)
      throw new Error(`Unexpected falsy value: ${String(u)}`);
    if (typeof u == "object" && u.__esModule)
      if (u.default)
        u = u.default;
      else
        throw new Error("Must export a default export when using ES6 modules.");
    if (typeof u != "object" && typeof u != "function")
      throw new Error(`Unsupported format: ${typeof u}. Expected an object or a function.`);
    if (p !== null && typeof u == "object" && u)
      throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${p}`);
    return {
      name: o,
      alias: p || r,
      value: u,
      options: l,
      dirname: e,
      ownPass: i,
      file: c
    };
  }
  n(IZ, "createDescriptor");
  function iht(t) {
    let e = /* @__PURE__ */ new Map();
    for (let s of t) {
      if (typeof s.value != "function") continue;
      let r = e.get(s.value);
      if (r || (r = /* @__PURE__ */ new Set(), e.set(s.value, r)), r.has(s.name)) {
        let i = t.filter((a) => a.value === s.value);
        throw new Error(["Duplicate plugin/preset detected.", "If you'd like to use two separate instances of a plugin,", "they need separat\
e names, e.g.", "", "  plugins: [", "    ['some-plugin', {}],", "    ['some-plugin', {}, 'some unique name'],", "  ]", "", "Duplicates detec\
ted are:", `${JSON.stringify(i, null, 2)}`].join(`
`));
      }
      r.add(s.name);
    }
  }
  n(iht, "assertNoDuplicates");
});

// ../node_modules/@babel/core/lib/config/item.js
var h0 = g((d0) => {
  "use strict";
  Object.defineProperty(d0, "__esModule", {
    value: !0
  });
  d0.createConfigItem = aht;
  d0.createItemFromDescriptor = kZ;
  d0.getItemDescriptor = oht;
  function NZ() {
    let t = Je("path");
    return NZ = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(NZ, "_path");
  var nht = $_();
  function kZ(t) {
    return new JP(t);
  }
  n(kZ, "createItemFromDescriptor");
  function* aht(t, {
    dirname: e = ".",
    type: s
  } = {}) {
    let r = yield* (0, nht.createDescriptor)(t, NZ().resolve(e), {
      type: s,
      alias: "programmatic item"
    });
    return kZ(r);
  }
  n(aht, "createConfigItem");
  var H_ = Symbol.for("@babel/core@7 - ConfigItem");
  function oht(t) {
    if (t != null && t[H_])
      return t._descriptor;
  }
  n(oht, "getItemDescriptor");
  var JP = class {
    static {
      n(this, "ConfigItem");
    }
    constructor(e) {
      this._descriptor = void 0, this[H_] = !0, this.value = void 0, this.options = void 0, this.dirname = void 0, this.name = void 0, this.
      file = void 0, this._descriptor = e, Object.defineProperty(this, "_descriptor", {
        enumerable: !1
      }), Object.defineProperty(this, H_, {
        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);
    }
  };
  Object.freeze(JP.prototype);
});

// ../node_modules/@babel/core/lib/config/validation/removed.js
var DZ = g((YP) => {
  "use strict";
  Object.defineProperty(YP, "__esModule", {
    value: !0
  });
  YP.default = void 0;
  var AWs = YP.default = {
    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.i\
o/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.fi\
le` themselves."
    }
  };
});

// ../node_modules/@babel/core/lib/config/validation/option-assertions.js
var X_ = g((oi) => {
  "use strict";
  Object.defineProperty(oi, "__esModule", {
    value: !0
  });
  oi.access = ha;
  oi.assertArray = Y_;
  oi.assertAssumptions = Cht;
  oi.assertBabelrcSearch = Sht;
  oi.assertBoolean = J_;
  oi.assertCallerMetadata = fht;
  oi.assertCompact = pht;
  oi.assertConfigApplicableTest = bht;
  oi.assertConfigFileSearch = xht;
  oi.assertFunction = yht;
  oi.assertIgnoreList = ght;
  oi.assertInputSourceMap = dht;
  oi.assertObject = LZ;
  oi.assertPluginList = Pht;
  oi.assertRootMode = uht;
  oi.assertSourceMaps = cht;
  oi.assertSourceType = hht;
  oi.assertString = mht;
  oi.assertTargets = Aht;
  oi.msg = vs;
  function m0() {
    let t = V_();
    return m0 = /* @__PURE__ */ n(function() {
      return t;
    }, "_helperCompilationTargets"), t;
  }
  n(m0, "_helperCompilationTargets");
  var lht = y0();
  function vs(t) {
    switch (t.type) {
      case "root":
        return "";
      case "env":
        return `${vs(t.parent)}.env["${t.name}"]`;
      case "overrides":
        return `${vs(t.parent)}.overrides[${t.index}]`;
      case "option":
        return `${vs(t.parent)}.${t.name}`;
      case "access":
        return `${vs(t.parent)}[${JSON.stringify(t.name)}]`;
      default:
        throw new Error(`Assertion failure: Unknown type ${t.type}`);
    }
  }
  n(vs, "msg");
  function ha(t, e) {
    return {
      type: "access",
      name: e,
      parent: t
    };
  }
  n(ha, "access");
  function uht(t, e) {
    if (e !== void 0 && e !== "root" && e !== "upward" && e !== "upward-optional")
      throw new Error(`${vs(t)} must be a "root", "upward", "upward-optional" or undefined`);
    return e;
  }
  n(uht, "assertRootMode");
  function cht(t, e) {
    if (e !== void 0 && typeof e != "boolean" && e !== "inline" && e !== "both")
      throw new Error(`${vs(t)} must be a boolean, "inline", "both", or undefined`);
    return e;
  }
  n(cht, "assertSourceMaps");
  function pht(t, e) {
    if (e !== void 0 && typeof e != "boolean" && e !== "auto")
      throw new Error(`${vs(t)} must be a boolean, "auto", or undefined`);
    return e;
  }
  n(pht, "assertCompact");
  function hht(t, e) {
    if (e !== void 0 && e !== "module" && e !== "script" && e !== "unambiguous")
      throw new Error(`${vs(t)} must be "module", "script", "unambiguous", or undefined`);
    return e;
  }
  n(hht, "assertSourceType");
  function fht(t, e) {
    let s = LZ(t, e);
    if (s) {
      if (typeof s.name != "string")
        throw new Error(`${vs(t)} set but does not contain "name" property string`);
      for (let r of Object.keys(s)) {
        let i = ha(t, r), a = s[r];
        if (a != null && typeof a != "boolean" && typeof a != "string" && typeof a != "number")
          throw new Error(`${vs(i)} must be null, undefined, a boolean, a string, or a number.`);
      }
    }
    return e;
  }
  n(fht, "assertCallerMetadata");
  function dht(t, e) {
    if (e !== void 0 && typeof e != "boolean" && (typeof e != "object" || !e))
      throw new Error(`${vs(t)} must be a boolean, object, or undefined`);
    return e;
  }
  n(dht, "assertInputSourceMap");
  function mht(t, e) {
    if (e !== void 0 && typeof e != "string")
      throw new Error(`${vs(t)} must be a string, or undefined`);
    return e;
  }
  n(mht, "assertString");
  function yht(t, e) {
    if (e !== void 0 && typeof e != "function")
      throw new Error(`${vs(t)} must be a function, or undefined`);
    return e;
  }
  n(yht, "assertFunction");
  function J_(t, e) {
    if (e !== void 0 && typeof e != "boolean")
      throw new Error(`${vs(t)} must be a boolean, or undefined`);
    return e;
  }
  n(J_, "assertBoolean");
  function LZ(t, e) {
    if (e !== void 0 && (typeof e != "object" || Array.isArray(e) || !e))
      throw new Error(`${vs(t)} must be an object, or undefined`);
    return e;
  }
  n(LZ, "assertObject");
  function Y_(t, e) {
    if (e != null && !Array.isArray(e))
      throw new Error(`${vs(t)} must be an array, or undefined`);
    return e;
  }
  n(Y_, "assertArray");
  function ght(t, e) {
    let s = Y_(t, e);
    return s?.forEach((r, i) => Tht(ha(t, i), r)), s;
  }
  n(ght, "assertIgnoreList");
  function Tht(t, e) {
    if (typeof e != "string" && typeof e != "function" && !(e instanceof RegExp))
      throw new Error(`${vs(t)} must be an array of string/Function/RegExp values, or undefined`);
    return e;
  }
  n(Tht, "assertIgnoreItem");
  function bht(t, e) {
    if (e === void 0)
      return e;
    if (Array.isArray(e))
      e.forEach((s, r) => {
        if (!XP(s))
          throw new Error(`${vs(ha(t, r))} must be a string/Function/RegExp.`);
      });
    else if (!XP(e))
      throw new Error(`${vs(t)} must be a string/Function/RegExp, or an array of those`);
    return e;
  }
  n(bht, "assertConfigApplicableTest");
  function XP(t) {
    return typeof t == "string" || typeof t == "function" || t instanceof RegExp;
  }
  n(XP, "checkValidTest");
  function xht(t, e) {
    if (e !== void 0 && typeof e != "boolean" && typeof e != "string")
      throw new Error(`${vs(t)} must be a undefined, a boolean, a string, got ${JSON.stringify(e)}`);
    return e;
  }
  n(xht, "assertConfigFileSearch");
  function Sht(t, e) {
    if (e === void 0 || typeof e == "boolean")
      return e;
    if (Array.isArray(e))
      e.forEach((s, r) => {
        if (!XP(s))
          throw new Error(`${vs(ha(t, r))} must be a string/Function/RegExp.`);
      });
    else if (!XP(e))
      throw new Error(`${vs(t)} must be a undefined, a boolean, a string/Function/RegExp or an array of those, got ${JSON.stringify(e)}`);
    return e;
  }
  n(Sht, "assertBabelrcSearch");
  function Pht(t, e) {
    let s = Y_(t, e);
    return s && s.forEach((r, i) => Eht(ha(t, i), r)), s;
  }
  n(Pht, "assertPluginList");
  function Eht(t, e) {
    if (Array.isArray(e)) {
      if (e.length === 0)
        throw new Error(`${vs(t)} must include an object`);
      if (e.length > 3)
        throw new Error(`${vs(t)} may only be a two-tuple or three-tuple`);
      if (OZ(ha(t, 0), e[0]), e.length > 1) {
        let s = e[1];
        if (s !== void 0 && s !== !1 && (typeof s != "object" || Array.isArray(s) || s === null))
          throw new Error(`${vs(ha(t, 1))} must be an object, false, or undefined`);
      }
      if (e.length === 3) {
        let s = e[2];
        if (s !== void 0 && typeof s != "string")
          throw new Error(`${vs(ha(t, 2))} must be a string, or undefined`);
      }
    } else
      OZ(t, e);
    return e;
  }
  n(Eht, "assertPluginItem");
  function OZ(t, e) {
    if ((typeof e != "object" || !e) && typeof e != "string" && typeof e != "function")
      throw new Error(`${vs(t)} must be a string, object, function`);
    return e;
  }
  n(OZ, "assertPluginTarget");
  function Aht(t, e) {
    if ((0, m0().isBrowsersQueryValid)(e)) return e;
    if (typeof e != "object" || !e || Array.isArray(e))
      throw new Error(`${vs(t)} must be a string, an array of strings or an object`);
    let s = ha(t, "browsers"), r = ha(t, "esmodules");
    _Z(s, e.browsers), J_(r, e.esmodules);
    for (let i of Object.keys(e)) {
      let a = e[i], o = ha(t, i);
      if (i === "esmodules") J_(o, a);
      else if (i === "browsers") _Z(o, a);
      else if (hasOwnProperty.call(m0().TargetNames, i))
        vht(o, a);
      else {
        let l = Object.keys(m0().TargetNames).join(", ");
        throw new Error(`${vs(o)} is not a valid target. Supported targets are ${l}`);
      }
    }
    return e;
  }
  n(Aht, "assertTargets");
  function _Z(t, e) {
    if (e !== void 0 && !(0, m0().isBrowsersQueryValid)(e))
      throw new Error(`${vs(t)} must be undefined, a string or an array of strings`);
  }
  n(_Z, "assertBrowsersList");
  function vht(t, e) {
    if (!(typeof e == "number" && Math.round(e) === e) && typeof e != "string")
      throw new Error(`${vs(t)} must be a string or an integer number`);
  }
  n(vht, "assertBrowserVersion");
  function Cht(t, e) {
    if (e === void 0) return;
    if (typeof e != "object" || e === null)
      throw new Error(`${vs(t)} must be an object or undefined.`);
    let s = t;
    do
      s = s.parent;
    while (s.type !== "root");
    let r = s.source === "preset";
    for (let i of Object.keys(e)) {
      let a = ha(t, i);
      if (!lht.assumptionsNames.has(i))
        throw new Error(`${vs(a)} is not a supported assumption.`);
      if (typeof e[i] != "boolean")
        throw new Error(`${vs(a)} must be a boolean.`);
      if (r && e[i] === !1)
        throw new Error(`${vs(a)} cannot be set to 'false' inside presets.`);
    }
    return e;
  }
  n(Cht, "assertAssumptions");
});

// ../node_modules/@babel/core/lib/config/validation/options.js
var y0 = g((um) => {
  "use strict";
  Object.defineProperty(um, "__esModule", {
    value: !0
  });
  um.assumptionsNames = void 0;
  um.checkNoUnwrappedItemOptionPairs = Lht;
  um.validate = Nht;
  var BZ = DZ(), Tt = X_(), wht = Uh(), MZ = {
    cwd: Tt.assertString,
    root: Tt.assertString,
    rootMode: Tt.assertRootMode,
    configFile: Tt.assertConfigFileSearch,
    caller: Tt.assertCallerMetadata,
    filename: Tt.assertString,
    filenameRelative: Tt.assertString,
    code: Tt.assertBoolean,
    ast: Tt.assertBoolean,
    cloneInputAst: Tt.assertBoolean,
    envName: Tt.assertString
  }, FZ = {
    babelrc: Tt.assertBoolean,
    babelrcRoots: Tt.assertBabelrcSearch
  }, jZ = {
    extends: Tt.assertString,
    ignore: Tt.assertIgnoreList,
    only: Tt.assertIgnoreList,
    targets: Tt.assertTargets,
    browserslistConfigFile: Tt.assertConfigFileSearch,
    browserslistEnv: Tt.assertString
  }, RZ = {
    inputSourceMap: Tt.assertInputSourceMap,
    presets: Tt.assertPluginList,
    plugins: Tt.assertPluginList,
    passPerPreset: Tt.assertBoolean,
    assumptions: Tt.assertAssumptions,
    env: Oht,
    overrides: _ht,
    test: Tt.assertConfigApplicableTest,
    include: Tt.assertConfigApplicableTest,
    exclude: Tt.assertConfigApplicableTest,
    retainLines: Tt.assertBoolean,
    comments: Tt.assertBoolean,
    shouldPrintComment: Tt.assertFunction,
    compact: Tt.assertCompact,
    minified: Tt.assertBoolean,
    auxiliaryCommentBefore: Tt.assertString,
    auxiliaryCommentAfter: Tt.assertString,
    sourceType: Tt.assertSourceType,
    wrapPluginVisitorMethod: Tt.assertFunction,
    highlightCode: Tt.assertBoolean,
    sourceMaps: Tt.assertSourceMaps,
    sourceMap: Tt.assertSourceMaps,
    sourceFileName: Tt.assertString,
    sourceRoot: Tt.assertString,
    parserOpts: Tt.assertObject,
    generatorOpts: Tt.assertObject
  };
  Object.assign(RZ, {
    getModuleId: Tt.assertFunction,
    moduleRoot: Tt.assertString,
    moduleIds: Tt.assertBoolean,
    moduleId: Tt.assertString
  });
  var Iht = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitive\
Hint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "noUnini\
tializedPrivateFieldAccess", "objectRestNoSymbols", "privateFieldsAsSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods",
  "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"], IWs = um.
  assumptionsNames = new Set(Iht);
  function qZ(t) {
    return t.type === "root" ? t.source : qZ(t.parent);
  }
  n(qZ, "getSource");
  function Nht(t, e, s) {
    try {
      return z_({
        type: "root",
        source: t
      }, e);
    } catch (r) {
      let i = new wht.default(r.message, s);
      throw r.code && (i.code = r.code), i;
    }
  }
  n(Nht, "validate");
  function z_(t, e) {
    let s = qZ(t);
    return Dht(e), Object.keys(e).forEach((r) => {
      let i = {
        type: "option",
        name: r,
        parent: t
      };
      if (s === "preset" && jZ[r])
        throw new Error(`${(0, Tt.msg)(i)} is not allowed in preset options`);
      if (s !== "arguments" && MZ[r])
        throw new Error(`${(0, Tt.msg)(i)} is only allowed in root programmatic options`);
      if (s !== "arguments" && s !== "configfile" && FZ[r])
        throw s === "babelrcfile" || s === "extendsfile" ? new Error(`${(0, Tt.msg)(i)} is not allowed in .babelrc or "extends"ed files, onl\
y in root programmatic options, or babel.config.js/config file options`) : new Error(`${(0, Tt.msg)(i)} is only allowed in root programmatic\
 options, or babel.config.js/config file options`);
      (RZ[r] || jZ[r] || FZ[r] || MZ[r] || kht)(i, e[r]);
    }), e;
  }
  n(z_, "validateNested");
  function kht(t) {
    let e = t.name;
    if (BZ.default[e]) {
      let {
        message: s,
        version: r = 5
      } = BZ.default[e];
      throw new Error(`Using removed Babel ${r} option: ${(0, Tt.msg)(t)} - ${s}`);
    } else {
      let s = new Error(`Unknown option: ${(0, Tt.msg)(t)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information ab\
out options.`);
      throw s.code = "BABEL_UNKNOWN_OPTION", s;
    }
  }
  n(kht, "throwUnknownError");
  function Dht(t) {
    if (hasOwnProperty.call(t, "sourceMap") && hasOwnProperty.call(t, "sourceMaps"))
      throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both");
  }
  n(Dht, "assertNoDuplicateSourcemap");
  function Oht(t, e) {
    if (t.parent.type === "env")
      throw new Error(`${(0, Tt.msg)(t)} is not allowed inside of another .env block`);
    let s = t.parent, r = (0, Tt.assertObject)(t, e);
    if (r)
      for (let i of Object.keys(r)) {
        let a = (0, Tt.assertObject)((0, Tt.access)(t, i), r[i]);
        if (!a) continue;
        z_({
          type: "env",
          name: i,
          parent: s
        }, a);
      }
    return r;
  }
  n(Oht, "assertEnvSet");
  function _ht(t, e) {
    if (t.parent.type === "env")
      throw new Error(`${(0, Tt.msg)(t)} is not allowed inside an .env block`);
    if (t.parent.type === "overrides")
      throw new Error(`${(0, Tt.msg)(t)} is not allowed inside an .overrides block`);
    let s = t.parent, r = (0, Tt.assertArray)(t, e);
    if (r)
      for (let [i, a] of r.entries()) {
        let o = (0, Tt.access)(t, i), l = (0, Tt.assertObject)(o, a);
        if (!l) throw new Error(`${(0, Tt.msg)(o)} must be an object`);
        z_({
          type: "overrides",
          index: i,
          parent: s
        }, l);
      }
    return r;
  }
  n(_ht, "assertOverridesList");
  function Lht(t, e, s, r) {
    if (e === 0) return;
    let i = t[e - 1], a = t[e];
    i.file && i.options === void 0 && typeof a.value == "object" && (r.message += `
- Maybe you meant to use
"${s}s": [
  ["${i.file.request}", ${JSON.stringify(a.value, void 0, 2)}]
]
To be a valid ${s}, its name and options should be wrapped in a pair of brackets`);
  }
  n(Lht, "checkNoUnwrappedItemOptionPairs");
});

// ../node_modules/@babel/core/lib/config/pattern-to-regex.js
var tL = g((eL) => {
  "use strict";
  Object.defineProperty(eL, "__esModule", {
    value: !0
  });
  eL.default = Fht;
  function zP() {
    let t = Je("path");
    return zP = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(zP, "_path");
  var g0 = `\\${zP().sep}`, G_ = `(?:${g0}|$)`, Q_ = `[^${g0}]+`, Z_ = `(?:${Q_}${g0})`, KZ = `(?:${Q_}${G_})`, Bht = `${Z_}*?`, Mht = `${Z_}\
*?${KZ}?`;
  function UZ(t) {
    return t.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
  }
  n(UZ, "escapeRegExp");
  function Fht(t, e) {
    let s = zP().resolve(e, t).split(zP().sep);
    return new RegExp(["^", ...s.map((r, i) => {
      let a = i === s.length - 1;
      return r === "**" ? a ? Mht : Bht : r === "*" ? a ? KZ : Z_ : r.indexOf("*.") === 0 ? Q_ + UZ(r.slice(1)) + (a ? G_ : g0) : UZ(r) + (a ?
      G_ : g0);
    })].join(""));
  }
  n(Fht, "pathToPattern");
});

// ../node_modules/@babel/core/lib/config/printer.js
var $Z = g((cm) => {
  "use strict";
  Object.defineProperty(cm, "__esModule", {
    value: !0
  });
  cm.ConfigPrinter = cm.ChainFormatter = void 0;
  function WZ() {
    let t = pa();
    return WZ = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(WZ, "_gensync");
  var jht = cm.ChainFormatter = {
    Programmatic: 0,
    Config: 1
  }, sL = {
    title(t, e, s) {
      let r = "";
      return t === jht.Programmatic ? (r = "programmatic options", e && (r += " from " + e)) : r = "config " + s, r;
    },
    loc(t, e) {
      let s = "";
      return t != null && (s += `.overrides[${t}]`), e != null && (s += `.env["${e}"]`), s;
    },
    *optionsAndDescriptors(t) {
      let e = Object.assign({}, t.options);
      delete e.overrides, delete e.env;
      let s = [...yield* t.plugins()];
      s.length && (e.plugins = s.map((i) => VZ(i)));
      let r = [...yield* t.presets()];
      return r.length && (e.presets = [...r].map((i) => VZ(i))), JSON.stringify(e, void 0, 2);
    }
  };
  function VZ(t) {
    var e;
    let s = (e = t.file) == null ? void 0 : e.request;
    return s == null && (typeof t.value == "object" ? s = t.value : typeof t.value == "function" && (s = `[Function: ${t.value.toString().slice(
    0, 50)} ... ]`)), s == null && (s = "[Unknown]"), t.options === void 0 ? s : t.name == null ? [s, t.options] : [s, t.options, t.name];
  }
  n(VZ, "descriptorToConfig");
  var rL = class t {
    static {
      n(this, "ConfigPrinter");
    }
    constructor() {
      this._stack = [];
    }
    configure(e, s, {
      callerName: r,
      filepath: i
    }) {
      return e ? (a, o, l) => {
        this._stack.push({
          type: s,
          callerName: r,
          filepath: i,
          content: a,
          index: o,
          envName: l
        });
      } : () => {
      };
    }
    static *format(e) {
      let s = sL.title(e.type, e.callerName, e.filepath), r = sL.loc(e.index, e.envName);
      r && (s += ` ${r}`);
      let i = yield* sL.optionsAndDescriptors(e.content);
      return `${s}
${i}`;
    }
    *output() {
      return this._stack.length === 0 ? "" : (yield* WZ().all(this._stack.map((s) => t.format(s)))).join(`

`);
    }
  };
  cm.ConfigPrinter = rL;
});

// ../node_modules/@babel/core/lib/config/config-chain.js
var fL = g((hm) => {
  "use strict";
  Object.defineProperty(hm, "__esModule", {
    value: !0
  });
  hm.buildPresetChain = Uht;
  hm.buildPresetChainWalker = void 0;
  hm.buildRootChain = Jht;
  function YZ() {
    let t = Je("path");
    return YZ = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(YZ, "_path");
  function XZ() {
    let t = go();
    return XZ = /* @__PURE__ */ n(function() {
      return t;
    }, "_debug"), t;
  }
  n(XZ, "_debug");
  var oL = y0(), zZ = tL(), b0 = $Z(), Rht = bu(), qht = Uh(), T0 = f0(), Di = qh(), Fa = $_(), HZ = XZ()("babel:config:config-chain");
  function* Uht(t, e) {
    let s = yield* Kht(t, e);
    return s ? {
      plugins: ZP(s.plugins),
      presets: ZP(s.presets),
      options: s.options.map((r) => GZ(r)),
      files: /* @__PURE__ */ new Set()
    } : null;
  }
  n(Uht, "buildPresetChain");
  var Kht = hm.buildPresetChainWalker = hL({
    root: /* @__PURE__ */ n((t) => Vht(t), "root"),
    env: /* @__PURE__ */ n((t, e) => Wht(t)(e), "env"),
    overrides: /* @__PURE__ */ n((t, e) => $ht(t)(e), "overrides"),
    overridesEnv: /* @__PURE__ */ n((t, e, s) => Hht(t)(e)(s), "overridesEnv"),
    createLogger: /* @__PURE__ */ n(() => () => {
    }, "createLogger")
  }), Vht = (0, Di.makeWeakCacheSync)((t) => lL(t, t.alias, Fa.createUncachedDescriptors)), Wht = (0, Di.makeWeakCacheSync)((t) => (0, Di.makeStrongCacheSync)(
  (e) => uL(t, t.alias, Fa.createUncachedDescriptors, e))), $ht = (0, Di.makeWeakCacheSync)((t) => (0, Di.makeStrongCacheSync)((e) => cL(t, t.
  alias, Fa.createUncachedDescriptors, e))), Hht = (0, Di.makeWeakCacheSync)((t) => (0, Di.makeStrongCacheSync)((e) => (0, Di.makeStrongCacheSync)(
  (s) => pL(t, t.alias, Fa.createUncachedDescriptors, e, s))));
  function* Jht(t, e) {
    let s, r, i = new b0.ConfigPrinter(), a = yield* Qht({
      options: t,
      dirname: e.cwd
    }, e, void 0, i);
    if (!a) return null;
    let o = yield* i.output(), l;
    typeof t.configFile == "string" ? l = yield* (0, T0.loadConfig)(t.configFile, e.cwd, e.envName, e.caller) : t.configFile !== !1 && (l = yield* (0, T0.
    findRootConfig)(e.root, e.envName, e.caller));
    let {
      babelrc: u,
      babelrcRoots: c
    } = t, p = e.cwd, h = QP(), f = new b0.ConfigPrinter();
    if (l) {
      let E = Xht(l), V = yield* nL(E, e, void 0, f);
      if (!V) return null;
      s = yield* f.output(), u === void 0 && (u = E.options.babelrc), c === void 0 && (p = E.dirname, c = E.options.babelrcRoots), pm(h, V);
    }
    let d, m, y = !1, T = QP();
    if ((u === !0 || u === void 0) && typeof e.filename == "string") {
      let E = yield* (0, T0.findPackageData)(e.filename);
      if (E && Yht(e, E, c, p)) {
        if ({
          ignore: d,
          config: m
        } = yield* (0, T0.findRelativeConfig)(E, e.envName, e.caller), d && T.files.add(d.filepath), d && QZ(e, d.ignore, null, d.dirname) &&
        (y = !0), m && !y) {
          let V = zht(m), W = new b0.ConfigPrinter(), oe = yield* nL(V, e, void 0, W);
          oe ? (r = yield* W.output(), pm(T, oe)) : y = !0;
        }
        m && y && T.files.add(m.filepath);
      }
    }
    e.showConfig && console.log(`Babel configs on "${e.filename}" (ascending priority):
` + [s, r, o].filter((E) => !!E).join(`

`) + `
-----End Babel configs-----`);
    let b = pm(pm(pm(QP(), h), T), a);
    return {
      plugins: y ? [] : ZP(b.plugins),
      presets: y ? [] : ZP(b.presets),
      options: y ? [] : b.options.map((E) => GZ(E)),
      fileHandling: y ? "ignored" : "transpile",
      ignore: d || void 0,
      babelrc: m || void 0,
      config: l || void 0,
      files: b.files
    };
  }
  n(Jht, "buildRootChain");
  function Yht(t, e, s, r) {
    if (typeof s == "boolean") return s;
    let i = t.root;
    if (s === void 0)
      return e.directories.includes(i);
    let a = s;
    return Array.isArray(a) || (a = [a]), a = a.map((o) => typeof o == "string" ? YZ().resolve(r, o) : o), a.length === 1 && a[0] === i ? e.
    directories.includes(i) : a.some((o) => (typeof o == "string" && (o = (0, zZ.default)(o, r)), e.directories.some((l) => ZZ(o, r, l, t))));
  }
  n(Yht, "babelrcLoadEnabled");
  var Xht = (0, Di.makeWeakCacheSync)((t) => ({
    filepath: t.filepath,
    dirname: t.dirname,
    options: (0, oL.validate)("configfile", t.options, t.filepath)
  })), zht = (0, Di.makeWeakCacheSync)((t) => ({
    filepath: t.filepath,
    dirname: t.dirname,
    options: (0, oL.validate)("babelrcfile", t.options, t.filepath)
  })), Ght = (0, Di.makeWeakCacheSync)((t) => ({
    filepath: t.filepath,
    dirname: t.dirname,
    options: (0, oL.validate)("extendsfile", t.options, t.filepath)
  })), Qht = hL({
    root: /* @__PURE__ */ n((t) => lL(t, "base", Fa.createCachedDescriptors), "root"),
    env: /* @__PURE__ */ n((t, e) => uL(t, "base", Fa.createCachedDescriptors, e), "env"),
    overrides: /* @__PURE__ */ n((t, e) => cL(t, "base", Fa.createCachedDescriptors, e), "overrides"),
    overridesEnv: /* @__PURE__ */ n((t, e, s) => pL(t, "base", Fa.createCachedDescriptors, e, s), "overridesEnv"),
    createLogger: /* @__PURE__ */ n((t, e, s) => nft(t, e, s), "createLogger")
  }), Zht = hL({
    root: /* @__PURE__ */ n((t) => eft(t), "root"),
    env: /* @__PURE__ */ n((t, e) => tft(t)(e), "env"),
    overrides: /* @__PURE__ */ n((t, e) => sft(t)(e), "overrides"),
    overridesEnv: /* @__PURE__ */ n((t, e, s) => rft(t)(e)(s), "overridesEnv"),
    createLogger: /* @__PURE__ */ n((t, e, s) => ift(t.filepath, e, s), "createLogger")
  });
  function* nL(t, e, s, r) {
    let i = yield* Zht(t, e, s, r);
    return i?.files.add(t.filepath), i;
  }
  n(nL, "loadFileChain");
  var eft = (0, Di.makeWeakCacheSync)((t) => lL(t, t.filepath, Fa.createUncachedDescriptors)), tft = (0, Di.makeWeakCacheSync)((t) => (0, Di.
  makeStrongCacheSync)((e) => uL(t, t.filepath, Fa.createUncachedDescriptors, e))), sft = (0, Di.makeWeakCacheSync)((t) => (0, Di.makeStrongCacheSync)(
  (e) => cL(t, t.filepath, Fa.createUncachedDescriptors, e))), rft = (0, Di.makeWeakCacheSync)((t) => (0, Di.makeStrongCacheSync)((e) => (0, Di.
  makeStrongCacheSync)((s) => pL(t, t.filepath, Fa.createUncachedDescriptors, e, s))));
  function ift(t, e, s) {
    return s ? s.configure(e.showConfig, b0.ChainFormatter.Config, {
      filepath: t
    }) : () => {
    };
  }
  n(ift, "buildFileLogger");
  function lL({
    dirname: t,
    options: e
  }, s, r) {
    return r(t, e, s);
  }
  n(lL, "buildRootDescriptors");
  function nft(t, e, s) {
    var r;
    return s ? s.configure(e.showConfig, b0.ChainFormatter.Programmatic, {
      callerName: (r = e.caller) == null ? void 0 : r.name
    }) : () => {
    };
  }
  n(nft, "buildProgrammaticLogger");
  function uL({
    dirname: t,
    options: e
  }, s, r, i) {
    var a;
    let o = (a = e.env) == null ? void 0 : a[i];
    return o ? r(t, o, `${s}.env["${i}"]`) : null;
  }
  n(uL, "buildEnvDescriptors");
  function cL({
    dirname: t,
    options: e
  }, s, r, i) {
    var a;
    let o = (a = e.overrides) == null ? void 0 : a[i];
    if (!o) throw new Error("Assertion failure - missing override");
    return r(t, o, `${s}.overrides[${i}]`);
  }
  n(cL, "buildOverrideDescriptors");
  function pL({
    dirname: t,
    options: e
  }, s, r, i, a) {
    var o, l;
    let u = (o = e.overrides) == null ? void 0 : o[i];
    if (!u) throw new Error("Assertion failure - missing override");
    let c = (l = u.env) == null ? void 0 : l[a];
    return c ? r(t, c, `${s}.overrides[${i}].env["${a}"]`) : null;
  }
  n(pL, "buildOverrideEnvDescriptors");
  function hL({
    root: t,
    env: e,
    overrides: s,
    overridesEnv: r,
    createLogger: i
  }) {
    return /* @__PURE__ */ n(function* (o, l, u = /* @__PURE__ */ new Set(), c) {
      let {
        dirname: p
      } = o, h = [], f = t(o);
      if (GP(f, p, l, o.filepath)) {
        h.push({
          config: f,
          envName: void 0,
          index: void 0
        });
        let y = e(o, l.envName);
        y && GP(y, p, l, o.filepath) && h.push({
          config: y,
          envName: l.envName,
          index: void 0
        }), (f.options.overrides || []).forEach((T, b) => {
          let E = s(o, b);
          if (GP(E, p, l, o.filepath)) {
            h.push({
              config: E,
              index: b,
              envName: void 0
            });
            let V = r(o, b, l.envName);
            V && GP(V, p, l, o.filepath) && h.push({
              config: V,
              index: b,
              envName: l.envName
            });
          }
        });
      }
      if (h.some(({
        config: {
          options: {
            ignore: y,
            only: T
          }
        }
      }) => QZ(l, y, T, p)))
        return null;
      let d = QP(), m = i(o, l, c);
      for (let {
        config: y,
        index: T,
        envName: b
      } of h) {
        if (!(yield* aft(d, y.options, p, l, u, c)))
          return null;
        m(y, T, b), yield* oft(d, y);
      }
      return d;
    }, "chainWalker");
  }
  n(hL, "makeChainWalker");
  function* aft(t, e, s, r, i, a) {
    if (e.extends === void 0) return !0;
    let o = yield* (0, T0.loadConfig)(e.extends, s, r.envName, r.caller);
    if (i.has(o))
      throw new Error(`Configuration cycle detected loading ${o.filepath}.
File already loaded following the config chain:
` + Array.from(i, (u) => ` - ${u.filepath}`).join(`
`));
    i.add(o);
    let l = yield* nL(Ght(o), r, i, a);
    return i.delete(o), l ? (pm(t, l), !0) : !1;
  }
  n(aft, "mergeExtendsChain");
  function pm(t, e) {
    t.options.push(...e.options), t.plugins.push(...e.plugins), t.presets.push(...e.presets);
    for (let s of e.files)
      t.files.add(s);
    return t;
  }
  n(pm, "mergeChain");
  function* oft(t, {
    options: e,
    plugins: s,
    presets: r
  }) {
    return t.options.push(e), t.plugins.push(...yield* s()), t.presets.push(...yield* r()), t;
  }
  n(oft, "mergeChainOpts");
  function QP() {
    return {
      options: [],
      presets: [],
      plugins: [],
      files: /* @__PURE__ */ new Set()
    };
  }
  n(QP, "emptyChain");
  function GZ(t) {
    let e = Object.assign({}, t);
    return delete e.extends, delete e.env, delete e.overrides, delete e.plugins, delete e.presets, delete e.passPerPreset, delete e.ignore, delete e.
    only, delete e.test, delete e.include, delete e.exclude, hasOwnProperty.call(e, "sourceMap") && (e.sourceMaps = e.sourceMap, delete e.sourceMap),
    e;
  }
  n(GZ, "normalizeOptions");
  function ZP(t) {
    let e = /* @__PURE__ */ new Map(), s = [];
    for (let r of t)
      if (typeof r.value == "function") {
        let i = r.value, a = e.get(i);
        a || (a = /* @__PURE__ */ new Map(), e.set(i, a));
        let o = a.get(r.name);
        o ? o.value = r : (o = {
          value: r
        }, s.push(o), r.ownPass || a.set(r.name, o));
      } else
        s.push({
          value: r
        });
    return s.reduce((r, i) => (r.push(i.value), r), []);
  }
  n(ZP, "dedupDescriptors");
  function GP({
    options: t
  }, e, s, r) {
    return (t.test === void 0 || iL(s, t.test, e, r)) && (t.include === void 0 || iL(s, t.include, e, r)) && (t.exclude === void 0 || !iL(s,
    t.exclude, e, r));
  }
  n(GP, "configIsApplicable");
  function iL(t, e, s, r) {
    let i = Array.isArray(e) ? e : [e];
    return aL(t, i, s, r);
  }
  n(iL, "configFieldIsApplicable");
  function JZ(t, e) {
    return e instanceof RegExp ? String(e) : e;
  }
  n(JZ, "ignoreListReplacer");
  function QZ(t, e, s, r) {
    if (e && aL(t, e, r)) {
      var i;
      let o = `No config is applied to "${(i = t.filename) != null ? i : "(unknown)"}" because it matches one of \`ignore: ${JSON.stringify(
      e, JZ)}\` from "${r}"`;
      return HZ(o), t.showConfig && console.log(o), !0;
    }
    if (s && !aL(t, s, r)) {
      var a;
      let o = `No config is applied to "${(a = t.filename) != null ? a : "(unknown)"}" because it fails to match one of \`only: ${JSON.stringify(
      s, JZ)}\` from "${r}"`;
      return HZ(o), t.showConfig && console.log(o), !0;
    }
    return !1;
  }
  n(QZ, "shouldIgnore");
  function aL(t, e, s, r) {
    return e.some((i) => ZZ(i, s, t.filename, t, r));
  }
  n(aL, "matchesPatterns");
  function ZZ(t, e, s, r, i) {
    if (typeof t == "function")
      return !!(0, Rht.endHiddenCallStack)(t)(s, {
        dirname: e,
        envName: r.envName,
        caller: r.caller
      });
    if (typeof s != "string")
      throw new qht.default("Configuration contains string/RegExp pattern, but no filename was passed to Babel", i);
    return typeof t == "string" && (t = (0, zZ.default)(t, e)), t.test(s);
  }
  n(ZZ, "matchPattern");
});

// ../node_modules/@babel/core/lib/config/validation/plugins.js
var eee = g((dL) => {
  "use strict";
  Object.defineProperty(dL, "__esModule", {
    value: !0
  });
  dL.validatePluginObject = pft;
  var wu = X_(), lft = {
    name: wu.assertString,
    manipulateOptions: wu.assertFunction,
    pre: wu.assertFunction,
    post: wu.assertFunction,
    inherits: wu.assertFunction,
    visitor: uft,
    parserOverride: wu.assertFunction,
    generatorOverride: wu.assertFunction
  };
  function uft(t, e) {
    let s = (0, wu.assertObject)(t, e);
    if (s && (Object.keys(s).forEach((r) => {
      r !== "_exploded" && r !== "_verified" && cft(r, s[r]);
    }), s.enter || s.exit))
      throw new Error(`${(0, wu.msg)(t)} cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.`);
    return s;
  }
  n(uft, "assertVisitorMap");
  function cft(t, e) {
    if (e && typeof e == "object")
      Object.keys(e).forEach((s) => {
        if (s !== "enter" && s !== "exit")
          throw new Error(`.visitor["${t}"] may only have .enter and/or .exit handlers.`);
      });
    else if (typeof e != "function")
      throw new Error(`.visitor["${t}"] must be a function`);
  }
  n(cft, "assertVisitorHandler");
  function pft(t) {
    let e = {
      type: "root",
      source: "plugin"
    };
    return Object.keys(t).forEach((s) => {
      let r = lft[s];
      if (r)
        r({
          type: "option",
          name: s,
          parent: e
        }, t[s]);
      else {
        let i = new Error(`.${s} is not a valid Plugin property`);
        throw i.code = "BABEL_UNKNOWN_PLUGIN_PROPERTY", i;
      }
    }), t;
  }
  n(pft, "validatePluginObject");
});

// ../node_modules/@babel/core/lib/config/helpers/environment.js
var yL = g((mL) => {
  "use strict";
  Object.defineProperty(mL, "__esModule", {
    value: !0
  });
  mL.getEnv = hft;
  function hft(t = "development") {
    return process.env.BABEL_ENV || process.env.NODE_ENV || t;
  }
  n(hft, "getEnv");
});

// ../node_modules/@babel/core/lib/config/partial.js
var gL = g((rE) => {
  "use strict";
  Object.defineProperty(rE, "__esModule", {
    value: !0
  });
  rE.default = see;
  rE.loadPartialConfig = Pft;
  function eE() {
    let t = Je("path");
    return eE = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(eE, "_path");
  var fft = CP(), dft = hP(), tee = h0(), mft = fL(), yft = yL(), gft = y0(), tE = f0(), Tft = W_(), bft = ["showIgnoredFiles"];
  function xft(t, e) {
    if (t == null) return {};
    var s = {};
    for (var r in t) if ({}.hasOwnProperty.call(t, r)) {
      if (e.includes(r)) continue;
      s[r] = t[r];
    }
    return s;
  }
  n(xft, "_objectWithoutPropertiesLoose");
  function Sft(t, e) {
    switch (e) {
      case "root":
        return t;
      case "upward-optional": {
        let s = (0, tE.findConfigUpwards)(t);
        return s === null ? t : s;
      }
      case "upward": {
        let s = (0, tE.findConfigUpwards)(t);
        if (s !== null) return s;
        throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not be found when searching upward from "${t}".\

One of the following config files must be in the directory tree: "${tE.ROOT_CONFIG_FILENAMES.join(", ")}".`), {
          code: "BABEL_ROOT_NOT_FOUND",
          dirname: t
        });
      }
      default:
        throw new Error("Assertion failure - unknown rootMode value.");
    }
  }
  n(Sft, "resolveRootMode");
  function* see(t) {
    if (t != null && (typeof t != "object" || Array.isArray(t)))
      throw new Error("Babel options must be an object, null, or undefined");
    let e = t ? (0, gft.validate)("arguments", t) : {}, {
      envName: s = (0, yft.getEnv)(),
      cwd: r = ".",
      root: i = ".",
      rootMode: a = "root",
      caller: o,
      cloneInputAst: l = !0
    } = e, u = eE().resolve(r), c = Sft(eE().resolve(u, i), a), p = typeof e.filename == "string" ? eE().resolve(r, e.filename) : void 0, h = yield* (0, tE.
    resolveShowConfigPath)(u), f = {
      filename: p,
      cwd: u,
      root: c,
      envName: s,
      caller: o,
      showConfig: h === p
    }, d = yield* (0, mft.buildRootChain)(e, f);
    if (!d) return null;
    let m = {
      assumptions: {}
    };
    return d.options.forEach((T) => {
      (0, dft.mergeOptions)(m, T);
    }), {
      options: Object.assign({}, m, {
        targets: (0, Tft.resolveTargets)(m, c),
        cloneInputAst: l,
        babelrc: !1,
        configFile: !1,
        browserslistConfigFile: !1,
        passPerPreset: !1,
        envName: f.envName,
        cwd: f.cwd,
        root: f.root,
        rootMode: "root",
        filename: typeof f.filename == "string" ? f.filename : void 0,
        plugins: d.plugins.map((T) => (0, tee.createItemFromDescriptor)(T)),
        presets: d.presets.map((T) => (0, tee.createItemFromDescriptor)(T))
      }),
      context: f,
      fileHandling: d.fileHandling,
      ignore: d.ignore,
      babelrc: d.babelrc,
      config: d.config,
      files: d.files
    };
  }
  n(see, "loadPrivatePartialConfig");
  function* Pft(t) {
    let e = !1;
    if (typeof t == "object" && t !== null && !Array.isArray(t)) {
      var s = t;
      ({
        showIgnoredFiles: e
      } = s), t = xft(s, bft);
    }
    let r = yield* see(t);
    if (!r) return null;
    let {
      options: i,
      babelrc: a,
      ignore: o,
      config: l,
      fileHandling: u,
      files: c
    } = r;
    return u === "ignored" && !e ? null : ((i.plugins || []).forEach((p) => {
      if (p.value instanceof fft.default)
        throw new Error("Passing cached plugin instances is not supported in babel.loadPartialConfig()");
    }), new sE(i, a ? a.filepath : void 0, o ? o.filepath : void 0, l ? l.filepath : void 0, u, c));
  }
  n(Pft, "loadPartialConfig");
  var sE = class {
    static {
      n(this, "PartialConfig");
    }
    constructor(e, s, r, i, a, o) {
      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 = e, this.babelignore = r, this.babelrc = s, this.config = i, this.fileHandling = a, this.files = o, Object.freeze(
      this);
    }
    hasFilesystemConfig() {
      return this.babelrc !== void 0 || this.config !== void 0;
    }
  };
  Object.freeze(sE.prototype);
});

// ../node_modules/@babel/core/lib/config/full.js
var pee = g((iE) => {
  "use strict";
  Object.defineProperty(iE, "__esModule", {
    value: !0
  });
  iE.default = void 0;
  function aee() {
    let t = pa();
    return aee = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(aee, "_gensync");
  var xL = sp(), ree = hP(), Eft = ai(), oee = CP(), Aft = h0(), vft = fL(), EL = AP();
  function SL() {
    let t = Yl();
    return SL = /* @__PURE__ */ n(function() {
      return t;
    }, "_traverse"), t;
  }
  n(SL, "_traverse");
  var AL = qh(), PL = y0(), Cft = eee(), lee = c_(), wft = gL(), Ift = Uh(), VWs = iE.default = aee()(/* @__PURE__ */ n(function* (e) {
    var s;
    let r = yield* (0, wft.default)(e);
    if (!r)
      return null;
    let {
      options: i,
      context: a,
      fileHandling: o
    } = r;
    if (o === "ignored")
      return null;
    let l = {}, {
      plugins: u,
      presets: c
    } = i;
    if (!u || !c)
      throw new Error("Assertion failure - plugins and presets exist");
    let p = Object.assign({}, a, {
      targets: i.targets
    }), h = /* @__PURE__ */ n((W) => {
      let oe = (0, Aft.getItemDescriptor)(W);
      if (!oe)
        throw new Error("Assertion failure - must be config item");
      return oe;
    }, "toDescriptor"), f = c.map(h), d = u.map(h), m = [[]], y = [], T = [];
    if (yield* iee(a, /* @__PURE__ */ n(function* W(oe, de) {
      let ye = [];
      for (let be = 0; be < oe.length; be++) {
        let me = oe[be];
        if (me.options !== !1) {
          try {
            var Oe = yield* Lft(me, p);
          } catch (he) {
            throw he.code === "BABEL_UNKNOWN_OPTION" && (0, PL.checkNoUnwrappedItemOptionPairs)(oe, be, "preset", he), he;
          }
          T.push(Oe.externalDependencies), me.ownPass ? ye.push({
            preset: Oe.chain,
            pass: []
          }) : ye.unshift({
            preset: Oe.chain,
            pass: de
          });
        }
      }
      if (ye.length > 0) {
        m.splice(1, 0, ...ye.map((be) => be.pass).filter((be) => be !== de));
        for (let {
          preset: be,
          pass: me
        } of ye) {
          if (!be || (me.push(...be.plugins), yield* W(be.presets, me))) return !0;
          be.options.forEach((Pe) => {
            (0, ree.mergeOptions)(l, Pe);
          });
        }
      }
    }, "recursePresetDescriptors"))(f, m[0])) return null;
    let E = l;
    (0, ree.mergeOptions)(E, i);
    let V = Object.assign({}, p, {
      assumptions: (s = E.assumptions) != null ? s : {}
    });
    return yield* iee(a, /* @__PURE__ */ n(function* () {
      m[0].unshift(...d);
      for (let de of m) {
        let ye = [];
        y.push(ye);
        for (let Oe = 0; Oe < de.length; Oe++) {
          let be = de[Oe];
          if (be.options !== !1) {
            try {
              var oe = yield* cee(be, V);
            } catch (me) {
              throw me.code === "BABEL_UNKNOWN_PLUGIN_PROPERTY" && (0, PL.checkNoUnwrappedItemOptionPairs)(de, Oe, "plugin", me), me;
            }
            ye.push(oe), T.push(oe.externalDependencies);
          }
        }
      }
    }, "loadPluginDescriptors"))(), E.plugins = y[0], E.presets = y.slice(1).filter((W) => W.length > 0).map((W) => ({
      plugins: W
    })), E.passPerPreset = E.presets.length > 0, {
      options: E,
      passes: y,
      externalDependencies: (0, EL.finalize)(T)
    };
  }, "loadFullConfig"));
  function iee(t, e) {
    return function* (s, r) {
      try {
        return yield* e(s, r);
      } catch (a) {
        if (!/^\[BABEL\]/.test(a.message)) {
          var i;
          a.message = `[BABEL] ${(i = t.filename) != null ? i : "unknown file"}: ${a.message}`;
        }
        throw a;
      }
    };
  }
  n(iee, "enhanceError");
  var uee = /* @__PURE__ */ n((t) => (0, AL.makeWeakCache)(function* ({
    value: e,
    options: s,
    dirname: r,
    alias: i
  }, a) {
    if (s === !1) throw new Error("Assertion failure");
    s = s || {};
    let o = [], l = e;
    if (typeof e == "function") {
      let u = (0, xL.maybeAsync)(e, "You appear to be using an async plugin/preset, but Babel has been called synchronously"), c = Object.assign(
      {}, Eft, t(a, o));
      try {
        l = yield* u(c, s, r);
      } catch (p) {
        throw i && (p.message += ` (While processing: ${JSON.stringify(i)})`), p;
      }
    }
    if (!l || typeof l != "object")
      throw new Error("Plugin/Preset did not return an object.");
    if ((0, xL.isThenable)(l))
      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: ${JSON.stringify(i)})`);
    if (o.length > 0 && (!a.configured() || a.mode() === "forever")) {
      let u = `A plugin/preset has external untracked dependencies (${o[0]}), but the cache `;
      throw a.configured() ? u += " has been configured to never be invalidated. " : u += "has not been configured to be invalidated when th\
e external dependencies change. ", u += `Plugins/presets should configure their cache to be invalidated when the external dependencies chang\
e, for example using \`api.cache.invalidate(() => statSync(filepath).mtimeMs)\` or \`api.cache.never()\`
(While processing: ${JSON.stringify(i)})`, new Error(u);
    }
    return {
      value: l,
      options: s,
      dirname: r,
      alias: i,
      externalDependencies: (0, EL.finalize)(o)
    };
  }), "makeDescriptorLoader"), Nft = uee(lee.makePluginAPI), kft = uee(lee.makePresetAPI), Dft = (0, AL.makeWeakCache)(function* ({
    value: t,
    options: e,
    dirname: s,
    alias: r,
    externalDependencies: i
  }, a) {
    let o = (0, Cft.validatePluginObject)(t), l = Object.assign({}, o);
    if (l.visitor && (l.visitor = SL().default.explode(Object.assign({}, l.visitor))), l.inherits) {
      let u = {
        name: void 0,
        alias: `${r}$inherits`,
        value: l.inherits,
        options: e,
        dirname: s
      }, c = yield* (0, xL.forwardAsync)(cee, (p) => a.invalidate((h) => p(u, h)));
      l.pre = bL(c.pre, l.pre), l.post = bL(c.post, l.post), l.manipulateOptions = bL(c.manipulateOptions, l.manipulateOptions), l.visitor =
      SL().default.visitors.merge([c.visitor || {}, l.visitor || {}]), c.externalDependencies.length > 0 && (i.length === 0 ? i = c.externalDependencies :
      i = (0, EL.finalize)([i, c.externalDependencies]));
    }
    return new oee.default(l, e, r, i);
  });
  function* cee(t, e) {
    if (t.value instanceof oee.default) {
      if (t.options)
        throw new Error("Passed options to an existing Plugin instance will not work.");
      return t.value;
    }
    return yield* Dft(yield* Nft(t, e), e);
  }
  n(cee, "loadPluginDescriptor");
  var TL = /* @__PURE__ */ n((t) => t && typeof t != "function", "needsFilename"), nee = /* @__PURE__ */ n((t, e) => {
    if (TL(t.test) || TL(t.include) || TL(t.exclude)) {
      let s = e.name ? `"${e.name}"` : "/* your preset */";
      throw new Ift.default([`Preset ${s} requires a filename to be set when babel is called directly,`, "```", `babel.transformSync(code, {\
 filename: 'file.ts', presets: [${s}] });`, "```", "See https://babeljs.io/docs/en/options#filename for more information."].join(`
`));
    }
  }, "validateIfOptionNeedsFilename"), Oft = /* @__PURE__ */ n((t, e, s) => {
    if (!e.filename) {
      var r;
      let {
        options: i
      } = t;
      nee(i, s), (r = i.overrides) == null || r.forEach((a) => nee(a, s));
    }
  }, "validatePreset"), _ft = (0, AL.makeWeakCacheSync)(({
    value: t,
    dirname: e,
    alias: s,
    externalDependencies: r
  }) => ({
    options: (0, PL.validate)("preset", t),
    alias: s,
    dirname: e,
    externalDependencies: r
  }));
  function* Lft(t, e) {
    let s = _ft(yield* kft(t, e));
    return Oft(s, e, t), {
      chain: yield* (0, vft.buildPresetChain)(s, e),
      externalDependencies: s.externalDependencies
    };
  }
  n(Lft, "loadPresetDescriptor");
  function bL(t, e) {
    return t ? e ? function(...s) {
      let r = t.apply(this, s);
      return r && typeof r.then == "function" ? r.then(() => e.apply(this, s)) : e.apply(this, s);
    } : t : e;
  }
  n(bL, "chainMaybeAsync");
});

// ../node_modules/@babel/core/lib/config/index.js
var fm = g((Ra) => {
  "use strict";
  Object.defineProperty(Ra, "__esModule", {
    value: !0
  });
  Ra.createConfigItem = Vft;
  Ra.createConfigItemAsync = Kft;
  Ra.createConfigItemSync = mee;
  Object.defineProperty(Ra, "default", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return hee.default;
    }, "get")
  });
  Ra.loadOptions = Uft;
  Ra.loadOptionsAsync = qft;
  Ra.loadOptionsSync = dee;
  Ra.loadPartialConfig = jft;
  Ra.loadPartialConfigAsync = Fft;
  Ra.loadPartialConfigSync = fee;
  function lE() {
    let t = pa();
    return lE = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(lE, "_gensync");
  var hee = pee(), Bft = gL(), Mft = h0(), ja = bu(), nE = lE()(Bft.loadPartialConfig);
  function Fft(...t) {
    return (0, ja.beginHiddenCallStack)(nE.async)(...t);
  }
  n(Fft, "loadPartialConfigAsync");
  function fee(...t) {
    return (0, ja.beginHiddenCallStack)(nE.sync)(...t);
  }
  n(fee, "loadPartialConfigSync");
  function jft(t, e) {
    if (e !== void 0)
      (0, ja.beginHiddenCallStack)(nE.errback)(t, e);
    else if (typeof t == "function")
      (0, ja.beginHiddenCallStack)(nE.errback)(void 0, t);
    else
      return fee(t);
  }
  n(jft, "loadPartialConfig");
  function* Rft(t) {
    var e;
    let s = yield* (0, hee.default)(t);
    return (e = s?.options) != null ? e : null;
  }
  n(Rft, "loadOptionsImpl");
  var aE = lE()(Rft);
  function qft(...t) {
    return (0, ja.beginHiddenCallStack)(aE.async)(...t);
  }
  n(qft, "loadOptionsAsync");
  function dee(...t) {
    return (0, ja.beginHiddenCallStack)(aE.sync)(...t);
  }
  n(dee, "loadOptionsSync");
  function Uft(t, e) {
    if (e !== void 0)
      (0, ja.beginHiddenCallStack)(aE.errback)(t, e);
    else if (typeof t == "function")
      (0, ja.beginHiddenCallStack)(aE.errback)(void 0, t);
    else
      return dee(t);
  }
  n(Uft, "loadOptions");
  var oE = lE()(Mft.createConfigItem);
  function Kft(...t) {
    return (0, ja.beginHiddenCallStack)(oE.async)(...t);
  }
  n(Kft, "createConfigItemAsync");
  function mee(...t) {
    return (0, ja.beginHiddenCallStack)(oE.sync)(...t);
  }
  n(mee, "createConfigItemSync");
  function Vft(t, e, s) {
    if (s !== void 0)
      (0, ja.beginHiddenCallStack)(oE.errback)(t, e, s);
    else if (typeof e == "function")
      (0, ja.beginHiddenCallStack)(oE.errback)(t, void 0, s);
    else
      return mee(t, e);
  }
  n(Vft, "createConfigItem");
});

// ../node_modules/@babel/core/lib/transformation/plugin-pass.js
var yee = g((uE) => {
  "use strict";
  Object.defineProperty(uE, "__esModule", {
    value: !0
  });
  uE.default = void 0;
  var x0 = class {
    static {
      n(this, "PluginPass");
    }
    constructor(e, s, 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.isAsync = void 0, this.key = s, this.file = e, this.opts = r || {}, this.cwd = e.opts.cwd, this.filename = e.opts.filename, this.
      isAsync = i;
    }
    set(e, s) {
      this._map.set(e, s);
    }
    get(e) {
      return this._map.get(e);
    }
    availableHelper(e, s) {
      return this.file.availableHelper(e, s);
    }
    addHelper(e) {
      return this.file.addHelper(e);
    }
    buildCodeFrameError(e, s, r) {
      return this.file.buildCodeFrameError(e, s, r);
    }
  };
  uE.default = x0;
  x0.prototype.getModuleName = /* @__PURE__ */ n(function() {
    return this.file.getModuleName();
  }, "getModuleName"), x0.prototype.addImport = /* @__PURE__ */ n(function() {
    this.file.addImport();
  }, "addImport");
});

// ../node_modules/@babel/core/lib/transformation/block-hoist-plugin.js
var See = g((CL) => {
  "use strict";
  Object.defineProperty(CL, "__esModule", {
    value: !0
  });
  CL.default = $ft;
  function bee() {
    let t = Yl();
    return bee = /* @__PURE__ */ n(function() {
      return t;
    }, "_traverse"), t;
  }
  n(bee, "_traverse");
  var Wft = CP(), vL, gee = {
    name: "internal.blockHoist",
    visitor: {
      Block: {
        exit({
          node: t
        }) {
          t.body = Tee(t.body);
        }
      },
      SwitchCase: {
        exit({
          node: t
        }) {
          t.consequent = Tee(t.consequent);
        }
      }
    }
  };
  function Tee(t) {
    let e = Math.pow(2, 30) - 1, s = !1;
    for (let r = 0; r < t.length; r++) {
      let i = t[r], a = xee(i);
      if (a > e) {
        s = !0;
        break;
      }
      e = a;
    }
    return s ? Hft(t.slice()) : t;
  }
  n(Tee, "performHoisting");
  function $ft() {
    return vL || (vL = new Wft.default(Object.assign({}, gee, {
      visitor: bee().default.explode(gee.visitor)
    }), {})), vL;
  }
  n($ft, "loadBlockHoistPlugin");
  function xee(t) {
    let e = t?._blockHoist;
    return e == null ? 1 : e === !0 ? 2 : e;
  }
  n(xee, "priority");
  function Hft(t) {
    let e = /* @__PURE__ */ Object.create(null);
    for (let i = 0; i < t.length; i++) {
      let a = t[i], o = xee(a);
      (e[o] || (e[o] = [])).push(a);
    }
    let s = Object.keys(e).map((i) => +i).sort((i, a) => a - i), r = 0;
    for (let i of s) {
      let a = e[i];
      for (let o of a)
        t[r++] = o;
    }
    return t;
  }
  n(Hft, "stableSort");
});

// ../node_modules/@babel/core/lib/transformation/normalize-opts.js
var IL = g((wL) => {
  "use strict";
  Object.defineProperty(wL, "__esModule", {
    value: !0
  });
  wL.default = Jft;
  function cE() {
    let t = Je("path");
    return cE = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(cE, "_path");
  function Jft(t) {
    let {
      filename: e,
      cwd: s,
      filenameRelative: r = typeof e == "string" ? cE().relative(s, e) : "unknown",
      sourceType: i = "module",
      inputSourceMap: a,
      sourceMaps: o = !!a,
      sourceRoot: l = t.options.moduleRoot,
      sourceFileName: u = cE().basename(r),
      comments: c = !0,
      compact: p = "auto"
    } = t.options, h = t.options, f = Object.assign({}, h, {
      parserOpts: Object.assign({
        sourceType: cE().extname(r) === ".mjs" ? "module" : i,
        sourceFileName: e,
        plugins: []
      }, h.parserOpts),
      generatorOpts: Object.assign({
        filename: e,
        auxiliaryCommentBefore: h.auxiliaryCommentBefore,
        auxiliaryCommentAfter: h.auxiliaryCommentAfter,
        retainLines: h.retainLines,
        comments: c,
        shouldPrintComment: h.shouldPrintComment,
        compact: p,
        minified: h.minified,
        sourceMaps: o,
        sourceRoot: l,
        sourceFileName: u
      }, h.generatorOpts)
    });
    for (let d of t.passes)
      for (let m of d)
        m.manipulateOptions && m.manipulateOptions(f, f.parserOpts);
    return f;
  }
  n(Jft, "normalizeOptions");
});

// ../node_modules/convert-source-map/index.js
var NL = g((li) => {
  "use strict";
  Object.defineProperty(li, "commentRegex", {
    get: /* @__PURE__ */ n(function() {
      return /^\s*?\/[\/\*][@#]\s+?sourceMappingURL=data:(((?:application|text)\/json)(?:;charset=([^;,]+?)?)?)?(?:;(base64))?,(.*?)$/mg;
    }, "getCommentRegex")
  });
  Object.defineProperty(li, "mapFileCommentRegex", {
    get: /* @__PURE__ */ n(function() {
      return /(?:\/\/[@#][ \t]+?sourceMappingURL=([^\s'"`]+?)[ \t]*?$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*?(?:\*\/){1}[ \t]*?$)/mg;
    }, "getMapFileCommentRegex")
  });
  var pE;
  typeof Buffer < "u" ? typeof Buffer.from == "function" ? pE = Yft : pE = Xft : pE = zft;
  function Yft(t) {
    return Buffer.from(t, "base64").toString();
  }
  n(Yft, "decodeBase64WithBufferFrom");
  function Xft(t) {
    if (typeof value == "number")
      throw new TypeError("The value to decode must not be of type number.");
    return new Buffer(t, "base64").toString();
  }
  n(Xft, "decodeBase64WithNewBuffer");
  function zft(t) {
    return decodeURIComponent(escape(atob(t)));
  }
  n(zft, "decodeBase64WithAtob");
  function Gft(t) {
    return t.split(",").pop();
  }
  n(Gft, "stripComment");
  function Qft(t, e) {
    var s = li.mapFileCommentRegex.exec(t), r = s[1] || s[2];
    try {
      var t = e(r);
      return t != null && typeof t.catch == "function" ? t.catch(i) : t;
    } catch (a) {
      i(a);
    }
    function i(a) {
      throw new Error("An error occurred while trying to read the map file at " + r + `
` + a.stack);
    }
    n(i, "throwError");
  }
  n(Qft, "readFromFileMap");
  function nn(t, e) {
    e = e || {}, e.hasComment && (t = Gft(t)), e.encoding === "base64" ? t = pE(t) : e.encoding === "uri" && (t = decodeURIComponent(t)), (e.
    isJSON || e.encoding) && (t = JSON.parse(t)), this.sourcemap = t;
  }
  n(nn, "Converter");
  nn.prototype.toJSON = function(t) {
    return JSON.stringify(this.sourcemap, null, t);
  };
  typeof Buffer < "u" ? typeof Buffer.from == "function" ? nn.prototype.toBase64 = Zft : nn.prototype.toBase64 = edt : nn.prototype.toBase64 =
  tdt;
  function Zft() {
    var t = this.toJSON();
    return Buffer.from(t, "utf8").toString("base64");
  }
  n(Zft, "encodeBase64WithBufferFrom");
  function edt() {
    var t = this.toJSON();
    if (typeof t == "number")
      throw new TypeError("The json to encode must not be of type number.");
    return new Buffer(t, "utf8").toString("base64");
  }
  n(edt, "encodeBase64WithNewBuffer");
  function tdt() {
    var t = this.toJSON();
    return btoa(unescape(encodeURIComponent(t)));
  }
  n(tdt, "encodeBase64WithBtoa");
  nn.prototype.toURI = function() {
    var t = this.toJSON();
    return encodeURIComponent(t);
  };
  nn.prototype.toComment = function(t) {
    var e, s, r;
    return t != null && t.encoding === "uri" ? (e = "", s = this.toURI()) : (e = ";base64", s = this.toBase64()), r = "sourceMappingURL=data\
:application/json;charset=utf-8" + e + "," + s, t != null && t.multiline ? "/*# " + r + " */" : "//# " + r;
  };
  nn.prototype.toObject = function() {
    return JSON.parse(this.toJSON());
  };
  nn.prototype.addProperty = function(t, e) {
    if (this.sourcemap.hasOwnProperty(t)) throw new Error('property "' + t + '" already exists on the sourcemap, use set property instead');
    return this.setProperty(t, e);
  };
  nn.prototype.setProperty = function(t, e) {
    return this.sourcemap[t] = e, this;
  };
  nn.prototype.getProperty = function(t) {
    return this.sourcemap[t];
  };
  li.fromObject = function(t) {
    return new nn(t);
  };
  li.fromJSON = function(t) {
    return new nn(t, { isJSON: !0 });
  };
  li.fromURI = function(t) {
    return new nn(t, { encoding: "uri" });
  };
  li.fromBase64 = function(t) {
    return new nn(t, { encoding: "base64" });
  };
  li.fromComment = function(t) {
    var e, s;
    return t = t.replace(/^\/\*/g, "//").replace(/\*\/$/g, ""), e = li.commentRegex.exec(t), s = e && e[4] || "uri", new nn(t, { encoding: s,
    hasComment: !0 });
  };
  function Pee(t) {
    return new nn(t, { isJSON: !0 });
  }
  n(Pee, "makeConverter");
  li.fromMapFileComment = function(t, e) {
    if (typeof e == "string")
      throw new Error(
        "String directory paths are no longer supported with `fromMapFileComment`\nPlease review the Upgrading documentation at https://githu\
b.com/thlorenz/convert-source-map#upgrading"
      );
    var s = Qft(t, e);
    return s != null && typeof s.then == "function" ? s.then(Pee) : Pee(s);
  };
  li.fromSource = function(t) {
    var e = t.match(li.commentRegex);
    return e ? li.fromComment(e.pop()) : null;
  };
  li.fromMapFileSource = function(t, e) {
    if (typeof e == "string")
      throw new Error(
        "String directory paths are no longer supported with `fromMapFileSource`\nPlease review the Upgrading documentation at https://github\
.com/thlorenz/convert-source-map#upgrading"
      );
    var s = t.match(li.mapFileCommentRegex);
    return s ? li.fromMapFileComment(s.pop(), e) : null;
  };
  li.removeComments = function(t) {
    return t.replace(li.commentRegex, "");
  };
  li.removeMapFileComments = function(t) {
    return t.replace(li.mapFileCommentRegex, "");
  };
  li.generateMapFileComment = function(t, e) {
    var s = "sourceMappingURL=" + t;
    return e && e.multiline ? "/*# " + s + " */" : "//# " + s;
  };
});

// ../node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js
var vee = g((kL) => {
  "use strict";
  Object.defineProperty(kL, "__esModule", {
    value: !0
  });
  kL.default = sdt;
  var Aee = {
    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"
      }
    },
    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"
      }
    },
    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"
      }
    }
  };
  Object.assign(Aee, {
    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-transform-async-generator-functions",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-properties",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-properties",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-private-methods",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-static-block",
        url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-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-transform-export-namespace-from",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from"
      }
    },
    importAssertions: {
      syntax: {
        name: "@babel/plugin-syntax-import-assertions",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions"
      }
    },
    importAttributes: {
      syntax: {
        name: "@babel/plugin-syntax-import-attributes",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes"
      }
    },
    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-transform-logical-assignment-operators",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-numeric-separator",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-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-transform-object-rest-spread",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-optional-catch-binding",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-optional-chaining",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-private-property-in-object",
        url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object"
      }
    },
    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-transform-unicode-sets-regex",
        url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md"
      }
    }
  });
  var Eee = /* @__PURE__ */ n(({
    name: t,
    url: e
  }) => `${t} (${e})`, "getNameURLCombination");
  function sdt(t, e, s, r) {
    let i = `Support for the experimental syntax '${t}' isn't currently enabled (${e.line}:${e.column + 1}):

` + s, a = Aee[t];
    if (a) {
      let {
        syntax: l,
        transform: u
      } = a;
      if (l) {
        let c = Eee(l);
        if (u) {
          let p = Eee(u), h = u.name.startsWith("@babel/plugin") ? "plugins" : "presets";
          i += `

Add ${p} to the '${h}' section of your Babel config to enable transformation.
If you want to leave it as-is, add ${c} to the 'plugins' section to enable parsing.`;
        } else
          i += `

Add ${c} to the 'plugins' section of your Babel config to enable parsing.`;
      }
    }
    return i += `

If you already added the plugin for this syntax to your config, it's possible that your config isn't being loaded.
You can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded configuration:
	npx cross-env BABEL_SHOW_CONFIG_FOR=${r === "unknown" ? "<name of the input file>" : r} <your build command>
See https://babeljs.io/docs/configuration#print-effective-configs for more info.
`, i;
  }
  n(sdt, "generateMissingPluginMessage");
});

// ../node_modules/@babel/core/lib/parser/index.js
var _L = g((OL) => {
  "use strict";
  Object.defineProperty(OL, "__esModule", {
    value: !0
  });
  OL.default = idt;
  function DL() {
    let t = Qx();
    return DL = /* @__PURE__ */ n(function() {
      return t;
    }, "_parser"), t;
  }
  n(DL, "_parser");
  function Cee() {
    let t = Hl();
    return Cee = /* @__PURE__ */ n(function() {
      return t;
    }, "_codeFrame"), t;
  }
  n(Cee, "_codeFrame");
  var rdt = vee();
  function* idt(t, {
    parserOpts: e,
    highlightCode: s = !0,
    filename: r = "unknown"
  }, i) {
    try {
      let a = [];
      for (let o of t)
        for (let l of o) {
          let {
            parserOverride: u
          } = l;
          if (u) {
            let c = u(i, e, DL().parse);
            c !== void 0 && a.push(c);
          }
        }
      if (a.length === 0)
        return (0, DL().parse)(i, e);
      if (a.length === 1) {
        if (yield* [], typeof a[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 us\
ing a published plugin, you may need to upgrade your @babel/core version.");
        return a[0];
      }
      throw new Error("More than one plugin attempted to override parsing.");
    } catch (a) {
      a.code === "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED" && (a.message += `
Consider renaming the file to '.mjs', or setting sourceType:module or sourceType:unambiguous in your Babel config for this file.`);
      let {
        loc: o,
        missingPlugin: l
      } = a;
      if (o) {
        let u = (0, Cee().codeFrameColumns)(i, {
          start: {
            line: o.line,
            column: o.column + 1
          }
        }, {
          highlightCode: s
        });
        l ? a.message = `${r}: ` + (0, rdt.default)(l[0], o, u, r) : a.message = `${r}: ${a.message}

` + u, a.code = "BABEL_PARSE_ERROR";
      }
      throw a;
    }
  }
  n(idt, "parser");
});

// ../node_modules/@babel/core/lib/transformation/util/clone-deep.js
var wee = g((BL) => {
  "use strict";
  Object.defineProperty(BL, "__esModule", {
    value: !0
  });
  BL.default = ndt;
  function LL(t, e) {
    if (t !== null) {
      if (e.has(t)) return e.get(t);
      let s;
      if (Array.isArray(t)) {
        s = new Array(t.length), e.set(t, s);
        for (let r = 0; r < t.length; r++)
          s[r] = typeof t[r] != "object" ? t[r] : LL(t[r], e);
      } else {
        s = {}, e.set(t, s);
        let r = Object.keys(t);
        for (let i = 0; i < r.length; i++) {
          let a = r[i];
          s[a] = typeof t[a] != "object" ? t[a] : LL(t[a], e);
        }
      }
      return s;
    }
    return t;
  }
  n(LL, "deepClone");
  function ndt(t) {
    return typeof t != "object" ? t : LL(t, /* @__PURE__ */ new Map());
  }
  n(ndt, "_default");
});

// ../node_modules/@babel/core/lib/transformation/normalize-file.js
var _ee = g((RL) => {
  "use strict";
  Object.defineProperty(RL, "__esModule", {
    value: !0
  });
  RL.default = hdt;
  function kee() {
    let t = Je("fs");
    return kee = /* @__PURE__ */ n(function() {
      return t;
    }, "_fs"), t;
  }
  n(kee, "_fs");
  function jL() {
    let t = Je("path");
    return jL = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(jL, "_path");
  function Dee() {
    let t = go();
    return Dee = /* @__PURE__ */ n(function() {
      return t;
    }, "_debug"), t;
  }
  n(Dee, "_debug");
  function Oee() {
    let t = fe();
    return Oee = /* @__PURE__ */ n(function() {
      return t;
    }, "_t"), t;
  }
  n(Oee, "_t");
  function hE() {
    let t = NL();
    return hE = /* @__PURE__ */ n(function() {
      return t;
    }, "_convertSourceMap"), t;
  }
  n(hE, "_convertSourceMap");
  var adt = F2(), odt = _L(), ldt = wee(), {
    file: udt,
    traverseFast: cdt
  } = Oee(), ML = Dee()("babel:transform:file"), pdt = /^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,.*$/,
  Iee = /^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/;
  function* hdt(t, e, s, r) {
    if (s = `${s || ""}`, r) {
      if (r.type === "Program")
        r = udt(r, [], []);
      else if (r.type !== "File")
        throw new Error("AST root must be a Program or File node");
      e.cloneInputAst && (r = (0, ldt.default)(r));
    } else
      r = yield* (0, odt.default)(t, e, s);
    let i = null;
    if (e.inputSourceMap !== !1) {
      if (typeof e.inputSourceMap == "object" && (i = hE().fromObject(e.inputSourceMap)), !i) {
        let a = Nee(pdt, r);
        if (a)
          try {
            i = hE().fromComment("//" + a);
          } catch {
            ML("discarding unknown inline input sourcemap");
          }
      }
      if (!i) {
        let a = Nee(Iee, r);
        if (typeof e.filename == "string" && a)
          try {
            let o = Iee.exec(a), l = kee().readFileSync(jL().resolve(jL().dirname(e.filename), o[1]), "utf8");
            i = hE().fromJSON(l);
          } catch (o) {
            ML("discarding unknown file input sourcemap", o);
          }
        else a && ML("discarding un-loadable file input sourcemap");
      }
    }
    return new adt.default(e, {
      code: s,
      ast: r,
      inputMap: i
    });
  }
  n(hdt, "normalizeFile");
  function FL(t, e, s) {
    return e && (e = e.filter(({
      value: r
    }) => t.test(r) ? (s = r, !1) : !0)), [e, s];
  }
  n(FL, "extractCommentsFromList");
  function Nee(t, e) {
    let s = null;
    return cdt(e, (r) => {
      [r.leadingComments, s] = FL(t, r.leadingComments, s), [r.innerComments, s] = FL(t, r.innerComments, s), [r.trailingComments, s] = FL(t,
      r.trailingComments, s);
    }), s;
  }
  n(Nee, "extractComments");
});

// ../node_modules/@ampproject/remapping/dist/remapping.umd.js
var Lee = g((qL, UL) => {
  (function(t, e) {
    typeof qL == "object" && typeof UL < "u" ? UL.exports = e(Oc(), fh()) : typeof define == "function" && define.amd ? define(["@jridgewell\
/trace-mapping", "@jridgewell/gen-mapping"], e) : (t = typeof globalThis < "u" ? globalThis : t || self, t.remapping = e(t.traceMapping, t.genMapping));
  })(qL, function(t, e) {
    "use strict";
    let s = /* @__PURE__ */ i("", -1, -1, "", null, !1), r = [];
    function i(y, T, b, E, V, W) {
      return { source: y, line: T, column: b, name: E, content: V, ignore: W };
    }
    n(i, "SegmentObject");
    function a(y, T, b, E, V) {
      return {
        map: y,
        sources: T,
        source: b,
        content: E,
        ignore: V
      };
    }
    n(a, "Source");
    function o(y, T) {
      return a(y, T, "", null, !1);
    }
    n(o, "MapSource");
    function l(y, T, b) {
      return a(null, r, y, T, b);
    }
    n(l, "OriginalSource");
    function u(y) {
      let T = new e.GenMapping({ file: y.map.file }), { sources: b, map: E } = y, V = E.names, W = t.decodedMappings(E);
      for (let oe = 0; oe < W.length; oe++) {
        let de = W[oe];
        for (let ye = 0; ye < de.length; ye++) {
          let Oe = de[ye], be = Oe[0], me = s;
          if (Oe.length !== 1) {
            let He = b[Oe[1]];
            if (me = c(He, Oe[2], Oe[3], Oe.length === 5 ? V[Oe[4]] : ""), me == null)
              continue;
          }
          let { column: he, line: Pe, name: st, content: lt, source: ke, ignore: Ne } = me;
          e.maybeAddSegment(T, oe, be, ke, Pe, he, st), ke && lt != null && e.setSourceContent(T, ke, lt), Ne && e.setIgnore(T, ke, !0);
        }
      }
      return T;
    }
    n(u, "traceMappings");
    function c(y, T, b, E) {
      if (!y.map)
        return i(y.source, T, b, E, y.content, y.ignore);
      let V = t.traceSegment(y.map, T, b);
      return V == null ? null : V.length === 1 ? s : c(y.sources[V[1]], V[2], V[3], V.length === 5 ? y.map.names[V[4]] : E);
    }
    n(c, "originalPositionFor");
    function p(y) {
      return Array.isArray(y) ? y : [y];
    }
    n(p, "asArray");
    function h(y, T) {
      let b = p(y).map((W) => new t.TraceMap(W, "")), E = b.pop();
      for (let W = 0; W < b.length; W++)
        if (b[W].sources.length > 1)
          throw new Error(`Transformation map ${W} must have exactly one source file.
Did you specify these with the most recent transformation maps first?`);
      let V = f(E, T, "", 0);
      for (let W = b.length - 1; W >= 0; W--)
        V = o(b[W], [V]);
      return V;
    }
    n(h, "buildSourceMapTree");
    function f(y, T, b, E) {
      let { resolvedSources: V, sourcesContent: W, ignoreList: oe } = y, de = E + 1, ye = V.map((Oe, be) => {
        let me = {
          importer: b,
          depth: de,
          source: Oe || "",
          content: void 0,
          ignore: void 0
        }, he = T(me.source, me), { source: Pe, content: st, ignore: lt } = me;
        if (he)
          return f(new t.TraceMap(he, Pe), T, Pe, de);
        let ke = st !== void 0 ? st : W ? W[be] : null, Ne = lt !== void 0 ? lt : oe ? oe.includes(be) : !1;
        return l(Pe, ke, Ne);
      });
      return o(y, ye);
    }
    n(f, "build");
    class d {
      static {
        n(this, "SourceMap");
      }
      constructor(T, b) {
        let E = b.decodedMappings ? e.toDecodedMap(T) : e.toEncodedMap(T);
        this.version = E.version, this.file = E.file, this.mappings = E.mappings, this.names = E.names, this.ignoreList = E.ignoreList, this.
        sourceRoot = E.sourceRoot, this.sources = E.sources, b.excludeContent || (this.sourcesContent = E.sourcesContent);
      }
      toString() {
        return JSON.stringify(this);
      }
    }
    function m(y, T, b) {
      let E = typeof b == "object" ? b : { excludeContent: !!b, decodedMappings: !1 }, V = h(y, T);
      return new d(u(V), E);
    }
    return n(m, "remapping"), m;
  });
});

// ../node_modules/@babel/core/lib/transformation/file/merge-map.js
var Fee = g((KL) => {
  "use strict";
  Object.defineProperty(KL, "__esModule", {
    value: !0
  });
  KL.default = fdt;
  function Mee() {
    let t = Lee();
    return Mee = /* @__PURE__ */ n(function() {
      return t;
    }, "_remapping"), t;
  }
  n(Mee, "_remapping");
  function fdt(t, e, s) {
    let r = s.replace(/\\/g, "/"), i = !1, a = Mee()(Bee(e), (o, l) => o === r && !i ? (i = !0, l.source = "", Bee(t)) : null);
    return typeof t.sourceRoot == "string" && (a.sourceRoot = t.sourceRoot), Object.assign({}, a);
  }
  n(fdt, "mergeSourceMap");
  function Bee(t) {
    return Object.assign({}, t, {
      sourceRoot: null
    });
  }
  n(Bee, "rootless");
});

// ../node_modules/@babel/core/lib/transformation/file/generate.js
var Ree = g((WL) => {
  "use strict";
  Object.defineProperty(WL, "__esModule", {
    value: !0
  });
  WL.default = mdt;
  function jee() {
    let t = NL();
    return jee = /* @__PURE__ */ n(function() {
      return t;
    }, "_convertSourceMap"), t;
  }
  n(jee, "_convertSourceMap");
  function VL() {
    let t = Bx();
    return VL = /* @__PURE__ */ n(function() {
      return t;
    }, "_generator"), t;
  }
  n(VL, "_generator");
  var ddt = Fee();
  function mdt(t, e) {
    let {
      opts: s,
      ast: r,
      code: i,
      inputMap: a
    } = e, {
      generatorOpts: o
    } = s;
    o.inputSourceMap = a?.toObject();
    let l = [];
    for (let h of t)
      for (let f of h) {
        let {
          generatorOverride: d
        } = f;
        if (d) {
          let m = d(r, o, i, VL().default);
          m !== void 0 && l.push(m);
        }
      }
    let u;
    if (l.length === 0)
      u = (0, VL().default)(r, o, i);
    else if (l.length === 1) {
      if (u = l[0], typeof u.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 usi\
ng 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: c,
      decodedMap: p = u.map
    } = u;
    return u.__mergedMap ? p = Object.assign({}, u.map) : p && (a ? p = (0, ddt.default)(a.toObject(), p, o.sourceFileName) : p = u.map), (s.
    sourceMaps === "inline" || s.sourceMaps === "both") && (c += `
` + jee().fromObject(p).toComment()), s.sourceMaps === "inline" && (p = null), {
      outputCode: c,
      outputMap: p
    };
  }
  n(mdt, "generateCode");
});

// ../node_modules/@babel/core/lib/transformation/index.js
var fE = g((JL) => {
  "use strict";
  Object.defineProperty(JL, "__esModule", {
    value: !0
  });
  JL.run = Pdt;
  function HL() {
    let t = Yl();
    return HL = /* @__PURE__ */ n(function() {
      return t;
    }, "_traverse"), t;
  }
  n(HL, "_traverse");
  var ydt = yee(), gdt = See(), Tdt = IL(), bdt = _ee(), xdt = Ree(), Sdt = AP(), $L = sp();
  function* Pdt(t, e, s) {
    let r = yield* (0, bdt.default)(t.passes, (0, Tdt.default)(t), e, s), i = r.opts;
    try {
      yield* Edt(r, t.passes);
    } catch (c) {
      var a;
      throw c.message = `${(a = i.filename) != null ? a : "unknown file"}: ${c.message}`, c.code || (c.code = "BABEL_TRANSFORM_ERROR"), c;
    }
    let o, l;
    try {
      i.code !== !1 && ({
        outputCode: o,
        outputMap: l
      } = (0, xdt.default)(t.passes, r));
    } catch (c) {
      var u;
      throw c.message = `${(u = i.filename) != null ? u : "unknown file"}: ${c.message}`, c.code || (c.code = "BABEL_GENERATE_ERROR"), c;
    }
    return {
      metadata: r.metadata,
      options: i,
      ast: i.ast === !0 ? r.ast : null,
      code: o === void 0 ? null : o,
      map: l === void 0 ? null : l,
      sourceType: r.ast.program.sourceType,
      externalDependencies: (0, Sdt.flattenToSet)(t.externalDependencies)
    };
  }
  n(Pdt, "run");
  function* Edt(t, e) {
    let s = yield* (0, $L.isAsync)();
    for (let r of e) {
      let i = [], a = [], o = [];
      for (let u of r.concat([(0, gdt.default)()])) {
        let c = new ydt.default(t, u.key, u.options, s);
        i.push([u, c]), a.push(c), o.push(u.visitor);
      }
      for (let [u, c] of i)
        u.pre && (yield* (0, $L.maybeAsync)(u.pre, "You appear to be using an async plugin/preset, but Babel has been called synchronously").
        call(c, t));
      let l = HL().default.visitors.merge(o, a, t.opts.wrapPluginVisitorMethod);
      (0, HL().default)(t.ast, l, t.scope);
      for (let [u, c] of i)
        u.post && (yield* (0, $L.maybeAsync)(u.post, "You appear to be using an async plugin/preset, but Babel has been called synchronously").
        call(c, t));
    }
  }
  n(Edt, "transformFile");
});

// ../node_modules/@babel/core/lib/transform-file.js
var XL = g((S0) => {
  "use strict";
  Object.defineProperty(S0, "__esModule", {
    value: !0
  });
  S0.transformFile = wdt;
  S0.transformFileAsync = Ndt;
  S0.transformFileSync = Idt;
  function qee() {
    let t = pa();
    return qee = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(qee, "_gensync");
  var Adt = fm(), vdt = fE(), Cdt = dP(), YL = qee()(function* (t, e) {
    let s = Object.assign({}, e, {
      filename: t
    }), r = yield* (0, Adt.default)(s);
    if (r === null) return null;
    let i = yield* Cdt.readFile(t, "utf8");
    return yield* (0, vdt.run)(r, i);
  });
  function wdt(...t) {
    YL.errback(...t);
  }
  n(wdt, "transformFile");
  function Idt(...t) {
    return YL.sync(...t);
  }
  n(Idt, "transformFileSync");
  function Ndt(...t) {
    return YL.async(...t);
  }
  n(Ndt, "transformFileAsync");
});

// ../node_modules/@babel/core/lib/config/files/import.cjs
var Kee = g((b$s, Uee) => {
  Uee.exports = /* @__PURE__ */ n(function(e) {
    return import(e);
  }, "import_");
});

// ../node_modules/@babel/preset-typescript/package.json
var Vee = g((S$s, kdt) => {
  kdt.exports = {
    name: "@babel/preset-typescript",
    version: "7.24.1",
    description: "Babel preset for TypeScript.",
    repository: {
      type: "git",
      url: "https://github.com/babel/babel.git",
      directory: "packages/babel-preset-typescript"
    },
    license: "MIT",
    publishConfig: {
      access: "public"
    },
    main: "./lib/index.js",
    keywords: [
      "babel-preset",
      "typescript"
    ],
    dependencies: {
      "@babel/helper-plugin-utils": "^7.24.0",
      "@babel/helper-validator-option": "^7.23.5",
      "@babel/plugin-syntax-jsx": "^7.24.1",
      "@babel/plugin-transform-modules-commonjs": "^7.24.1",
      "@babel/plugin-transform-typescript": "^7.24.1"
    },
    peerDependencies: {
      "@babel/core": "^7.0.0-0"
    },
    devDependencies: {
      "@babel/core": "^7.24.1",
      "@babel/helper-plugin-test-runner": "^7.24.1"
    },
    homepage: "https://babel.dev/docs/en/next/babel-preset-typescript",
    bugs: "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22area%3A%20typescript%22+is%3Aopen",
    engines: {
      node: ">=6.9.0"
    },
    author: "The Babel Team (https://babel.dev/team)",
    type: "commonjs"
  };
});

// ../node_modules/@babel/helper-plugin-utils/lib/index.js
var dm = g((P0) => {
  "use strict";
  Object.defineProperty(P0, "__esModule", {
    value: !0
  });
  P0.declare = Wee;
  P0.declarePreset = void 0;
  var zL = {
    assertVersion: /* @__PURE__ */ n((t) => (e) => {
      Odt(e, t.version);
    }, "assertVersion")
  };
  Object.assign(zL, {
    targets: /* @__PURE__ */ n(() => () => ({}), "targets"),
    assumption: /* @__PURE__ */ n(() => () => {
    }, "assumption"),
    addExternalDependency: /* @__PURE__ */ n(() => () => {
    }, "addExternalDependency")
  });
  function Wee(t) {
    return (e, s, r) => {
      var i;
      let a;
      for (let l of Object.keys(zL)) {
        var o;
        e[l] || ((o = a) != null || (a = Ddt(e)), a[l] = zL[l](a));
      }
      return t((i = a) != null ? i : e, s || {}, r);
    };
  }
  n(Wee, "declare");
  var P$s = P0.declarePreset = Wee;
  function Ddt(t) {
    let e = null;
    return typeof t.version == "string" && /^7\./.test(t.version) && (e = Object.getPrototypeOf(t), e && (!hasOwnProperty.call(e, "version") ||
    !hasOwnProperty.call(e, "transform") || !hasOwnProperty.call(e, "template") || !hasOwnProperty.call(e, "types")) && (e = null)), Object.
    assign({}, e, t);
  }
  n(Ddt, "copyApiObject");
  function Odt(t, e) {
    if (typeof t == "number") {
      if (!Number.isInteger(t))
        throw new Error("Expected string or integer value.");
      t = `^${t}.0.0-0`;
    }
    if (typeof t != "string")
      throw new Error("Expected string or integer value.");
    let s = Error.stackTraceLimit;
    typeof s == "number" && s < 25 && (Error.stackTraceLimit = 25);
    let r;
    throw e.slice(0, 2) === "7." ? r = new Error(`Requires Babel "^7.0.0-beta.41", but was loaded with "${e}". You'll need to update your @b\
abel/core version.`) : r = new Error(`Requires Babel "${t}", but was loaded with "${e}". If you are sure you have a compatible version of @b\
abel/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 s == "number" && (Error.stackTraceLimit =
    s), Object.assign(r, {
      code: "BABEL_VERSION_UNSUPPORTED",
      version: e,
      range: t
    });
  }
  n(Odt, "throwVersionError");
});

// ../node_modules/@babel/plugin-syntax-typescript/lib/index.js
var $ee = g((dE) => {
  "use strict";
  Object.defineProperty(dE, "__esModule", {
    value: !0
  });
  dE.default = void 0;
  var _dt = dm();
  GL = /* @__PURE__ */ n(function(t, e) {
    let s = [];
    t.forEach((r, i) => {
      (Array.isArray(r) ? r[0] : r) === e && s.unshift(i);
    });
    for (let r of s)
      t.splice(r, 1);
  }, "removePlugin");
  var GL, v$s = dE.default = (0, _dt.declare)((t, e) => {
    t.assertVersion(7);
    let {
      disallowAmbiguousJSXLike: s,
      dts: r
    } = e;
    var {
      isTSX: i
    } = e;
    return {
      name: "syntax-typescript",
      manipulateOptions(a, o) {
        {
          let {
            plugins: l
          } = o;
          GL(l, "flow"), GL(l, "jsx"), l.push("objectRestSpread", "classProperties"), i && l.push("jsx");
        }
        o.plugins.push(["typescript", {
          disallowAmbiguousJSXLike: s,
          dts: r
        }]);
      }
    };
  });
});

// ../node_modules/@babel/helper-member-expression-to-functions/lib/index.js
var sB = g((tB) => {
  "use strict";
  Object.defineProperty(tB, "__esModule", { value: !0 });
  var Ldt = fe();
  function Bdt(t) {
    if (t && t.__esModule) return t;
    var e = /* @__PURE__ */ Object.create(null);
    return t && Object.keys(t).forEach(function(s) {
      if (s !== "default") {
        var r = Object.getOwnPropertyDescriptor(t, s);
        Object.defineProperty(e, s, r.get ? r : {
          enumerable: !0,
          get: /* @__PURE__ */ n(function() {
            return t[s];
          }, "get")
        });
      }
    }), e.default = t, Object.freeze(e);
  }
  n(Bdt, "_interopNamespace");
  var Mdt = /* @__PURE__ */ Bdt(Ldt);
  function ZL(t) {
    let e = t, {
      node: s,
      parentPath: r
    } = e;
    if (r.isLogicalExpression()) {
      let {
        operator: i,
        right: a
      } = r.node;
      if (i === "&&" || i === "||" || i === "??" && s === a)
        return ZL(r);
    }
    if (r.isSequenceExpression()) {
      let {
        expressions: i
      } = r.node;
      return i[i.length - 1] === s ? ZL(r) : !0;
    }
    return r.isConditional({
      test: s
    }) || r.isUnaryExpression({
      operator: "!"
    }) || r.isLoop({
      test: s
    });
  }
  n(ZL, "willPathCastToBoolean");
  var {
    LOGICAL_OPERATORS: Fdt,
    arrowFunctionExpression: Hee,
    assignmentExpression: mm,
    binaryExpression: Jh,
    booleanLiteral: jdt,
    callExpression: gE,
    cloneNode: qa,
    conditionalExpression: Rdt,
    identifier: Gee,
    isMemberExpression: qdt,
    isOptionalCallExpression: Udt,
    isOptionalMemberExpression: Qee,
    isUpdateExpression: Kdt,
    logicalExpression: yE,
    memberExpression: Jee,
    nullLiteral: mE,
    optionalCallExpression: Vdt,
    optionalMemberExpression: Wdt,
    sequenceExpression: QL,
    updateExpression: Yee
  } = Mdt, eB = class {
    static {
      n(this, "AssignmentMemoiser");
    }
    constructor() {
      this._map = void 0, this._map = /* @__PURE__ */ new WeakMap();
    }
    has(e) {
      return this._map.has(e);
    }
    get(e) {
      if (!this.has(e)) return;
      let s = this._map.get(e), {
        value: r
      } = s;
      return s.count--, s.count === 0 ? mm("=", r, e) : r;
    }
    set(e, s, r) {
      return this._map.set(e, {
        count: r,
        value: s
      });
    }
  };
  function Xee(t, e) {
    let {
      node: s
    } = t;
    if (Qee(s))
      return Jee(e, s.property, s.computed);
    if (t.isOptionalCallExpression()) {
      let r = t.get("callee");
      if (t.node.optional && r.isOptionalMemberExpression()) {
        let i = r.node.object, a = t.scope.maybeGenerateMemoised(i);
        return r.get("object").replaceWith(mm("=", a, i)), gE(Jee(e, Gee("call")), [a, ...t.node.arguments]);
      }
      return gE(e, t.node.arguments);
    }
    return t.node;
  }
  n(Xee, "toNonOptional");
  function $dt(t) {
    for (; t && !t.isProgram(); ) {
      let {
        parentPath: e,
        container: s,
        listKey: r
      } = t, i = e.node;
      if (r) {
        if (s !== i[r])
          return !0;
      } else if (s !== i) return !0;
      t = e;
    }
    return !1;
  }
  n($dt, "isInDetachedTree");
  var Hdt = {
    memoise() {
    },
    handle(t, e) {
      let {
        node: s,
        parent: r,
        parentPath: i,
        scope: a
      } = t;
      if (t.isOptionalMemberExpression()) {
        if ($dt(t)) return;
        let o = t.find(({
          node: ye,
          parent: Oe
        }) => Qee(Oe) ? Oe.optional || Oe.object !== ye : Udt(Oe) ? ye !== t.node && Oe.optional || Oe.callee !== ye : !0);
        if (a.path.isPattern()) {
          o.replaceWith(gE(Hee([], o.node), []));
          return;
        }
        let l = ZL(o), u = o.parentPath;
        if (u.isUpdateExpression({
          argument: s
        }))
          throw t.buildCodeFrameError("can't handle update expression");
        let c = u.isAssignmentExpression({
          left: o.node
        }), p = u.isUnaryExpression({
          operator: "delete"
        });
        if (p && o.isOptionalMemberExpression() && o.get("property").isPrivateName())
          throw t.buildCodeFrameError("can't delete a private class element");
        let h = t;
        for (; ; ) {
          if (h.isOptionalMemberExpression()) {
            if (h.node.optional) break;
            h = h.get("object");
            continue;
          } else if (h.isOptionalCallExpression()) {
            if (h.node.optional) break;
            h = h.get("callee");
            continue;
          }
          throw new Error(`Internal error: unexpected ${h.node.type}`);
        }
        let f = h.isOptionalMemberExpression() ? h.node.object : h.node.callee, d = a.maybeGenerateMemoised(f), m = d ?? f, y = i.isOptionalCallExpression(
        {
          callee: s
        }), T = /* @__PURE__ */ n((ye) => y, "isOptionalCall"), b = i.isCallExpression({
          callee: s
        });
        h.replaceWith(Xee(h, m)), T() ? r.optional ? i.replaceWith(this.optionalCall(t, r.arguments)) : i.replaceWith(this.call(t, r.arguments)) :
        b ? t.replaceWith(this.boundGet(t)) : this.delete && i.isUnaryExpression({
          operator: "delete"
        }) ? i.replaceWith(this.delete(t)) : i.isAssignmentExpression() ? zee(this, t, i) : t.replaceWith(this.get(t));
        let E = t.node;
        for (let ye = t; ye !== o; ) {
          let Oe = ye.parentPath;
          if (Oe === o && T() && r.optional) {
            E = Oe.node;
            break;
          }
          E = Xee(Oe, E), ye = Oe;
        }
        let V, W = o.parentPath;
        if (qdt(E) && W.isOptionalCallExpression({
          callee: o.node,
          optional: !0
        })) {
          let {
            object: ye
          } = E;
          V = t.scope.maybeGenerateMemoised(ye), V && (E.object = mm("=", V, ye));
        }
        let oe = o;
        (p || c) && (oe = W, E = W.node);
        let de = d ? mm("=", qa(m), qa(f)) : qa(m);
        if (l) {
          let ye;
          e ? ye = Jh("!=", de, mE()) : ye = yE("&&", Jh("!==", de, mE()), Jh("!==", qa(m), a.buildUndefinedNode())), oe.replaceWith(yE("&&",
          ye, E));
        } else {
          let ye;
          e ? ye = Jh("==", de, mE()) : ye = yE("||", Jh("===", de, mE()), Jh("===", qa(m), a.buildUndefinedNode())), oe.replaceWith(Rdt(ye,
          p ? jdt(!0) : a.buildUndefinedNode(), E));
        }
        if (V) {
          let ye = W.node;
          W.replaceWith(Vdt(Wdt(ye.callee, Gee("call"), !1, !0), [qa(V), ...ye.arguments], !1));
        }
        return;
      }
      if (Kdt(r, {
        argument: s
      })) {
        if (this.simpleSet) {
          t.replaceWith(this.simpleSet(t));
          return;
        }
        let {
          operator: o,
          prefix: l
        } = r;
        this.memoise(t, 2);
        let u = a.generateUidIdentifierBasedOnNode(s);
        a.push({
          id: u
        });
        let c = [mm("=", qa(u), this.get(t))];
        if (l) {
          c.push(Yee(o, qa(u), l));
          let p = QL(c);
          i.replaceWith(this.set(t, p));
          return;
        } else {
          let p = a.generateUidIdentifierBasedOnNode(s);
          a.push({
            id: p
          }), c.push(mm("=", qa(p), Yee(o, qa(u), l)), qa(u));
          let h = QL(c);
          i.replaceWith(QL([this.set(t, h), qa(p)]));
          return;
        }
      }
      if (i.isAssignmentExpression({
        left: s
      })) {
        zee(this, t, i);
        return;
      }
      if (i.isCallExpression({
        callee: s
      })) {
        i.replaceWith(this.call(t, i.node.arguments));
        return;
      }
      if (i.isOptionalCallExpression({
        callee: s
      })) {
        if (a.path.isPattern()) {
          i.replaceWith(gE(Hee([], i.node), []));
          return;
        }
        i.replaceWith(this.optionalCall(t, i.node.arguments));
        return;
      }
      if (this.delete && i.isUnaryExpression({
        operator: "delete"
      })) {
        i.replaceWith(this.delete(t));
        return;
      }
      if (i.isForXStatement({
        left: s
      }) || i.isObjectProperty({
        value: s
      }) && i.parentPath.isObjectPattern() || i.isAssignmentPattern({
        left: s
      }) && i.parentPath.isObjectProperty({
        value: r
      }) && i.parentPath.parentPath.isObjectPattern() || i.isArrayPattern() || i.isAssignmentPattern({
        left: s
      }) && i.parentPath.isArrayPattern() || i.isRestElement()) {
        t.replaceWith(this.destructureSet(t));
        return;
      }
      i.isTaggedTemplateExpression() ? t.replaceWith(this.boundGet(t)) : t.replaceWith(this.get(t));
    }
  };
  function zee(t, e, s) {
    if (t.simpleSet) {
      e.replaceWith(t.simpleSet(e));
      return;
    }
    let {
      operator: r,
      right: i
    } = s.node;
    if (r === "=")
      s.replaceWith(t.set(e, i));
    else {
      let a = r.slice(0, -1);
      Fdt.includes(a) ? (t.memoise(e, 1), s.replaceWith(yE(a, t.get(e), t.set(e, i)))) : (t.memoise(e, 2), s.replaceWith(t.set(e, Jh(a, t.get(
      e), i))));
    }
  }
  n(zee, "handleAssignment");
  function Jdt(t, e, s) {
    t.traverse(e, Object.assign({}, Hdt, s, {
      memoiser: new eB()
    }));
  }
  n(Jdt, "memberExpressionToFunctions");
  tB.default = Jdt;
});

// ../node_modules/@babel/helper-optimise-call-expression/lib/index.js
var iB = g((rB) => {
  "use strict";
  Object.defineProperty(rB, "__esModule", {
    value: !0
  });
  rB.default = Gdt;
  var Ydt = fe(), {
    callExpression: Zee,
    identifier: TE,
    isIdentifier: Xdt,
    isSpreadElement: zdt,
    memberExpression: ete,
    optionalCallExpression: tte,
    optionalMemberExpression: ste
  } = Ydt;
  function Gdt(t, e, s, r) {
    return s.length === 1 && zdt(s[0]) && Xdt(s[0].argument, {
      name: "arguments"
    }) ? r ? tte(ste(t, TE("apply"), !1, !0), [e, s[0].argument], !1) : Zee(ete(t, TE("apply")), [e, s[0].argument]) : r ? tte(ste(t, TE("ca\
ll"), !1, !0), [e, ...s], !1) : Zee(ete(t, TE("call")), [e, ...s]);
  }
  n(Gdt, "optimiseCallExpression");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/lib/virtual-types.js
var nB = g((Ts) => {
  "use strict";
  Object.defineProperty(Ts, "__esModule", {
    value: !0
  });
  Ts.Var = Ts.User = Ts.Statement = Ts.SpreadProperty = Ts.Scope = Ts.RestProperty = Ts.ReferencedMemberExpression = Ts.ReferencedIdentifier =
  Ts.Referenced = Ts.Pure = Ts.NumericLiteralTypeAnnotation = Ts.Generated = Ts.ForAwaitStatement = Ts.Flow = Ts.Expression = Ts.ExistentialTypeParam =
  Ts.BlockScoped = Ts.BindingIdentifier = void 0;
  var O$s = Ts.ReferencedIdentifier = ["Identifier", "JSXIdentifier"], _$s = Ts.ReferencedMemberExpression = ["MemberExpression"], L$s = Ts.
  BindingIdentifier = ["Identifier"], B$s = Ts.Statement = ["Statement"], M$s = Ts.Expression = ["Expression"], F$s = Ts.Scope = ["Scopable",
  "Pattern"], j$s = Ts.Referenced = null, R$s = Ts.BlockScoped = null, q$s = Ts.Var = ["VariableDeclaration"], U$s = Ts.User = null, K$s = Ts.
  Generated = null, V$s = Ts.Pure = null, W$s = Ts.Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"], $$s = Ts.RestProperty =
  ["RestElement"], H$s = Ts.SpreadProperty = ["RestElement"], J$s = Ts.ExistentialTypeParam = ["ExistsTypeAnnotation"], Y$s = Ts.NumericLiteralTypeAnnotation =
  ["NumberLiteralTypeAnnotation"], X$s = Ts.ForAwaitStatement = ["ForOfStatement"];
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js
var oB = g((Ii) => {
  "use strict";
  Object.defineProperty(Ii, "__esModule", {
    value: !0
  });
  Ii.isBindingIdentifier = xmt;
  Ii.isBlockScoped = vmt;
  Ii.isExpression = Pmt;
  Ii.isFlow = kmt;
  Ii.isForAwaitStatement = _mt;
  Ii.isGenerated = Imt;
  Ii.isPure = Nmt;
  Ii.isReferenced = Amt;
  Ii.isReferencedIdentifier = Tmt;
  Ii.isReferencedMemberExpression = bmt;
  Ii.isRestProperty = Dmt;
  Ii.isScope = Emt;
  Ii.isSpreadProperty = Omt;
  Ii.isStatement = Smt;
  Ii.isUser = wmt;
  Ii.isVar = Cmt;
  var Qdt = fe(), {
    isBinding: Zdt,
    isBlockScoped: emt,
    isExportDeclaration: tmt,
    isExpression: smt,
    isFlow: rmt,
    isForStatement: imt,
    isForXStatement: nmt,
    isIdentifier: rte,
    isImportDeclaration: amt,
    isImportSpecifier: omt,
    isJSXIdentifier: lmt,
    isJSXMemberExpression: umt,
    isMemberExpression: cmt,
    isRestElement: ite,
    isReferenced: aB,
    isScope: pmt,
    isStatement: hmt,
    isVar: fmt,
    isVariableDeclaration: dmt,
    react: mmt,
    isForOfStatement: ymt
  } = Qdt, {
    isCompatTag: gmt
  } = mmt;
  function Tmt(t) {
    let {
      node: e,
      parent: s
    } = this;
    if (!rte(e, t) && !umt(s, t))
      if (lmt(e, t)) {
        if (gmt(e.name)) return !1;
      } else
        return !1;
    return aB(e, s, this.parentPath.parent);
  }
  n(Tmt, "isReferencedIdentifier");
  function bmt() {
    let {
      node: t,
      parent: e
    } = this;
    return cmt(t) && aB(t, e);
  }
  n(bmt, "isReferencedMemberExpression");
  function xmt() {
    let {
      node: t,
      parent: e
    } = this, s = this.parentPath.parent;
    return rte(t) && Zdt(t, e, s);
  }
  n(xmt, "isBindingIdentifier");
  function Smt() {
    let {
      node: t,
      parent: e
    } = this;
    return hmt(t) ? !(dmt(t) && (nmt(e, {
      left: t
    }) || imt(e, {
      init: t
    }))) : !1;
  }
  n(Smt, "isStatement");
  function Pmt() {
    return this.isIdentifier() ? this.isReferencedIdentifier() : smt(this.node);
  }
  n(Pmt, "isExpression");
  function Emt() {
    return pmt(this.node, this.parent);
  }
  n(Emt, "isScope");
  function Amt() {
    return aB(this.node, this.parent);
  }
  n(Amt, "isReferenced");
  function vmt() {
    return emt(this.node);
  }
  n(vmt, "isBlockScoped");
  function Cmt() {
    return fmt(this.node);
  }
  n(Cmt, "isVar");
  function wmt() {
    return this.node && !!this.node.loc;
  }
  n(wmt, "isUser");
  function Imt() {
    return !this.isUser();
  }
  n(Imt, "isGenerated");
  function Nmt(t) {
    return this.scope.isPure(this.node, t);
  }
  n(Nmt, "isPure");
  function kmt() {
    let {
      node: t
    } = this;
    return rmt(t) ? !0 : amt(t) ? t.importKind === "type" || t.importKind === "typeof" : tmt(t) ? t.exportKind === "type" : omt(t) ? t.importKind ===
    "type" || t.importKind === "typeof" : !1;
  }
  n(kmt, "isFlow");
  function Dmt() {
    var t;
    return ite(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectPattern());
  }
  n(Dmt, "isRestProperty");
  function Omt() {
    var t;
    return ite(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectExpression());
  }
  n(Omt, "isSpreadProperty");
  function _mt() {
    return ymt(this.node, {
      await: !0
    });
  }
  n(_mt, "isForAwaitStatement");
  Ii.isExistentialTypeParam = /* @__PURE__ */ n(function() {
    throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.");
  }, "isExistentialTypeParam"), Ii.isNumericLiteralTypeAnnotation = /* @__PURE__ */ n(function() {
    throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.");
  }, "isNumericLiteralTypeAnnotation");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js
var A0 = g((Xh) => {
  "use strict";
  Object.defineProperty(Xh, "__esModule", {
    value: !0
  });
  Xh.environmentVisitor = Umt;
  Xh.explode = mte;
  Xh.isExplodedVisitor = dte;
  Xh.merge = gte;
  Xh.verify = yte;
  var fte = nB(), Lmt = oB(), Bmt = fe(), nte = dl(), {
    DEPRECATED_KEYS: ate,
    DEPRECATED_ALIASES: ote,
    FLIPPED_ALIAS_KEYS: lte,
    TYPES: Mmt,
    __internal__deprecationWarning: ute
  } = Bmt;
  function Fmt(t) {
    return t in fte;
  }
  n(Fmt, "isVirtualType");
  function dte(t) {
    return t?._exploded;
  }
  n(dte, "isExplodedVisitor");
  function mte(t) {
    if (dte(t)) return t;
    t._exploded = !0;
    for (let e of Object.keys(t)) {
      if (Yh(e)) continue;
      let s = e.split("|");
      if (s.length === 1) continue;
      let r = t[e];
      delete t[e];
      for (let i of s)
        t[i] = r;
    }
    yte(t), delete t.__esModule, jmt(t), hte(t);
    for (let e of Object.keys(t)) {
      if (Yh(e) || !Fmt(e)) continue;
      let s = t[e];
      for (let i of Object.keys(s))
        s[i] = Rmt(e, s[i]);
      delete t[e];
      let r = fte[e];
      if (r !== null)
        for (let i of r)
          t[i] ? E0(t[i], s) : t[i] = s;
      else
        E0(t, s);
    }
    for (let e of Object.keys(t)) {
      if (Yh(e)) continue;
      let s = lte[e];
      if (e in ate) {
        let i = ate[e];
        ute(e, i, "Visitor "), s = [i];
      } else if (e in ote) {
        let i = ote[e];
        ute(e, i, "Visitor "), s = lte[i];
      }
      if (!s) continue;
      let r = t[e];
      delete t[e];
      for (let i of s) {
        let a = t[i];
        a ? E0(a, r) : t[i] = Object.assign({}, r);
      }
    }
    for (let e of Object.keys(t))
      Yh(e) || hte(t[e]);
    return t;
  }
  n(mte, "explode$1");
  function yte(t) {
    if (!t._verified) {
      if (typeof t == "function")
        throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Functi\
on }`?");
      for (let e of Object.keys(t)) {
        if ((e === "enter" || e === "exit") && cte(e, t[e]), Yh(e)) continue;
        if (!Mmt.includes(e))
          throw new Error(`You gave us a visitor for the node type ${e} but it's not a valid type in @babel/traverse 7.26.9`);
        let s = t[e];
        if (typeof s == "object")
          for (let r of Object.keys(s))
            if (r === "enter" || r === "exit")
              cte(`${e}.${r}`, s[r]);
            else
              throw new Error(`You passed \`traverse()\` a visitor object with the property ${e} that has the invalid property ${r}`);
      }
      t._verified = !0;
    }
  }
  n(yte, "verify$1");
  function cte(t, e) {
    let s = [].concat(e);
    for (let r of s)
      if (typeof r != "function")
        throw new TypeError(`Non-function found defined in ${t} with type ${typeof r}`);
  }
  n(cte, "validateVisitorMethods");
  function gte(t, e = [], s) {
    let r = {
      _verified: !0,
      _exploded: !0
    };
    Object.defineProperty(r, "_exploded", {
      enumerable: !1
    }), Object.defineProperty(r, "_verified", {
      enumerable: !1
    });
    for (let i = 0; i < t.length; i++) {
      let a = mte(t[i]), o = e[i], l = a;
      (o || s) && (l = pte(l, o, s)), E0(r, l);
      for (let u of Object.keys(a)) {
        if (Yh(u)) continue;
        let c = a[u];
        (o || s) && (c = pte(c, o, s));
        let p = r[u] || (r[u] = {});
        E0(p, c);
      }
    }
    return r;
  }
  n(gte, "merge");
  function pte(t, e, s) {
    let r = {};
    for (let i of ["enter", "exit"]) {
      let a = t[i];
      Array.isArray(a) && (a = a.map(function(o) {
        let l = o;
        return e && (l = /* @__PURE__ */ n(function(u) {
          o.call(e, u, e);
        }, "newFn")), s && (l = s(e?.key, i, l)), l !== o && (l.toString = () => o.toString()), l;
      }), r[i] = a);
    }
    return r;
  }
  n(pte, "wrapWithStateOrWrapper");
  function jmt(t) {
    for (let e of Object.keys(t)) {
      if (Yh(e)) continue;
      let s = t[e];
      typeof s == "function" && (t[e] = {
        enter: s
      });
    }
  }
  n(jmt, "ensureEntranceObjects");
  function hte(t) {
    t.enter && !Array.isArray(t.enter) && (t.enter = [t.enter]), t.exit && !Array.isArray(t.exit) && (t.exit = [t.exit]);
  }
  n(hte, "ensureCallbackArrays");
  function Rmt(t, e) {
    let s = `is${t}`, r = Lmt[s], i = /* @__PURE__ */ n(function(a) {
      if (r.call(a))
        return e.apply(this, arguments);
    }, "newFn");
    return i.toString = () => e.toString(), i;
  }
  n(Rmt, "wrapCheck");
  function Yh(t) {
    return t[0] === "_" || t === "enter" || t === "exit" || t === "shouldSkip" || t === "denylist" || t === "noScope" || t === "skipKeys" ||
    t === "blacklist";
  }
  n(Yh, "shouldIgnoreKey");
  function E0(t, e) {
    for (let s of ["enter", "exit"])
      e[s] && (t[s] = [].concat(t[s] || [], e[s]));
  }
  n(E0, "mergePair");
  var qmt = {
    FunctionParent(t) {
      t.isArrowFunctionExpression() || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() :
      nte.requeueComputedKeyAndDecorators.call(t)));
    },
    Property(t) {
      t.isObjectProperty() || (t.skip(), t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() : nte.requeueComputedKeyAndDecorators.
      call(t));
    }
  };
  function Umt(t) {
    return gte([qmt, t]);
  }
  n(Umt, "environmentVisitor");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/lib/renamer.js
var Tte = g((xE) => {
  "use strict";
  Object.defineProperty(xE, "__esModule", {
    value: !0
  });
  xE.default = void 0;
  var bE = fe(), Kmt = bE, Vmt = SE(), Wmt = A0(), $mt = dl(), {
    getAssignmentIdentifiers: Hmt
  } = Kmt, Jmt = {
    ReferencedIdentifier({
      node: t
    }, e) {
      t.name === e.oldName && (t.name = e.newName);
    },
    Scope(t, e) {
      t.scope.bindingIdentifierEquals(e.oldName, e.binding.identifier) || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.
      requeueComputedKeyAndDecorators() : $mt.requeueComputedKeyAndDecorators.call(t)));
    },
    ObjectProperty({
      node: t,
      scope: e
    }, s) {
      let {
        name: r
      } = t.key;
      if (t.shorthand && (r === s.oldName || r === s.newName) && e.getBindingIdentifier(r) === s.binding.identifier) {
        t.shorthand = !1;
        {
          var i;
          (i = t.extra) != null && i.shorthand && (t.extra.shorthand = !1);
        }
      }
    },
    "AssignmentExpression|Declaration|VariableDeclarator"(t, e) {
      if (t.isVariableDeclaration()) return;
      let s = t.isAssignmentExpression() ? Hmt(t.node) : t.getOuterBindingIdentifiers();
      for (let r in s)
        r === e.oldName && (s[r].name = e.newName);
    }
  }, lB = class {
    static {
      n(this, "Renamer");
    }
    constructor(e, s, r) {
      this.newName = r, this.oldName = s, this.binding = e;
    }
    maybeConvertFromExportDeclaration(e) {
      let s = e.parentPath;
      if (s.isExportDeclaration()) {
        if (s.isExportDefaultDeclaration()) {
          let {
            declaration: r
          } = s.node;
          if (bE.isDeclaration(r) && !r.id)
            return;
        }
        s.isExportAllDeclaration() || s.splitExportDeclaration();
      }
    }
    maybeConvertFromClassFunctionDeclaration(e) {
      return e;
    }
    maybeConvertFromClassFunctionExpression(e) {
      return e;
    }
    rename() {
      let {
        binding: e,
        oldName: s,
        newName: r
      } = this, {
        scope: i,
        path: a
      } = e, o = a.find((c) => c.isDeclaration() || c.isFunctionExpression() || c.isClassExpression());
      o && o.getOuterBindingIdentifiers()[s] === e.identifier && this.maybeConvertFromExportDeclaration(o);
      let l = arguments[0] || i.block, u = {
        discriminant: !0
      };
      bE.isMethod(l) && (l.computed && (u.key = !0), bE.isObjectMethod(l) || (u.decorators = !0)), (0, Vmt.traverseNode)(l, (0, Wmt.explode)(
      Jmt), i, this, i.path, u), arguments[0] || (i.removeOwnBinding(s), i.bindings[r] = e, this.binding.identifier.name = r), o && (this.maybeConvertFromClassFunctionDeclaration(
      a), this.maybeConvertFromClassFunctionExpression(a));
    }
  };
  xE.default = lB;
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/binding.js
var bte = g((PE) => {
  "use strict";
  Object.defineProperty(PE, "__esModule", {
    value: !0
  });
  PE.default = void 0;
  var uB = class {
    static {
      n(this, "Binding");
    }
    constructor({
      identifier: e,
      scope: s,
      path: r,
      kind: i
    }) {
      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 = e, this.scope = s, this.path = r, this.kind = i,
      (i === "var" || i === "hoisted") && Ymt(r) && this.reassign(r), this.clearValue();
    }
    deoptValue() {
      this.clearValue(), this.hasDeoptedValue = !0;
    }
    setValue(e) {
      this.hasDeoptedValue || (this.hasValue = !0, this.value = e);
    }
    clearValue() {
      this.hasDeoptedValue = !1, this.hasValue = !1, this.value = null;
    }
    reassign(e) {
      this.constant = !1, !this.constantViolations.includes(e) && this.constantViolations.push(e);
    }
    reference(e) {
      this.referencePaths.includes(e) || (this.referenced = !0, this.references++, this.referencePaths.push(e));
    }
    dereference() {
      this.references--, this.referenced = !!this.references;
    }
  };
  PE.default = uB;
  function Ymt(t) {
    for (let {
      parentPath: e,
      key: s
    } = t; e; {
      parentPath: e,
      key: s
    } = e) {
      if (e.isFunctionParent()) return !1;
      if (e.isWhile() || e.isForXStatement() || e.isForStatement() && s === "body")
        return !0;
    }
    return !1;
  }
  n(Ymt, "isDeclaredInLoop");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/cache.js
var zh = g((fa) => {
  "use strict";
  Object.defineProperty(fa, "__esModule", {
    value: !0
  });
  fa.clear = zmt;
  fa.clearPath = xte;
  fa.clearScope = Ste;
  fa.getCachedPaths = Gmt;
  fa.getOrCreateCachedPaths = Qmt;
  fa.scope = fa.path = void 0;
  var EE = fa.path = /* @__PURE__ */ new WeakMap(), Xmt = fa.scope = /* @__PURE__ */ new WeakMap();
  function zmt() {
    xte(), Ste();
  }
  n(zmt, "clear");
  function xte() {
    fa.path = EE = /* @__PURE__ */ new WeakMap();
  }
  n(xte, "clearPath");
  function Ste() {
    fa.scope = Xmt = /* @__PURE__ */ new WeakMap();
  }
  n(Ste, "clearScope");
  var cB = Object.freeze({});
  function Gmt(t, e) {
    var s, r;
    return t = null, (s = EE.get((r = t) != null ? r : cB)) == null ? void 0 : s.get(e);
  }
  n(Gmt, "getCachedPaths");
  function Qmt(t, e) {
    var s, r;
    t = null;
    let i = EE.get((s = t) != null ? s : cB);
    i || EE.set((r = t) != null ? r : cB, i = /* @__PURE__ */ new WeakMap());
    let a = i.get(e);
    return a || i.set(e, a = /* @__PURE__ */ new Map()), a;
  }
  n(Qmt, "getOrCreateCachedPaths");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js
var dB = g((vE) => {
  "use strict";
  Object.defineProperty(vE, "__esModule", {
    value: !0
  });
  vE.default = void 0;
  var Zmt = Tte(), eyt = v0(), tyt = bte(), syt = md(), kte = fe(), Dte = kte, Pte = zh(), ryt = A0(), {
    NOT_LOCAL_BINDING: Ete,
    assignmentExpression: iyt,
    callExpression: Ate,
    cloneNode: vte,
    getBindingIdentifiers: Ote,
    identifier: Qh,
    isArrayExpression: _te,
    isBinary: nyt,
    isCallExpression: Cte,
    isClass: ayt,
    isClassBody: oyt,
    isClassDeclaration: lyt,
    isExportAllDeclaration: Lte,
    isExportDefaultDeclaration: uyt,
    isExportNamedDeclaration: pB,
    isFunctionDeclaration: cyt,
    isIdentifier: Gh,
    isImportDeclaration: hB,
    isLiteral: pyt,
    isMemberExpression: hyt,
    isMethod: fyt,
    isModuleSpecifier: dyt,
    isNullLiteral: myt,
    isObjectExpression: yyt,
    isProperty: gyt,
    isPureish: Tyt,
    isRegExpLiteral: byt,
    isSuper: xyt,
    isTaggedTemplateExpression: Syt,
    isTemplateLiteral: Bte,
    isThisExpression: wte,
    isUnaryExpression: Pyt,
    isVariableDeclaration: Eyt,
    expressionStatement: Ayt,
    matchesPattern: Ite,
    memberExpression: fB,
    numericLiteral: vyt,
    toIdentifier: Cyt,
    variableDeclaration: wyt,
    variableDeclarator: Iyt,
    isRecordExpression: Nyt,
    isTupleExpression: kyt,
    isObjectProperty: Dyt,
    isTopicReference: Nte,
    isMetaProperty: Oyt,
    isPrivateName: _yt,
    isExportDeclaration: Lyt,
    buildUndefinedNode: Byt,
    sequenceExpression: Myt
  } = kte;
  function Ir(t, e) {
    switch (t?.type) {
      default:
        if (hB(t) || Lyt(t)) {
          var s;
          if ((Lte(t) || pB(t) || hB(t)) && t.source)
            Ir(t.source, e);
          else if ((pB(t) || hB(t)) && (s = t.specifiers) != null && s.length)
            for (let r of t.specifiers) Ir(r, e);
          else (uyt(t) || pB(t)) && t.declaration && Ir(t.declaration, e);
        } else dyt(t) ? Ir(t.local, e) : pyt(t) && !myt(t) && !byt(t) && !Bte(t) && e.push(t.value);
        break;
      case "MemberExpression":
      case "OptionalMemberExpression":
      case "JSXMemberExpression":
        Ir(t.object, e), Ir(t.property, e);
        break;
      case "Identifier":
      case "JSXIdentifier":
        e.push(t.name);
        break;
      case "CallExpression":
      case "OptionalCallExpression":
      case "NewExpression":
        Ir(t.callee, e);
        break;
      case "ObjectExpression":
      case "ObjectPattern":
        for (let r of t.properties)
          Ir(r, e);
        break;
      case "SpreadElement":
      case "RestElement":
        Ir(t.argument, e);
        break;
      case "ObjectProperty":
      case "ObjectMethod":
      case "ClassProperty":
      case "ClassMethod":
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
        Ir(t.key, e);
        break;
      case "ThisExpression":
        e.push("this");
        break;
      case "Super":
        e.push("super");
        break;
      case "Import":
        e.push("import");
        break;
      case "DoExpression":
        e.push("do");
        break;
      case "YieldExpression":
        e.push("yield"), Ir(t.argument, e);
        break;
      case "AwaitExpression":
        e.push("await"), Ir(t.argument, e);
        break;
      case "AssignmentExpression":
        Ir(t.left, e);
        break;
      case "VariableDeclarator":
        Ir(t.id, e);
        break;
      case "FunctionExpression":
      case "FunctionDeclaration":
      case "ClassExpression":
      case "ClassDeclaration":
        Ir(t.id, e);
        break;
      case "PrivateName":
        Ir(t.id, e);
        break;
      case "ParenthesizedExpression":
        Ir(t.expression, e);
        break;
      case "UnaryExpression":
      case "UpdateExpression":
        Ir(t.argument, e);
        break;
      case "MetaProperty":
        Ir(t.meta, e), Ir(t.property, e);
        break;
      case "JSXElement":
        Ir(t.openingElement, e);
        break;
      case "JSXOpeningElement":
        Ir(t.name, e);
        break;
      case "JSXFragment":
        Ir(t.openingFragment, e);
        break;
      case "JSXOpeningFragment":
        e.push("Fragment");
        break;
      case "JSXNamespacedName":
        Ir(t.namespace, e), Ir(t.name, e);
        break;
    }
  }
  n(Ir, "gatherNodeParts");
  var AE = {
    ForStatement(t) {
      let e = t.get("init");
      if (e.isVar()) {
        let {
          scope: s
        } = t;
        (s.getFunctionParent() || s.getProgramParent()).registerBinding("var", e);
      }
    },
    Declaration(t) {
      if (t.isBlockScoped() || t.isImportDeclaration() || t.isExportDeclaration()) return;
      (t.scope.getFunctionParent() || t.scope.getProgramParent()).registerDeclaration(t);
    },
    ImportDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    TSImportEqualsDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    ReferencedIdentifier(t, e) {
      Dte.isTSQualifiedName(t.parent) && t.parent.right === t.node || t.parentPath.isTSImportEqualsDeclaration() || e.references.push(t);
    },
    ForXStatement(t, e) {
      let s = t.get("left");
      if (s.isPattern() || s.isIdentifier())
        e.constantViolations.push(t);
      else if (s.isVar()) {
        let {
          scope: r
        } = t;
        (r.getFunctionParent() || r.getProgramParent()).registerBinding("var", s);
      }
    },
    ExportDeclaration: {
      exit(t) {
        let {
          node: e,
          scope: s
        } = t;
        if (Lte(e)) return;
        let r = e.declaration;
        if (lyt(r) || cyt(r)) {
          let i = r.id;
          if (!i) return;
          let a = s.getBinding(i.name);
          a?.reference(t);
        } else if (Eyt(r))
          for (let i of r.declarations)
            for (let a of Object.keys(Ote(i))) {
              let o = s.getBinding(a);
              o?.reference(t);
            }
      }
    },
    LabeledStatement(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    AssignmentExpression(t, e) {
      e.assignments.push(t);
    },
    UpdateExpression(t, e) {
      e.constantViolations.push(t);
    },
    UnaryExpression(t, e) {
      t.node.operator === "delete" && e.constantViolations.push(t);
    },
    BlockScoped(t) {
      let e = t.scope;
      if (e.path === t && (e = e.parent), e.getBlockParent().registerDeclaration(t), t.isClassDeclaration() && t.node.id) {
        let i = t.node.id.name;
        t.scope.bindings[i] = t.scope.parent.getBinding(i);
      }
    },
    CatchClause(t) {
      t.scope.registerBinding("let", t);
    },
    Function(t) {
      let e = t.get("params");
      for (let s of e)
        t.scope.registerBinding("param", s);
      t.isFunctionExpression() && t.node.id && !t.node.id[Ete] && t.scope.registerBinding("local", t.get("id"), t);
    },
    ClassExpression(t) {
      t.node.id && !t.node.id[Ete] && t.scope.registerBinding("local", t.get("id"), t);
    },
    TSTypeAnnotation(t) {
      t.skip();
    }
  }, Fyt = 0, Do = class t {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.uid = void 0, this.path = void 0, this.block = void 0, this.inited = void 0, this.labels = 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;
      let {
        node: s
      } = e, r = Pte.scope.get(s);
      if (r?.path === e)
        return r;
      Pte.scope.set(s, this), this.uid = Fyt++, this.block = s, this.path = e, this.labels = /* @__PURE__ */ new Map(), this.inited = !1;
    }
    get parent() {
      var e;
      let s, r = this.path;
      do {
        var i;
        let a = r.key === "key" || r.listKey === "decorators";
        r = r.parentPath, a && r.isMethod() && (r = r.parentPath), (i = r) != null && i.isScope() && (s = r);
      } while (r && !s);
      return (e = s) == null ? void 0 : e.scope;
    }
    generateDeclaredUidIdentifier(e) {
      let s = this.generateUidIdentifier(e);
      return this.push({
        id: s
      }), vte(s);
    }
    generateUidIdentifier(e) {
      return Qh(this.generateUid(e));
    }
    generateUid(e = "temp") {
      e = Cyt(e).replace(/^_+/, "").replace(/\d+$/g, "");
      let s, r = 1;
      do
        s = `_${e}`, r > 1 && (s += r), r++;
      while (this.hasLabel(s) || this.hasBinding(s) || this.hasGlobal(s) || this.hasReference(s));
      let i = this.getProgramParent();
      return i.references[s] = !0, i.uids[s] = !0, s;
    }
    generateUidBasedOnNode(e, s) {
      let r = [];
      Ir(e, r);
      let i = r.join("$");
      return i = i.replace(/^_/, "") || s || "ref", this.generateUid(i.slice(0, 20));
    }
    generateUidIdentifierBasedOnNode(e, s) {
      return Qh(this.generateUidBasedOnNode(e, s));
    }
    isStatic(e) {
      if (wte(e) || xyt(e) || Nte(e))
        return !0;
      if (Gh(e)) {
        let s = this.getBinding(e.name);
        return s ? s.constant : this.hasBinding(e.name);
      }
      return !1;
    }
    maybeGenerateMemoised(e, s) {
      if (this.isStatic(e))
        return null;
      {
        let r = this.generateUidIdentifierBasedOnNode(e);
        return s ? r : (this.push({
          id: r
        }), vte(r));
      }
    }
    checkBlockScopedCollisions(e, s, r, i) {
      if (s === "param" || e.kind === "local") return;
      if (s === "let" || e.kind === "let" || e.kind === "const" || e.kind === "module" || e.kind === "param" && s === "const")
        throw this.path.hub.buildError(i, `Duplicate declaration "${r}"`, TypeError);
    }
    rename(e, s) {
      let r = this.getBinding(e);
      r && (s || (s = this.generateUidIdentifier(e).name), new Zmt.default(r, e, s).rename(arguments[2]));
    }
    dump() {
      let e = "-".repeat(60);
      console.log(e);
      let s = this;
      do {
        console.log("#", s.block.type);
        for (let r of Object.keys(s.bindings)) {
          let i = s.bindings[r];
          console.log(" -", r, {
            constant: i.constant,
            references: i.references,
            violations: i.constantViolations.length,
            kind: i.kind
          });
        }
      } while (s = s.parent);
      console.log(e);
    }
    hasLabel(e) {
      return !!this.getLabel(e);
    }
    getLabel(e) {
      return this.labels.get(e);
    }
    registerLabel(e) {
      this.labels.set(e.node.label.name, e);
    }
    registerDeclaration(e) {
      if (e.isLabeledStatement())
        this.registerLabel(e);
      else if (e.isFunctionDeclaration())
        this.registerBinding("hoisted", e.get("id"), e);
      else if (e.isVariableDeclaration()) {
        let s = e.get("declarations"), {
          kind: r
        } = e.node;
        for (let i of s)
          this.registerBinding(r === "using" || r === "await using" ? "const" : r, i);
      } else if (e.isClassDeclaration()) {
        if (e.node.declare) return;
        this.registerBinding("let", e);
      } else if (e.isImportDeclaration()) {
        let s = e.node.importKind === "type" || e.node.importKind === "typeof", r = e.get("specifiers");
        for (let i of r) {
          let a = s || i.isImportSpecifier() && (i.node.importKind === "type" || i.node.importKind === "typeof");
          this.registerBinding(a ? "unknown" : "module", i);
        }
      } else if (e.isExportDeclaration()) {
        let s = e.get("declaration");
        (s.isClassDeclaration() || s.isFunctionDeclaration() || s.isVariableDeclaration()) && this.registerDeclaration(s);
      } else
        this.registerBinding("unknown", e);
    }
    buildUndefinedNode() {
      return Byt();
    }
    registerConstantViolation(e) {
      let s = e.getAssignmentIdentifiers();
      for (let i of Object.keys(s)) {
        var r;
        (r = this.getBinding(i)) == null || r.reassign(e);
      }
    }
    registerBinding(e, s, r = s) {
      if (!e) throw new ReferenceError("no `kind`");
      if (s.isVariableDeclaration()) {
        let o = s.get("declarations");
        for (let l of o)
          this.registerBinding(e, l);
        return;
      }
      let i = this.getProgramParent(), a = s.getOuterBindingIdentifiers(!0);
      for (let o of Object.keys(a)) {
        i.references[o] = !0;
        for (let l of a[o]) {
          let u = this.getOwnBinding(o);
          if (u) {
            if (u.identifier === l) continue;
            this.checkBlockScopedCollisions(u, e, o, l);
          }
          u ? u.reassign(r) : this.bindings[o] = new tyt.default({
            identifier: l,
            scope: this,
            path: r,
            kind: e
          });
        }
      }
    }
    addGlobal(e) {
      this.globals[e.name] = e;
    }
    hasUid(e) {
      let s = this;
      do
        if (s.uids[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasGlobal(e) {
      let s = this;
      do
        if (s.globals[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasReference(e) {
      return !!this.getProgramParent().references[e];
    }
    isPure(e, s) {
      if (Gh(e)) {
        let o = this.getBinding(e.name);
        return o ? s ? o.constant : !0 : !1;
      } else {
        if (wte(e) || Oyt(e) || Nte(e) || _yt(e))
          return !0;
        if (ayt(e)) {
          var r;
          return e.superClass && !this.isPure(e.superClass, s) || ((r = e.decorators) == null ? void 0 : r.length) > 0 ? !1 : this.isPure(e.
          body, s);
        } else if (oyt(e)) {
          for (let o of e.body)
            if (!this.isPure(o, s)) return !1;
          return !0;
        } else {
          if (nyt(e))
            return this.isPure(e.left, s) && this.isPure(e.right, s);
          if (_te(e) || kyt(e)) {
            for (let o of e.elements)
              if (o !== null && !this.isPure(o, s)) return !1;
            return !0;
          } else if (yyt(e) || Nyt(e)) {
            for (let o of e.properties)
              if (!this.isPure(o, s)) return !1;
            return !0;
          } else if (fyt(e)) {
            var i;
            return !(e.computed && !this.isPure(e.key, s) || ((i = e.decorators) == null ? void 0 : i.length) > 0);
          } else if (gyt(e)) {
            var a;
            return !(e.computed && !this.isPure(e.key, s) || ((a = e.decorators) == null ? void 0 : a.length) > 0 || (Dyt(e) || e.static) &&
            e.value !== null && !this.isPure(e.value, s));
          } else {
            if (Pyt(e))
              return this.isPure(e.argument, s);
            if (Bte(e)) {
              for (let o of e.expressions)
                if (!this.isPure(o, s)) return !1;
              return !0;
            } else return Syt(e) ? Ite(e.tag, "String.raw") && !this.hasBinding("String", {
              noGlobals: !0
            }) && this.isPure(e.quasi, s) : hyt(e) ? !e.computed && Gh(e.object) && e.object.name === "Symbol" && Gh(e.property) && e.property.
            name !== "for" && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) : Cte(e) ? Ite(e.callee, "Symbol.for") && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) && e.arguments.length === 1 && Dte.isStringLiteral(e.arguments[0]) : Tyt(e);
          }
        }
      }
    }
    setData(e, s) {
      return this.data[e] = s;
    }
    getData(e) {
      let s = this;
      do {
        let r = s.data[e];
        if (r != null) return r;
      } while (s = s.parent);
    }
    removeData(e) {
      let s = this;
      do
        s.data[e] != null && (s.data[e] = null);
      while (s = s.parent);
    }
    init() {
      this.inited || (this.inited = !0, this.crawl());
    }
    crawl() {
      let e = 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);
      let s = this;
      do {
        if (s.crawling) return;
        if (s.path.isProgram())
          break;
      } while (s = s.parent);
      let r = s, i = {
        references: [],
        constantViolations: [],
        assignments: []
      };
      if (this.crawling = !0, e.type !== "Program" && (0, ryt.isExplodedVisitor)(AE)) {
        for (let o of AE.enter)
          o.call(i, e, i);
        let a = AE[e.type];
        if (a)
          for (let o of a.enter)
            o.call(i, e, i);
      }
      e.traverse(AE, i), this.crawling = !1;
      for (let a of i.assignments) {
        let o = a.getAssignmentIdentifiers();
        for (let l of Object.keys(o))
          a.scope.getBinding(l) || r.addGlobal(o[l]);
        a.scope.registerConstantViolation(a);
      }
      for (let a of i.references) {
        let o = a.scope.getBinding(a.node.name);
        o ? o.reference(a) : r.addGlobal(a.node);
      }
      for (let a of i.constantViolations)
        a.scope.registerConstantViolation(a);
    }
    push(e) {
      let s = this.path;
      s.isPattern() ? s = this.getPatternParent().path : !s.isBlockStatement() && !s.isProgram() && (s = this.getBlockParent().path), s.isSwitchStatement() &&
      (s = (this.getFunctionParent() || this.getProgramParent()).path);
      let {
        init: r,
        unique: i,
        kind: a = "var",
        id: o
      } = e;
      if (!r && !i && (a === "var" || a === "let") && s.isFunction() && !s.node.name && Cte(s.parent, {
        callee: s.node
      }) && s.parent.arguments.length <= s.node.params.length && Gh(o)) {
        s.pushContainer("params", o), s.scope.registerBinding("param", s.get("params")[s.node.params.length - 1]);
        return;
      }
      (s.isLoop() || s.isCatchClause() || s.isFunction()) && (s.ensureBlock(), s = s.get("body"));
      let l = e._blockHoist == null ? 2 : e._blockHoist, u = `declaration:${a}:${l}`, c = !i && s.getData(u);
      if (!c) {
        let f = wyt(a, []);
        f._blockHoist = l, [c] = s.unshiftContainer("body", [f]), i || s.setData(u, c);
      }
      let p = Iyt(o, r), h = c.node.declarations.push(p);
      s.scope.registerBinding(a, c.get("declarations")[h - 1]);
    }
    getProgramParent() {
      let e = this;
      do
        if (e.path.isProgram())
          return e;
      while (e = e.parent);
      throw new Error("Couldn't find a Program");
    }
    getFunctionParent() {
      let e = this;
      do
        if (e.path.isFunctionParent())
          return e;
      while (e = e.parent);
      return null;
    }
    getBlockParent() {
      let e = this;
      do
        if (e.path.isBlockParent())
          return e;
      while (e = e.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getPatternParent() {
      let e = this;
      do
        if (!e.path.isPattern())
          return e.getBlockParent();
      while (e = e.parent.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getAllBindings() {
      let e = /* @__PURE__ */ Object.create(null), s = this;
      do {
        for (let r of Object.keys(s.bindings))
          r in e || (e[r] = s.bindings[r]);
        s = s.parent;
      } while (s);
      return e;
    }
    bindingIdentifierEquals(e, s) {
      return this.getBindingIdentifier(e) === s;
    }
    getBinding(e) {
      let s = this, r;
      do {
        let a = s.getOwnBinding(e);
        if (a) {
          var i;
          if (!((i = r) != null && i.isPattern() && a.kind !== "param" && a.kind !== "local"))
            return a;
        } else if (!a && e === "arguments" && s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
        r = s.path;
      } while (s = s.parent);
    }
    getOwnBinding(e) {
      return this.bindings[e];
    }
    getBindingIdentifier(e) {
      var s;
      return (s = this.getBinding(e)) == null ? void 0 : s.identifier;
    }
    getOwnBindingIdentifier(e) {
      let s = this.bindings[e];
      return s?.identifier;
    }
    hasOwnBinding(e) {
      return !!this.getOwnBinding(e);
    }
    hasBinding(e, s) {
      if (!e) return !1;
      let r = this;
      do
        if (r.hasOwnBinding(e))
          return !0;
      while (r = r.parent);
      let i, a;
      return typeof s == "object" ? (i = s.noGlobals, a = s.noUids) : typeof s == "boolean" && (i = s), !!(!a && this.hasUid(e) || !i && t.globals.
      includes(e) || !i && t.contextVariables.includes(e));
    }
    parentHasBinding(e, s) {
      var r;
      return (r = this.parent) == null ? void 0 : r.hasBinding(e, s);
    }
    moveBindingTo(e, s) {
      let r = this.getBinding(e);
      r && (r.scope.removeOwnBinding(e), r.scope = s, s.bindings[e] = r);
    }
    removeOwnBinding(e) {
      delete this.bindings[e];
    }
    removeBinding(e) {
      var s;
      (s = this.getBinding(e)) == null || s.scope.removeOwnBinding(e);
      let r = this;
      do
        r.uids[e] && (r.uids[e] = !1);
      while (r = r.parent);
    }
    hoistVariables(e = (s) => this.push({
      id: s
    })) {
      this.crawl();
      let s = /* @__PURE__ */ new Set();
      for (let i of Object.keys(this.bindings)) {
        let a = this.bindings[i];
        if (!a) continue;
        let {
          path: o
        } = a;
        if (!o.isVariableDeclarator()) continue;
        let {
          parent: l,
          parentPath: u
        } = o;
        if (l.kind !== "var" || s.has(l)) continue;
        s.add(o.parent);
        let c, p = [];
        for (let h of l.declarations) {
          var r;
          (r = c) != null || (c = h.id), h.init && p.push(iyt("=", h.id, h.init));
          let f = Object.keys(Ote(h, !1, !0, !0));
          for (let d of f)
            e(Qh(d), h.init != null);
        }
        if (u.parentPath.isFor({
          left: l
        }))
          u.replaceWith(c);
        else if (p.length === 0)
          u.remove();
        else {
          let h = p.length === 1 ? p[0] : Myt(p);
          u.parentPath.isForStatement({
            init: l
          }) ? u.replaceWith(h) : u.replaceWith(Ayt(h));
        }
      }
    }
  };
  vE.default = Do;
  Do.globals = Object.keys(syt.builtin);
  Do.contextVariables = ["arguments", "undefined", "Infinity", "NaN"];
  Do.prototype._renameFromMap = /* @__PURE__ */ n(function(e, s, r, i) {
    e[s] && (e[r] = i, e[s] = null);
  }, "_renameFromMap"), Do.prototype.traverse = function(t, e, s) {
    (0, eyt.default)(t, e, this, s, this.path);
  }, Do.prototype._generateUid = /* @__PURE__ */ n(function(e, s) {
    let r = e;
    return s > 1 && (r += s), `_${r}`;
  }, "_generateUid"), Do.prototype.toArray = /* @__PURE__ */ n(function(e, s, r) {
    if (Gh(e)) {
      let o = this.getBinding(e.name);
      if (o != null && o.constant && o.path.isGenericType("Array"))
        return e;
    }
    if (_te(e))
      return e;
    if (Gh(e, {
      name: "arguments"
    }))
      return Ate(fB(fB(fB(Qh("Array"), Qh("prototype")), Qh("slice")), Qh("call")), [e]);
    let i, a = [e];
    return s === !0 ? i = "toConsumableArray" : typeof s == "number" ? (a.push(vyt(s)), i = "slicedToArray") : i = "toArray", r && (a.unshift(
    this.path.hub.addHelper(i)), i = "maybeArrayLike"), Ate(this.path.hub.addHelper(i), a);
  }, "toArray"), Do.prototype.getAllBindingsOfKind = /* @__PURE__ */ n(function(...e) {
    let s = /* @__PURE__ */ Object.create(null);
    for (let r of e) {
      let i = this;
      do {
        for (let a of Object.keys(i.bindings)) {
          let o = i.bindings[a];
          o.kind === r && (s[a] = o);
        }
        i = i.parent;
      } while (i);
    }
    return s;
  }, "getAllBindingsOfKind"), Object.defineProperties(Do.prototype, {
    parentBlock: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.parent;
      }
    },
    hub: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.hub;
      }
    }
  });
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/source-map.js
var Mte = g((CE) => {
  "use strict";
  Object.defineProperty(CE, "__esModule", {
    value: !0
  });
  CE.default = void 0;
  var up = fh(), mB = Oc(), yB = class {
    static {
      n(this, "SourceMap");
    }
    constructor(e, s) {
      var r;
      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;
      let i = this._map = new up.GenMapping({
        sourceRoot: e.sourceRoot
      });
      if (this._sourceFileName = (r = e.sourceFileName) == null ? void 0 : r.replace(/\\/g, "/"), this._rawMappings = void 0, e.inputSourceMap) {
        this._inputMap = new mB.TraceMap(e.inputSourceMap);
        let o = this._inputMap.resolvedSources;
        if (o.length)
          for (let l = 0; l < o.length; l++) {
            var a;
            (0, up.setSourceContent)(i, o[l], (a = this._inputMap.sourcesContent) == null ? void 0 : a[l]);
          }
      }
      if (typeof s == "string" && !e.inputSourceMap)
        (0, up.setSourceContent)(i, this._sourceFileName, s);
      else if (typeof s == "object")
        for (let o of Object.keys(s))
          (0, up.setSourceContent)(i, o.replace(/\\/g, "/"), s[o]);
    }
    get() {
      return (0, up.toEncodedMap)(this._map);
    }
    getDecoded() {
      return (0, up.toDecodedMap)(this._map);
    }
    getRawMappings() {
      return this._rawMappings || (this._rawMappings = (0, up.allMappings)(this._map));
    }
    mark(e, s, r, i, a, o) {
      var l;
      this._rawMappings = void 0;
      let u;
      if (s != null)
        if (this._inputMap) {
          if (u = (0, mB.originalPositionFor)(this._inputMap, {
            line: s,
            column: r
          }), !u.name && a) {
            let c = (0, mB.originalPositionFor)(this._inputMap, a);
            c.name && (i = c.name);
          }
        } else
          u = {
            source: o?.replace(/\\/g, "/") || this._sourceFileName,
            line: s,
            column: r
          };
      (0, up.maybeAddMapping)(this._map, {
        name: i,
        generated: e,
        source: (l = u) == null ? void 0 : l.source,
        original: u
      });
    }
  };
  CE.default = yB;
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/buffer.js
var Fte = g((wE) => {
  "use strict";
  Object.defineProperty(wE, "__esModule", {
    value: !0
  });
  wE.default = void 0;
  var gB = class {
    static {
      n(this, "Buffer");
    }
    constructor(e, s) {
      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 = e, this._indentChar = s;
      for (let r = 0; r < 64; r++)
        this._fastIndentations.push(s.repeat(r));
      this._allocQueue();
    }
    _allocQueue() {
      let e = this._queue;
      for (let s = 0; s < 16; s++)
        e.push({
          char: 0,
          repeat: 1,
          line: void 0,
          column: void 0,
          identifierName: void 0,
          identifierNamePos: void 0,
          filename: ""
        });
    }
    _pushQueue(e, s, r, i, a) {
      let o = this._queueCursor;
      o === this._queue.length && this._allocQueue();
      let l = this._queue[o];
      l.char = e, l.repeat = s, l.line = r, l.column = i, 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();
      let e = this._map, s = {
        code: (this._buf + this._str).trimRight(),
        decodedMap: e?.getDecoded(),
        get __mergedMap() {
          return this.map;
        },
        get map() {
          let r = e ? e.get() : null;
          return s.map = r, r;
        },
        set map(r) {
          Object.defineProperty(s, "map", {
            value: r,
            writable: !0
          });
        },
        get rawMappings() {
          let r = e?.getRawMappings();
          return s.rawMappings = r, r;
        },
        set rawMappings(r) {
          Object.defineProperty(s, "rawMappings", {
            value: r,
            writable: !0
          });
        }
      };
      return s;
    }
    append(e, s) {
      this._flush(), this._append(e, this._sourcePosition, s);
    }
    appendChar(e) {
      this._flush(), this._appendChar(e, 1, this._sourcePosition);
    }
    queue(e) {
      if (e === 10)
        for (; this._queueCursor !== 0; ) {
          let r = this._queue[this._queueCursor - 1].char;
          if (r !== 32 && r !== 9)
            break;
          this._queueCursor--;
        }
      let s = this._sourcePosition;
      this._pushQueue(e, 1, s.line, s.column, s.filename);
    }
    queueIndentation(e) {
      e !== 0 && this._pushQueue(-1, e, void 0, void 0, void 0);
    }
    _flush() {
      let e = this._queueCursor, s = this._queue;
      for (let r = 0; r < e; r++) {
        let i = s[r];
        this._appendChar(i.char, i.repeat, i);
      }
      this._queueCursor = 0;
    }
    _appendChar(e, s, r) {
      if (this._last = e, e === -1) {
        let i = this._fastIndentations[s];
        i !== void 0 ? this._str += i : this._str += s > 1 ? this._indentChar.repeat(s) : this._indentChar;
      } else
        this._str += s > 1 ? String.fromCharCode(e).repeat(s) : String.fromCharCode(e);
      e !== 10 ? (this._mark(r.line, r.column, r.identifierName, r.identifierNamePos, r.filename), this._position.column += s) : (this._position.
      line++, this._position.column = 0), this._canMarkIdName && (r.identifierName = void 0, r.identifierNamePos = void 0);
    }
    _append(e, s, r) {
      let i = e.length, a = this._position;
      if (this._last = e.charCodeAt(i - 1), ++this._appendCount > 4096 ? (+this._str, this._buf += this._str, this._str = e, this._appendCount =
      0) : this._str += e, !r && !this._map) {
        a.column += i;
        return;
      }
      let {
        column: o,
        identifierName: l,
        identifierNamePos: u,
        filename: c
      } = s, p = s.line;
      (l != null || u != null) && this._canMarkIdName && (s.identifierName = void 0, s.identifierNamePos = void 0);
      let h = e.indexOf(`
`), f = 0;
      for (h !== 0 && this._mark(p, o, l, u, c); h !== -1; )
        a.line++, a.column = 0, f = h + 1, f < i && p !== void 0 && this._mark(++p, 0, null, null, c), h = e.indexOf(`
`, f);
      a.column += i - f;
    }
    _mark(e, s, r, i, a) {
      var o;
      (o = this._map) == null || o.mark(this._position, e, s, r, i, a);
    }
    removeTrailingNewline() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 10 && this._queueCursor--;
    }
    removeLastSemicolon() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 59 && this._queueCursor--;
    }
    getLastChar() {
      let e = this._queueCursor;
      return e !== 0 ? this._queue[e - 1].char : this._last;
    }
    getNewlineCount() {
      let e = this._queueCursor, s = 0;
      if (e === 0) return this._last === 10 ? 1 : 0;
      for (let r = e - 1; r >= 0 && this._queue[r].char === 10; r--)
        s++;
      return s === e && this._last === 10 ? s + 1 : s;
    }
    endsWithCharAndNewline() {
      let e = this._queue, s = this._queueCursor;
      if (s !== 0)
        return e[s - 1].char !== 10 ? void 0 : s > 1 ? e[s - 2].char : this._last;
    }
    hasContent() {
      return this._queueCursor !== 0 || !!this._last;
    }
    exactSource(e, s) {
      if (!this._map) {
        s();
        return;
      }
      this.source("start", e);
      let r = e.identifierName, i = this._sourcePosition;
      r && (this._canMarkIdName = !1, i.identifierName = r), s(), r && (this._canMarkIdName = !0, i.identifierName = void 0, i.identifierNamePos =
      void 0), this.source("end", e);
    }
    source(e, s) {
      this._map && this._normalizePosition(e, s, 0);
    }
    sourceWithOffset(e, s, r) {
      this._map && this._normalizePosition(e, s, r);
    }
    _normalizePosition(e, s, r) {
      let i = s[e], a = this._sourcePosition;
      i && (a.line = i.line, a.column = Math.max(i.column + r, 0), a.filename = s.filename);
    }
    getCurrentColumn() {
      let e = this._queue, s = this._queueCursor, r = -1, i = 0;
      for (let a = 0; a < s; a++) {
        let o = e[a];
        o.char === 10 && (r = i), i += o.repeat;
      }
      return r === -1 ? this._position.column + i : i - 1 - r;
    }
    getCurrentLine() {
      let e = 0, s = this._queue;
      for (let r = 0; r < this._queueCursor; r++)
        s[r].char === 10 && e++;
      return this._position.line + e;
    }
  };
  wE.default = gB;
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/node/whitespace.js
var Kte = g((NE) => {
  "use strict";
  Object.defineProperty(NE, "__esModule", {
    value: !0
  });
  NE.nodes = void 0;
  var jyt = fe(), {
    FLIPPED_ALIAS_KEYS: Ryt,
    isArrayExpression: qyt,
    isAssignmentExpression: Rte,
    isBinary: qte,
    isBlockStatement: Uyt,
    isCallExpression: Ute,
    isFunction: C0,
    isIdentifier: IE,
    isLiteral: Kyt,
    isMemberExpression: TB,
    isObjectExpression: Vyt,
    isOptionalCallExpression: Wyt,
    isOptionalMemberExpression: $yt,
    isStringLiteral: Hyt
  } = jyt;
  function ym(t, e) {
    return t && (TB(t) || $yt(t) ? (ym(t.object, e), t.computed && ym(t.property, e)) : qte(t) || Rte(t) ? (ym(t.left, e), ym(t.right, e)) :
    Ute(t) || Wyt(t) ? (e.hasCall = !0, ym(t.callee, e)) : C0(t) ? e.hasFunction = !0 : IE(t) && (e.hasHelper = e.hasHelper || t.callee && Iu(
    t.callee))), e;
  }
  n(ym, "crawlInternal");
  function jte(t) {
    return ym(t, {
      hasCall: !1,
      hasFunction: !1,
      hasHelper: !1
    });
  }
  n(jte, "crawl");
  function Iu(t) {
    return t ? TB(t) ? Iu(t.object) || Iu(t.property) : IE(t) ? t.name === "require" || t.name.charCodeAt(0) === 95 : Ute(t) ? Iu(t.callee) :
    qte(t) || Rte(t) ? IE(t.left) && Iu(t.left) || Iu(t.right) : !1 : !1;
  }
  n(Iu, "isHelper");
  function Jyt(t) {
    return Kyt(t) || Vyt(t) || qyt(t) || IE(t) || TB(t);
  }
  n(Jyt, "isType");
  var Zh = NE.nodes = {
    AssignmentExpression(t) {
      let e = jte(t.right);
      if (e.hasCall && e.hasHelper || e.hasFunction)
        return e.hasFunction ? 3 : 2;
    },
    SwitchCase(t, e) {
      return (t.consequent.length || e.cases[0] === t ? 1 : 0) | (!t.consequent.length && e.cases[e.cases.length - 1] === t ? 2 : 0);
    },
    LogicalExpression(t) {
      if (C0(t.left) || C0(t.right))
        return 2;
    },
    Literal(t) {
      if (Hyt(t) && t.value === "use strict")
        return 2;
    },
    CallExpression(t) {
      if (C0(t.callee) || Iu(t))
        return 3;
    },
    OptionalCallExpression(t) {
      if (C0(t.callee))
        return 3;
    },
    VariableDeclaration(t) {
      for (let e = 0; e < t.declarations.length; e++) {
        let s = t.declarations[e], r = Iu(s.id) && !Jyt(s.init);
        if (!r && s.init) {
          let i = jte(s.init);
          r = Iu(s.init) && i.hasCall || i.hasFunction;
        }
        if (r)
          return 3;
      }
    },
    IfStatement(t) {
      if (Uyt(t.consequent))
        return 3;
    }
  };
  Zh.ObjectProperty = Zh.ObjectTypeProperty = Zh.ObjectMethod = function(t, e) {
    if (e.properties[0] === t)
      return 1;
  };
  Zh.ObjectTypeCallProperty = function(t, e) {
    var s;
    if (e.callProperties[0] === t && !((s = e.properties) != null && s.length))
      return 1;
  };
  Zh.ObjectTypeIndexer = function(t, e) {
    var s, r;
    if (e.indexers[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length))
      return 1;
  };
  Zh.ObjectTypeInternalSlot = function(t, e) {
    var s, r, i;
    if (e.internalSlots[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length) && !((i = e.indexers) !=
    null && i.length))
      return 1;
  };
  [["Function", !0], ["Class", !0], ["Loop", !0], ["LabeledStatement", !0], ["SwitchStatement", !0], ["TryStatement", !0]].forEach(function([
  t, e]) {
    [t].concat(Ryt[t] || []).forEach(function(s) {
      let r = e ? 3 : 0;
      Zh[s] = () => r;
    });
  });
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/node/parentheses.js
var zte = g((Cs) => {
  "use strict";
  Object.defineProperty(Cs, "__esModule", {
    value: !0
  });
  Cs.AssignmentExpression = vgt;
  Cs.Binary = Jte;
  Cs.BinaryExpression = bgt;
  Cs.ClassExpression = Pgt;
  Cs.ArrowFunctionExpression = Cs.ConditionalExpression = Xte;
  Cs.DoExpression = lgt;
  Cs.FunctionExpression = Egt;
  Cs.FunctionTypeAnnotation = ngt;
  Cs.Identifier = wgt;
  Cs.LogicalExpression = Cgt;
  Cs.NullableTypeAnnotation = igt;
  Cs.ObjectExpression = ogt;
  Cs.OptionalIndexedAccessType = cgt;
  Cs.OptionalCallExpression = Cs.OptionalMemberExpression = Agt;
  Cs.SequenceExpression = xgt;
  Cs.TSSatisfiesExpression = Cs.TSAsExpression = pgt;
  Cs.TSConditionalType = hgt;
  Cs.TSConstructorType = Cs.TSFunctionType = Tgt;
  Cs.TSInferType = mgt;
  Cs.TSInstantiationExpression = ggt;
  Cs.TSIntersectionType = dgt;
  Cs.UnaryLike = Cs.TSTypeAssertion = Yte;
  Cs.TSTypeOperator = ygt;
  Cs.TSUnionType = fgt;
  Cs.IntersectionTypeAnnotation = Cs.UnionTypeAnnotation = ugt;
  Cs.UpdateExpression = agt;
  Cs.AwaitExpression = Cs.YieldExpression = Sgt;
  var Yyt = fe(), Ua = cp(), {
    isArrayTypeAnnotation: Xyt,
    isBinaryExpression: zyt,
    isCallExpression: Gyt,
    isForOfStatement: Qyt,
    isIndexedAccessType: Zyt,
    isMemberExpression: $te,
    isObjectPattern: egt,
    isOptionalMemberExpression: tgt,
    isYieldExpression: sgt,
    isStatement: rgt
  } = Yyt, Vte = /* @__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 Wte(t, e) {
    if (e === "BinaryExpression" || e === "LogicalExpression")
      return Vte.get(t.operator);
    if (e === "TSAsExpression" || e === "TSSatisfiesExpression")
      return Vte.get("in");
  }
  n(Wte, "getBinaryPrecedence");
  function bB(t) {
    return t === "TSAsExpression" || t === "TSSatisfiesExpression" || t === "TSTypeAssertion";
  }
  n(bB, "isTSTypeExpression");
  var kE = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "ClassDeclaration" || s === "ClassExpression") && e.superClass === t;
  }, "isClassExtendsClause"), DE = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "MemberExpression" || s === "OptionalMemberExpression") && e.object === t || (s === "CallExpression" || s === "OptionalCal\
lExpression" || s === "NewExpression") && e.callee === t || s === "TaggedTemplateExpression" && e.tag === t || s === "TSNonNullExpression";
  }, "hasPostfixPart");
  function igt(t, e) {
    return Xyt(e);
  }
  n(igt, "NullableTypeAnnotation");
  function ngt(t, e, s) {
    let r = e.type;
    return r === "UnionTypeAnnotation" || r === "IntersectionTypeAnnotation" || r === "ArrayTypeAnnotation" || !!(s & Ua.TokenContext.arrowFlowReturnType);
  }
  n(ngt, "FunctionTypeAnnotation");
  function agt(t, e) {
    return DE(t, e) || kE(t, e);
  }
  n(agt, "UpdateExpression");
  function Hte(t) {
    return !!(t & (Ua.TokenContext.expressionStatement | Ua.TokenContext.arrowBody));
  }
  n(Hte, "needsParenBeforeExpressionBrace");
  function ogt(t, e, s) {
    return Hte(s);
  }
  n(ogt, "ObjectExpression");
  function lgt(t, e, s) {
    return !t.async && !!(s & Ua.TokenContext.expressionStatement);
  }
  n(lgt, "DoExpression");
  function Jte(t, e) {
    let s = e.type;
    if (t.type === "BinaryExpression" && t.operator === "**" && s === "BinaryExpression" && e.operator === "**")
      return e.left === t;
    if (kE(t, e) || DE(t, e) || s === "UnaryExpression" || s === "SpreadElement" || s === "AwaitExpression")
      return !0;
    let r = Wte(e, s);
    if (r != null) {
      let i = Wte(t, t.type);
      if (r === i && s === "BinaryExpression" && e.right === t || r > i)
        return !0;
    }
  }
  n(Jte, "Binary");
  function ugt(t, e) {
    let s = e.type;
    return s === "ArrayTypeAnnotation" || s === "NullableTypeAnnotation" || s === "IntersectionTypeAnnotation" || s === "UnionTypeAnnotation";
  }
  n(ugt, "UnionTypeAnnotation");
  function cgt(t, e) {
    return Zyt(e) && e.objectType === t;
  }
  n(cgt, "OptionalIndexedAccessType");
  function pgt(t, e) {
    return (e.type === "AssignmentExpression" || e.type === "AssignmentPattern") && e.left === t || e.type === "BinaryExpression" && (e.operator ===
    "|" || e.operator === "&") && t === e.left ? !0 : Jte(t, e);
  }
  n(pgt, "TSAsExpression");
  function hgt(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType" || s === "TSTypeOperator" || s ===
    "TSTypeParameter" || (s === "TSIntersectionType" || s === "TSUnionType") && e.types[0] === t || s === "TSConditionalType" && (e.checkType ===
    t || e.extendsType === t);
  }
  n(hgt, "TSConditionalType");
  function fgt(t, e) {
    let s = e.type;
    return s === "TSIntersectionType" || s === "TSTypeOperator" || s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t ||
    s === "TSOptionalType";
  }
  n(fgt, "TSUnionType");
  function dgt(t, e) {
    let s = e.type;
    return s === "TSTypeOperator" || s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType";
  }
  n(dgt, "TSIntersectionType");
  function mgt(t, e) {
    let s = e.type;
    return !!(s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType" || t.typeParameter.constraint &&
    (s === "TSIntersectionType" || s === "TSUnionType") && e.types[0] === t);
  }
  n(mgt, "TSInferType");
  function ygt(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType";
  }
  n(ygt, "TSTypeOperator");
  function ggt(t, e) {
    let s = e.type;
    return (s === "CallExpression" || s === "OptionalCallExpression" || s === "NewExpression" || s === "TSInstantiationExpression") && !!e.typeParameters;
  }
  n(ggt, "TSInstantiationExpression");
  function Tgt(t, e) {
    let s = e.type;
    return s === "TSIntersectionType" || s === "TSUnionType" || s === "TSTypeOperator" || s === "TSOptionalType" || s === "TSArrayType" || s ===
    "TSIndexedAccessType" && e.objectType === t || s === "TSConditionalType" && (e.checkType === t || e.extendsType === t);
  }
  n(Tgt, "TSFunctionType");
  function bgt(t, e, s, r) {
    return t.operator === "in" && r;
  }
  n(bgt, "BinaryExpression");
  function xgt(t, e) {
    let s = e.type;
    return s === "SequenceExpression" || s === "ParenthesizedExpression" || s === "MemberExpression" && e.property === t || s === "OptionalM\
emberExpression" && e.property === t || s === "TemplateLiteral" ? !1 : s === "ClassDeclaration" ? !0 : s === "ForOfStatement" ? e.right === t :
    s === "ExportDefaultDeclaration" ? !0 : !rgt(e);
  }
  n(xgt, "SequenceExpression");
  function Sgt(t, e) {
    let s = e.type;
    return s === "BinaryExpression" || s === "LogicalExpression" || s === "UnaryExpression" || s === "SpreadElement" || DE(t, e) || s === "A\
waitExpression" && sgt(t) || s === "ConditionalExpression" && t === e.test || kE(t, e) || bB(s);
  }
  n(Sgt, "YieldExpression");
  function Pgt(t, e, s) {
    return !!(s & (Ua.TokenContext.expressionStatement | Ua.TokenContext.exportDefault));
  }
  n(Pgt, "ClassExpression");
  function Yte(t, e) {
    return DE(t, e) || zyt(e) && e.operator === "**" && e.left === t || kE(t, e);
  }
  n(Yte, "UnaryLike");
  function Egt(t, e, s) {
    return !!(s & (Ua.TokenContext.expressionStatement | Ua.TokenContext.exportDefault));
  }
  n(Egt, "FunctionExpression");
  function Xte(t, e) {
    let s = e.type;
    return s === "UnaryExpression" || s === "SpreadElement" || s === "BinaryExpression" || s === "LogicalExpression" || s === "ConditionalEx\
pression" && e.test === t || s === "AwaitExpression" || bB(s) ? !0 : Yte(t, e);
  }
  n(Xte, "ConditionalExpression");
  function Agt(t, e) {
    return Gyt(e) && e.callee === t || $te(e) && e.object === t;
  }
  n(Agt, "OptionalMemberExpression");
  function vgt(t, e, s) {
    return Hte(s) && egt(t.left) ? !0 : Xte(t, e);
  }
  n(vgt, "AssignmentExpression");
  function Cgt(t, e) {
    let s = e.type;
    if (bB(s)) return !0;
    if (s !== "LogicalExpression") return !1;
    switch (t.operator) {
      case "||":
        return e.operator === "??" || e.operator === "&&";
      case "&&":
        return e.operator === "??";
      case "??":
        return e.operator !== "??";
    }
  }
  n(Cgt, "LogicalExpression");
  function wgt(t, e, s, r, i) {
    var a;
    let o = e.type;
    if ((a = t.extra) != null && a.parenthesized && o === "AssignmentExpression" && e.left === t) {
      let l = e.right.type;
      if ((l === "FunctionExpression" || l === "ClassExpression") && e.right.id == null)
        return !0;
    }
    return i && i(t) !== t.name ? !1 : t.name === "let" ? ($te(e, {
      object: t,
      computed: !0
    }) || tgt(e, {
      object: t,
      computed: !0,
      optional: !1
    })) && s & (Ua.TokenContext.expressionStatement | Ua.TokenContext.forHead | Ua.TokenContext.forInHead) ? !0 : !!(s & Ua.TokenContext.forOfHead) :
    t.name === "async" && Qyt(e, {
      left: t,
      await: !1
    });
  }
  n(wgt, "Identifier");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/node/index.js
var cp = g((Nu) => {
  "use strict";
  Object.defineProperty(Nu, "__esModule", {
    value: !0
  });
  Nu.TokenContext = void 0;
  Nu.isLastChild = Vgt;
  Nu.needsParens = Kgt;
  Nu.needsWhitespace = SB;
  Nu.needsWhitespaceAfter = Ugt;
  Nu.needsWhitespaceBefore = qgt;
  var Igt = Kte(), Ngt = zte(), kgt = fe(), {
    FLIPPED_ALIAS_KEYS: Dgt,
    VISITOR_KEYS: Ogt,
    isCallExpression: Gte,
    isDecorator: _gt,
    isExpressionStatement: Lgt,
    isMemberExpression: Bgt,
    isNewExpression: Mgt,
    isParenthesizedExpression: Fgt
  } = kgt, gHs = Nu.TokenContext = {
    expressionStatement: 1,
    arrowBody: 2,
    exportDefault: 4,
    forHead: 8,
    forInHead: 16,
    forOfHead: 32,
    arrowFlowReturnType: 64
  };
  function Qte(t) {
    let e = /* @__PURE__ */ new Map();
    function s(r, i) {
      let a = e.get(r);
      e.set(r, a ? function(o, l, u, c, p) {
        var h;
        return (h = a(o, l, u, c, p)) != null ? h : i(o, l, u, c, p);
      } : i);
    }
    n(s, "add");
    for (let r of Object.keys(t)) {
      let i = Dgt[r];
      if (i)
        for (let a of i)
          s(a, t[r]);
      else
        s(r, t[r]);
    }
    return e;
  }
  n(Qte, "expandAliases");
  var jgt = Qte(Ngt), Rgt = Qte(Igt.nodes);
  function Zte(t) {
    return Gte(t) ? !0 : Bgt(t) && Zte(t.object);
  }
  n(Zte, "isOrHasCallExpression");
  function SB(t, e, s) {
    var r;
    if (!t) return !1;
    Lgt(t) && (t = t.expression);
    let i = (r = Rgt.get(t.type)) == null ? void 0 : r(t, e);
    return typeof i == "number" ? (i & s) !== 0 : !1;
  }
  n(SB, "needsWhitespace");
  function qgt(t, e) {
    return SB(t, e, 1);
  }
  n(qgt, "needsWhitespaceBefore");
  function Ugt(t, e) {
    return SB(t, e, 2);
  }
  n(Ugt, "needsWhitespaceAfter");
  function Kgt(t, e, s, r, i) {
    var a;
    return e ? Mgt(e) && e.callee === t && Zte(t) ? !0 : _gt(e) ? !xB(t) && !(Gte(t) && xB(t.callee)) && !Fgt(t) : (a = jgt.get(t.type)) == null ?
    void 0 : a(t, e, s, r, i) : !1;
  }
  n(Kgt, "needsParens");
  function xB(t) {
    switch (t.type) {
      case "Identifier":
        return !0;
      case "MemberExpression":
        return !t.computed && t.property.type === "Identifier" && xB(t.object);
      default:
        return !1;
    }
  }
  n(xB, "isDecoratorMemberExpression");
  function Vgt(t, e) {
    let s = Ogt[t.type];
    for (let r = s.length - 1; r >= 0; r--) {
      let i = t[s[r]];
      if (i === e)
        return !0;
      if (Array.isArray(i)) {
        let a = i.length - 1;
        for (; a >= 0 && i[a] === null; ) a--;
        return a >= 0 && i[a] === e;
      } else if (i)
        return !1;
    }
    return !1;
  }
  n(Vgt, "isLastChild");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/token-map.js
var ese = g((OE) => {
  "use strict";
  Object.defineProperty(OE, "__esModule", {
    value: !0
  });
  OE.TokenMap = void 0;
  var Wgt = fe(), {
    traverseFast: $gt,
    VISITOR_KEYS: Hgt
  } = Wgt, PB = class {
    static {
      n(this, "TokenMap");
    }
    constructor(e, s, r) {
      this._tokens = void 0, this._source = void 0, this._nodesToTokenIndexes = /* @__PURE__ */ new Map(), this._nodesOccurrencesCountCache =
      /* @__PURE__ */ new Map(), this._tokensCache = /* @__PURE__ */ new Map(), this._tokens = s, this._source = r, $gt(e, (i) => {
        let a = this._getTokensIndexesOfNode(i);
        a.length > 0 && this._nodesToTokenIndexes.set(i, a);
      }), this._tokensCache = null;
    }
    has(e) {
      return this._nodesToTokenIndexes.has(e);
    }
    getIndexes(e) {
      return this._nodesToTokenIndexes.get(e);
    }
    find(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = 0; i < r.length; i++) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return o;
        }
      return null;
    }
    findLastIndex(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = r.length - 1; i >= 0; i--) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return a;
        }
      return -1;
    }
    findMatching(e, s, r = 0) {
      let i = this._nodesToTokenIndexes.get(e);
      if (i) {
        let a = 0, o = r;
        if (o > 1) {
          let l = this._nodesOccurrencesCountCache.get(e);
          l && l.test === s && l.count < o && (a = l.i + 1, r -= l.count + 1);
        }
        for (; a < i.length; a++) {
          let l = this._tokens[i[a]];
          if (this.matchesOriginal(l, s)) {
            if (r === 0)
              return o > 0 && this._nodesOccurrencesCountCache.set(e, {
                test: s,
                count: o,
                i: a
              }), l;
            r--;
          }
        }
      }
      return null;
    }
    matchesOriginal(e, s) {
      return e.end - e.start !== s.length ? !1 : e.value != null ? e.value === s : this._source.startsWith(s, e.start);
    }
    startMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[0]];
      return i.start !== e.start ? !1 : this.matchesOriginal(i, s);
    }
    endMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[r.length - 1]];
      return i.end !== e.end ? !1 : this.matchesOriginal(i, s);
    }
    _getTokensIndexesOfNode(e) {
      if (e.start == null || e.end == null) return [];
      let {
        first: s,
        last: r
      } = this._findTokensOfNode(e, 0, this._tokens.length - 1), i = s, a = Jgt(e);
      (e.type === "ExportNamedDeclaration" || e.type === "ExportDefaultDeclaration") && e.declaration && e.declaration.type === "ClassDeclar\
ation" && a.next();
      let o = [];
      for (let l of a) {
        if (l == null || l.start == null || l.end == null) continue;
        let u = this._findTokensOfNode(l, i, r), c = u.first;
        for (let p = i; p < c; p++) o.push(p);
        i = u.last + 1;
      }
      for (let l = i; l <= r; l++) o.push(l);
      return o;
    }
    _findTokensOfNode(e, s, r) {
      let i = this._tokensCache.get(e);
      if (i) return i;
      let a = this._findFirstTokenOfNode(e.start, s, r), o = this._findLastTokenOfNode(e.end, a, r);
      return this._tokensCache.set(e, {
        first: a,
        last: o
      }), {
        first: a,
        last: o
      };
    }
    _findFirstTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].start)
          r = i - 1;
        else if (e > this._tokens[i].start)
          s = i + 1;
        else
          return i;
      }
      return s;
    }
    _findLastTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].end)
          r = i - 1;
        else if (e > this._tokens[i].end)
          s = i + 1;
        else
          return i;
      }
      return r;
    }
  };
  OE.TokenMap = PB;
  function* Jgt(t) {
    if (t.type === "TemplateLiteral") {
      yield t.quasis[0];
      for (let s = 1; s < t.quasis.length; s++)
        yield t.expressions[s - 1], yield t.quasis[s];
      return;
    }
    let e = Hgt[t.type];
    for (let s of e) {
      let r = t[s];
      r && (Array.isArray(r) ? yield* r : yield r);
    }
  }
  n(Jgt, "childrenIterator");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/template-literals.js
var tse = g((gm) => {
  "use strict";
  Object.defineProperty(gm, "__esModule", {
    value: !0
  });
  gm.TaggedTemplateExpression = Ygt;
  gm.TemplateElement = Xgt;
  gm.TemplateLiteral = Ggt;
  gm._printTemplate = zgt;
  function Ygt(t) {
    this.print(t.tag), this.print(t.typeParameters), this.print(t.quasi);
  }
  n(Ygt, "TaggedTemplateExpression");
  function Xgt() {
    throw new Error("TemplateElement printing is handled in TemplateLiteral");
  }
  n(Xgt, "TemplateElement");
  function zgt(t, e) {
    let s = t.quasis, r = "`";
    for (let i = 0; i < s.length - 1; i++)
      if (r += s[i].value.raw, this.token(r + "${", !0), this.print(e[i]), r = "}", this.tokenMap) {
        let a = this.tokenMap.findMatching(t, "}", i);
        a && this._catchUpTo(a.loc.start);
      }
    r += s[s.length - 1].value.raw, this.token(r + "`", !0);
  }
  n(zgt, "_printTemplate");
  function Ggt(t) {
    this._printTemplate(t, t.expressions);
  }
  n(Ggt, "TemplateLiteral");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/expressions.js
var rse = g((pr) => {
  "use strict";
  Object.defineProperty(pr, "__esModule", {
    value: !0
  });
  pr.LogicalExpression = pr.BinaryExpression = pr.AssignmentExpression = E0t;
  pr.AssignmentPattern = P0t;
  pr.AwaitExpression = T0t;
  pr.BindExpression = A0t;
  pr.CallExpression = y0t;
  pr.ConditionalExpression = o0t;
  pr.Decorator = f0t;
  pr.DoExpression = i0t;
  pr.EmptyStatement = x0t;
  pr.ExpressionStatement = S0t;
  pr.Import = g0t;
  pr.MemberExpression = v0t;
  pr.MetaProperty = C0t;
  pr.ModuleExpression = N0t;
  pr.NewExpression = l0t;
  pr.OptionalCallExpression = m0t;
  pr.OptionalMemberExpression = d0t;
  pr.ParenthesizedExpression = n0t;
  pr.PrivateName = w0t;
  pr.SequenceExpression = u0t;
  pr.Super = p0t;
  pr.ThisExpression = c0t;
  pr.UnaryExpression = r0t;
  pr.UpdateExpression = a0t;
  pr.V8IntrinsicIdentifier = I0t;
  pr.YieldExpression = b0t;
  pr._shouldPrintDecoratorsBeforeExport = h0t;
  var Qgt = fe(), Zgt = cp(), {
    isCallExpression: e0t,
    isLiteral: sse,
    isMemberExpression: EB,
    isNewExpression: t0t,
    isPattern: s0t
  } = Qgt;
  function r0t(t) {
    let {
      operator: e
    } = t;
    e === "void" || e === "delete" || e === "typeof" || e === "throw" ? (this.word(e), this.space()) : this.token(e), this.print(t.argument);
  }
  n(r0t, "UnaryExpression");
  function i0t(t) {
    t.async && (this.word("async", !0), this.space()), this.word("do"), this.space(), this.print(t.body);
  }
  n(i0t, "DoExpression");
  function n0t(t) {
    this.tokenChar(40);
    let e = this.enterDelimited();
    this.print(t.expression), e(), this.rightParens(t);
  }
  n(n0t, "ParenthesizedExpression");
  function a0t(t) {
    t.prefix ? (this.token(t.operator), this.print(t.argument)) : (this.print(t.argument, !0), this.token(t.operator));
  }
  n(a0t, "UpdateExpression");
  function o0t(t) {
    this.print(t.test), this.space(), this.tokenChar(63), this.space(), this.print(t.consequent), this.space(), this.tokenChar(58), this.space(),
    this.print(t.alternate);
  }
  n(o0t, "ConditionalExpression");
  function l0t(t, e) {
    if (this.word("new"), this.space(), this.print(t.callee), this.format.minified && t.arguments.length === 0 && !t.optional && !e0t(e, {
      callee: t
    }) && !EB(e) && !t0t(e) || (this.print(t.typeArguments), this.print(t.typeParameters), t.optional && this.token("?."), t.arguments.length ===
    0 && this.tokenMap && !this.tokenMap.endMatches(t, ")")))
      return;
    this.tokenChar(40);
    let s = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), s(), this.rightParens(t);
  }
  n(l0t, "NewExpression");
  function u0t(t) {
    this.printList(t.expressions);
  }
  n(u0t, "SequenceExpression");
  function c0t() {
    this.word("this");
  }
  n(c0t, "ThisExpression");
  function p0t() {
    this.word("super");
  }
  n(p0t, "Super");
  function h0t(t) {
    return typeof this.format.decoratorsBeforeExport == "boolean" ? this.format.decoratorsBeforeExport : typeof t.start == "number" && t.start ===
    t.declaration.start;
  }
  n(h0t, "_shouldPrintDecoratorsBeforeExport");
  function f0t(t) {
    this.tokenChar(64), this.print(t.expression), this.newline();
  }
  n(f0t, "Decorator");
  function d0t(t) {
    let {
      computed: e
    } = t, {
      optional: s,
      property: r
    } = t;
    if (this.print(t.object), !e && EB(r))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    sse(r) && typeof r.value == "number" && (e = !0), s && this.token("?."), e ? (this.tokenChar(91), this.print(r), this.tokenChar(93)) : (s ||
    this.tokenChar(46), this.print(r));
  }
  n(d0t, "OptionalMemberExpression");
  function m0t(t) {
    this.print(t.callee), this.print(t.typeParameters), t.optional && this.token("?."), this.print(t.typeArguments), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments), e(), this.rightParens(t);
  }
  n(m0t, "OptionalCallExpression");
  function y0t(t) {
    this.print(t.callee), this.print(t.typeArguments), this.print(t.typeParameters), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), e(), this.rightParens(t);
  }
  n(y0t, "CallExpression");
  function g0t() {
    this.word("import");
  }
  n(g0t, "Import");
  function T0t(t) {
    this.word("await"), t.argument && (this.space(), this.printTerminatorless(t.argument));
  }
  n(T0t, "AwaitExpression");
  function b0t(t) {
    this.word("yield", !0), t.delegate ? (this.tokenChar(42), t.argument && (this.space(), this.print(t.argument))) : t.argument && (this.space(),
    this.printTerminatorless(t.argument));
  }
  n(b0t, "YieldExpression");
  function x0t() {
    this.semicolon(!0);
  }
  n(x0t, "EmptyStatement");
  function S0t(t) {
    this.tokenContext |= Zgt.TokenContext.expressionStatement, this.print(t.expression), this.semicolon();
  }
  n(S0t, "ExpressionStatement");
  function P0t(t) {
    this.print(t.left), (t.left.type === "Identifier" || s0t(t.left)) && (t.left.optional && this.tokenChar(63), this.print(t.left.typeAnnotation)),
    this.space(), this.tokenChar(61), this.space(), this.print(t.right);
  }
  n(P0t, "AssignmentPattern");
  function E0t(t) {
    this.print(t.left), this.space(), t.operator === "in" || t.operator === "instanceof" ? this.word(t.operator) : (this.token(t.operator), this.
    _endsWithDiv = t.operator === "/"), this.space(), this.print(t.right);
  }
  n(E0t, "AssignmentExpression");
  function A0t(t) {
    this.print(t.object), this.token("::"), this.print(t.callee);
  }
  n(A0t, "BindExpression");
  function v0t(t) {
    if (this.print(t.object), !t.computed && EB(t.property))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    let e = t.computed;
    if (sse(t.property) && typeof t.property.value == "number" && (e = !0), e) {
      let s = this.enterDelimited();
      this.tokenChar(91), this.print(t.property), this.tokenChar(93), s();
    } else
      this.tokenChar(46), this.print(t.property);
  }
  n(v0t, "MemberExpression");
  function C0t(t) {
    this.print(t.meta), this.tokenChar(46), this.print(t.property);
  }
  n(C0t, "MetaProperty");
  function w0t(t) {
    this.tokenChar(35), this.print(t.id);
  }
  n(w0t, "PrivateName");
  function I0t(t) {
    this.tokenChar(37), this.word(t.name);
  }
  n(I0t, "V8IntrinsicIdentifier");
  function N0t(t) {
    this.word("module", !0), this.space(), this.tokenChar(123), this.indent();
    let {
      body: e
    } = t;
    (e.body.length || e.directives.length) && this.newline(), this.print(e), this.dedent(), this.rightBrace(t);
  }
  n(N0t, "ModuleExpression");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/statements.js
var ose = g((zr) => {
  "use strict";
  Object.defineProperty(zr, "__esModule", {
    value: !0
  });
  zr.BreakStatement = R0t;
  zr.CatchClause = $0t;
  zr.ContinueStatement = q0t;
  zr.DebuggerStatement = Y0t;
  zr.DoWhileStatement = j0t;
  zr.ForOfStatement = zr.ForInStatement = void 0;
  zr.ForStatement = M0t;
  zr.IfStatement = B0t;
  zr.LabeledStatement = V0t;
  zr.ReturnStatement = U0t;
  zr.SwitchCase = J0t;
  zr.SwitchStatement = H0t;
  zr.ThrowStatement = K0t;
  zr.TryStatement = W0t;
  zr.VariableDeclaration = X0t;
  zr.VariableDeclarator = z0t;
  zr.WhileStatement = F0t;
  zr.WithStatement = L0t;
  var k0t = fe(), AB = cp(), {
    isFor: ise,
    isForStatement: D0t,
    isIfStatement: O0t,
    isStatement: _0t
  } = k0t;
  function L0t(t) {
    this.word("with"), this.space(), this.tokenChar(40), this.print(t.object), this.tokenChar(41), this.printBlock(t);
  }
  n(L0t, "WithStatement");
  function B0t(t) {
    this.word("if"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.space();
    let e = t.alternate && O0t(nse(t.consequent));
    e && (this.tokenChar(123), this.newline(), this.indent()), this.printAndIndentOnComments(t.consequent), e && (this.dedent(), this.newline(),
    this.tokenChar(125)), t.alternate && (this.endsWith(125) && this.space(), this.word("else"), this.space(), this.printAndIndentOnComments(
    t.alternate));
  }
  n(B0t, "IfStatement");
  function nse(t) {
    let {
      body: e
    } = t;
    return _0t(e) === !1 ? t : nse(e);
  }
  n(nse, "getLastStatement");
  function M0t(t) {
    this.word("for"), this.space(), this.tokenChar(40);
    {
      let e = this.enterForStatementInit();
      this.tokenContext |= AB.TokenContext.forHead, this.print(t.init), e();
    }
    this.tokenChar(59), t.test && (this.space(), this.print(t.test)), this.token(";", !1, 1), t.update && (this.space(), this.print(t.update)),
    this.tokenChar(41), this.printBlock(t);
  }
  n(M0t, "ForStatement");
  function F0t(t) {
    this.word("while"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.printBlock(t);
  }
  n(F0t, "WhileStatement");
  function ase(t) {
    this.word("for"), this.space();
    let e = t.type === "ForOfStatement";
    e && t.await && (this.word("await"), this.space()), this.noIndentInnerCommentsHere(), this.tokenChar(40);
    {
      let s = e ? null : this.enterForStatementInit();
      this.tokenContext |= e ? AB.TokenContext.forOfHead : AB.TokenContext.forInHead, this.print(t.left), s?.();
    }
    this.space(), this.word(e ? "of" : "in"), this.space(), this.print(t.right), this.tokenChar(41), this.printBlock(t);
  }
  n(ase, "ForXStatement");
  var CHs = zr.ForInStatement = ase, wHs = zr.ForOfStatement = ase;
  function j0t(t) {
    this.word("do"), this.space(), this.print(t.body), this.space(), this.word("while"), this.space(), this.tokenChar(40), this.print(t.test),
    this.tokenChar(41), this.semicolon();
  }
  n(j0t, "DoWhileStatement");
  function _E(t, e) {
    e && (t.space(), t.printTerminatorless(e)), t.semicolon();
  }
  n(_E, "printStatementAfterKeyword");
  function R0t(t) {
    this.word("break"), _E(this, t.label);
  }
  n(R0t, "BreakStatement");
  function q0t(t) {
    this.word("continue"), _E(this, t.label);
  }
  n(q0t, "ContinueStatement");
  function U0t(t) {
    this.word("return"), _E(this, t.argument);
  }
  n(U0t, "ReturnStatement");
  function K0t(t) {
    this.word("throw"), _E(this, t.argument);
  }
  n(K0t, "ThrowStatement");
  function V0t(t) {
    this.print(t.label), this.tokenChar(58), this.space(), this.print(t.body);
  }
  n(V0t, "LabeledStatement");
  function W0t(t) {
    this.word("try"), this.space(), this.print(t.block), this.space(), t.handlers ? this.print(t.handlers[0]) : this.print(t.handler), t.finalizer &&
    (this.space(), this.word("finally"), this.space(), this.print(t.finalizer));
  }
  n(W0t, "TryStatement");
  function $0t(t) {
    this.word("catch"), this.space(), t.param && (this.tokenChar(40), this.print(t.param), this.print(t.param.typeAnnotation), this.tokenChar(
    41), this.space()), this.print(t.body);
  }
  n($0t, "CatchClause");
  function H0t(t) {
    this.word("switch"), this.space(), this.tokenChar(40), this.print(t.discriminant), this.tokenChar(41), this.space(), this.tokenChar(123),
    this.printSequence(t.cases, !0, void 0, /* @__PURE__ */ n(function(s, r) {
      if (!s && t.cases[t.cases.length - 1] === r) return -1;
    }, "addNewlines")), this.rightBrace(t);
  }
  n(H0t, "SwitchStatement");
  function J0t(t) {
    t.test ? (this.word("case"), this.space(), this.print(t.test), this.tokenChar(58)) : (this.word("default"), this.tokenChar(58)), t.consequent.
    length && (this.newline(), this.printSequence(t.consequent, !0));
  }
  n(J0t, "SwitchCase");
  function Y0t() {
    this.word("debugger"), this.semicolon();
  }
  n(Y0t, "DebuggerStatement");
  function X0t(t, e) {
    t.declare && (this.word("declare"), this.space());
    let {
      kind: s
    } = t;
    s === "await using" ? (this.word("await"), this.space(), this.word("using", !0)) : this.word(s, s === "using"), this.space();
    let r = !1;
    if (!ise(e))
      for (let i of t.declarations)
        i.init && (r = !0);
    if (this.printList(t.declarations, void 0, void 0, t.declarations.length > 1, r ? function(i) {
      this.token(",", !1, i), this.newline();
    } : void 0), ise(e)) {
      if (D0t(e)) {
        if (e.init === t) return;
      } else if (e.left === t) return;
    }
    this.semicolon();
  }
  n(X0t, "VariableDeclaration");
  function z0t(t) {
    this.print(t.id), t.definite && this.tokenChar(33), this.print(t.id.typeAnnotation), t.init && (this.space(), this.tokenChar(61), this.space(),
    this.print(t.init));
  }
  n(z0t, "VariableDeclarator");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/classes.js
var lse = g((Ka) => {
  "use strict";
  Object.defineProperty(Ka, "__esModule", {
    value: !0
  });
  Ka.ClassAccessorProperty = iTt;
  Ka.ClassBody = tTt;
  Ka.ClassExpression = Ka.ClassDeclaration = eTt;
  Ka.ClassMethod = aTt;
  Ka.ClassPrivateMethod = oTt;
  Ka.ClassPrivateProperty = nTt;
  Ka.ClassProperty = rTt;
  Ka.StaticBlock = uTt;
  Ka._classMethodHead = lTt;
  var G0t = fe(), {
    isExportDefaultDeclaration: Q0t,
    isExportNamedDeclaration: Z0t
  } = G0t;
  function eTt(t, e) {
    (!(Q0t(e) || Z0t(e)) || !this._shouldPrintDecoratorsBeforeExport(e)) && this.printJoin(t.decorators), t.declare && (this.word("declare"),
    this.space()), t.abstract && (this.word("abstract"), this.space()), this.word("class"), t.id && (this.space(), this.print(t.id)), this.print(
    t.typeParameters), t.superClass && (this.space(), this.word("extends"), this.space(), this.print(t.superClass), this.print(t.superTypeParameters)),
    t.implements && (this.space(), this.word("implements"), this.space(), this.printList(t.implements)), this.space(), this.print(t.body);
  }
  n(eTt, "ClassDeclaration");
  function tTt(t) {
    if (this.tokenChar(123), t.body.length === 0)
      this.tokenChar(125);
    else {
      this.newline();
      let e = sTt(this, t);
      e?.(-1);
      let s = this.enterDelimited();
      this.printJoin(t.body, !0, !0, e, !0), s(), this.endsWith(10) || this.newline(), this.rightBrace(t);
    }
  }
  n(tTt, "ClassBody");
  function sTt(t, e) {
    if (!t.tokenMap || e.start == null || e.end == null)
      return null;
    let s = t.tokenMap.getIndexes(e);
    if (!s) return null;
    let r = 1, i = 0, a = 0, o = /* @__PURE__ */ n(() => {
      for (; a < e.body.length && e.body[a].start == null; )
        a++;
    }, "advanceNextLocIndex");
    return o(), (l) => {
      a <= l && (a = l + 1, o());
      let u = a === e.body.length ? e.end : e.body[a].start, c;
      for (; r < s.length && t.tokenMap.matchesOriginal(c = t._tokens[s[r]], ";") && c.start < u; )
        t.token(";", void 0, i++), r++;
    };
  }
  n(sTt, "classBodyEmptySemicolonsPrinter");
  function rTt(t) {
    if (this.printJoin(t.decorators), !t.static && !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), t.computed ? (this.tokenChar(91), this.print(t.key), this.tokenChar(93)) : (this._variance(t), this.
    print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(),
    this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(rTt, "ClassProperty");
  function iTt(t) {
    var e;
    this.printJoin(t.decorators);
    let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
    s && this.catchUp(s), this.tsPrintClassMemberModifiers(t), this.word("accessor", !0), this.space(), t.computed ? (this.tokenChar(91), this.
    print(t.key), this.tokenChar(93)) : (this._variance(t), this.print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(
    33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(iTt, "ClassAccessorProperty");
  function nTt(t) {
    this.printJoin(t.decorators), this.tsPrintClassMemberModifiers(t), this.print(t.key), t.optional && this.tokenChar(63), t.definite && this.
    tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(nTt, "ClassPrivateProperty");
  function aTt(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(aTt, "ClassMethod");
  function oTt(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(oTt, "ClassPrivateMethod");
  function lTt(t) {
    if (this.printJoin(t.decorators), !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), this._methodHead(t);
  }
  n(lTt, "_classMethodHead");
  function uTt(t) {
    this.word("static"), this.space(), this.tokenChar(123), t.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(
    t.body, !0), this.rightBrace(t));
  }
  n(uTt, "StaticBlock");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/methods.js
var use = g((Va) => {
  "use strict";
  Object.defineProperty(Va, "__esModule", {
    value: !0
  });
  Va.ArrowFunctionExpression = xTt;
  Va.FunctionDeclaration = Va.FunctionExpression = bTt;
  Va._functionHead = TTt;
  Va._methodHead = yTt;
  Va._param = mTt;
  Va._parameters = dTt;
  Va._params = fTt;
  Va._predicate = gTt;
  Va._shouldPrintArrowParamsParens = STt;
  var cTt = fe(), pTt = cp(), {
    isIdentifier: hTt
  } = cTt;
  function fTt(t, e, s) {
    this.print(t.typeParameters);
    let r = PTt.call(this, e, s);
    r && this.sourceIdentifierName(r.name, r.pos), this.tokenChar(40), this._parameters(t.params, ")");
    let i = t.type === "ArrowFunctionExpression";
    this.print(t.returnType, i), this._noLineTerminator = i;
  }
  n(fTt, "_params");
  function dTt(t, e) {
    let s = this.enterDelimited(), r = this.shouldPrintTrailingComma(e), i = t.length;
    for (let a = 0; a < i; a++)
      this._param(t[a]), (r || a < i - 1) && (this.token(",", null, a), this.space());
    this.token(e), s();
  }
  n(dTt, "_parameters");
  function mTt(t) {
    this.printJoin(t.decorators), this.print(t), t.optional && this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(mTt, "_param");
  function yTt(t) {
    let e = t.kind, s = t.key;
    (e === "get" || e === "set") && (this.word(e), this.space()), t.async && (this.word("async", !0), this.space()), (e === "method" || e ===
    "init") && t.generator && this.tokenChar(42), t.computed ? (this.tokenChar(91), this.print(s), this.tokenChar(93)) : this.print(s), t.optional &&
    this.tokenChar(63), this._params(t, t.computed && t.key.type !== "StringLiteral" ? void 0 : t.key, void 0);
  }
  n(yTt, "_methodHead");
  function gTt(t, e) {
    t.predicate && (t.returnType || this.tokenChar(58), this.space(), this.print(t.predicate, e));
  }
  n(gTt, "_predicate");
  function TTt(t, e) {
    t.async && (this.word("async"), this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.space()), this.word("function"), t.generator &&
    (this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.tokenChar(42)), this.space(), t.id && this.print(t.id), this._params(
    t, t.id, e), t.type !== "TSDeclareFunction" && this._predicate(t);
  }
  n(TTt, "_functionHead");
  function bTt(t, e) {
    this._functionHead(t, e), this.space(), this.print(t.body);
  }
  n(bTt, "FunctionExpression");
  function xTt(t, e) {
    t.async && (this.word("async", !0), this.space()), this._shouldPrintArrowParamsParens(t) ? this._params(t, void 0, e) : this.print(t.params[0],
    !0), this._predicate(t, !0), this.space(), this.printInnerComments(), this.token("=>"), this.space(), this.tokenContext |= pTt.TokenContext.
    arrowBody, this.print(t.body);
  }
  n(xTt, "ArrowFunctionExpression");
  function STt(t) {
    var e, s;
    if (t.params.length !== 1 || t.typeParameters || t.returnType || t.predicate)
      return !0;
    let r = t.params[0];
    if (!hTt(r) || r.typeAnnotation || r.optional || (e = r.leadingComments) != null && e.length || (s = r.trailingComments) != null && s.length)
      return !0;
    if (this.tokenMap) {
      if (t.loc == null || this.tokenMap.findMatching(t, "(") !== null) return !0;
      let i = this.tokenMap.findMatching(t, "=>");
      return i?.loc == null ? !0 : i.loc.start.line !== t.loc.start.line;
    }
    return !!this.format.retainLines;
  }
  n(STt, "_shouldPrintArrowParamsParens");
  function PTt(t, e) {
    let s = t;
    if (!s && e) {
      let u = e.type;
      u === "VariableDeclarator" ? s = e.id : u === "AssignmentExpression" || u === "AssignmentPattern" ? s = e.left : u === "ObjectProperty" ||
      u === "ClassProperty" ? (!e.computed || e.key.type === "StringLiteral") && (s = e.key) : (u === "ClassPrivateProperty" || u === "Class\
AccessorProperty") && (s = e.key);
    }
    if (!s) return;
    let r;
    if (s.type === "Identifier") {
      var i, a;
      r = {
        pos: (i = s.loc) == null ? void 0 : i.start,
        name: ((a = s.loc) == null ? void 0 : a.identifierName) || s.name
      };
    } else if (s.type === "PrivateName") {
      var o;
      r = {
        pos: (o = s.loc) == null ? void 0 : o.start,
        name: "#" + s.id.name
      };
    } else if (s.type === "StringLiteral") {
      var l;
      r = {
        pos: (l = s.loc) == null ? void 0 : l.start,
        name: s.value
      };
    }
    return r;
  }
  n(PTt, "_getFuncIdName");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/modules.js
var vB = g((kn) => {
  "use strict";
  Object.defineProperty(kn, "__esModule", {
    value: !0
  });
  kn.ExportAllDeclaration = MTt;
  kn.ExportDefaultDeclaration = jTt;
  kn.ExportDefaultSpecifier = OTt;
  kn.ExportNamedDeclaration = FTt;
  kn.ExportNamespaceSpecifier = LTt;
  kn.ExportSpecifier = _Tt;
  kn.ImportAttribute = qTt;
  kn.ImportDeclaration = RTt;
  kn.ImportDefaultSpecifier = DTt;
  kn.ImportExpression = KTt;
  kn.ImportNamespaceSpecifier = UTt;
  kn.ImportSpecifier = kTt;
  kn._printAttributes = BTt;
  var ETt = fe(), ATt = cp(), {
    isClassDeclaration: vTt,
    isExportDefaultSpecifier: CTt,
    isExportNamespaceSpecifier: wTt,
    isImportDefaultSpecifier: ITt,
    isImportNamespaceSpecifier: NTt,
    isStatement: pse
  } = ETt;
  function kTt(t) {
    (t.importKind === "type" || t.importKind === "typeof") && (this.word(t.importKind), this.space()), this.print(t.imported), t.local && t.
    local.name !== t.imported.name && (this.space(), this.word("as"), this.space(), this.print(t.local));
  }
  n(kTt, "ImportSpecifier");
  function DTt(t) {
    this.print(t.local);
  }
  n(DTt, "ImportDefaultSpecifier");
  function OTt(t) {
    this.print(t.exported);
  }
  n(OTt, "ExportDefaultSpecifier");
  function _Tt(t) {
    t.exportKind === "type" && (this.word("type"), this.space()), this.print(t.local), t.exported && t.local.name !== t.exported.name && (this.
    space(), this.word("as"), this.space(), this.print(t.exported));
  }
  n(_Tt, "ExportSpecifier");
  function LTt(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.exported);
  }
  n(LTt, "ExportNamespaceSpecifier");
  var cse = !1;
  function BTt(t, e) {
    let {
      importAttributesKeyword: s
    } = this.format, {
      attributes: r,
      assertions: i
    } = t;
    r && !s && !cse && (cse = !0, console.warn('You are using import attributes, without specifying the desired output syntax.\nPlease specif\
y 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'));
    let a = s === "assert" || !s && i;
    if (this.word(a ? "assert" : "with"), this.space(), !a && s !== "with") {
      this.printList(r || i);
      return;
    }
    let o = e ? 1 : 0;
    this.token("{", null, o), this.space(), this.printList(r || i, this.shouldPrintTrailingComma("}")), this.space(), this.token("}", null, o);
  }
  n(BTt, "_printAttributes");
  function MTt(t) {
    var e, s;
    this.word("export"), this.space(), t.exportKind === "type" && (this.word("type"), this.space()), this.tokenChar(42), this.space(), this.
    word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0),
    this.space(), this._printAttributes(t, !1)) : this.print(t.source), this.semicolon();
  }
  n(MTt, "ExportAllDeclaration");
  function hse(t, e) {
    vTt(e.declaration) && t._shouldPrintDecoratorsBeforeExport(e) && t.printJoin(e.declaration.decorators);
  }
  n(hse, "maybePrintDecoratorsBeforeExport");
  function FTt(t) {
    if (hse(this, t), this.word("export"), this.space(), t.declaration) {
      let r = t.declaration;
      this.print(r), pse(r) || this.semicolon();
    } else {
      t.exportKind === "type" && (this.word("type"), this.space());
      let r = t.specifiers.slice(0), i = !1;
      for (; ; ) {
        let o = r[0];
        if (CTt(o) || wTt(o))
          i = !0, this.print(r.shift()), r.length && (this.tokenChar(44), this.space());
        else
          break;
      }
      let a = !1;
      if ((r.length || !r.length && !i) && (a = !0, this.tokenChar(123), r.length && (this.space(), this.printList(r, this.shouldPrintTrailingComma(
      "}")), this.space()), this.tokenChar(125)), t.source) {
        var e, s;
        this.space(), this.word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.
        print(t.source, !0), this.space(), this._printAttributes(t, a)) : this.print(t.source);
      }
      this.semicolon();
    }
  }
  n(FTt, "ExportNamedDeclaration");
  function jTt(t) {
    hse(this, t), this.word("export"), this.noIndentInnerCommentsHere(), this.space(), this.word("default"), this.space(), this.tokenContext |=
    ATt.TokenContext.exportDefault;
    let e = t.declaration;
    this.print(e), pse(e) || this.semicolon();
  }
  n(jTt, "ExportDefaultDeclaration");
  function RTt(t) {
    var e, s;
    this.word("import"), this.space();
    let r = t.importKind === "type" || t.importKind === "typeof";
    r ? (this.noIndentInnerCommentsHere(), this.word(t.importKind), this.space()) : t.module ? (this.noIndentInnerCommentsHere(), this.word(
    "module"), this.space()) : t.phase && (this.noIndentInnerCommentsHere(), this.word(t.phase), this.space());
    let i = t.specifiers.slice(0), a = !!i.length;
    for (; a; ) {
      let l = i[0];
      if (ITt(l) || NTt(l))
        this.print(i.shift()), i.length && (this.tokenChar(44), this.space());
      else
        break;
    }
    let o = !1;
    i.length ? (o = !0, this.tokenChar(123), this.space(), this.printList(i, this.shouldPrintTrailingComma("}")), this.space(), this.tokenChar(
    125)) : r && !a && (o = !0, this.tokenChar(123), this.tokenChar(125)), (a || r) && (this.space(), this.word("from"), this.space()), (e =
    t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0), this.space(), this._printAttributes(
    t, o)) : this.print(t.source), this.semicolon();
  }
  n(RTt, "ImportDeclaration");
  function qTt(t) {
    this.print(t.key), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(qTt, "ImportAttribute");
  function UTt(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.local);
  }
  n(UTt, "ImportNamespaceSpecifier");
  function KTt(t) {
    this.word("import"), t.phase && (this.tokenChar(46), this.word(t.phase)), this.tokenChar(40), this.print(t.source), t.options != null &&
    (this.tokenChar(44), this.space(), this.print(t.options)), this.tokenChar(41);
  }
  n(KTt, "ImportExpression");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js
var wB = g((Br) => {
  "use strict";
  Object.defineProperty(Br, "__esModule", {
    value: !0
  });
  Br.ArgumentPlaceholder = JTt;
  Br.ArrayPattern = Br.ArrayExpression = QTt;
  Br.BigIntLiteral = abt;
  Br.BooleanLiteral = sbt;
  Br.Identifier = HTt;
  Br.NullLiteral = rbt;
  Br.NumericLiteral = ibt;
  Br.ObjectPattern = Br.ObjectExpression = XTt;
  Br.ObjectMethod = zTt;
  Br.ObjectProperty = GTt;
  Br.PipelineBareFunction = ubt;
  Br.PipelinePrimaryTopicReference = cbt;
  Br.PipelineTopicExpression = lbt;
  Br.RecordExpression = ZTt;
  Br.RegExpLiteral = tbt;
  Br.SpreadElement = Br.RestElement = YTt;
  Br.StringLiteral = nbt;
  Br.TopicReference = obt;
  Br.TupleExpression = ebt;
  Br._getRawIdentifier = $Tt;
  var VTt = fe(), mse = Td(), {
    isAssignmentPattern: WTt,
    isIdentifier: CB
  } = VTt, fse = null, LE = "";
  function $Tt(t) {
    if (t === fse) return LE;
    fse = t;
    let {
      name: e
    } = t, s = this.tokenMap.find(t, (r) => r.value === e);
    return s ? (LE = this._originalCode.slice(s.start, s.end), LE) : LE = t.name;
  }
  n($Tt, "_getRawIdentifier");
  function HTt(t) {
    var e;
    this.sourceIdentifierName(((e = t.loc) == null ? void 0 : e.identifierName) || t.name), this.word(this.tokenMap ? this._getRawIdentifier(
    t) : t.name);
  }
  n(HTt, "Identifier");
  function JTt() {
    this.tokenChar(63);
  }
  n(JTt, "ArgumentPlaceholder");
  function YTt(t) {
    this.token("..."), this.print(t.argument);
  }
  n(YTt, "RestElement");
  function XTt(t) {
    let e = t.properties;
    if (this.tokenChar(123), e.length) {
      let s = this.enterDelimited();
      this.space(), this.printList(e, this.shouldPrintTrailingComma("}"), !0, !0), this.space(), s();
    }
    this.sourceWithOffset("end", t.loc, -1), this.tokenChar(125);
  }
  n(XTt, "ObjectExpression");
  function zTt(t) {
    this.printJoin(t.decorators), this._methodHead(t), this.space(), this.print(t.body);
  }
  n(zTt, "ObjectMethod");
  function GTt(t) {
    if (this.printJoin(t.decorators), t.computed)
      this.tokenChar(91), this.print(t.key), this.tokenChar(93);
    else {
      if (WTt(t.value) && CB(t.key) && t.key.name === t.value.left.name) {
        this.print(t.value);
        return;
      }
      if (this.print(t.key), t.shorthand && CB(t.key) && CB(t.value) && t.key.name === t.value.name)
        return;
    }
    this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(GTt, "ObjectProperty");
  function QTt(t) {
    let e = t.elements, s = e.length;
    this.tokenChar(91);
    let r = this.enterDelimited();
    for (let i = 0; i < e.length; i++) {
      let a = e[i];
      a ? (i > 0 && this.space(), this.print(a), (i < s - 1 || this.shouldPrintTrailingComma("]")) && this.token(",", !1, i)) : this.token("\
,", !1, i);
    }
    r(), this.tokenChar(93);
  }
  n(QTt, "ArrayExpression");
  function ZTt(t) {
    let e = t.properties, s, r;
    if (this.format.recordAndTupleSyntaxType === "bar")
      s = "{|", r = "|}";
    else {
      if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null)
        throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)}\
 received).`);
      s = "#{", r = "}";
    }
    this.token(s), e.length && (this.space(), this.printList(e, this.shouldPrintTrailingComma(r), !0, !0), this.space()), this.token(r);
  }
  n(ZTt, "RecordExpression");
  function ebt(t) {
    let e = t.elements, s = e.length, r, i;
    if (this.format.recordAndTupleSyntaxType === "bar")
      r = "[|", i = "|]";
    else if (this.format.recordAndTupleSyntaxType === "hash")
      r = "#[", i = "]";
    else
      throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
    this.token(r);
    for (let a = 0; a < e.length; a++) {
      let o = e[a];
      o && (a > 0 && this.space(), this.print(o), (a < s - 1 || this.shouldPrintTrailingComma(i)) && this.token(",", !1, a));
    }
    this.token(i);
  }
  n(ebt, "TupleExpression");
  function tbt(t) {
    this.word(`/${t.pattern}/${t.flags}`);
  }
  n(tbt, "RegExpLiteral");
  function sbt(t) {
    this.word(t.value ? "true" : "false");
  }
  n(sbt, "BooleanLiteral");
  function rbt() {
    this.word("null");
  }
  n(rbt, "NullLiteral");
  function ibt(t) {
    let e = this.getPossibleRaw(t), s = this.format.jsescOption, r = t.value, i = r + "";
    s.numbers ? this.number(mse(r, s), r) : e == null ? this.number(i, r) : this.format.minified ? this.number(e.length < i.length ? e : i, r) :
    this.number(e, r);
  }
  n(ibt, "NumericLiteral");
  function nbt(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let s = mse(t.value, this.format.jsescOption);
    this.token(s);
  }
  n(nbt, "StringLiteral");
  function abt(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.word(e);
      return;
    }
    this.word(t.value + "n");
  }
  n(abt, "BigIntLiteral");
  var dse = /* @__PURE__ */ new Set(["^^", "@@", "^", "%", "#"]);
  function obt() {
    let {
      topicToken: t
    } = this.format;
    if (dse.has(t))
      this.token(t);
    else {
      let e = JSON.stringify(t), s = Array.from(dse, (r) => JSON.stringify(r));
      throw new Error(`The "topicToken" generator option must be one of ${s.join(", ")} (${e} received instead).`);
    }
  }
  n(obt, "TopicReference");
  function lbt(t) {
    this.print(t.expression);
  }
  n(lbt, "PipelineTopicExpression");
  function ubt(t) {
    this.print(t.callee);
  }
  n(ubt, "PipelineBareFunction");
  function cbt() {
    this.tokenChar(35);
  }
  n(cbt, "PipelinePrimaryTopicReference");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/flow.js
var gse = g((nt) => {
  "use strict";
  Object.defineProperty(nt, "__esModule", {
    value: !0
  });
  nt.AnyTypeAnnotation = mbt;
  nt.ArrayTypeAnnotation = ybt;
  nt.BooleanLiteralTypeAnnotation = Tbt;
  nt.BooleanTypeAnnotation = gbt;
  nt.DeclareClass = xbt;
  nt.DeclareExportAllDeclaration = Dbt;
  nt.DeclareExportDeclaration = kbt;
  nt.DeclareFunction = Sbt;
  nt.DeclareInterface = Abt;
  nt.DeclareModule = vbt;
  nt.DeclareModuleExports = Cbt;
  nt.DeclareOpaqueType = Ibt;
  nt.DeclareTypeAlias = wbt;
  nt.DeclareVariable = Nbt;
  nt.DeclaredPredicate = Ebt;
  nt.EmptyTypeAnnotation = Zbt;
  nt.EnumBooleanBody = _bt;
  nt.EnumBooleanMember = jbt;
  nt.EnumDeclaration = Obt;
  nt.EnumDefaultedMember = Fbt;
  nt.EnumNumberBody = Lbt;
  nt.EnumNumberMember = Rbt;
  nt.EnumStringBody = Bbt;
  nt.EnumStringMember = qbt;
  nt.EnumSymbolBody = Mbt;
  nt.ExistsTypeAnnotation = Kbt;
  nt.FunctionTypeAnnotation = Vbt;
  nt.FunctionTypeParam = Wbt;
  nt.IndexedAccessType = Axt;
  nt.InferredPredicate = Pbt;
  nt.InterfaceDeclaration = Ybt;
  nt.GenericTypeAnnotation = nt.ClassImplements = nt.InterfaceExtends = $bt;
  nt.InterfaceTypeAnnotation = zbt;
  nt.IntersectionTypeAnnotation = Gbt;
  nt.MixedTypeAnnotation = Qbt;
  nt.NullLiteralTypeAnnotation = bbt;
  nt.NullableTypeAnnotation = ext;
  Object.defineProperty(nt, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return yse.NumericLiteral;
    }, "get")
  });
  nt.NumberTypeAnnotation = txt;
  nt.ObjectTypeAnnotation = pxt;
  nt.ObjectTypeCallProperty = fxt;
  nt.ObjectTypeIndexer = dxt;
  nt.ObjectTypeInternalSlot = hxt;
  nt.ObjectTypeProperty = mxt;
  nt.ObjectTypeSpreadProperty = yxt;
  nt.OpaqueType = cxt;
  nt.OptionalIndexedAccessType = vxt;
  nt.QualifiedTypeIdentifier = gxt;
  Object.defineProperty(nt, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return yse.StringLiteral;
    }, "get")
  });
  nt.StringTypeAnnotation = sxt;
  nt.SymbolTypeAnnotation = Txt;
  nt.ThisTypeAnnotation = rxt;
  nt.TupleTypeAnnotation = ixt;
  nt.TypeAlias = axt;
  nt.TypeAnnotation = oxt;
  nt.TypeCastExpression = Sxt;
  nt.TypeParameter = uxt;
  nt.TypeParameterDeclaration = nt.TypeParameterInstantiation = lxt;
  nt.TypeofTypeAnnotation = nxt;
  nt.UnionTypeAnnotation = xxt;
  nt.Variance = Pxt;
  nt.VoidTypeAnnotation = Ext;
  nt._interfaceish = Hbt;
  nt._variance = Jbt;
  var pbt = fe(), hbt = vB(), fbt = cp(), yse = wB(), {
    isDeclareExportDeclaration: BE,
    isStatement: dbt
  } = pbt;
  function mbt() {
    this.word("any");
  }
  n(mbt, "AnyTypeAnnotation");
  function ybt(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(ybt, "ArrayTypeAnnotation");
  function gbt() {
    this.word("boolean");
  }
  n(gbt, "BooleanTypeAnnotation");
  function Tbt(t) {
    this.word(t.value ? "true" : "false");
  }
  n(Tbt, "BooleanLiteralTypeAnnotation");
  function bbt() {
    this.word("null");
  }
  n(bbt, "NullLiteralTypeAnnotation");
  function xbt(t, e) {
    BE(e) || (this.word("declare"), this.space()), this.word("class"), this.space(), this._interfaceish(t);
  }
  n(xbt, "DeclareClass");
  function Sbt(t, e) {
    BE(e) || (this.word("declare"), this.space()), this.word("function"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation.typeAnnotation),
    t.predicate && (this.space(), this.print(t.predicate)), this.semicolon();
  }
  n(Sbt, "DeclareFunction");
  function Pbt() {
    this.tokenChar(37), this.word("checks");
  }
  n(Pbt, "InferredPredicate");
  function Ebt(t) {
    this.tokenChar(37), this.word("checks"), this.tokenChar(40), this.print(t.value), this.tokenChar(41);
  }
  n(Ebt, "DeclaredPredicate");
  function Abt(t) {
    this.word("declare"), this.space(), this.InterfaceDeclaration(t);
  }
  n(Abt, "DeclareInterface");
  function vbt(t) {
    this.word("declare"), this.space(), this.word("module"), this.space(), this.print(t.id), this.space(), this.print(t.body);
  }
  n(vbt, "DeclareModule");
  function Cbt(t) {
    this.word("declare"), this.space(), this.word("module"), this.tokenChar(46), this.word("exports"), this.print(t.typeAnnotation);
  }
  n(Cbt, "DeclareModuleExports");
  function wbt(t) {
    this.word("declare"), this.space(), this.TypeAlias(t);
  }
  n(wbt, "DeclareTypeAlias");
  function Ibt(t, e) {
    BE(e) || (this.word("declare"), this.space()), this.OpaqueType(t);
  }
  n(Ibt, "DeclareOpaqueType");
  function Nbt(t, e) {
    BE(e) || (this.word("declare"), this.space()), this.word("var"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation), this.semicolon();
  }
  n(Nbt, "DeclareVariable");
  function kbt(t) {
    this.word("declare"), this.space(), this.word("export"), this.space(), t.default && (this.word("default"), this.space()), Ubt.call(this,
    t);
  }
  n(kbt, "DeclareExportDeclaration");
  function Dbt(t) {
    this.word("declare"), this.space(), hbt.ExportAllDeclaration.call(this, t);
  }
  n(Dbt, "DeclareExportAllDeclaration");
  function Obt(t) {
    let {
      id: e,
      body: s
    } = t;
    this.word("enum"), this.space(), this.print(e), this.print(s);
  }
  n(Obt, "EnumDeclaration");
  function ME(t, e, s) {
    s && (t.space(), t.word("of"), t.space(), t.word(e)), t.space();
  }
  n(ME, "enumExplicitType");
  function FE(t, e) {
    let {
      members: s
    } = e;
    t.token("{"), t.indent(), t.newline();
    for (let r of s)
      t.print(r), t.newline();
    e.hasUnknownMembers && (t.token("..."), t.newline()), t.dedent(), t.token("}");
  }
  n(FE, "enumBody");
  function _bt(t) {
    let {
      explicitType: e
    } = t;
    ME(this, "boolean", e), FE(this, t);
  }
  n(_bt, "EnumBooleanBody");
  function Lbt(t) {
    let {
      explicitType: e
    } = t;
    ME(this, "number", e), FE(this, t);
  }
  n(Lbt, "EnumNumberBody");
  function Bbt(t) {
    let {
      explicitType: e
    } = t;
    ME(this, "string", e), FE(this, t);
  }
  n(Bbt, "EnumStringBody");
  function Mbt(t) {
    ME(this, "symbol", !0), FE(this, t);
  }
  n(Mbt, "EnumSymbolBody");
  function Fbt(t) {
    let {
      id: e
    } = t;
    this.print(e), this.tokenChar(44);
  }
  n(Fbt, "EnumDefaultedMember");
  function IB(t, e) {
    t.print(e.id), t.space(), t.token("="), t.space(), t.print(e.init), t.token(",");
  }
  n(IB, "enumInitializedMember");
  function jbt(t) {
    IB(this, t);
  }
  n(jbt, "EnumBooleanMember");
  function Rbt(t) {
    IB(this, t);
  }
  n(Rbt, "EnumNumberMember");
  function qbt(t) {
    IB(this, t);
  }
  n(qbt, "EnumStringMember");
  function Ubt(t) {
    if (t.declaration) {
      let e = t.declaration;
      this.print(e), dbt(e) || this.semicolon();
    } else
      this.tokenChar(123), t.specifiers.length && (this.space(), this.printList(t.specifiers), this.space()), this.tokenChar(125), t.source &&
      (this.space(), this.word("from"), this.space(), this.print(t.source)), this.semicolon();
  }
  n(Ubt, "FlowExportDeclaration");
  function Kbt() {
    this.tokenChar(42);
  }
  n(Kbt, "ExistsTypeAnnotation");
  function Vbt(t, e) {
    this.print(t.typeParameters), this.tokenChar(40), t.this && (this.word("this"), this.tokenChar(58), this.space(), this.print(t.this.typeAnnotation),
    (t.params.length || t.rest) && (this.tokenChar(44), this.space())), this.printList(t.params), t.rest && (t.params.length && (this.tokenChar(
    44), this.space()), this.token("..."), this.print(t.rest)), this.tokenChar(41);
    let s = e?.type;
    s != null && (s === "ObjectTypeCallProperty" || s === "ObjectTypeInternalSlot" || s === "DeclareFunction" || s === "ObjectTypeProperty" &&
    e.method) ? this.tokenChar(58) : (this.space(), this.token("=>")), this.space(), this.print(t.returnType);
  }
  n(Vbt, "FunctionTypeAnnotation");
  function Wbt(t) {
    this.print(t.name), t.optional && this.tokenChar(63), t.name && (this.tokenChar(58), this.space()), this.print(t.typeAnnotation);
  }
  n(Wbt, "FunctionTypeParam");
  function $bt(t) {
    this.print(t.id), this.print(t.typeParameters, !0);
  }
  n($bt, "InterfaceExtends");
  function Hbt(t) {
    var e;
    if (this.print(t.id), this.print(t.typeParameters), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(),
    this.printList(t.extends)), t.type === "DeclareClass") {
      var s, r;
      (s = t.mixins) != null && s.length && (this.space(), this.word("mixins"), this.space(), this.printList(t.mixins)), (r = t.implements) !=
      null && r.length && (this.space(), this.word("implements"), this.space(), this.printList(t.implements));
    }
    this.space(), this.print(t.body);
  }
  n(Hbt, "_interfaceish");
  function Jbt(t) {
    var e;
    let s = (e = t.variance) == null ? void 0 : e.kind;
    s != null && (s === "plus" ? this.tokenChar(43) : s === "minus" && this.tokenChar(45));
  }
  n(Jbt, "_variance");
  function Ybt(t) {
    this.word("interface"), this.space(), this._interfaceish(t);
  }
  n(Ybt, "InterfaceDeclaration");
  function Xbt(t) {
    this.space(), this.token("&", !1, t), this.space();
  }
  n(Xbt, "andSeparator");
  function zbt(t) {
    var e;
    this.word("interface"), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(), this.printList(t.extends)),
    this.space(), this.print(t.body);
  }
  n(zbt, "InterfaceTypeAnnotation");
  function Gbt(t) {
    this.printJoin(t.types, void 0, void 0, Xbt);
  }
  n(Gbt, "IntersectionTypeAnnotation");
  function Qbt() {
    this.word("mixed");
  }
  n(Qbt, "MixedTypeAnnotation");
  function Zbt() {
    this.word("empty");
  }
  n(Zbt, "EmptyTypeAnnotation");
  function ext(t) {
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(ext, "NullableTypeAnnotation");
  function txt() {
    this.word("number");
  }
  n(txt, "NumberTypeAnnotation");
  function sxt() {
    this.word("string");
  }
  n(sxt, "StringTypeAnnotation");
  function rxt() {
    this.word("this");
  }
  n(rxt, "ThisTypeAnnotation");
  function ixt(t) {
    this.tokenChar(91), this.printList(t.types), this.tokenChar(93);
  }
  n(ixt, "TupleTypeAnnotation");
  function nxt(t) {
    this.word("typeof"), this.space(), this.print(t.argument);
  }
  n(nxt, "TypeofTypeAnnotation");
  function axt(t) {
    this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), this.space(), this.tokenChar(61), this.space(), this.print(
    t.right), this.semicolon();
  }
  n(axt, "TypeAlias");
  function oxt(t, e) {
    this.tokenChar(58), this.space(), e.type === "ArrowFunctionExpression" ? this.tokenContext |= fbt.TokenContext.arrowFlowReturnType : t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(oxt, "TypeAnnotation");
  function lxt(t) {
    this.tokenChar(60), this.printList(t.params), this.tokenChar(62);
  }
  n(lxt, "TypeParameterInstantiation");
  function uxt(t) {
    this._variance(t), this.word(t.name), t.bound && this.print(t.bound), t.default && (this.space(), this.tokenChar(61), this.space(), this.
    print(t.default));
  }
  n(uxt, "TypeParameter");
  function cxt(t) {
    this.word("opaque"), this.space(), this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), t.supertype && (this.
    tokenChar(58), this.space(), this.print(t.supertype)), t.impltype && (this.space(), this.tokenChar(61), this.space(), this.print(t.impltype)),
    this.semicolon();
  }
  n(cxt, "OpaqueType");
  function pxt(t) {
    t.exact ? this.token("{|") : this.tokenChar(123);
    let e = [...t.properties, ...t.callProperties || [], ...t.indexers || [], ...t.internalSlots || []];
    e.length && (this.newline(), this.space(), this.printJoin(e, !0, !0, void 0, void 0, /* @__PURE__ */ n(function(r) {
      if (r && !e[0]) return 1;
    }, "addNewlines"), () => {
      (e.length !== 1 || t.inexact) && (this.tokenChar(44), this.space());
    }), this.space()), t.inexact && (this.indent(), this.token("..."), e.length && this.newline(), this.dedent()), t.exact ? this.token("|}") :
    this.tokenChar(125);
  }
  n(pxt, "ObjectTypeAnnotation");
  function hxt(t) {
    t.static && (this.word("static"), this.space()), this.tokenChar(91), this.tokenChar(91), this.print(t.id), this.tokenChar(93), this.tokenChar(
    93), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58), this.space()), this.print(t.value);
  }
  n(hxt, "ObjectTypeInternalSlot");
  function fxt(t) {
    t.static && (this.word("static"), this.space()), this.print(t.value);
  }
  n(fxt, "ObjectTypeCallProperty");
  function dxt(t) {
    t.static && (this.word("static"), this.space()), this._variance(t), this.tokenChar(91), t.id && (this.print(t.id), this.tokenChar(58), this.
    space()), this.print(t.key), this.tokenChar(93), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(dxt, "ObjectTypeIndexer");
  function mxt(t) {
    t.proto && (this.word("proto"), this.space()), t.static && (this.word("static"), this.space()), (t.kind === "get" || t.kind === "set") &&
    (this.word(t.kind), this.space()), this._variance(t), this.print(t.key), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58),
    this.space()), this.print(t.value);
  }
  n(mxt, "ObjectTypeProperty");
  function yxt(t) {
    this.token("..."), this.print(t.argument);
  }
  n(yxt, "ObjectTypeSpreadProperty");
  function gxt(t) {
    this.print(t.qualification), this.tokenChar(46), this.print(t.id);
  }
  n(gxt, "QualifiedTypeIdentifier");
  function Txt() {
    this.word("symbol");
  }
  n(Txt, "SymbolTypeAnnotation");
  function bxt(t) {
    this.space(), this.token("|", !1, t), this.space();
  }
  n(bxt, "orSeparator");
  function xxt(t) {
    this.printJoin(t.types, void 0, void 0, bxt);
  }
  n(xxt, "UnionTypeAnnotation");
  function Sxt(t) {
    this.tokenChar(40), this.print(t.expression), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(Sxt, "TypeCastExpression");
  function Pxt(t) {
    t.kind === "plus" ? this.tokenChar(43) : this.tokenChar(45);
  }
  n(Pxt, "Variance");
  function Ext() {
    this.word("void");
  }
  n(Ext, "VoidTypeAnnotation");
  function Axt(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(Axt, "IndexedAccessType");
  function vxt(t) {
    this.print(t.objectType), t.optional && this.token("?."), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(vxt, "OptionalIndexedAccessType");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js
var Tse = g((ku) => {
  "use strict";
  Object.defineProperty(ku, "__esModule", {
    value: !0
  });
  ku.BlockStatement = Ixt;
  ku.Directive = Nxt;
  ku.DirectiveLiteral = Oxt;
  ku.File = Cxt;
  ku.InterpreterDirective = _xt;
  ku.Placeholder = Lxt;
  ku.Program = wxt;
  function Cxt(t) {
    t.program && this.print(t.program.interpreter), this.print(t.program);
  }
  n(Cxt, "File");
  function wxt(t) {
    var e;
    this.noIndentInnerCommentsHere(), this.printInnerComments();
    let s = (e = t.directives) == null ? void 0 : e.length;
    if (s) {
      var r;
      let i = t.body.length ? 2 : 1;
      this.printSequence(t.directives, void 0, i), (r = t.directives[s - 1].trailingComments) != null && r.length || this.newline(i);
    }
    this.printSequence(t.body);
  }
  n(wxt, "Program");
  function Ixt(t) {
    var e;
    this.tokenChar(123);
    let s = this.enterDelimited(), r = (e = t.directives) == null ? void 0 : e.length;
    if (r) {
      var i;
      let a = t.body.length ? 2 : 1;
      this.printSequence(t.directives, !0, a), (i = t.directives[r - 1].trailingComments) != null && i.length || this.newline(a);
    }
    this.printSequence(t.body, !0), s(), this.rightBrace(t);
  }
  n(Ixt, "BlockStatement");
  function Nxt(t) {
    this.print(t.value), this.semicolon();
  }
  n(Nxt, "Directive");
  var kxt = /(?:^|[^\\])(?:\\\\)*'/, Dxt = /(?:^|[^\\])(?:\\\\)*"/;
  function Oxt(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let {
      value: s
    } = t;
    if (!Dxt.test(s))
      this.token(`"${s}"`);
    else if (!kxt.test(s))
      this.token(`'${s}'`);
    else
      throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.");
  }
  n(Oxt, "DirectiveLiteral");
  function _xt(t) {
    this.token(`#!${t.value}`), this.newline(1, !0);
  }
  n(_xt, "InterpreterDirective");
  function Lxt(t) {
    this.token("%%"), this.print(t.name), this.token("%%"), t.expectedNode === "Statement" && this.semicolon();
  }
  n(Lxt, "Placeholder");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/jsx.js
var bse = g((Ji) => {
  "use strict";
  Object.defineProperty(Ji, "__esModule", {
    value: !0
  });
  Ji.JSXAttribute = Bxt;
  Ji.JSXClosingElement = Hxt;
  Ji.JSXClosingFragment = zxt;
  Ji.JSXElement = Vxt;
  Ji.JSXEmptyExpression = Jxt;
  Ji.JSXExpressionContainer = qxt;
  Ji.JSXFragment = Yxt;
  Ji.JSXIdentifier = Mxt;
  Ji.JSXMemberExpression = jxt;
  Ji.JSXNamespacedName = Fxt;
  Ji.JSXOpeningElement = $xt;
  Ji.JSXOpeningFragment = Xxt;
  Ji.JSXSpreadAttribute = Rxt;
  Ji.JSXSpreadChild = Uxt;
  Ji.JSXText = Kxt;
  function Bxt(t) {
    this.print(t.name), t.value && (this.tokenChar(61), this.print(t.value));
  }
  n(Bxt, "JSXAttribute");
  function Mxt(t) {
    this.word(t.name);
  }
  n(Mxt, "JSXIdentifier");
  function Fxt(t) {
    this.print(t.namespace), this.tokenChar(58), this.print(t.name);
  }
  n(Fxt, "JSXNamespacedName");
  function jxt(t) {
    this.print(t.object), this.tokenChar(46), this.print(t.property);
  }
  n(jxt, "JSXMemberExpression");
  function Rxt(t) {
    this.tokenChar(123), this.token("..."), this.print(t.argument), this.rightBrace(t);
  }
  n(Rxt, "JSXSpreadAttribute");
  function qxt(t) {
    this.tokenChar(123), this.print(t.expression), this.rightBrace(t);
  }
  n(qxt, "JSXExpressionContainer");
  function Uxt(t) {
    this.tokenChar(123), this.token("..."), this.print(t.expression), this.rightBrace(t);
  }
  n(Uxt, "JSXSpreadChild");
  function Kxt(t) {
    let e = this.getPossibleRaw(t);
    e !== void 0 ? this.token(e, !0) : this.token(t.value, !0);
  }
  n(Kxt, "JSXText");
  function Vxt(t) {
    let e = t.openingElement;
    if (this.print(e), !e.selfClosing) {
      this.indent();
      for (let s of t.children)
        this.print(s);
      this.dedent(), this.print(t.closingElement);
    }
  }
  n(Vxt, "JSXElement");
  function Wxt() {
    this.space();
  }
  n(Wxt, "spaceSeparator");
  function $xt(t) {
    this.tokenChar(60), this.print(t.name), t.typeArguments && this.print(t.typeArguments), this.print(t.typeParameters), t.attributes.length >
    0 && (this.space(), this.printJoin(t.attributes, void 0, void 0, Wxt)), t.selfClosing && (this.space(), this.tokenChar(47)), this.tokenChar(
    62);
  }
  n($xt, "JSXOpeningElement");
  function Hxt(t) {
    this.tokenChar(60), this.tokenChar(47), this.print(t.name), this.tokenChar(62);
  }
  n(Hxt, "JSXClosingElement");
  function Jxt() {
    this.printInnerComments();
  }
  n(Jxt, "JSXEmptyExpression");
  function Yxt(t) {
    this.print(t.openingFragment), this.indent();
    for (let e of t.children)
      this.print(e);
    this.dedent(), this.print(t.closingFragment);
  }
  n(Yxt, "JSXFragment");
  function Xxt() {
    this.tokenChar(60), this.tokenChar(62);
  }
  n(Xxt, "JSXOpeningFragment");
  function zxt() {
    this.token("</"), this.tokenChar(62);
  }
  n(zxt, "JSXClosingFragment");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/typescript.js
var Ase = g((ze) => {
  "use strict";
  Object.defineProperty(ze, "__esModule", {
    value: !0
  });
  ze.TSAnyKeyword = cSt;
  ze.TSArrayType = DSt;
  ze.TSSatisfiesExpression = ze.TSAsExpression = zSt;
  ze.TSBigIntKeyword = pSt;
  ze.TSBooleanKeyword = mSt;
  ze.TSCallSignatureDeclaration = iSt;
  ze.TSInterfaceHeritage = ze.TSClassImplements = HSt;
  ze.TSConditionalType = jSt;
  ze.TSConstructSignatureDeclaration = nSt;
  ze.TSConstructorType = vSt;
  ze.TSDeclareFunction = tSt;
  ze.TSDeclareMethod = sSt;
  ze.TSEnumBody = Ese;
  ze.TSEnumDeclaration = ZSt;
  ze.TSEnumMember = ePt;
  ze.TSExportAssignment = oPt;
  ze.TSExternalModuleReference = nPt;
  ze.TSFunctionType = ASt;
  ze.TSImportEqualsDeclaration = iPt;
  ze.TSImportType = rPt;
  ze.TSIndexSignature = uSt;
  ze.TSIndexedAccessType = KSt;
  ze.TSInferType = RSt;
  ze.TSInstantiationExpression = QSt;
  ze.TSInterfaceBody = YSt;
  ze.TSInterfaceDeclaration = JSt;
  ze.TSIntersectionType = FSt;
  ze.TSIntrinsicKeyword = PSt;
  ze.TSLiteralType = $St;
  ze.TSMappedType = VSt;
  ze.TSMethodSignature = lSt;
  ze.TSModuleBlock = sPt;
  ze.TSModuleDeclaration = tPt;
  ze.TSNamedTupleMember = BSt;
  ze.TSNamespaceExportDeclaration = lPt;
  ze.TSNeverKeyword = SSt;
  ze.TSNonNullExpression = aPt;
  ze.TSNullKeyword = xSt;
  ze.TSNumberKeyword = fSt;
  ze.TSObjectKeyword = dSt;
  ze.TSOptionalType = _St;
  ze.TSParameterProperty = eSt;
  ze.TSParenthesizedType = qSt;
  ze.TSPropertySignature = aSt;
  ze.TSQualifiedName = rSt;
  ze.TSRestType = LSt;
  ze.TSStringKeyword = ySt;
  ze.TSSymbolKeyword = gSt;
  ze.TSTemplateLiteralType = WSt;
  ze.TSThisType = ESt;
  ze.TSTupleType = OSt;
  ze.TSTypeAliasDeclaration = XSt;
  ze.TSTypeAnnotation = Gxt;
  ze.TSTypeAssertion = GSt;
  ze.TSTypeLiteral = kSt;
  ze.TSTypeOperator = USt;
  ze.TSTypeParameter = Zxt;
  ze.TSTypeParameterDeclaration = ze.TSTypeParameterInstantiation = Qxt;
  ze.TSTypePredicate = ISt;
  ze.TSTypeQuery = NSt;
  ze.TSTypeReference = wSt;
  ze.TSUndefinedKeyword = bSt;
  ze.TSUnionType = MSt;
  ze.TSUnknownKeyword = hSt;
  ze.TSVoidKeyword = TSt;
  ze.tsPrintClassMemberModifiers = cPt;
  ze.tsPrintFunctionOrConstructorType = CSt;
  ze.tsPrintPropertyOrMethodName = oSt;
  ze.tsPrintSignatureDeclarationBase = uPt;
  function Gxt(t, e) {
    this.token((e.type === "TSFunctionType" || e.type === "TSConstructorType") && e.typeAnnotation === t ? "=>" : ":"), this.space(), t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(Gxt, "TSTypeAnnotation");
  function Qxt(t, e) {
    this.tokenChar(60);
    let s = e.type === "ArrowFunctionExpression" && t.params.length === 1;
    this.tokenMap && t.start != null && t.end != null && (s && (s = !!this.tokenMap.find(t, (r) => this.tokenMap.matchesOriginal(r, ","))), s ||
    (s = this.shouldPrintTrailingComma(">"))), this.printList(t.params, s), this.tokenChar(62);
  }
  n(Qxt, "TSTypeParameterInstantiation");
  function Zxt(t) {
    t.in && (this.word("in"), this.space()), t.out && (this.word("out"), this.space()), this.word(t.name), t.constraint && (this.space(), this.
    word("extends"), this.space(), this.print(t.constraint)), t.default && (this.space(), this.tokenChar(61), this.space(), this.print(t.default));
  }
  n(Zxt, "TSTypeParameter");
  function eSt(t) {
    t.accessibility && (this.word(t.accessibility), this.space()), t.readonly && (this.word("readonly"), this.space()), this._param(t.parameter);
  }
  n(eSt, "TSParameterProperty");
  function tSt(t, e) {
    t.declare && (this.word("declare"), this.space()), this._functionHead(t, e), this.semicolon();
  }
  n(tSt, "TSDeclareFunction");
  function sSt(t) {
    this._classMethodHead(t), this.semicolon();
  }
  n(sSt, "TSDeclareMethod");
  function rSt(t) {
    this.print(t.left), this.tokenChar(46), this.print(t.right);
  }
  n(rSt, "TSQualifiedName");
  function iSt(t) {
    this.tsPrintSignatureDeclarationBase(t), w0(this, t);
  }
  n(iSt, "TSCallSignatureDeclaration");
  function w0(t, e) {
    if (!t.tokenMap || !e.start || !e.end) {
      t.semicolon();
      return;
    }
    t.tokenMap.endMatches(e, ",") ? t.token(",") : t.tokenMap.endMatches(e, ";") && t.semicolon();
  }
  n(w0, "maybePrintTrailingCommaOrSemicolon");
  function nSt(t) {
    this.word("new"), this.space(), this.tsPrintSignatureDeclarationBase(t), w0(this, t);
  }
  n(nSt, "TSConstructSignatureDeclaration");
  function aSt(t) {
    let {
      readonly: e
    } = t;
    e && (this.word("readonly"), this.space()), this.tsPrintPropertyOrMethodName(t), this.print(t.typeAnnotation), w0(this, t);
  }
  n(aSt, "TSPropertySignature");
  function oSt(t) {
    t.computed && this.tokenChar(91), this.print(t.key), t.computed && this.tokenChar(93), t.optional && this.tokenChar(63);
  }
  n(oSt, "tsPrintPropertyOrMethodName");
  function lSt(t) {
    let {
      kind: e
    } = t;
    (e === "set" || e === "get") && (this.word(e), this.space()), this.tsPrintPropertyOrMethodName(t), this.tsPrintSignatureDeclarationBase(
    t), w0(this, t);
  }
  n(lSt, "TSMethodSignature");
  function uSt(t) {
    let {
      readonly: e,
      static: s
    } = t;
    s && (this.word("static"), this.space()), e && (this.word("readonly"), this.space()), this.tokenChar(91), this._parameters(t.parameters,
    "]"), this.print(t.typeAnnotation), w0(this, t);
  }
  n(uSt, "TSIndexSignature");
  function cSt() {
    this.word("any");
  }
  n(cSt, "TSAnyKeyword");
  function pSt() {
    this.word("bigint");
  }
  n(pSt, "TSBigIntKeyword");
  function hSt() {
    this.word("unknown");
  }
  n(hSt, "TSUnknownKeyword");
  function fSt() {
    this.word("number");
  }
  n(fSt, "TSNumberKeyword");
  function dSt() {
    this.word("object");
  }
  n(dSt, "TSObjectKeyword");
  function mSt() {
    this.word("boolean");
  }
  n(mSt, "TSBooleanKeyword");
  function ySt() {
    this.word("string");
  }
  n(ySt, "TSStringKeyword");
  function gSt() {
    this.word("symbol");
  }
  n(gSt, "TSSymbolKeyword");
  function TSt() {
    this.word("void");
  }
  n(TSt, "TSVoidKeyword");
  function bSt() {
    this.word("undefined");
  }
  n(bSt, "TSUndefinedKeyword");
  function xSt() {
    this.word("null");
  }
  n(xSt, "TSNullKeyword");
  function SSt() {
    this.word("never");
  }
  n(SSt, "TSNeverKeyword");
  function PSt() {
    this.word("intrinsic");
  }
  n(PSt, "TSIntrinsicKeyword");
  function ESt() {
    this.word("this");
  }
  n(ESt, "TSThisType");
  function ASt(t) {
    this.tsPrintFunctionOrConstructorType(t);
  }
  n(ASt, "TSFunctionType");
  function vSt(t) {
    t.abstract && (this.word("abstract"), this.space()), this.word("new"), this.space(), this.tsPrintFunctionOrConstructorType(t);
  }
  n(vSt, "TSConstructorType");
  function CSt(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")"), this.space();
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(CSt, "tsPrintFunctionOrConstructorType");
  function wSt(t) {
    let e = t.typeParameters;
    this.print(t.typeName, !!e), this.print(e);
  }
  n(wSt, "TSTypeReference");
  function ISt(t) {
    t.asserts && (this.word("asserts"), this.space()), this.print(t.parameterName), t.typeAnnotation && (this.space(), this.word("is"), this.
    space(), this.print(t.typeAnnotation.typeAnnotation));
  }
  n(ISt, "TSTypePredicate");
  function NSt(t) {
    this.word("typeof"), this.space(), this.print(t.exprName);
    let e = t.typeParameters;
    e && this.print(e);
  }
  n(NSt, "TSTypeQuery");
  function kSt(t) {
    jE(this, t, () => this.printJoin(t.members, !0, !0));
  }
  n(kSt, "TSTypeLiteral");
  function DSt(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(DSt, "TSArrayType");
  function OSt(t) {
    this.tokenChar(91), this.printList(t.elementTypes, this.shouldPrintTrailingComma("]")), this.tokenChar(93);
  }
  n(OSt, "TSTupleType");
  function _St(t) {
    this.print(t.typeAnnotation), this.tokenChar(63);
  }
  n(_St, "TSOptionalType");
  function LSt(t) {
    this.token("..."), this.print(t.typeAnnotation);
  }
  n(LSt, "TSRestType");
  function BSt(t) {
    this.print(t.label), t.optional && this.tokenChar(63), this.tokenChar(58), this.space(), this.print(t.elementType);
  }
  n(BSt, "TSNamedTupleMember");
  function MSt(t) {
    Pse(this, t, "|");
  }
  n(MSt, "TSUnionType");
  function FSt(t) {
    Pse(this, t, "&");
  }
  n(FSt, "TSIntersectionType");
  function Pse(t, e, s) {
    var r;
    let i = 0;
    (r = t.tokenMap) != null && r.startMatches(e, s) && (i = 1, t.token(s)), t.printJoin(e.types, void 0, void 0, function(a) {
      this.space(), this.token(s, null, a + i), this.space();
    });
  }
  n(Pse, "tsPrintUnionOrIntersectionType");
  function jSt(t) {
    this.print(t.checkType), this.space(), this.word("extends"), this.space(), this.print(t.extendsType), this.space(), this.tokenChar(63), this.
    space(), this.print(t.trueType), this.space(), this.tokenChar(58), this.space(), this.print(t.falseType);
  }
  n(jSt, "TSConditionalType");
  function RSt(t) {
    this.word("infer"), this.print(t.typeParameter);
  }
  n(RSt, "TSInferType");
  function qSt(t) {
    this.tokenChar(40), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(qSt, "TSParenthesizedType");
  function USt(t) {
    this.word(t.operator), this.space(), this.print(t.typeAnnotation);
  }
  n(USt, "TSTypeOperator");
  function KSt(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(KSt, "TSIndexedAccessType");
  function VSt(t) {
    let {
      nameType: e,
      optional: s,
      readonly: r,
      typeAnnotation: i
    } = t;
    this.tokenChar(123);
    let a = this.enterDelimited();
    this.space(), r && (xse(this, r), this.word("readonly"), this.space()), this.tokenChar(91), this.word(t.typeParameter.name), this.space(),
    this.word("in"), this.space(), this.print(t.typeParameter.constraint), e && (this.space(), this.word("as"), this.space(), this.print(e)),
    this.tokenChar(93), s && (xse(this, s), this.tokenChar(63)), i && (this.tokenChar(58), this.space(), this.print(i)), this.space(), a(), this.
    tokenChar(125);
  }
  n(VSt, "TSMappedType");
  function xse(t, e) {
    e !== !0 && t.token(e);
  }
  n(xse, "tokenIfPlusMinus");
  function WSt(t) {
    this._printTemplate(t, t.types);
  }
  n(WSt, "TSTemplateLiteralType");
  function $St(t) {
    this.print(t.literal);
  }
  n($St, "TSLiteralType");
  function HSt(t) {
    this.print(t.expression), this.print(t.typeArguments);
  }
  n(HSt, "TSClassImplements");
  function JSt(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      extends: i,
      body: a
    } = t;
    e && (this.word("declare"), this.space()), this.word("interface"), this.space(), this.print(s), this.print(r), i != null && i.length && (this.
    space(), this.word("extends"), this.space(), this.printList(i)), this.space(), this.print(a);
  }
  n(JSt, "TSInterfaceDeclaration");
  function YSt(t) {
    jE(this, t, () => this.printJoin(t.body, !0, !0));
  }
  n(YSt, "TSInterfaceBody");
  function XSt(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      typeAnnotation: i
    } = t;
    e && (this.word("declare"), this.space()), this.word("type"), this.space(), this.print(s), this.print(r), this.space(), this.tokenChar(61),
    this.space(), this.print(i), this.semicolon();
  }
  n(XSt, "TSTypeAliasDeclaration");
  function zSt(t) {
    let {
      type: e,
      expression: s,
      typeAnnotation: r
    } = t;
    this.print(s, !0), this.space(), this.word(e === "TSAsExpression" ? "as" : "satisfies"), this.space(), this.print(r);
  }
  n(zSt, "TSTypeExpression");
  function GSt(t) {
    let {
      typeAnnotation: e,
      expression: s
    } = t;
    this.tokenChar(60), this.print(e), this.tokenChar(62), this.space(), this.print(s);
  }
  n(GSt, "TSTypeAssertion");
  function QSt(t) {
    this.print(t.expression), this.print(t.typeParameters);
  }
  n(QSt, "TSInstantiationExpression");
  function ZSt(t) {
    let {
      declare: e,
      const: s,
      id: r
    } = t;
    e && (this.word("declare"), this.space()), s && (this.word("const"), this.space()), this.word("enum"), this.space(), this.print(r), this.
    space(), Ese.call(this, t);
  }
  n(ZSt, "TSEnumDeclaration");
  function Ese(t) {
    jE(this, t, () => {
      var e;
      return this.printList(t.members, (e = this.shouldPrintTrailingComma("}")) != null ? e : !0, !0, !0);
    });
  }
  n(Ese, "TSEnumBody");
  function ePt(t) {
    let {
      id: e,
      initializer: s
    } = t;
    this.print(e), s && (this.space(), this.tokenChar(61), this.space(), this.print(s));
  }
  n(ePt, "TSEnumMember");
  function tPt(t) {
    let {
      declare: e,
      id: s,
      kind: r
    } = t;
    e && (this.word("declare"), this.space());
    {
      if (t.global || (this.word(r ?? (s.type === "Identifier" ? "namespace" : "module")), this.space()), this.print(s), !t.body) {
        this.semicolon();
        return;
      }
      let i = t.body;
      for (; i.type === "TSModuleDeclaration"; )
        this.tokenChar(46), this.print(i.id), i = i.body;
      this.space(), this.print(i);
    }
  }
  n(tPt, "TSModuleDeclaration");
  function sPt(t) {
    jE(this, t, () => this.printSequence(t.body, !0));
  }
  n(sPt, "TSModuleBlock");
  function rPt(t) {
    let {
      argument: e,
      qualifier: s,
      options: r
    } = t;
    this.word("import"), this.tokenChar(40), this.print(e), r && (this.tokenChar(44), this.print(r)), this.tokenChar(41), s && (this.tokenChar(
    46), this.print(s));
    let i = t.typeParameters;
    i && this.print(i);
  }
  n(rPt, "TSImportType");
  function iPt(t) {
    let {
      id: e,
      moduleReference: s
    } = t;
    t.isExport && (this.word("export"), this.space()), this.word("import"), this.space(), this.print(e), this.space(), this.tokenChar(61), this.
    space(), this.print(s), this.semicolon();
  }
  n(iPt, "TSImportEqualsDeclaration");
  function nPt(t) {
    this.token("require("), this.print(t.expression), this.tokenChar(41);
  }
  n(nPt, "TSExternalModuleReference");
  function aPt(t) {
    this.print(t.expression), this.tokenChar(33);
  }
  n(aPt, "TSNonNullExpression");
  function oPt(t) {
    this.word("export"), this.space(), this.tokenChar(61), this.space(), this.print(t.expression), this.semicolon();
  }
  n(oPt, "TSExportAssignment");
  function lPt(t) {
    this.word("export"), this.space(), this.word("as"), this.space(), this.word("namespace"), this.space(), this.print(t.id), this.semicolon();
  }
  n(lPt, "TSNamespaceExportDeclaration");
  function uPt(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")");
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(uPt, "tsPrintSignatureDeclarationBase");
  function cPt(t) {
    let e = t.type === "ClassPrivateProperty", s = t.type === "ClassAccessorProperty" || t.type === "ClassProperty";
    Sse(this, t, [s && t.declare && "declare", !e && t.accessibility]), t.static && (this.word("static"), this.space()), Sse(this, t, [!e &&
    t.override && "override", !e && t.abstract && "abstract", (s || e) && t.readonly && "readonly"]);
  }
  n(cPt, "tsPrintClassMemberModifiers");
  function jE(t, e, s) {
    t.token("{");
    let r = t.enterDelimited();
    s(), r(), t.rightBrace(e);
  }
  n(jE, "printBraced");
  function Sse(t, e, s) {
    var r;
    let i = /* @__PURE__ */ new Set();
    for (let a of s)
      a && i.add(a);
    (r = t.tokenMap) == null || r.find(e, (a) => {
      if (i.has(a.value))
        return t.token(a.value), t.space(), i.delete(a.value), i.size === 0;
    });
    for (let a of i)
      t.word(a), t.space();
  }
  n(Sse, "printModifiersList");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/index.js
var vse = g((_s) => {
  "use strict";
  Object.defineProperty(_s, "__esModule", {
    value: !0
  });
  var NB = tse();
  Object.keys(NB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === NB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return NB[t];
      }, "get")
    });
  });
  var kB = rse();
  Object.keys(kB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === kB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return kB[t];
      }, "get")
    });
  });
  var DB = ose();
  Object.keys(DB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === DB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return DB[t];
      }, "get")
    });
  });
  var OB = lse();
  Object.keys(OB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === OB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return OB[t];
      }, "get")
    });
  });
  var _B = use();
  Object.keys(_B).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === _B[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return _B[t];
      }, "get")
    });
  });
  var LB = vB();
  Object.keys(LB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === LB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return LB[t];
      }, "get")
    });
  });
  var BB = wB();
  Object.keys(BB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === BB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return BB[t];
      }, "get")
    });
  });
  var MB = gse();
  Object.keys(MB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === MB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return MB[t];
      }, "get")
    });
  });
  var FB = Tse();
  Object.keys(FB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === FB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return FB[t];
      }, "get")
    });
  });
  var jB = bse();
  Object.keys(jB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === jB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return jB[t];
      }, "get")
    });
  });
  var RB = Ase();
  Object.keys(RB).forEach(function(t) {
    t === "default" || t === "__esModule" || t in _s && _s[t] === RB[t] || Object.defineProperty(_s, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return RB[t];
      }, "get")
    });
  });
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/deprecated.js
var Cse = g((qB) => {
  "use strict";
  Object.defineProperty(qB, "__esModule", {
    value: !0
  });
  qB.addDeprecatedGenerators = pPt;
  function pPt(t) {
    {
      let e = {
        Noop() {
        },
        TSExpressionWithTypeArguments(s) {
          this.print(s.expression), this.print(s.typeParameters);
        },
        DecimalLiteral(s) {
          let r = this.getPossibleRaw(s);
          if (!this.format.minified && r !== void 0) {
            this.word(r);
            return;
          }
          this.word(s.value + "m");
        }
      };
      Object.assign(t.prototype, e);
    }
  }
  n(pPt, "addDeprecatedGenerators");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js
var kse = g((RE) => {
  "use strict";
  Object.defineProperty(RE, "__esModule", {
    value: !0
  });
  RE.default = void 0;
  var hPt = Fte(), Ise = cp(), fPt = fe(), dPt = ese(), mPt = vse(), yPt = Cse(), {
    isExpression: gPt,
    isFunction: TPt,
    isStatement: bPt,
    isClassBody: xPt,
    isTSInterfaceBody: SPt,
    isTSEnumMember: PPt
  } = fPt, EPt = /e/i, APt = /\.0+$/, Nse = /[\n\r\u2028\u2029]/, vPt = /[\n\r\u2028\u2029]|\*\//;
  function wse(t) {
    return t.type === "CommentLine" || Nse.test(t.value);
  }
  n(wse, "commentIsNewline");
  var {
    needsParens: CPt
  } = Ise, I0 = class {
    static {
      n(this, "Printer");
    }
    constructor(e, s, r, i) {
      this.inForStatementInit = !1, this.tokenContext = 0, this._tokens = null, this._originalCode = null, this._currentNode = null, this._indent =
      0, this._indentRepeat = 0, this._insideAux = !1, this._noLineTerminator = !1, this._noLineTerminatorAfterNode = null, this._printAuxAfterOnNextUserNode =
      !1, this._printedComments = /* @__PURE__ */ new Set(), this._endsWithInteger = !1, this._endsWithWord = !1, this._endsWithDiv = !1, this.
      _lastCommentLine = 0, this._endsWithInnerRaw = !1, this._indentInnerComments = !0, this.tokenMap = null, this._boundGetRawIdentifier =
      this._getRawIdentifier.bind(this), this._printSemicolonBeforeNextNode = -1, this._printSemicolonBeforeNextToken = -1, this.format = e,
      this._tokens = r, this._originalCode = i, this._indentRepeat = e.indent.style.length, this._inputMap = s?._inputMap, this._buf = new hPt.
      default(s, e.indent.style[0]);
    }
    enterForStatementInit() {
      return this.inForStatementInit ? () => {
      } : (this.inForStatementInit = !0, () => {
        this.inForStatementInit = !1;
      });
    }
    enterDelimited() {
      let e = this.inForStatementInit, s = this._noLineTerminatorAfterNode;
      return e === !1 && s === null ? () => {
      } : (this.inForStatementInit = !1, this._noLineTerminatorAfterNode = null, () => {
        this.inForStatementInit = e, this._noLineTerminatorAfterNode = s;
      });
    }
    generate(e) {
      return this.format.preserveFormat && (this.tokenMap = new dPt.TokenMap(e, this._tokens, this._originalCode)), this.print(e), this._maybeAddAuxComment(),
      this._buf.get();
    }
    indent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent++;
    }
    dedent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent--;
    }
    semicolon(e = !1) {
      if (this._maybeAddAuxComment(), e) {
        this._appendChar(59), this._noLineTerminator = !1;
        return;
      }
      if (this.tokenMap) {
        let s = this._currentNode;
        if (s.start != null && s.end != null) {
          if (!this.tokenMap.endMatches(s, ";")) {
            this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();
            return;
          }
          let r = this.tokenMap.getIndexes(this._currentNode);
          this._catchUpTo(this._tokens[r[r.length - 1]].loc.start);
        }
      }
      this._queue(59), this._noLineTerminator = !1;
    }
    rightBrace(e) {
      this.format.minified && this._buf.removeLastSemicolon(), this.sourceWithOffset("end", e.loc, -1), this.tokenChar(125);
    }
    rightParens(e) {
      this.sourceWithOffset("end", e.loc, -1), this.tokenChar(41);
    }
    space(e = !1) {
      let {
        format: s
      } = this;
      if (!(s.compact || s.preserveFormat)) {
        if (e)
          this._space();
        else if (this._buf.hasContent()) {
          let r = this.getLastChar();
          r !== 32 && r !== 10 && this._space();
        }
      }
    }
    word(e, s = !1) {
      this.tokenContext = 0, this._maybePrintInnerComments(e), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e), (this.
      _endsWithWord || this._endsWithDiv && e.charCodeAt(0) === 47) && this._space(), this._append(e, !1), this._endsWithWord = !0, this._noLineTerminator =
      s;
    }
    number(e, s) {
      function r(i) {
        if (i.length > 2 && i.charCodeAt(0) === 48) {
          let a = i.charCodeAt(1);
          return a === 98 || a === 111 || a === 120;
        }
        return !1;
      }
      n(r, "isNonDecimalLiteral"), this.word(e), this._endsWithInteger = Number.isInteger(s) && !r(e) && !EPt.test(e) && !APt.test(e) && e.charCodeAt(
      e.length - 1) !== 46;
    }
    token(e, s = !1, r = 0) {
      this.tokenContext = 0, this._maybePrintInnerComments(e, r), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e,
      r);
      let i = this.getLastChar(), a = e.charCodeAt(0);
      (i === 33 && (e === "--" || a === 61) || a === 43 && i === 43 || a === 45 && i === 45 || a === 46 && this._endsWithInteger) && this._space(),
      this._append(e, s), this._noLineTerminator = !1;
    }
    tokenChar(e) {
      this.tokenContext = 0;
      let s = String.fromCharCode(e);
      this._maybePrintInnerComments(s), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(s);
      let r = this.getLastChar();
      (e === 43 && r === 43 || e === 45 && r === 45 || e === 46 && this._endsWithInteger) && this._space(), this._appendChar(e), this._noLineTerminator =
      !1;
    }
    newline(e = 1, s) {
      if (!(e <= 0)) {
        if (!s) {
          if (this.format.retainLines || this.format.compact) return;
          if (this.format.concise) {
            this.space();
            return;
          }
        }
        e > 2 && (e = 2), e -= this._buf.getNewlineCount();
        for (let r = 0; r < e; r++)
          this._newline();
      }
    }
    endsWith(e) {
      return this.getLastChar() === e;
    }
    getLastChar() {
      return this._buf.getLastChar();
    }
    endsWithCharAndNewline() {
      return this._buf.endsWithCharAndNewline();
    }
    removeTrailingNewline() {
      this._buf.removeTrailingNewline();
    }
    exactSource(e, s) {
      if (!e) {
        s();
        return;
      }
      this._catchUp("start", e), this._buf.exactSource(e, s);
    }
    source(e, s) {
      s && (this._catchUp(e, s), this._buf.source(e, s));
    }
    sourceWithOffset(e, s, r) {
      !s || this.format.preserveFormat || (this._catchUp(e, s), this._buf.sourceWithOffset(e, s, r));
    }
    sourceIdentifierName(e, s) {
      if (!this._buf._canMarkIdName) return;
      let r = this._buf._sourcePosition;
      r.identifierNamePos = s, r.identifierName = e;
    }
    _space() {
      this._queue(32);
    }
    _newline() {
      this._queue(10);
    }
    _catchUpToCurrentToken(e, s = 0) {
      let r = this.tokenMap.findMatching(this._currentNode, e, s);
      r && this._catchUpTo(r.loc.start), this._printSemicolonBeforeNextToken !== -1 && this._printSemicolonBeforeNextToken === this._buf.getCurrentLine() &&
      (this._buf.appendChar(59), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1), this._printSemicolonBeforeNextToken =
      -1, this._printSemicolonBeforeNextNode = -1;
    }
    _append(e, s) {
      this._maybeIndent(e.charCodeAt(0)), this._buf.append(e, s), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _appendChar(e) {
      this._maybeIndent(e), this._buf.appendChar(e), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _queue(e) {
      this._maybeIndent(e), this._buf.queue(e), this._endsWithWord = !1, this._endsWithInteger = !1;
    }
    _maybeIndent(e) {
      this._indent && e !== 10 && this.endsWith(10) && this._buf.queueIndentation(this._getIndent());
    }
    _shouldIndent(e) {
      if (this._indent && e !== 10 && this.endsWith(10))
        return !0;
    }
    catchUp(e) {
      if (!this.format.retainLines) return;
      let s = e - this._buf.getCurrentLine();
      for (let r = 0; r < s; r++)
        this._newline();
    }
    _catchUp(e, s) {
      let {
        format: r
      } = this;
      if (!r.preserveFormat) {
        r.retainLines && s != null && s[e] && this.catchUp(s[e].line);
        return;
      }
      let i = s?.[e];
      i != null && this._catchUpTo(i);
    }
    _catchUpTo({
      line: e,
      column: s,
      index: r
    }) {
      let i = e - this._buf.getCurrentLine();
      if (i > 0 && this._noLineTerminator)
        return;
      for (let o = 0; o < i; o++)
        this._newline();
      let a = i > 0 ? s : s - this._buf.getCurrentColumn();
      if (a > 0) {
        let o = this._originalCode ? this._originalCode.slice(r - a, r).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu,
        " ") : " ".repeat(a);
        this._append(o, !1);
      }
    }
    _getIndent() {
      return this._indentRepeat * this._indent;
    }
    printTerminatorless(e) {
      this._noLineTerminator = !0, this.print(e);
    }
    print(e, s, r) {
      var i, a, o;
      if (!e) return;
      this._endsWithInnerRaw = !1;
      let l = e.type, u = this.format, c = u.concise;
      e._compact && (u.concise = !0);
      let p = this[l];
      if (p === void 0)
        throw new ReferenceError(`unknown node of type ${JSON.stringify(l)} with constructor ${JSON.stringify(e.constructor.name)}`);
      let h = this._currentNode;
      this._currentNode = e, this.tokenMap && (this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode);
      let f = this._insideAux;
      this._insideAux = e.loc == null, this._maybeAddAuxComment(this._insideAux && !f);
      let d = (i = e.extra) == null ? void 0 : i.parenthesized, m = d && u.preserveFormat || d && u.retainFunctionParens && l === "FunctionE\
xpression" || CPt(e, h, this.tokenContext, this.inForStatementInit, u.preserveFormat ? this._boundGetRawIdentifier : void 0);
      if (!m && d && (a = e.leadingComments) != null && a.length && e.leadingComments[0].type === "CommentBlock")
        switch (h?.type) {
          case "ExpressionStatement":
          case "VariableDeclarator":
          case "AssignmentExpression":
          case "ReturnStatement":
            break;
          case "CallExpression":
          case "OptionalCallExpression":
          case "NewExpression":
            if (h.callee !== e) break;
          default:
            m = !0;
        }
      let y = !1;
      !m && this._noLineTerminator && ((o = e.leadingComments) != null && o.some(wse) || this.format.retainLines && e.loc && e.loc.start.line >
      this._buf.getCurrentLine()) && (m = !0, y = !0);
      let T, b;
      if (!m && (s || (s = h && this._noLineTerminatorAfterNode === h && Ise.isLastChild(h, e)), s)) {
        var E;
        (E = e.trailingComments) != null && E.some(wse) ? gPt(e) && (m = !0) : (T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode =
        e);
      }
      m && (this.tokenChar(40), y && this.indent(), this._endsWithInnerRaw = !1, this.inForStatementInit && (b = !0, this.inForStatementInit =
      !1), T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode = null), this._lastCommentLine = 0, this._printLeadingComments(
      e, h);
      let V = l === "Program" || l === "File" ? null : e.loc;
      this.exactSource(V, p.bind(this, e, h)), m ? (this._printTrailingComments(e, h), y && (this.dedent(), this.newline()), this.tokenChar(
      41), this._noLineTerminator = s, b && (this.inForStatementInit = !0)) : s && !this._noLineTerminator ? (this._noLineTerminator = !0, this.
      _printTrailingComments(e, h)) : this._printTrailingComments(e, h, r), this._currentNode = h, u.concise = c, this._insideAux = f, T !==
      void 0 && (this._noLineTerminatorAfterNode = T), this._endsWithInnerRaw = !1;
    }
    _maybeAddAuxComment(e) {
      e && this._printAuxBeforeComment(), this._insideAux || this._printAuxAfterComment();
    }
    _printAuxBeforeComment() {
      if (this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !0;
      let e = this.format.auxiliaryCommentBefore;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    _printAuxAfterComment() {
      if (!this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !1;
      let e = this.format.auxiliaryCommentAfter;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    getPossibleRaw(e) {
      let s = e.extra;
      if (s?.raw != null && s.rawValue != null && e.value === s.rawValue)
        return s.raw;
    }
    printJoin(e, s, r, i, a, o, l, u) {
      if (!(e != null && e.length)) return;
      if (r == null && this.format.retainLines) {
        var c;
        let y = (c = e[0].loc) == null ? void 0 : c.start.line;
        y != null && y !== this._buf.getCurrentLine() && (r = !0);
      }
      r && this.indent();
      let p = {
        addNewlines: o,
        nextNodeStartLine: 0
      }, h = i?.bind(this), f = e.length;
      for (let y = 0; y < f; y++) {
        let T = e[y];
        if (T && (s && this._printNewline(y === 0, p), this.print(T, void 0, u || 0), l?.(T, y), h != null && (y < f - 1 ? h(y, !1) : a && h(
        y, !0)), s)) {
          var d;
          if ((d = T.trailingComments) != null && d.length || (this._lastCommentLine = 0), y + 1 === f)
            this.newline(1);
          else {
            var m;
            let b = e[y + 1];
            p.nextNodeStartLine = ((m = b.loc) == null ? void 0 : m.start.line) || 0, this._printNewline(!0, p);
          }
        }
      }
      r && this.dedent();
    }
    printAndIndentOnComments(e) {
      let s = e.leadingComments && e.leadingComments.length > 0;
      s && this.indent(), this.print(e), s && this.dedent();
    }
    printBlock(e) {
      let s = e.body;
      s.type !== "EmptyStatement" && this.space(), this.print(s);
    }
    _printTrailingComments(e, s, r) {
      let {
        innerComments: i,
        trailingComments: a
      } = e;
      i != null && i.length && this._printComments(2, i, e, s, r), a != null && a.length && this._printComments(2, a, e, s, r);
    }
    _printLeadingComments(e, s) {
      let r = e.leadingComments;
      r != null && r.length && this._printComments(0, r, e, s);
    }
    _maybePrintInnerComments(e, s) {
      if (this._endsWithInnerRaw) {
        var r;
        this.printInnerComments((r = this.tokenMap) == null ? void 0 : r.findMatching(this._currentNode, e, s));
      }
      this._endsWithInnerRaw = !0, this._indentInnerComments = !0;
    }
    printInnerComments(e) {
      let s = this._currentNode, r = s.innerComments;
      if (!(r != null && r.length)) return;
      let i = this.endsWith(32), a = this._indentInnerComments, o = this._printedComments.size;
      a && this.indent(), this._printComments(1, r, s, void 0, void 0, e), i && o !== this._printedComments.size && this.space(), a && this.
      dedent();
    }
    noIndentInnerCommentsHere() {
      this._indentInnerComments = !1;
    }
    printSequence(e, s, r, i) {
      this.printJoin(e, !0, s ?? !1, void 0, void 0, i, void 0, r);
    }
    printList(e, s, r, i, a, o) {
      this.printJoin(e, r, i, a ?? wPt, s, void 0, o);
    }
    shouldPrintTrailingComma(e) {
      if (!this.tokenMap) return null;
      let s = this.tokenMap.findLastIndex(this._currentNode, (r) => this.tokenMap.matchesOriginal(r, e));
      return s <= 0 ? null : this.tokenMap.matchesOriginal(this._tokens[s - 1], ",");
    }
    _printNewline(e, s) {
      let r = this.format;
      if (r.retainLines || r.compact) return;
      if (r.concise) {
        this.space();
        return;
      }
      if (!e)
        return;
      let i = s.nextNodeStartLine, a = this._lastCommentLine;
      if (i > 0 && a > 0) {
        let o = i - a;
        if (o >= 0) {
          this.newline(o || 1);
          return;
        }
      }
      this._buf.hasContent() && this.newline(1);
    }
    _shouldPrintComment(e, s) {
      if (e.ignore || this._printedComments.has(e)) return 0;
      if (this._noLineTerminator && vPt.test(e.value))
        return 2;
      if (s && this.tokenMap) {
        let r = this.tokenMap.find(this._currentNode, (i) => i.value === e.value);
        if (r && r.start > s.start)
          return 2;
      }
      return this._printedComments.add(e), this.format.shouldPrintComment(e.value) ? 1 : 0;
    }
    _printComment(e, s) {
      let r = this._noLineTerminator, i = e.type === "CommentBlock", a = i && s !== 1 && !this._noLineTerminator;
      a && this._buf.hasContent() && s !== 2 && this.newline(1);
      let o = this.getLastChar();
      o !== 91 && o !== 123 && o !== 40 && this.space();
      let l;
      if (i) {
        if (l = `/*${e.value}*/`, this.format.indent.adjustMultilineComment) {
          var u;
          let c = (u = e.loc) == null ? void 0 : u.start.column;
          if (c) {
            let p = new RegExp("\\n\\s{1," + c + "}", "g");
            l = l.replace(p, `
`);
          }
          if (this.format.concise)
            l = l.replace(/\n(?!$)/g, `
`);
          else {
            let p = this.format.retainLines ? 0 : this._buf.getCurrentColumn();
            (this._shouldIndent(47) || this.format.retainLines) && (p += this._getIndent()), l = l.replace(/\n(?!$)/g, `
${" ".repeat(p)}`);
          }
        }
      } else r ? l = `/*${e.value}*/` : l = `//${e.value}`;
      if (this._endsWithDiv && this._space(), this.tokenMap) {
        let {
          _printSemicolonBeforeNextToken: c,
          _printSemicolonBeforeNextNode: p
        } = this;
        this._printSemicolonBeforeNextToken = -1, this._printSemicolonBeforeNextNode = -1, this.source("start", e.loc), this._append(l, i), this.
        _printSemicolonBeforeNextNode = p, this._printSemicolonBeforeNextToken = c;
      } else
        this.source("start", e.loc), this._append(l, i);
      !i && !r && this.newline(1, !0), a && s !== 3 && this.newline(1);
    }
    _printComments(e, s, r, i, a = 0, o) {
      let l = r.loc, u = s.length, c = !!l, p = c ? l.start.line : 0, h = c ? l.end.line : 0, f = 0, d = 0, m = this._noLineTerminator ? function() {
      } : this.newline.bind(this);
      for (let y = 0; y < u; y++) {
        let T = s[y], b = this._shouldPrintComment(T, o);
        if (b === 2) {
          c = !1;
          break;
        }
        if (c && T.loc && b === 1) {
          let E = T.loc.start.line, V = T.loc.end.line;
          if (e === 0) {
            let W = 0;
            y === 0 ? this._buf.hasContent() && (T.type === "CommentLine" || E !== V) && (W = d = 1) : W = E - f, f = V, m(W), this._printComment(
            T, 1), y + 1 === u && (m(Math.max(p - f, d)), f = p);
          } else if (e === 1) {
            let W = E - (y === 0 ? p : f);
            f = V, m(W), this._printComment(T, 1), y + 1 === u && (m(Math.min(1, h - f)), f = h);
          } else {
            let W = E - (y === 0 ? h - a : f);
            f = V, m(W), this._printComment(T, 1);
          }
        } else {
          if (c = !1, b !== 1)
            continue;
          if (u === 1) {
            let E = T.loc ? T.loc.start.line === T.loc.end.line : !Nse.test(T.value), V = E && !bPt(r) && !xPt(i) && !SPt(i) && !PPt(r);
            e === 0 ? this._printComment(T, V && r.type !== "ObjectExpression" || E && TPt(i, {
              body: r
            }) ? 1 : 0) : V && e === 2 ? this._printComment(T, 1) : this._printComment(T, 0);
          } else e === 1 && !(r.type === "ObjectExpression" && r.properties.length > 1) && r.type !== "ClassBody" && r.type !== "TSInterface\
Body" ? this._printComment(T, y === 0 ? 2 : y === u - 1 ? 3 : 0) : this._printComment(T, 0);
        }
      }
      e === 2 && c && f && (this._lastCommentLine = f);
    }
  };
  Object.assign(I0.prototype, mPt);
  (0, yPt.addDeprecatedGenerators)(I0);
  var zHs = RE.default = I0;
  function wPt(t, e) {
    this.token(",", !1, t), e || this.space();
  }
  n(wPt, "commaSeparator");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/index.js
var Lse = g((qE) => {
  "use strict";
  Object.defineProperty(qE, "__esModule", {
    value: !0
  });
  qE.default = IPt;
  var Dse = Mte(), Ose = kse();
  function _se(t, e, s) {
    if (e.experimental_preserveFormat) {
      if (typeof t != "string")
        throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string");
      if (!e.retainLines)
        throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`");
      if (e.compact && e.compact !== "auto")
        throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option");
      if (e.minified)
        throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option");
      if (e.jsescOption)
        throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option");
      if (!Array.isArray(s.tokens))
        throw new Error("`experimental_preserveFormat` requires the AST to have attatched the token of the input code. Make sure to enable t\
he `tokens: true` parser option.");
    }
    let r = {
      auxiliaryCommentBefore: e.auxiliaryCommentBefore,
      auxiliaryCommentAfter: e.auxiliaryCommentAfter,
      shouldPrintComment: e.shouldPrintComment,
      preserveFormat: e.experimental_preserveFormat,
      retainLines: e.retainLines,
      retainFunctionParens: e.retainFunctionParens,
      comments: e.comments == null || e.comments,
      compact: e.compact,
      minified: e.minified,
      concise: e.concise,
      indent: {
        adjustMultilineComment: !0,
        style: "  "
      },
      jsescOption: Object.assign({
        quotes: "double",
        wrap: !0,
        minimal: !1
      }, e.jsescOption),
      topicToken: e.topicToken,
      importAttributesKeyword: e.importAttributesKeyword
    };
    {
      var i;
      r.decoratorsBeforeExport = e.decoratorsBeforeExport, r.jsescOption.json = e.jsonCompatibleStrings, r.recordAndTupleSyntaxType = (i = e.
      recordAndTupleSyntaxType) != null ? i : "hash";
    }
    r.minified ? (r.compact = !0, r.shouldPrintComment = r.shouldPrintComment || (() => r.comments)) : r.shouldPrintComment = r.shouldPrintComment ||
    ((u) => r.comments || u.includes("@license") || u.includes("@preserve")), r.compact === "auto" && (r.compact = typeof t == "string" && t.
    length > 5e5, r.compact && console.error(`[BABEL] Note: The code generator has deoptimised the styling of ${e.filename} as it exceeds th\
e max of 500KB.`)), (r.compact || r.preserveFormat) && (r.indent.adjustMultilineComment = !1);
    let {
      auxiliaryCommentBefore: a,
      auxiliaryCommentAfter: o,
      shouldPrintComment: l
    } = r;
    return a && !l(a) && (r.auxiliaryCommentBefore = void 0), o && !l(o) && (r.auxiliaryCommentAfter = void 0), r;
  }
  n(_se, "normalizeOptions");
  qE.CodeGenerator = class {
    static {
      n(this, "CodeGenerator");
    }
    constructor(e, s = {}, r) {
      this._ast = void 0, this._format = void 0, this._map = void 0, this._ast = e, this._format = _se(r, s, e), this._map = s.sourceMaps ? new Dse.
      default(s, r) : null;
    }
    generate() {
      return new Ose.default(this._format, this._map).generate(this._ast);
    }
  };
  function IPt(t, e = {}, s) {
    let r = _se(s, e, t), i = e.sourceMaps ? new Dse.default(e, s) : null;
    return new Ose.default(r, i, t.tokens, typeof s == "string" ? s : null).generate(t);
  }
  n(IPt, "generate");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/ancestry.js
var Bse = g((Wa) => {
  "use strict";
  Object.defineProperty(Wa, "__esModule", {
    value: !0
  });
  Wa.find = OPt;
  Wa.findParent = DPt;
  Wa.getAncestry = FPt;
  Wa.getDeepestCommonAncestorFrom = MPt;
  Wa.getEarliestCommonAncestorFrom = BPt;
  Wa.getFunctionParent = _Pt;
  Wa.getStatementParent = LPt;
  Wa.inType = qPt;
  Wa.isAncestor = jPt;
  Wa.isDescendant = RPt;
  var NPt = fe(), {
    VISITOR_KEYS: kPt
  } = NPt;
  function DPt(t) {
    let e = this;
    for (; e = e.parentPath; )
      if (t(e)) return e;
    return null;
  }
  n(DPt, "findParent");
  function OPt(t) {
    let e = this;
    do
      if (t(e)) return e;
    while (e = e.parentPath);
    return null;
  }
  n(OPt, "find");
  function _Pt() {
    return this.findParent((t) => t.isFunction());
  }
  n(_Pt, "getFunctionParent");
  function LPt() {
    let t = this;
    do {
      if (!t.parentPath || Array.isArray(t.container) && t.isStatement())
        break;
      t = t.parentPath;
    } while (t);
    if (t && (t.isProgram() || t.isFile()))
      throw new Error("File/Program node, we can't possibly find a statement parent to this");
    return t;
  }
  n(LPt, "getStatementParent");
  function BPt(t) {
    return this.getDeepestCommonAncestorFrom(t, function(e, s, r) {
      let i, a = kPt[e.type];
      for (let o of r) {
        let l = o[s + 1];
        if (!i) {
          i = l;
          continue;
        }
        if (l.listKey && i.listKey === l.listKey && l.key < i.key) {
          i = l;
          continue;
        }
        let u = a.indexOf(i.parentKey), c = a.indexOf(l.parentKey);
        u > c && (i = l);
      }
      return i;
    });
  }
  n(BPt, "getEarliestCommonAncestorFrom");
  function MPt(t, e) {
    if (!t.length)
      return this;
    if (t.length === 1)
      return t[0];
    let s = 1 / 0, r, i, a = t.map((l) => {
      let u = [];
      do
        u.unshift(l);
      while ((l = l.parentPath) && l !== this);
      return u.length < s && (s = u.length), u;
    }), o = a[0];
    e: for (let l = 0; l < s; l++) {
      let u = o[l];
      for (let c of a)
        if (c[l] !== u)
          break e;
      r = l, i = u;
    }
    if (i)
      return e ? e(i, r, a) : i;
    throw new Error("Couldn't find intersection");
  }
  n(MPt, "getDeepestCommonAncestorFrom");
  function FPt() {
    let t = this, e = [];
    do
      e.push(t);
    while (t = t.parentPath);
    return e;
  }
  n(FPt, "getAncestry");
  function jPt(t) {
    return t.isDescendant(this);
  }
  n(jPt, "isAncestor");
  function RPt(t) {
    return !!this.findParent((e) => e === t);
  }
  n(RPt, "isDescendant");
  function qPt(...t) {
    let e = this;
    for (; e; ) {
      for (let s of t)
        if (e.node.type === s) return !0;
      e = e.parentPath;
    }
    return !1;
  }
  n(qPt, "inType");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/inference/util.js
var KB = g((UB) => {
  "use strict";
  Object.defineProperty(UB, "__esModule", {
    value: !0
  });
  UB.createUnionType = $Pt;
  var UPt = fe(), {
    createFlowUnionType: Mse,
    createTSUnionType: Fse,
    createUnionTypeAnnotation: KPt,
    isFlowType: VPt,
    isTSType: WPt
  } = UPt;
  function $Pt(t) {
    {
      if (t.every((e) => VPt(e)))
        return Mse ? Mse(t) : KPt(t);
      if (t.every((e) => WPt(e)) && Fse)
        return Fse(t);
    }
  }
  n($Pt, "createUnionType");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js
var Kse = g((VB) => {
  "use strict";
  Object.defineProperty(VB, "__esModule", {
    value: !0
  });
  VB.default = zPt;
  var HPt = fe(), Rse = KB(), {
    BOOLEAN_NUMBER_BINARY_OPERATORS: JPt,
    createTypeAnnotationBasedOnTypeof: YPt,
    numberTypeAnnotation: qse,
    voidTypeAnnotation: XPt
  } = HPt;
  function zPt(t) {
    if (!this.isReferenced()) return;
    let e = this.scope.getBinding(t.name);
    if (e)
      return e.identifier.typeAnnotation ? e.identifier.typeAnnotation : GPt(e, this, t.name);
    if (t.name === "undefined")
      return XPt();
    if (t.name === "NaN" || t.name === "Infinity")
      return qse();
    t.name;
  }
  n(zPt, "_default");
  function GPt(t, e, s) {
    let r = [], i = [], a = jse(t, e, i), o = Use(t, e, s);
    if (o) {
      let l = jse(t, o.ifStatement);
      a = a.filter((u) => !l.includes(u)), r.push(o.typeAnnotation);
    }
    if (a.length) {
      a.push(...i);
      for (let l of a)
        r.push(l.getTypeAnnotation());
    }
    if (r.length)
      return (0, Rse.createUnionType)(r);
  }
  n(GPt, "getTypeAnnotationBindingConstantViolations");
  function jse(t, e, s) {
    let r = t.constantViolations.slice();
    return r.unshift(t.path), r.filter((i) => {
      i = i.resolve();
      let a = i._guessExecutionStatusRelativeTo(e);
      return s && a === "unknown" && s.push(i), a === "before";
    });
  }
  n(jse, "getConstantViolationsBefore");
  function QPt(t, e) {
    let s = e.node.operator, r = e.get("right").resolve(), i = e.get("left").resolve(), a;
    if (i.isIdentifier({
      name: t
    }) ? a = r : r.isIdentifier({
      name: t
    }) && (a = i), a)
      return s === "===" ? a.getTypeAnnotation() : JPt.includes(s) ? qse() : void 0;
    if (s !== "===" && s !== "==") return;
    let o, l;
    if (i.isUnaryExpression({
      operator: "typeof"
    }) ? (o = i, l = r) : r.isUnaryExpression({
      operator: "typeof"
    }) && (o = r, l = i), !o || !o.get("argument").isIdentifier({
      name: t
    }) || (l = l.resolve(), !l.isLiteral())) return;
    let u = l.node.value;
    if (typeof u == "string")
      return YPt(u);
  }
  n(QPt, "inferAnnotationFromBinaryExpression");
  function ZPt(t, e, s) {
    let r;
    for (; r = e.parentPath; ) {
      if (r.isIfStatement() || r.isConditionalExpression())
        return e.key === "test" ? void 0 : r;
      if (r.isFunction() && r.parentPath.scope.getBinding(s) !== t)
        return;
      e = r;
    }
  }
  n(ZPt, "getParentConditionalPath");
  function Use(t, e, s) {
    let r = ZPt(t, e, s);
    if (!r) return;
    let a = [r.get("test")], o = [];
    for (let l = 0; l < a.length; l++) {
      let u = a[l];
      if (u.isLogicalExpression())
        u.node.operator === "&&" && (a.push(u.get("left")), a.push(u.get("right")));
      else if (u.isBinaryExpression()) {
        let c = QPt(s, u);
        c && o.push(c);
      }
    }
    return o.length ? {
      typeAnnotation: (0, Rse.createUnionType)(o),
      ifStatement: r
    } : Use(t, r, s);
  }
  n(Use, "getConditionalAnnotation");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/inference/inferers.js
var zse = g((Zs) => {
  "use strict";
  Object.defineProperty(Zs, "__esModule", {
    value: !0
  });
  Zs.ArrayExpression = Jse;
  Zs.AssignmentExpression = PEt;
  Zs.BinaryExpression = gEt;
  Zs.BooleanLiteral = CEt;
  Zs.CallExpression = BEt;
  Zs.ConditionalExpression = bEt;
  Zs.ClassDeclaration = Zs.ClassExpression = Zs.FunctionDeclaration = Zs.ArrowFunctionExpression = Zs.FunctionExpression = kEt;
  Object.defineProperty(Zs, "Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return tEt.default;
    }, "get")
  });
  Zs.LogicalExpression = TEt;
  Zs.NewExpression = dEt;
  Zs.NullLiteral = wEt;
  Zs.NumericLiteral = vEt;
  Zs.ObjectExpression = NEt;
  Zs.ParenthesizedExpression = SEt;
  Zs.RegExpLiteral = IEt;
  Zs.RestElement = Yse;
  Zs.SequenceExpression = xEt;
  Zs.StringLiteral = AEt;
  Zs.TSAsExpression = Hse;
  Zs.TSNonNullExpression = fEt;
  Zs.TaggedTemplateExpression = MEt;
  Zs.TemplateLiteral = mEt;
  Zs.TypeCastExpression = $se;
  Zs.UnaryExpression = yEt;
  Zs.UpdateExpression = EEt;
  Zs.VariableDeclarator = hEt;
  var eEt = fe(), tEt = Kse(), Wse = KB(), {
    BOOLEAN_BINARY_OPERATORS: sEt,
    BOOLEAN_UNARY_OPERATORS: rEt,
    NUMBER_BINARY_OPERATORS: iEt,
    NUMBER_UNARY_OPERATORS: nEt,
    STRING_UNARY_OPERATORS: aEt,
    anyTypeAnnotation: Vse,
    arrayTypeAnnotation: WB,
    booleanTypeAnnotation: $B,
    buildMatchMemberExpression: UE,
    genericTypeAnnotation: pp,
    identifier: ef,
    nullLiteralTypeAnnotation: oEt,
    numberTypeAnnotation: Tm,
    stringTypeAnnotation: tf,
    tupleTypeAnnotation: lEt,
    unionTypeAnnotation: uEt,
    voidTypeAnnotation: cEt,
    isIdentifier: pEt
  } = eEt;
  function hEt() {
    if (this.get("id").isIdentifier())
      return this.get("init").getTypeAnnotation();
  }
  n(hEt, "VariableDeclarator");
  function $se(t) {
    return t.typeAnnotation;
  }
  n($se, "TypeCastExpression");
  $se.validParent = !0;
  function Hse(t) {
    return t.typeAnnotation;
  }
  n(Hse, "TSAsExpression");
  Hse.validParent = !0;
  function fEt() {
    return this.get("expression").getTypeAnnotation();
  }
  n(fEt, "TSNonNullExpression");
  function dEt(t) {
    if (t.callee.type === "Identifier")
      return pp(t.callee);
  }
  n(dEt, "NewExpression");
  function mEt() {
    return tf();
  }
  n(mEt, "TemplateLiteral");
  function yEt(t) {
    let e = t.operator;
    if (e === "void")
      return cEt();
    if (nEt.includes(e))
      return Tm();
    if (aEt.includes(e))
      return tf();
    if (rEt.includes(e))
      return $B();
  }
  n(yEt, "UnaryExpression");
  function gEt(t) {
    let e = t.operator;
    if (iEt.includes(e))
      return Tm();
    if (sEt.includes(e))
      return $B();
    if (e === "+") {
      let s = this.get("right"), r = this.get("left");
      return r.isBaseType("number") && s.isBaseType("number") ? Tm() : r.isBaseType("string") || s.isBaseType("string") ? tf() : uEt([tf(), Tm()]);
    }
  }
  n(gEt, "BinaryExpression");
  function TEt() {
    let t = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()];
    return (0, Wse.createUnionType)(t);
  }
  n(TEt, "LogicalExpression");
  function bEt() {
    let t = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()];
    return (0, Wse.createUnionType)(t);
  }
  n(bEt, "ConditionalExpression");
  function xEt() {
    return this.get("expressions").pop().getTypeAnnotation();
  }
  n(xEt, "SequenceExpression");
  function SEt() {
    return this.get("expression").getTypeAnnotation();
  }
  n(SEt, "ParenthesizedExpression");
  function PEt() {
    return this.get("right").getTypeAnnotation();
  }
  n(PEt, "AssignmentExpression");
  function EEt(t) {
    let e = t.operator;
    if (e === "++" || e === "--")
      return Tm();
  }
  n(EEt, "UpdateExpression");
  function AEt() {
    return tf();
  }
  n(AEt, "StringLiteral");
  function vEt() {
    return Tm();
  }
  n(vEt, "NumericLiteral");
  function CEt() {
    return $B();
  }
  n(CEt, "BooleanLiteral");
  function wEt() {
    return oEt();
  }
  n(wEt, "NullLiteral");
  function IEt() {
    return pp(ef("RegExp"));
  }
  n(IEt, "RegExpLiteral");
  function NEt() {
    return pp(ef("Object"));
  }
  n(NEt, "ObjectExpression");
  function Jse() {
    return pp(ef("Array"));
  }
  n(Jse, "ArrayExpression");
  function Yse() {
    return Jse();
  }
  n(Yse, "RestElement");
  Yse.validParent = !0;
  function kEt() {
    return pp(ef("Function"));
  }
  n(kEt, "Func");
  var DEt = UE("Array.from"), OEt = UE("Object.keys"), _Et = UE("Object.values"), LEt = UE("Object.entries");
  function BEt() {
    let {
      callee: t
    } = this.node;
    return OEt(t) ? WB(tf()) : DEt(t) || _Et(t) || pEt(t, {
      name: "Array"
    }) ? WB(Vse()) : LEt(t) ? WB(lEt([tf(), Vse()])) : Xse(this.get("callee"));
  }
  n(BEt, "CallExpression");
  function MEt() {
    return Xse(this.get("tag"));
  }
  n(MEt, "TaggedTemplateExpression");
  function Xse(t) {
    if (t = t.resolve(), t.isFunction()) {
      let {
        node: e
      } = t;
      if (e.async)
        return e.generator ? pp(ef("AsyncIterator")) : pp(ef("Promise"));
      if (e.generator)
        return pp(ef("Iterator"));
      if (t.node.returnType)
        return t.node.returnType;
    }
  }
  n(Xse, "resolveCall");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/inference/index.js
var tre = g((hp) => {
  "use strict";
  Object.defineProperty(hp, "__esModule", {
    value: !0
  });
  hp._getTypeAnnotation = ere;
  hp.baseTypeStrictlyMatches = iAt;
  hp.couldBeBaseType = rAt;
  hp.getTypeAnnotation = tAt;
  hp.isBaseType = sAt;
  hp.isGenericType = nAt;
  var Gse = zse(), FEt = fe(), {
    anyTypeAnnotation: Zse,
    isAnyTypeAnnotation: KE,
    isArrayTypeAnnotation: jEt,
    isBooleanTypeAnnotation: REt,
    isEmptyTypeAnnotation: qEt,
    isFlowBaseAnnotation: UEt,
    isGenericTypeAnnotation: KEt,
    isIdentifier: Qse,
    isMixedTypeAnnotation: VEt,
    isNumberTypeAnnotation: WEt,
    isStringTypeAnnotation: $Et,
    isTSArrayType: HEt,
    isTSTypeAnnotation: JEt,
    isTSTypeReference: YEt,
    isTupleTypeAnnotation: XEt,
    isTypeAnnotation: zEt,
    isUnionTypeAnnotation: GEt,
    isVoidTypeAnnotation: QEt,
    stringTypeAnnotation: ZEt,
    voidTypeAnnotation: eAt
  } = FEt;
  function tAt() {
    let t = this.getData("typeAnnotation");
    return t != null || (t = ere.call(this) || Zse(), (zEt(t) || JEt(t)) && (t = t.typeAnnotation), this.setData("typeAnnotation", t)), t;
  }
  n(tAt, "getTypeAnnotation");
  var HB = /* @__PURE__ */ new WeakSet();
  function ere() {
    let t = this.node;
    if (!t)
      if (this.key === "init" && this.parentPath.isVariableDeclarator()) {
        let s = this.parentPath.parentPath, r = s.parentPath;
        return s.key === "left" && r.isForInStatement() ? ZEt() : s.key === "left" && r.isForOfStatement() ? Zse() : eAt();
      } else
        return;
    if (t.typeAnnotation)
      return t.typeAnnotation;
    if (!HB.has(t)) {
      HB.add(t);
      try {
        var e;
        let s = Gse[t.type];
        if (s)
          return s.call(this, t);
        if (s = Gse[this.parentPath.type], (e = s) != null && e.validParent)
          return this.parentPath.getTypeAnnotation();
      } finally {
        HB.delete(t);
      }
    }
  }
  n(ere, "_getTypeAnnotation");
  function sAt(t, e) {
    return JB(t, this.getTypeAnnotation(), e);
  }
  n(sAt, "isBaseType");
  function JB(t, e, s) {
    if (t === "string")
      return $Et(e);
    if (t === "number")
      return WEt(e);
    if (t === "boolean")
      return REt(e);
    if (t === "any")
      return KE(e);
    if (t === "mixed")
      return VEt(e);
    if (t === "empty")
      return qEt(e);
    if (t === "void")
      return QEt(e);
    if (s)
      return !1;
    throw new Error(`Unknown base type ${t}`);
  }
  n(JB, "_isBaseType");
  function rAt(t) {
    let e = this.getTypeAnnotation();
    if (KE(e)) return !0;
    if (GEt(e)) {
      for (let s of e.types)
        if (KE(s) || JB(t, s, !0))
          return !0;
      return !1;
    } else
      return JB(t, e, !0);
  }
  n(rAt, "couldBeBaseType");
  function iAt(t) {
    let e = this.getTypeAnnotation(), s = t.getTypeAnnotation();
    return !KE(e) && UEt(e) ? s.type === e.type : !1;
  }
  n(iAt, "baseTypeStrictlyMatches");
  function nAt(t) {
    let e = this.getTypeAnnotation();
    return t === "Array" && (HEt(e) || jEt(e) || XEt(e)) ? !0 : KEt(e) && Qse(e.id, {
      name: t
    }) || YEt(e) && Qse(e.typeName, {
      name: t
    });
  }
  n(nAt, "isGenericType");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js
var sre = g((VE) => {
  "use strict";
  Object.defineProperty(VE, "__esModule", {
    value: !0
  });
  VE.hooks = void 0;
  var hJs = VE.hooks = [function(t, e) {
    if (t.key === "test" && (e.isWhile() || e.isSwitchCase()) || t.key === "declaration" && e.isExportDeclaration() || t.key === "body" && e.
    isLabeledStatement() || t.listKey === "declarations" && e.isVariableDeclaration() && e.node.declarations.length === 1 || t.key === "expr\
ession" && e.isExpressionStatement())
      return e.remove(), !0;
  }, function(t, e) {
    if (e.isSequenceExpression() && e.node.expressions.length === 1)
      return e.replaceWith(e.node.expressions[0]), !0;
  }, function(t, e) {
    if (e.isBinary())
      return t.key === "left" ? e.replaceWith(e.node.right) : e.replaceWith(e.node.left), !0;
  }, function(t, e) {
    if (e.isIfStatement() && t.key === "consequent" || t.key === "body" && (e.isLoop() || e.isArrowFunctionExpression()))
      return t.replaceWith({
        type: "BlockStatement",
        body: []
      }), !0;
  }];
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/removal.js
var WE = g((fp) => {
  "use strict";
  Object.defineProperty(fp, "__esModule", {
    value: !0
  });
  fp._assertUnremoved = ore;
  fp._callRemovalHooks = nre;
  fp._markRemoved = YB;
  fp._remove = are;
  fp._removeFromScope = ire;
  fp.remove = fAt;
  var aAt = sre(), oAt = zh(), lAt = XB(), rre = dp(), uAt = fe(), cAt = $E(), pAt = dl(), {
    getBindingIdentifiers: hAt
  } = uAt;
  function fAt() {
    var t;
    if (ore.call(this), pAt.resync.call(this), nre.call(this)) {
      YB.call(this);
      return;
    }
    (t = this.opts) != null && t.noScope || ire.call(this), this.shareCommentsWithSiblings(), are.call(this), YB.call(this);
  }
  n(fAt, "remove");
  function ire() {
    let t = hAt(this.node, !1, !1, !0);
    Object.keys(t).forEach((e) => this.scope.removeBinding(e));
  }
  n(ire, "_removeFromScope");
  function nre() {
    if (this.parentPath) {
      for (let t of aAt.hooks)
        if (t(this, this.parentPath)) return !0;
    }
  }
  n(nre, "_callRemovalHooks");
  function are() {
    Array.isArray(this.container) ? (this.container.splice(this.key, 1), cAt.updateSiblingKeys.call(this, this.key, -1)) : lAt._replaceWith.
    call(this, null);
  }
  n(are, "_remove");
  function YB() {
    this._traverseFlags |= rre.SHOULD_SKIP | rre.REMOVED, this.parent && (0, oAt.getCachedPaths)(this.hub, this.parent).delete(this.node), this.
    node = null;
  }
  n(YB, "_markRemoved");
  function ore() {
    if (this.removed)
      throw this.buildCodeFrameError("NodePath has been removed so is read-only.");
  }
  n(ore, "_assertUnremoved");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/lib/hoister.js
var ure = g((HE) => {
  "use strict";
  Object.defineProperty(HE, "__esModule", {
    value: !0
  });
  HE.default = void 0;
  var lre = fe(), dAt = lre, {
    react: mAt
  } = lre, {
    cloneNode: yAt,
    jsxExpressionContainer: gAt,
    variableDeclaration: TAt,
    variableDeclarator: bAt
  } = dAt, xAt = {
    ReferencedIdentifier(t, e) {
      if (t.isJSXIdentifier() && mAt.isCompatTag(t.node.name) && !t.parentPath.isJSXMemberExpression())
        return;
      if (t.node.name === "this") {
        let r = t.scope;
        do
          if (r.path.isFunction() && !r.path.isArrowFunctionExpression())
            break;
        while (r = r.parent);
        r && e.breakOnScopePaths.push(r.path);
      }
      let s = t.scope.getBinding(t.node.name);
      if (s) {
        for (let r of s.constantViolations)
          if (r.scope !== s.path.scope) {
            e.mutableBinding = !0, t.stop();
            return;
          }
        s === e.scope.getBinding(t.node.name) && (e.bindings[t.node.name] = s);
      }
    }
  }, zB = class {
    static {
      n(this, "PathHoister");
    }
    constructor(e, s) {
      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 = s, this.path = e, this.attachAfter = !1;
    }
    isCompatibleScope(e) {
      for (let s of Object.keys(this.bindings)) {
        let r = this.bindings[s];
        if (!e.bindingIdentifierEquals(s, r.identifier))
          return !1;
      }
      return !0;
    }
    getCompatibleScopes() {
      let e = this.path.scope;
      do {
        if (this.isCompatibleScope(e))
          this.scopes.push(e);
        else
          break;
        if (this.breakOnScopePaths.includes(e.path))
          break;
      } while (e = e.parent);
    }
    getAttachmentPath() {
      let e = this._getAttachmentPath();
      if (!e) return;
      let s = e.scope;
      if (s.path === e && (s = e.scope.parent), s.path.isProgram() || s.path.isFunction())
        for (let r of Object.keys(this.bindings)) {
          if (!s.hasOwnBinding(r)) continue;
          let i = this.bindings[r];
          if (i.kind === "param" || i.path.parentKey === "params")
            continue;
          if (this.getAttachmentParentForPath(i.path).key >= e.key) {
            this.attachAfter = !0, e = i.path;
            for (let o of i.constantViolations)
              this.getAttachmentParentForPath(o).key > e.key && (e = o);
          }
        }
      return e;
    }
    _getAttachmentPath() {
      let s = this.scopes.pop();
      if (s) {
        if (s.path.isFunction())
          if (this.hasOwnParamBindings(s)) {
            if (this.scope === s) return;
            let r = s.path.get("body").get("body");
            for (let i = 0; i < r.length; i++)
              if (!r[i].node._blockHoist)
                return r[i];
          } else
            return this.getNextScopeAttachmentParent();
        else if (s.path.isProgram())
          return this.getNextScopeAttachmentParent();
      }
    }
    getNextScopeAttachmentParent() {
      let e = this.scopes.pop();
      if (e) return this.getAttachmentParentForPath(e.path);
    }
    getAttachmentParentForPath(e) {
      do
        if (!e.parentPath || Array.isArray(e.container) && e.isStatement())
          return e;
      while (e = e.parentPath);
    }
    hasOwnParamBindings(e) {
      for (let s of Object.keys(this.bindings)) {
        if (!e.hasOwnBinding(s)) continue;
        let r = this.bindings[s];
        if (r.kind === "param" && r.constant) return !0;
      }
      return !1;
    }
    run() {
      if (this.path.traverse(xAt, this), this.mutableBinding) return;
      this.getCompatibleScopes();
      let e = this.getAttachmentPath();
      if (!e || e.getFunctionParent() === this.path.getFunctionParent()) return;
      let s = e.scope.generateUidIdentifier("ref"), r = bAt(s, this.path.node), i = this.attachAfter ? "insertAfter" : "insertBefore", [a] = e[i](
      [e.isVariableDeclarator() ? r : TAt("var", [r])]), o = this.path.parentPath;
      return o.isJSXElement() && this.path.container === o.node.children && (s = gAt(s)), this.path.replaceWith(yAt(s)), e.isVariableDeclarator() ?
      a.get("init") : a.get("declarations.0.init");
    }
  };
  HE.default = zB;
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/modification.js
var $E = g(($a) => {
  "use strict";
  Object.defineProperty($a, "__esModule", {
    value: !0
  });
  $a._containerInsert = tM;
  $a._containerInsertAfter = hre;
  $a._containerInsertBefore = sM;
  $a._verifyNodeList = N0;
  $a.insertAfter = FAt;
  $a.insertBefore = BAt;
  $a.pushContainer = RAt;
  $a.unshiftContainer = jAt;
  $a.updateSiblingKeys = mre;
  var SAt = zh(), eM = dp(), GB = dl(), JE = WE(), PAt = fe(), EAt = ure(), {
    arrowFunctionExpression: AAt,
    assertExpression: vAt,
    assignmentExpression: CAt,
    blockStatement: cre,
    callExpression: wAt,
    cloneNode: QB,
    expressionStatement: ZB,
    isAssignmentExpression: IAt,
    isCallExpression: NAt,
    isExportNamedDeclaration: pre,
    isExpression: kAt,
    isIdentifier: DAt,
    isSequenceExpression: OAt,
    isSuper: _At,
    thisExpression: LAt
  } = PAt;
  function BAt(t) {
    JE._assertUnremoved.call(this);
    let e = N0.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || pre(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertBefore(e);
    if (this.isNodeType("Expression") && !this.isJSXElement() || s.isForStatement() && this.key === "init")
      return this.node && e.push(this.node), this.replaceExpressionWithStatements(e);
    if (Array.isArray(this.container))
      return sM.call(this, e);
    if (this.isStatementOrBlock()) {
      let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
      return this.replaceWith(cre(a ? [i] : [])), this.unshiftContainer("body", e);
    } 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?");
  }
  n(BAt, "insertBefore");
  function tM(t, e) {
    mre.call(this, t, e.length);
    let s = [];
    this.container.splice(t, 0, ...e);
    for (let a = 0; a < e.length; a++) {
      var r;
      let o = t + a, l = this.getSibling(o);
      s.push(l), (r = this.context) != null && r.queue && GB.pushContext.call(l, this.context);
    }
    let i = GB._getQueueContexts.call(this);
    for (let a of s) {
      GB.setScope.call(a), a.debug("Inserted.");
      for (let o of i)
        o.maybeQueue(a, !0);
    }
    return s;
  }
  n(tM, "_containerInsert");
  function sM(t) {
    return tM.call(this, this.key, t);
  }
  n(sM, "_containerInsertBefore");
  function hre(t) {
    return tM.call(this, this.key + 1, t);
  }
  n(hre, "_containerInsertAfter");
  var fre = /* @__PURE__ */ n((t) => t[t.length - 1], "last");
  function dre(t) {
    return OAt(t.parent) && (fre(t.parent.expressions) !== t.node || dre(t.parentPath));
  }
  n(dre, "isHiddenInSequenceExpression");
  function MAt(t, e) {
    if (!IAt(t) || !DAt(t.left))
      return !1;
    let s = e.getBlockParent();
    return s.hasOwnBinding(t.left.name) && s.getOwnBinding(t.left.name).constantViolations.length <= 1;
  }
  n(MAt, "isAlmostConstantAssignment");
  function FAt(t) {
    if (JE._assertUnremoved.call(this), this.isSequenceExpression())
      return fre(this.get("expressions")).insertAfter(t);
    let e = N0.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || pre(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertAfter(e.map((i) => kAt(i) ? ZB(i) : i));
    if (this.isNodeType("Expression") && !this.isJSXElement() && !s.isJSXElement() || s.isForStatement() && this.key === "init") {
      let i = this;
      if (i.node) {
        let a = i.node, {
          scope: o
        } = this;
        if (o.path.isPattern())
          return vAt(a), i.replaceWith(wAt(AAt([], a), [])), i.get("callee.body").insertAfter(e), [i];
        if (dre(i))
          e.unshift(a);
        else if (NAt(a) && _At(a.callee))
          e.unshift(a), e.push(LAt());
        else if (MAt(a, o))
          e.unshift(a), e.push(QB(a.left));
        else if (o.isPure(a, !0))
          e.push(a);
        else {
          s.isMethod({
            computed: !0,
            key: a
          }) && (o = o.parent);
          let l = o.generateDeclaredUidIdentifier();
          e.unshift(ZB(CAt("=", QB(l), a))), e.push(ZB(QB(l)));
        }
      }
      return this.replaceExpressionWithStatements(e);
    } else {
      if (Array.isArray(this.container))
        return hre.call(this, e);
      if (this.isStatementOrBlock()) {
        let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
        return this.replaceWith(cre(a ? [i] : [])), this.pushContainer("body", e);
      } 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?");
    }
  }
  n(FAt, "insertAfter");
  function mre(t, e) {
    if (!this.parent) return;
    let s = (0, SAt.getCachedPaths)(this.hub, this.parent) || [];
    for (let [, r] of s)
      typeof r.key == "number" && r.container === this.container && r.key >= t && (r.key += e);
  }
  n(mre, "updateSiblingKeys");
  function N0(t) {
    if (!t)
      return [];
    Array.isArray(t) || (t = [t]);
    for (let e = 0; e < t.length; e++) {
      let s = t[e], r;
      if (s ? typeof s != "object" ? r = "contains a non-object node" : s.type ? s instanceof eM.default && (r = "has a NodePath when it exp\
ected a raw object") : r = "without a type" : r = "has falsy node", r) {
        let i = Array.isArray(s) ? "array" : typeof s;
        throw new Error(`Node list ${r} with the index of ${e} and type of ${i}`);
      }
    }
    return t;
  }
  n(N0, "_verifyNodeList");
  function jAt(t, e) {
    JE._assertUnremoved.call(this), e = N0.call(this, e);
    let s = eM.default.get({
      parentPath: this,
      parent: this.node,
      container: this.node[t],
      listKey: t,
      key: 0
    }).setContext(this.context);
    return sM.call(s, e);
  }
  n(jAt, "unshiftContainer");
  function RAt(t, e) {
    JE._assertUnremoved.call(this);
    let s = N0.call(this, e), r = this.node[t];
    return eM.default.get({
      parentPath: this,
      parent: this.node,
      container: r,
      listKey: t,
      key: r.length
    }).setContext(this.context).replaceWithMultiple(s);
  }
  n(RAt, "pushContainer");
  $a.hoist = /* @__PURE__ */ n(function(e = this.scope) {
    return new EAt.default(this, e).run();
  }, "hoist");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js
var Hre = g((j0) => {
  "use strict";
  Object.defineProperty(j0, "__esModule", {
    value: !0
  });
  function qAt(t, e) {
    if (t == null) return {};
    var s = {};
    for (var r in t) if ({}.hasOwnProperty.call(t, r)) {
      if (e.includes(r)) continue;
      s[r] = t[r];
    }
    return s;
  }
  n(qAt, "_objectWithoutPropertiesLoose");
  var yl = class {
    static {
      n(this, "Position");
    }
    constructor(e, s, r) {
      this.line = void 0, this.column = void 0, this.index = void 0, this.line = e, this.column = s, this.index = r;
    }
  }, Em = class {
    static {
      n(this, "SourceLocation");
    }
    constructor(e, s) {
      this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = e, this.end = s;
    }
  };
  function On(t, e) {
    let {
      line: s,
      column: r,
      index: i
    } = t;
    return new yl(s, r + e, i + e);
  }
  n(On, "createPositionWithColumnOffset");
  var yre = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED", UAt = {
    ImportMetaOutsideModule: {
      message: `import.meta may appear only with 'sourceType: "module"'`,
      code: yre
    },
    ImportOutsideModule: {
      message: `'import' and 'export' may appear only with 'sourceType: "module"'`,
      code: yre
    }
  }, gre = {
    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"
  }, zE = /* @__PURE__ */ n((t) => t.type === "UpdateExpression" ? gre.UpdateExpression[`${t.prefix}`] : gre[t.type], "toNodeDescription"), KAt = {
    AccessorIsGenerator: /* @__PURE__ */ n(({
      kind: t
    }) => `A ${t}ter cannot be a generator.`, "AccessorIsGenerator"),
    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: /* @__PURE__ */ n(({
      kind: t
    }) => `Missing initializer in ${t} declaration.`, "DeclarationMissingInitializer"),
    DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(deco\
rator)(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 s\
ame 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: /* @__PURE__ */ n(({
      exportName: t
    }) => `\`${t}\` has already been exported. Exported identifiers must be unique.`, "DuplicateExport"),
    DuplicateProto: "Redefinition of __proto__ property.",
    DuplicateRegExpFlags: "Duplicate regular expression flag.",
    DynamicImportPhaseRequiresImportExpressions: /* @__PURE__ */ n(({
      phase: t
    }) => `'import.${t}(...)' can only be parsed when using the 'createImportExpressions' option.`, "DynamicImportPhaseRequiresImportExpress\
ions"),
    ElementAfterRest: "Rest element must be last element.",
    EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
    ExportBindingIsString: /* @__PURE__ */ n(({
      localName: t,
      exportName: e
    }) => `A string literal cannot be used as an exported binding without \`from\`.
- Did you mean \`export { '${t}' as '${e}' } from 'some-module'\`?`, "ExportBindingIsString"),
    ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
    ForInOfLoopInitializer: /* @__PURE__ */ n(({
      type: t
    }) => `'${t === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, "ForInOfLoopInitialize\
r"),
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Unsyntactic ${t === "BreakStatement" ? "break" : "continue"}.`, "IllegalBreakContinue"),
    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: /* @__PURE__ */ n(({
      importName: t
    }) => `A string literal cannot be used as an imported binding.
- Did you mean \`import { "${t}" as foo }\`?`, "ImportBindingIsString"),
    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: /* @__PURE__ */ n(({
      radix: t
    }) => `Expected number in radix ${t}.`, "InvalidDigit"),
    InvalidEscapeSequence: "Bad character escape sequence.",
    InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
    InvalidEscapedReservedWord: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Escape sequence in keyword ${t}.`, "InvalidEscapedReservedWord"),
    InvalidIdentifier: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Invalid identifier ${t}.`, "InvalidIdentifier"),
    InvalidLhs: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid left-hand side in ${zE(t)}.`, "InvalidLhs"),
    InvalidLhsBinding: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Binding invalid left-hand side in ${zE(t)}.`, "InvalidLhsBinding"),
    InvalidLhsOptionalChaining: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid optional chaining in the left-hand side of ${zE(t)}.`, "InvalidLhsOptionalChaining"),
    InvalidNumber: "Invalid number.",
    InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
    InvalidOrUnexpectedToken: /* @__PURE__ */ n(({
      unexpected: t
    }) => `Unexpected character '${t}'.`, "InvalidOrUnexpectedToken"),
    InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
    InvalidPrivateFieldResolution: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private name #${t} is not defined.`, "InvalidPrivateFieldResolution"),
    InvalidPropertyBindingPattern: "Binding member expression.",
    InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
    InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
    LabelRedeclaration: /* @__PURE__ */ n(({
      labelName: t
    }) => `Label '${t}' is already declared.`, "LabelRedeclaration"),
    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: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling the parser plugin: ${t.map((e) => JSON.stringify(e)).join(", ")}.`, "MissingPlugin"),
    MissingOneOfPlugins: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${t.map((e) => JSON.stringify(e)).join(", ")}.`,
    "MissingOneOfPlugins"),
    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: /* @__PURE__ */ n(({
      key: t
    }) => `Duplicate key "${t}" is not allowed in module attributes.`, "ModuleAttributesWithDuplicateKeys"),
    ModuleExportNameHasLoneSurrogate: /* @__PURE__ */ n(({
      surrogateCharCode: t
    }) => `An export name cannot include a lone surrogate, found '\\u${t.toString(16)}'.`, "ModuleExportNameHasLoneSurrogate"),
    ModuleExportUndefined: /* @__PURE__ */ n(({
      localName: t
    }) => `Export '${t}' is not defined.`, "ModuleExportUndefined"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private names are only allowed in property accesses (\`obj.#${t}\`) or in \`in\` expressions (\`#${t} in obj\`).`, "PrivateInExpe\
ctedIn"),
    PrivateNameRedeclaration: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Duplicate private name #${t}.`, "PrivateNameRedeclaration"),
    RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 're\
cordAndTuple' 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 th\
e '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 sta\
tement.",
    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 n\
ot 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 'reco\
rdAndTuple' 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: /* @__PURE__ */ n(({
      keyword: t
    }) => `Unexpected keyword '${t}'.`, "UnexpectedKeyword"),
    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: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Unexpected reserved word '${t}'.`, "UnexpectedReservedWord"),
    UnexpectedSuper: "'super' is only allowed in object methods and classes.",
    UnexpectedToken: /* @__PURE__ */ n(({
      expected: t,
      unexpected: e
    }) => `Unexpected token${e ? ` '${e}'.` : ""}${t ? `, expected "${t}"` : ""}`, "UnexpectedToken"),
    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: /* @__PURE__ */ n(({
      target: t,
      onlyValidPropertyName: e
    }) => `The only valid meta property for ${t} is ${t}.${e}.`, "UnsupportedMetaProperty"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Identifier '${t}' has already been declared.`, "VarRedeclaration"),
    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."
  }, VAt = {
    StrictDelete: "Deleting local variable in strict mode.",
    StrictEvalArguments: /* @__PURE__ */ n(({
      referenceName: t
    }) => `Assigning to '${t}' in strict mode.`, "StrictEvalArguments"),
    StrictEvalArgumentsBinding: /* @__PURE__ */ n(({
      bindingName: t
    }) => `Binding '${t}' in strict mode.`, "StrictEvalArgumentsBinding"),
    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."
  }, WAt = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]), $At = Object.
  assign({
    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" opt\
ion.',
    PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
    PipeTopicUnconfiguredToken: /* @__PURE__ */ n(({
      token: t
    }) => `Invalid topic token ${t}. In order to use ${t} as a topic reference, the pipelineOperator plugin must be configured with { "propo\
sal": "hack", "topicToken": "${t}" }.`, "PipeTopicUnconfiguredToken"),
    PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
    PipeUnparenthesizedBody: /* @__PURE__ */ n(({
      type: t
    }) => `Hack-style pipe body cannot be an unparenthesized ${zE({
      type: t
    })}; please wrap it in parentheses.`, "PipeUnparenthesizedBody")
  }, {
    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 "sma\
rt" option.'
  }), HAt = ["message"];
  function Tre(t, e, s) {
    Object.defineProperty(t, e, {
      enumerable: !1,
      configurable: !0,
      value: s
    });
  }
  n(Tre, "defineHidden");
  function JAt({
    toMessage: t,
    code: e,
    reasonCode: s,
    syntaxPlugin: r
  }) {
    let i = s === "MissingPlugin" || s === "MissingOneOfPlugins";
    {
      let a = {
        AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter",
        AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters",
        ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumRefer\
ence",
        SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter",
        SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter",
        SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType"
      };
      a[s] && (s = a[s]);
    }
    return /* @__PURE__ */ n(function a(o, l) {
      let u = new SyntaxError();
      return u.code = e, u.reasonCode = s, u.loc = o, u.pos = o.index, u.syntaxPlugin = r, i && (u.missingPlugin = l.missingPlugin), Tre(u, "\
clone", /* @__PURE__ */ n(function(p = {}) {
        var h;
        let {
          line: f,
          column: d,
          index: m
        } = (h = p.loc) != null ? h : o;
        return a(new yl(f, d, m), Object.assign({}, l, p.details));
      }, "clone")), Tre(u, "details", l), Object.defineProperty(u, "message", {
        configurable: !0,
        get() {
          let c = `${t(l)} (${o.line}:${o.column})`;
          return this.message = c, c;
        },
        set(c) {
          Object.defineProperty(this, "message", {
            value: c,
            writable: !0
          });
        }
      }), u;
    }, "constructor");
  }
  n(JAt, "toParseErrorConstructor");
  function Lu(t, e) {
    if (Array.isArray(t))
      return (r) => Lu(r, t[0]);
    let s = {};
    for (let r of Object.keys(t)) {
      let i = t[r], a = typeof i == "string" ? {
        message: /* @__PURE__ */ n(() => i, "message")
      } : typeof i == "function" ? {
        message: i
      } : i, {
        message: o
      } = a, l = qAt(a, HAt), u = typeof o == "string" ? () => o : o;
      s[r] = JAt(Object.assign({
        code: "BABEL_PARSER_SYNTAX_ERROR",
        reasonCode: r,
        toMessage: u
      }, e ? {
        syntaxPlugin: e
      } : {}, l));
    }
    return s;
  }
  n(Lu, "ParseErrorEnum");
  var ee = Object.assign({}, Lu(UAt), Lu(KAt), Lu(VAt), Lu`pipelineOperator`($At));
  function YAt() {
    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
    };
  }
  n(YAt, "createDefaultOptions");
  function XAt(t) {
    let e = YAt();
    if (t == null)
      return e;
    if (t.annexB != null && t.annexB !== !1)
      throw new Error("The `annexB` option can only be set to `false`.");
    for (let s of Object.keys(e))
      t[s] != null && (e[s] = t[s]);
    if (e.startLine === 1)
      t.startIndex == null && e.startColumn > 0 ? e.startIndex = e.startColumn : t.startColumn == null && e.startIndex > 0 && (e.startColumn =
      e.startIndex);
    else if ((t.startColumn == null || t.startIndex == null) && t.startIndex != null)
      throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
    return e;
  }
  n(XAt, "getOptions");
  var {
    defineProperty: zAt
  } = Object, bre = /* @__PURE__ */ n((t, e) => {
    t && zAt(t, e, {
      enumerable: !1,
      value: t[e]
    });
  }, "toUnenumerable");
  function k0(t) {
    return bre(t.loc.start, "index"), bre(t.loc.end, "index"), t;
  }
  n(k0, "toESTreeLocation");
  var GAt = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "ESTreeParserMixin");
    }
    parse() {
      let s = k0(super.parse());
      return this.optionFlags & 128 && (s.tokens = s.tokens.map(k0)), s;
    }
    parseRegExpLiteral({
      pattern: s,
      flags: r
    }) {
      let i = null;
      try {
        i = new RegExp(s, r);
      } catch {
      }
      let a = this.estreeParseLiteral(i);
      return a.regex = {
        pattern: s,
        flags: r
      }, a;
    }
    parseBigIntLiteral(s) {
      let r;
      try {
        r = BigInt(s);
      } catch {
        r = null;
      }
      let i = this.estreeParseLiteral(r);
      return i.bigint = String(i.value || s), i;
    }
    parseDecimalLiteral(s) {
      let i = this.estreeParseLiteral(null);
      return i.decimal = String(i.value || s), i;
    }
    estreeParseLiteral(s) {
      return this.parseLiteral(s, "Literal");
    }
    parseStringLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNumericLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNullLiteral() {
      return this.estreeParseLiteral(null);
    }
    parseBooleanLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    directiveToStmt(s) {
      let r = s.value;
      delete s.value, r.type = "Literal", r.raw = r.extra.raw, r.value = r.extra.expressionValue;
      let i = s;
      return i.type = "ExpressionStatement", i.expression = r, i.directive = r.extra.rawValue, delete r.extra, i;
    }
    initFunction(s, r) {
      super.initFunction(s, r), s.expression = !1;
    }
    checkDeclaration(s) {
      s != null && this.isObjectProperty(s) ? this.checkDeclaration(s.value) : super.checkDeclaration(s);
    }
    getObjectOrClassMethodParams(s) {
      return s.value.params;
    }
    isValidDirective(s) {
      var r;
      return s.type === "ExpressionStatement" && s.expression.type === "Literal" && typeof s.expression.value == "string" && !((r = s.expression.
      extra) != null && r.parenthesized);
    }
    parseBlockBody(s, r, i, a, o) {
      super.parseBlockBody(s, r, i, a, o);
      let l = s.directives.map((u) => this.directiveToStmt(u));
      s.body = l.concat(s.body), delete s.directives;
    }
    parsePrivateName() {
      let s = super.parsePrivateName();
      return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(s) : s;
    }
    convertPrivateNameToPrivateIdentifier(s) {
      let r = super.getPrivateNameSV(s);
      return s = s, delete s.id, s.name = r, s.type = "PrivateIdentifier", s;
    }
    isPrivateName(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.type === "PrivateIdentifier" : super.isPrivateName(s);
    }
    getPrivateNameSV(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.name : super.getPrivateNameSV(s);
    }
    parseLiteral(s, r) {
      let i = super.parseLiteral(s, r);
      return i.raw = i.extra.raw, delete i.extra, i;
    }
    parseFunctionBody(s, r, i = !1) {
      super.parseFunctionBody(s, r, i), s.expression = s.body.type !== "BlockStatement";
    }
    parseMethod(s, r, i, a, o, l, u = !1) {
      let c = this.startNode();
      c.kind = s.kind, c = super.parseMethod(c, r, i, a, o, l, u), c.type = "FunctionExpression", delete c.kind, s.value = c;
      let {
        typeParameters: p
      } = s;
      return p && (delete s.typeParameters, c.typeParameters = p, this.resetStartLocationFromNode(c, p)), l === "ClassPrivateMethod" && (s.computed =
      !1), this.finishNode(s, "MethodDefinition");
    }
    nameIsConstructor(s) {
      return s.type === "Literal" ? s.value === "constructor" : super.nameIsConstructor(s);
    }
    parseClassProperty(...s) {
      let r = super.parseClassProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition"), r;
    }
    parseClassPrivateProperty(...s) {
      let r = super.parseClassPrivateProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition", r.computed = !1), r;
    }
    parseObjectMethod(s, r, i, a, o) {
      let l = super.parseObjectMethod(s, r, i, a, o);
      return l && (l.type = "Property", l.kind === "method" && (l.kind = "init"), l.shorthand = !1), l;
    }
    parseObjectProperty(s, r, i, a) {
      let o = super.parseObjectProperty(s, r, i, a);
      return o && (o.kind = "init", o.type = "Property"), o;
    }
    isValidLVal(s, r, i) {
      return s === "Property" ? "value" : super.isValidLVal(s, r, i);
    }
    isAssignable(s, r) {
      return s != null && this.isObjectProperty(s) ? this.isAssignable(s.value, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      if (s != null && this.isObjectProperty(s)) {
        let {
          key: i,
          value: a
        } = s;
        this.isPrivateName(i) && this.classScope.usePrivateName(this.getPrivateNameSV(i), i.loc.start), this.toAssignable(a, r);
      } else
        super.toAssignable(s, r);
    }
    toAssignableObjectExpressionProp(s, r, i) {
      s.type === "Property" && (s.kind === "get" || s.kind === "set") ? this.raise(ee.PatternHasAccessor, s.key) : s.type === "Property" && s.
      method ? this.raise(ee.PatternHasMethod, s.key) : super.toAssignableObjectExpressionProp(s, r, i);
    }
    finishCallExpression(s, r) {
      let i = super.finishCallExpression(s, r);
      if (i.callee.type === "Import") {
        var a, o;
        i.type = "ImportExpression", i.source = i.arguments[0], i.options = (a = i.arguments[1]) != null ? a : null, i.attributes = (o = i.arguments[1]) !=
        null ? o : null, delete i.arguments, delete i.callee;
      }
      return i;
    }
    toReferencedArguments(s) {
      s.type !== "ImportExpression" && super.toReferencedArguments(s);
    }
    parseExport(s, r) {
      let i = this.state.lastTokStartLoc, a = super.parseExport(s, r);
      switch (a.type) {
        case "ExportAllDeclaration":
          a.exported = null;
          break;
        case "ExportNamedDeclaration":
          a.specifiers.length === 1 && a.specifiers[0].type === "ExportNamespaceSpecifier" && (a.type = "ExportAllDeclaration", a.exported =
          a.specifiers[0].exported, delete a.specifiers);
        case "ExportDefaultDeclaration":
          {
            var o;
            let {
              declaration: l
            } = a;
            l?.type === "ClassDeclaration" && ((o = l.decorators) == null ? void 0 : o.length) > 0 && l.start === a.start && this.resetStartLocation(
            a, i);
          }
          break;
      }
      return a;
    }
    parseSubscript(s, r, i, a) {
      let o = super.parseSubscript(s, r, i, a);
      if (a.optionalChainMember) {
        if ((o.type === "OptionalMemberExpression" || o.type === "OptionalCallExpression") && (o.type = o.type.substring(8)), a.stop) {
          let l = this.startNodeAtNode(o);
          return l.expression = o, this.finishNode(l, "ChainExpression");
        }
      } else (o.type === "MemberExpression" || o.type === "CallExpression") && (o.optional = !1);
      return o;
    }
    isOptionalMemberExpression(s) {
      return s.type === "ChainExpression" ? s.expression.type === "MemberExpression" : super.isOptionalMemberExpression(s);
    }
    hasPropertyAsPrivateName(s) {
      return s.type === "ChainExpression" && (s = s.expression), super.hasPropertyAsPrivateName(s);
    }
    isObjectProperty(s) {
      return s.type === "Property" && s.kind === "init" && !s.method;
    }
    isObjectMethod(s) {
      return s.type === "Property" && (s.method || s.kind === "get" || s.kind === "set");
    }
    finishNodeAt(s, r, i) {
      return k0(super.finishNodeAt(s, r, i));
    }
    resetStartLocation(s, r) {
      super.resetStartLocation(s, r), k0(s);
    }
    resetEndLocation(s, r = this.state.lastTokEndLoc) {
      super.resetEndLocation(s, r), k0(s);
    }
  }, "estree"), nf = class {
    static {
      n(this, "TokContext");
    }
    constructor(e, s) {
      this.token = void 0, this.preserveSpace = void 0, this.token = e, this.preserveSpace = !!s;
    }
  }, er = {
    brace: new nf("{"),
    j_oTag: new nf("<tag"),
    j_cTag: new nf("</tag"),
    j_expr: new nf("<tag>...</tag>", !0)
  };
  er.template = new nf("`", !0);
  var cs = !0, Ve = !0, rM = !0, D0 = !0, mp = !0, QAt = !0, ZE = class {
    static {
      n(this, "ExportedTokenType");
    }
    constructor(e, s = {}) {
      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 = e, this.keyword = s.keyword,
      this.beforeExpr = !!s.beforeExpr, this.startsExpr = !!s.startsExpr, this.rightAssociative = !!s.rightAssociative, this.isLoop = !!s.isLoop,
      this.isAssign = !!s.isAssign, this.prefix = !!s.prefix, this.postfix = !!s.postfix, this.binop = s.binop != null ? s.binop : null, this.
      updateContext = null;
    }
  }, IM = /* @__PURE__ */ new Map();
  function Ls(t, e = {}) {
    e.keyword = t;
    let s = It(t, e);
    return IM.set(t, s), s;
  }
  n(Ls, "createKeyword");
  function Dn(t, e) {
    return It(t, {
      beforeExpr: cs,
      binop: e
    });
  }
  n(Dn, "createBinop");
  var L0 = -1, Ou = [], NM = [], kM = [], DM = [], OM = [], _M = [];
  function It(t, e = {}) {
    var s, r, i, a;
    return ++L0, NM.push(t), kM.push((s = e.binop) != null ? s : -1), DM.push((r = e.beforeExpr) != null ? r : !1), OM.push((i = e.startsExpr) !=
    null ? i : !1), _M.push((a = e.prefix) != null ? a : !1), Ou.push(new ZE(t, e)), L0;
  }
  n(It, "createToken");
  function us(t, e = {}) {
    var s, r, i, a;
    return ++L0, IM.set(t, L0), NM.push(t), kM.push((s = e.binop) != null ? s : -1), DM.push((r = e.beforeExpr) != null ? r : !1), OM.push((i =
    e.startsExpr) != null ? i : !1), _M.push((a = e.prefix) != null ? a : !1), Ou.push(new ZE("name", e)), L0;
  }
  n(us, "createKeywordLike");
  var ZAt = {
    bracketL: It("[", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    bracketHashL: It("#[", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    bracketBarL: It("[|", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    bracketR: It("]"),
    bracketBarR: It("|]"),
    braceL: It("{", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    braceBarL: It("{|", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    braceHashL: It("#{", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    braceR: It("}"),
    braceBarR: It("|}"),
    parenL: It("(", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    parenR: It(")"),
    comma: It(",", {
      beforeExpr: cs
    }),
    semi: It(";", {
      beforeExpr: cs
    }),
    colon: It(":", {
      beforeExpr: cs
    }),
    doubleColon: It("::", {
      beforeExpr: cs
    }),
    dot: It("."),
    question: It("?", {
      beforeExpr: cs
    }),
    questionDot: It("?."),
    arrow: It("=>", {
      beforeExpr: cs
    }),
    template: It("template"),
    ellipsis: It("...", {
      beforeExpr: cs
    }),
    backQuote: It("`", {
      startsExpr: Ve
    }),
    dollarBraceL: It("${", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    templateTail: It("...`", {
      startsExpr: Ve
    }),
    templateNonTail: It("...${", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    at: It("@"),
    hash: It("#", {
      startsExpr: Ve
    }),
    interpreterDirective: It("#!..."),
    eq: It("=", {
      beforeExpr: cs,
      isAssign: D0
    }),
    assign: It("_=", {
      beforeExpr: cs,
      isAssign: D0
    }),
    slashAssign: It("_=", {
      beforeExpr: cs,
      isAssign: D0
    }),
    xorAssign: It("_=", {
      beforeExpr: cs,
      isAssign: D0
    }),
    moduloAssign: It("_=", {
      beforeExpr: cs,
      isAssign: D0
    }),
    incDec: It("++/--", {
      prefix: mp,
      postfix: QAt,
      startsExpr: Ve
    }),
    bang: It("!", {
      beforeExpr: cs,
      prefix: mp,
      startsExpr: Ve
    }),
    tilde: It("~", {
      beforeExpr: cs,
      prefix: mp,
      startsExpr: Ve
    }),
    doubleCaret: It("^^", {
      startsExpr: Ve
    }),
    doubleAt: It("@@", {
      startsExpr: Ve
    }),
    pipeline: Dn("|>", 0),
    nullishCoalescing: Dn("??", 1),
    logicalOR: Dn("||", 1),
    logicalAND: Dn("&&", 2),
    bitwiseOR: Dn("|", 3),
    bitwiseXOR: Dn("^", 4),
    bitwiseAND: Dn("&", 5),
    equality: Dn("==/!=/===/!==", 6),
    lt: Dn("</>/<=/>=", 7),
    gt: Dn("</>/<=/>=", 7),
    relational: Dn("</>/<=/>=", 7),
    bitShift: Dn("<</>>/>>>", 8),
    bitShiftL: Dn("<</>>/>>>", 8),
    bitShiftR: Dn("<</>>/>>>", 8),
    plusMin: It("+/-", {
      beforeExpr: cs,
      binop: 9,
      prefix: mp,
      startsExpr: Ve
    }),
    modulo: It("%", {
      binop: 10,
      startsExpr: Ve
    }),
    star: It("*", {
      binop: 10
    }),
    slash: Dn("/", 10),
    exponent: It("**", {
      beforeExpr: cs,
      binop: 11,
      rightAssociative: !0
    }),
    _in: Ls("in", {
      beforeExpr: cs,
      binop: 7
    }),
    _instanceof: Ls("instanceof", {
      beforeExpr: cs,
      binop: 7
    }),
    _break: Ls("break"),
    _case: Ls("case", {
      beforeExpr: cs
    }),
    _catch: Ls("catch"),
    _continue: Ls("continue"),
    _debugger: Ls("debugger"),
    _default: Ls("default", {
      beforeExpr: cs
    }),
    _else: Ls("else", {
      beforeExpr: cs
    }),
    _finally: Ls("finally"),
    _function: Ls("function", {
      startsExpr: Ve
    }),
    _if: Ls("if"),
    _return: Ls("return", {
      beforeExpr: cs
    }),
    _switch: Ls("switch"),
    _throw: Ls("throw", {
      beforeExpr: cs,
      prefix: mp,
      startsExpr: Ve
    }),
    _try: Ls("try"),
    _var: Ls("var"),
    _const: Ls("const"),
    _with: Ls("with"),
    _new: Ls("new", {
      beforeExpr: cs,
      startsExpr: Ve
    }),
    _this: Ls("this", {
      startsExpr: Ve
    }),
    _super: Ls("super", {
      startsExpr: Ve
    }),
    _class: Ls("class", {
      startsExpr: Ve
    }),
    _extends: Ls("extends", {
      beforeExpr: cs
    }),
    _export: Ls("export"),
    _import: Ls("import", {
      startsExpr: Ve
    }),
    _null: Ls("null", {
      startsExpr: Ve
    }),
    _true: Ls("true", {
      startsExpr: Ve
    }),
    _false: Ls("false", {
      startsExpr: Ve
    }),
    _typeof: Ls("typeof", {
      beforeExpr: cs,
      prefix: mp,
      startsExpr: Ve
    }),
    _void: Ls("void", {
      beforeExpr: cs,
      prefix: mp,
      startsExpr: Ve
    }),
    _delete: Ls("delete", {
      beforeExpr: cs,
      prefix: mp,
      startsExpr: Ve
    }),
    _do: Ls("do", {
      isLoop: rM,
      beforeExpr: cs
    }),
    _for: Ls("for", {
      isLoop: rM
    }),
    _while: Ls("while", {
      isLoop: rM
    }),
    _as: us("as", {
      startsExpr: Ve
    }),
    _assert: us("assert", {
      startsExpr: Ve
    }),
    _async: us("async", {
      startsExpr: Ve
    }),
    _await: us("await", {
      startsExpr: Ve
    }),
    _defer: us("defer", {
      startsExpr: Ve
    }),
    _from: us("from", {
      startsExpr: Ve
    }),
    _get: us("get", {
      startsExpr: Ve
    }),
    _let: us("let", {
      startsExpr: Ve
    }),
    _meta: us("meta", {
      startsExpr: Ve
    }),
    _of: us("of", {
      startsExpr: Ve
    }),
    _sent: us("sent", {
      startsExpr: Ve
    }),
    _set: us("set", {
      startsExpr: Ve
    }),
    _source: us("source", {
      startsExpr: Ve
    }),
    _static: us("static", {
      startsExpr: Ve
    }),
    _using: us("using", {
      startsExpr: Ve
    }),
    _yield: us("yield", {
      startsExpr: Ve
    }),
    _asserts: us("asserts", {
      startsExpr: Ve
    }),
    _checks: us("checks", {
      startsExpr: Ve
    }),
    _exports: us("exports", {
      startsExpr: Ve
    }),
    _global: us("global", {
      startsExpr: Ve
    }),
    _implements: us("implements", {
      startsExpr: Ve
    }),
    _intrinsic: us("intrinsic", {
      startsExpr: Ve
    }),
    _infer: us("infer", {
      startsExpr: Ve
    }),
    _is: us("is", {
      startsExpr: Ve
    }),
    _mixins: us("mixins", {
      startsExpr: Ve
    }),
    _proto: us("proto", {
      startsExpr: Ve
    }),
    _require: us("require", {
      startsExpr: Ve
    }),
    _satisfies: us("satisfies", {
      startsExpr: Ve
    }),
    _keyof: us("keyof", {
      startsExpr: Ve
    }),
    _readonly: us("readonly", {
      startsExpr: Ve
    }),
    _unique: us("unique", {
      startsExpr: Ve
    }),
    _abstract: us("abstract", {
      startsExpr: Ve
    }),
    _declare: us("declare", {
      startsExpr: Ve
    }),
    _enum: us("enum", {
      startsExpr: Ve
    }),
    _module: us("module", {
      startsExpr: Ve
    }),
    _namespace: us("namespace", {
      startsExpr: Ve
    }),
    _interface: us("interface", {
      startsExpr: Ve
    }),
    _type: us("type", {
      startsExpr: Ve
    }),
    _opaque: us("opaque", {
      startsExpr: Ve
    }),
    name: It("name", {
      startsExpr: Ve
    }),
    placeholder: It("%%", {
      startsExpr: !0
    }),
    string: It("string", {
      startsExpr: Ve
    }),
    num: It("num", {
      startsExpr: Ve
    }),
    bigint: It("bigint", {
      startsExpr: Ve
    }),
    decimal: It("decimal", {
      startsExpr: Ve
    }),
    regexp: It("regexp", {
      startsExpr: Ve
    }),
    privateName: It("#name", {
      startsExpr: Ve
    }),
    eof: It("eof"),
    jsxName: It("jsxName"),
    jsxText: It("jsxText", {
      beforeExpr: !0
    }),
    jsxTagStart: It("jsxTagStart", {
      startsExpr: !0
    }),
    jsxTagEnd: It("jsxTagEnd")
  };
  function tr(t) {
    return t >= 93 && t <= 133;
  }
  n(tr, "tokenIsIdentifier");
  function e1t(t) {
    return t <= 92;
  }
  n(e1t, "tokenKeywordOrIdentifierIsKeyword");
  function Oo(t) {
    return t >= 58 && t <= 133;
  }
  n(Oo, "tokenIsKeywordOrIdentifier");
  function Dre(t) {
    return t >= 58 && t <= 137;
  }
  n(Dre, "tokenIsLiteralPropertyName");
  function t1t(t) {
    return DM[t];
  }
  n(t1t, "tokenComesBeforeExpression");
  function lM(t) {
    return OM[t];
  }
  n(lM, "tokenCanStartExpression");
  function s1t(t) {
    return t >= 29 && t <= 33;
  }
  n(s1t, "tokenIsAssignment");
  function xre(t) {
    return t >= 129 && t <= 131;
  }
  n(xre, "tokenIsFlowInterfaceOrTypeOrOpaque");
  function r1t(t) {
    return t >= 90 && t <= 92;
  }
  n(r1t, "tokenIsLoop");
  function LM(t) {
    return t >= 58 && t <= 92;
  }
  n(LM, "tokenIsKeyword");
  function i1t(t) {
    return t >= 39 && t <= 59;
  }
  n(i1t, "tokenIsOperator");
  function n1t(t) {
    return t === 34;
  }
  n(n1t, "tokenIsPostfix");
  function a1t(t) {
    return _M[t];
  }
  n(a1t, "tokenIsPrefix");
  function o1t(t) {
    return t >= 121 && t <= 123;
  }
  n(o1t, "tokenIsTSTypeOperator");
  function l1t(t) {
    return t >= 124 && t <= 130;
  }
  n(l1t, "tokenIsTSDeclarationStart");
  function gp(t) {
    return NM[t];
  }
  n(gp, "tokenLabelName");
  function GE(t) {
    return kM[t];
  }
  n(GE, "tokenOperatorPrecedence");
  function u1t(t) {
    return t === 57;
  }
  n(u1t, "tokenIsRightAssociative");
  function eA(t) {
    return t >= 24 && t <= 25;
  }
  n(eA, "tokenIsTemplate");
  function Du(t) {
    return Ou[t];
  }
  n(Du, "getExportedToken");
  Ou[8].updateContext = (t) => {
    t.pop();
  }, Ou[5].updateContext = Ou[7].updateContext = Ou[23].updateContext = (t) => {
    t.push(er.brace);
  }, Ou[22].updateContext = (t) => {
    t[t.length - 1] === er.template ? t.pop() : t.push(er.template);
  }, Ou[143].updateContext = (t) => {
    t.push(er.j_expr, er.j_oTag);
  };
  var BM = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993\
-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\
\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\
\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\
\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\
\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01\
-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
  Ore = "\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE\
-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\
\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\
\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\
\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65", c1t = new RegExp("[" + BM + "]"), p1t = new RegExp("[" + BM + Ore + "]");
  BM = Ore = null;
  var _re = [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], h1t = [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 uM(t, e) {
    let s = 65536;
    for (let r = 0, i = e.length; r < i; r += 2) {
      if (s += e[r], s > t) return !1;
      if (s += e[r + 1], s >= t) return !0;
    }
    return !1;
  }
  n(uM, "isInAstralSet");
  function _u(t) {
    return t < 65 ? t === 36 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && c1t.test(String.fromCharCode(t)) :
    uM(t, _re);
  }
  n(_u, "isIdentifierStart");
  function xm(t) {
    return t < 48 ? t === 36 : t < 58 ? !0 : t < 65 ? !1 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && p1t.test(
    String.fromCharCode(t)) : uM(t, _re) || uM(t, h1t);
  }
  n(xm, "isIdentifierChar");
  var MM = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "swit\
ch", "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"]
  }, f1t = new Set(MM.keyword), d1t = new Set(MM.strict), m1t = new Set(MM.strictBind);
  function Lre(t, e) {
    return e && t === "await" || t === "enum";
  }
  n(Lre, "isReservedWord");
  function Bre(t, e) {
    return Lre(t, e) || d1t.has(t);
  }
  n(Bre, "isStrictReservedWord");
  function Mre(t) {
    return m1t.has(t);
  }
  n(Mre, "isStrictBindOnlyReservedWord");
  function Fre(t, e) {
    return Bre(t, e) || Mre(t);
  }
  n(Fre, "isStrictBindReservedWord");
  function y1t(t) {
    return f1t.has(t);
  }
  n(y1t, "isKeyword");
  function g1t(t, e, s) {
    return t === 64 && e === 64 && _u(s);
  }
  n(g1t, "isIteratorStart");
  var T1t = /* @__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", "protecte\
d", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
  function b1t(t) {
    return T1t.has(t);
  }
  n(b1t, "canBeReservedWord");
  var B0 = class {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = e;
    }
  }, M0 = class {
    static {
      n(this, "ScopeHandler");
    }
    constructor(e, s) {
      this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = e,
      this.inModule = s;
    }
    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() {
      let e = this.currentThisScopeFlags();
      return (e & 64) > 0 && (e & 2) === 0;
    }
    get inStaticBlock() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 128)
          return !0;
        if (s & 451)
          return !1;
      }
    }
    get inNonArrowFunction() {
      return (this.currentThisScopeFlags() & 2) > 0;
    }
    get treatFunctionsAsVar() {
      return this.treatFunctionsAsVarInScope(this.currentScope());
    }
    createScope(e) {
      return new B0(e);
    }
    enter(e) {
      this.scopeStack.push(this.createScope(e));
    }
    exit() {
      return this.scopeStack.pop().flags;
    }
    treatFunctionsAsVarInScope(e) {
      return !!(e.flags & 130 || !this.parser.inModule && e.flags & 1);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 8 || s & 16) {
        this.checkRedeclarationInScope(i, e, s, r);
        let a = i.names.get(e) || 0;
        s & 16 ? a = a | 4 : (i.firstLexicalName || (i.firstLexicalName = e), a = a | 2), i.names.set(e, a), s & 8 && this.maybeExportDefined(
        i, e);
      } else if (s & 4)
        for (let a = this.scopeStack.length - 1; a >= 0 && (i = this.scopeStack[a], this.checkRedeclarationInScope(i, e, s, r), i.names.set(
        e, (i.names.get(e) || 0) | 1), this.maybeExportDefined(i, e), !(i.flags & 387)); --a)
          ;
      this.parser.inModule && i.flags & 1 && this.undefinedExports.delete(e);
    }
    maybeExportDefined(e, s) {
      this.parser.inModule && e.flags & 1 && this.undefinedExports.delete(s);
    }
    checkRedeclarationInScope(e, s, r, i) {
      this.isRedeclaredInScope(e, s, r) && this.parser.raise(ee.VarRedeclaration, i, {
        identifierName: s
      });
    }
    isRedeclaredInScope(e, s, r) {
      if (!(r & 1)) return !1;
      if (r & 8)
        return e.names.has(s);
      let i = e.names.get(s);
      return r & 16 ? (i & 2) > 0 || !this.treatFunctionsAsVarInScope(e) && (i & 1) > 0 : (i & 2) > 0 && !(e.flags & 8 && e.firstLexicalName ===
      s) || !this.treatFunctionsAsVarInScope(e) && (i & 4) > 0;
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      this.scopeStack[0].names.has(s) || this.undefinedExports.set(s, e.loc.start);
    }
    currentScope() {
      return this.scopeStack[this.scopeStack.length - 1];
    }
    currentVarScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 387)
          return s;
      }
    }
    currentThisScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 451 && !(s & 4))
          return s;
      }
    }
  }, cM = class extends B0 {
    static {
      n(this, "FlowScope");
    }
    constructor(...e) {
      super(...e), this.declareFunctions = /* @__PURE__ */ new Set();
    }
  }, pM = class extends M0 {
    static {
      n(this, "FlowScopeHandler");
    }
    createScope(e) {
      return new cM(e);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 2048) {
        this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e), i.declareFunctions.add(e);
        return;
      }
      super.declareName(e, s, r);
    }
    isRedeclaredInScope(e, s, r) {
      if (super.isRedeclaredInScope(e, s, r)) return !0;
      if (r & 2048 && !e.declareFunctions.has(s)) {
        let i = e.names.get(s);
        return (i & 4) > 0 || (i & 2) > 0;
      }
      return !1;
    }
    checkLocalExport(e) {
      this.scopeStack[0].declareFunctions.has(e.name) || super.checkLocalExport(e);
    }
  }, hM = class {
    static {
      n(this, "BaseParser");
    }
    constructor() {
      this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
    }
    sourceToOffsetPos(e) {
      return e + this.startIndex;
    }
    offsetToSourcePos(e) {
      return e - this.startIndex;
    }
    hasPlugin(e) {
      if (typeof e == "string")
        return this.plugins.has(e);
      {
        let [s, r] = e;
        if (!this.hasPlugin(s))
          return !1;
        let i = this.plugins.get(s);
        for (let a of Object.keys(r))
          if (i?.[a] !== r[a])
            return !1;
        return !0;
      }
    }
    getPluginOption(e, s) {
      var r;
      return (r = this.plugins.get(e)) == null ? void 0 : r[s];
    }
  };
  function jre(t, e) {
    t.trailingComments === void 0 ? t.trailingComments = e : t.trailingComments.unshift(...e);
  }
  n(jre, "setTrailingComments");
  function x1t(t, e) {
    t.leadingComments === void 0 ? t.leadingComments = e : t.leadingComments.unshift(...e);
  }
  n(x1t, "setLeadingComments");
  function F0(t, e) {
    t.innerComments === void 0 ? t.innerComments = e : t.innerComments.unshift(...e);
  }
  n(F0, "setInnerComments");
  function sf(t, e, s) {
    let r = null, i = e.length;
    for (; r === null && i > 0; )
      r = e[--i];
    r === null || r.start > s.start ? F0(t, s.comments) : jre(r, s.comments);
  }
  n(sf, "adjustInnerComments");
  var fM = class extends hM {
    static {
      n(this, "CommentsParser");
    }
    addComment(e) {
      this.filename && (e.loc.filename = this.filename);
      let {
        commentsLen: s
      } = this.state;
      this.comments.length !== s && (this.comments.length = s), this.comments.push(e), this.state.commentsLen++;
    }
    processComment(e) {
      let {
        commentStack: s
      } = this.state, r = s.length;
      if (r === 0) return;
      let i = r - 1, a = s[i];
      a.start === e.end && (a.leadingNode = e, i--);
      let {
        start: o
      } = e;
      for (; i >= 0; i--) {
        let l = s[i], u = l.end;
        if (u > o)
          l.containingNode = e, this.finalizeComment(l), s.splice(i, 1);
        else {
          u === o && (l.trailingNode = e);
          break;
        }
      }
    }
    finalizeComment(e) {
      let {
        comments: s
      } = e;
      if (e.leadingNode !== null || e.trailingNode !== null)
        e.leadingNode !== null && jre(e.leadingNode, s), e.trailingNode !== null && x1t(e.trailingNode, s);
      else {
        let {
          containingNode: r,
          start: i
        } = e;
        if (this.input.charCodeAt(this.offsetToSourcePos(i) - 1) === 44)
          switch (r.type) {
            case "ObjectExpression":
            case "ObjectPattern":
            case "RecordExpression":
              sf(r, r.properties, e);
              break;
            case "CallExpression":
            case "OptionalCallExpression":
              sf(r, r.arguments, e);
              break;
            case "FunctionDeclaration":
            case "FunctionExpression":
            case "ArrowFunctionExpression":
            case "ObjectMethod":
            case "ClassMethod":
            case "ClassPrivateMethod":
              sf(r, r.params, e);
              break;
            case "ArrayExpression":
            case "ArrayPattern":
            case "TupleExpression":
              sf(r, r.elements, e);
              break;
            case "ExportNamedDeclaration":
            case "ImportDeclaration":
              sf(r, r.specifiers, e);
              break;
            case "TSEnumDeclaration":
              sf(r, r.members, e);
              break;
            case "TSEnumBody":
              sf(r, r.members, e);
              break;
            default:
              F0(r, s);
          }
        else
          F0(r, s);
      }
    }
    finalizeRemainingComments() {
      let {
        commentStack: e
      } = this.state;
      for (let s = e.length - 1; s >= 0; s--)
        this.finalizeComment(e[s]);
      this.state.commentStack = [];
    }
    resetPreviousNodeTrailingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      if (r === 0) return;
      let i = s[r - 1];
      i.leadingNode === e && (i.leadingNode = null);
    }
    resetPreviousIdentifierLeadingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      r !== 0 && (s[r - 1].trailingNode === e ? s[r - 1].trailingNode = null : r >= 2 && s[r - 2].trailingNode === e && (s[r - 2].trailingNode =
      null));
    }
    takeSurroundingComments(e, s, r) {
      let {
        commentStack: i
      } = this.state, a = i.length;
      if (a === 0) return;
      let o = a - 1;
      for (; o >= 0; o--) {
        let l = i[o], u = l.end;
        if (l.start === r)
          l.leadingNode = e;
        else if (u === s)
          l.trailingNode = e;
        else if (u < s)
          break;
      }
    }
  }, S1t = /\r\n|[\r\n\u2028\u2029]/, YE = new RegExp(S1t.source, "g");
  function Sm(t) {
    switch (t) {
      case 10:
      case 13:
      case 8232:
      case 8233:
        return !0;
      default:
        return !1;
    }
  }
  n(Sm, "isNewLine");
  function Sre(t, e, s) {
    for (let r = e; r < s; r++)
      if (Sm(t.charCodeAt(r)))
        return !0;
    return !1;
  }
  n(Sre, "hasNewLine");
  var iM = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, nM = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;
  function P1t(t) {
    switch (t) {
      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;
    }
  }
  n(P1t, "isWhitespace");
  var dM = class t {
    static {
      n(this, "State");
    }
    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 = [er.brace], this.firstInvalidTemplateEscapePos = null,
      this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
    }
    get strict() {
      return (this.flags & 1) > 0;
    }
    set strict(e) {
      e ? this.flags |= 1 : this.flags &= -2;
    }
    init({
      strictMode: e,
      sourceType: s,
      startIndex: r,
      startLine: i,
      startColumn: a
    }) {
      this.strict = e === !1 ? !1 : e === !0 ? !0 : s === "module", this.startIndex = r, this.curLine = i, this.lineStart = -a, this.startLoc =
      this.endLoc = new yl(i, a, r);
    }
    get maybeInArrowParameters() {
      return (this.flags & 2) > 0;
    }
    set maybeInArrowParameters(e) {
      e ? this.flags |= 2 : this.flags &= -3;
    }
    get inType() {
      return (this.flags & 4) > 0;
    }
    set inType(e) {
      e ? this.flags |= 4 : this.flags &= -5;
    }
    get noAnonFunctionType() {
      return (this.flags & 8) > 0;
    }
    set noAnonFunctionType(e) {
      e ? this.flags |= 8 : this.flags &= -9;
    }
    get hasFlowComment() {
      return (this.flags & 16) > 0;
    }
    set hasFlowComment(e) {
      e ? this.flags |= 16 : this.flags &= -17;
    }
    get isAmbientContext() {
      return (this.flags & 32) > 0;
    }
    set isAmbientContext(e) {
      e ? this.flags |= 32 : this.flags &= -33;
    }
    get inAbstractClass() {
      return (this.flags & 64) > 0;
    }
    set inAbstractClass(e) {
      e ? this.flags |= 64 : this.flags &= -65;
    }
    get inDisallowConditionalTypesContext() {
      return (this.flags & 128) > 0;
    }
    set inDisallowConditionalTypesContext(e) {
      e ? this.flags |= 128 : this.flags &= -129;
    }
    get soloAwait() {
      return (this.flags & 256) > 0;
    }
    set soloAwait(e) {
      e ? this.flags |= 256 : this.flags &= -257;
    }
    get inFSharpPipelineDirectBody() {
      return (this.flags & 512) > 0;
    }
    set inFSharpPipelineDirectBody(e) {
      e ? this.flags |= 512 : this.flags &= -513;
    }
    get canStartJSXElement() {
      return (this.flags & 1024) > 0;
    }
    set canStartJSXElement(e) {
      e ? this.flags |= 1024 : this.flags &= -1025;
    }
    get containsEsc() {
      return (this.flags & 2048) > 0;
    }
    set containsEsc(e) {
      e ? this.flags |= 2048 : this.flags &= -2049;
    }
    get hasTopLevelAwait() {
      return (this.flags & 4096) > 0;
    }
    set hasTopLevelAwait(e) {
      e ? this.flags |= 4096 : this.flags &= -4097;
    }
    curPosition() {
      return new yl(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex);
    }
    clone() {
      let e = new t();
      return e.flags = this.flags, e.startIndex = this.startIndex, e.curLine = this.curLine, e.lineStart = this.lineStart, e.startLoc = this.
      startLoc, e.endLoc = this.endLoc, e.errors = this.errors.slice(), e.potentialArrowAt = this.potentialArrowAt, e.noArrowAt = this.noArrowAt.
      slice(), e.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), e.topicContext = this.topicContext, e.labels = this.labels.
      slice(), e.commentsLen = this.commentsLen, e.commentStack = this.commentStack.slice(), e.pos = this.pos, e.type = this.type, e.value =
      this.value, e.start = this.start, e.end = this.end, e.lastTokEndLoc = this.lastTokEndLoc, e.lastTokStartLoc = this.lastTokStartLoc, e.
      context = this.context.slice(), e.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, e.strictErrors = this.strictErrors,
      e.tokensLength = this.tokensLength, e;
    }
  }, E1t = /* @__PURE__ */ n(function(e) {
    return e >= 48 && e <= 57;
  }, "isDigit"), Pre = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, XE = {
    bin: /* @__PURE__ */ n((t) => t === 48 || t === 49, "bin"),
    oct: /* @__PURE__ */ n((t) => t >= 48 && t <= 55, "oct"),
    dec: /* @__PURE__ */ n((t) => t >= 48 && t <= 57, "dec"),
    hex: /* @__PURE__ */ n((t) => t >= 48 && t <= 57 || t >= 65 && t <= 70 || t >= 97 && t <= 102, "hex")
  };
  function Ere(t, e, s, r, i, a) {
    let o = s, l = r, u = i, c = "", p = null, h = s, {
      length: f
    } = e;
    for (; ; ) {
      if (s >= f) {
        a.unterminated(o, l, u), c += e.slice(h, s);
        break;
      }
      let d = e.charCodeAt(s);
      if (A1t(t, d, e, s)) {
        c += e.slice(h, s);
        break;
      }
      if (d === 92) {
        c += e.slice(h, s);
        let m = v1t(e, s, r, i, t === "template", a);
        m.ch === null && !p ? p = {
          pos: s,
          lineStart: r,
          curLine: i
        } : c += m.ch, {
          pos: s,
          lineStart: r,
          curLine: i
        } = m, h = s;
      } else d === 8232 || d === 8233 ? (++s, ++i, r = s) : d === 10 || d === 13 ? t === "template" ? (c += e.slice(h, s) + `
`, ++s, d === 13 && e.charCodeAt(s) === 10 && ++s, ++i, h = r = s) : a.unterminated(o, l, u) : ++s;
    }
    return {
      pos: s,
      str: c,
      firstInvalidLoc: p,
      lineStart: r,
      curLine: i,
      containsInvalid: !!p
    };
  }
  n(Ere, "readStringContents");
  function A1t(t, e, s, r) {
    return t === "template" ? e === 96 || e === 36 && s.charCodeAt(r + 1) === 123 : e === (t === "double" ? 34 : 39);
  }
  n(A1t, "isStringEnd");
  function v1t(t, e, s, r, i, a) {
    let o = !i;
    e++;
    let l = /* @__PURE__ */ n((c) => ({
      pos: e,
      ch: c,
      lineStart: s,
      curLine: r
    }), "res"), u = t.charCodeAt(e++);
    switch (u) {
      case 110:
        return l(`
`);
      case 114:
        return l("\r");
      case 120: {
        let c;
        return {
          code: c,
          pos: e
        } = mM(t, e, s, r, 2, !1, o, a), l(c === null ? null : String.fromCharCode(c));
      }
      case 117: {
        let c;
        return {
          code: c,
          pos: e
        } = qre(t, e, s, r, o, a), l(c === null ? null : String.fromCodePoint(c));
      }
      case 116:
        return l("	");
      case 98:
        return l("\b");
      case 118:
        return l("\v");
      case 102:
        return l("\f");
      case 13:
        t.charCodeAt(e) === 10 && ++e;
      case 10:
        s = e, ++r;
      case 8232:
      case 8233:
        return l("");
      case 56:
      case 57:
        if (i)
          return l(null);
        a.strictNumericEscape(e - 1, s, r);
      default:
        if (u >= 48 && u <= 55) {
          let c = e - 1, h = /^[0-7]+/.exec(t.slice(c, e + 2))[0], f = parseInt(h, 8);
          f > 255 && (h = h.slice(0, -1), f = parseInt(h, 8)), e += h.length - 1;
          let d = t.charCodeAt(e);
          if (h !== "0" || d === 56 || d === 57) {
            if (i)
              return l(null);
            a.strictNumericEscape(c, s, r);
          }
          return l(String.fromCharCode(f));
        }
        return l(String.fromCharCode(u));
    }
  }
  n(v1t, "readEscapedChar");
  function mM(t, e, s, r, i, a, o, l) {
    let u = e, c;
    return {
      n: c,
      pos: e
    } = Rre(t, e, s, r, 16, i, a, !1, l, !o), c === null && (o ? l.invalidEscapeSequence(u, s, r) : e = u - 1), {
      code: c,
      pos: e
    };
  }
  n(mM, "readHexChar");
  function Rre(t, e, s, r, i, a, o, l, u, c) {
    let p = e, h = i === 16 ? Pre.hex : Pre.decBinOct, f = i === 16 ? XE.hex : i === 10 ? XE.dec : i === 8 ? XE.oct : XE.bin, d = !1, m = 0;
    for (let y = 0, T = a ?? 1 / 0; y < T; ++y) {
      let b = t.charCodeAt(e), E;
      if (b === 95 && l !== "bail") {
        let V = t.charCodeAt(e - 1), W = t.charCodeAt(e + 1);
        if (l) {
          if (Number.isNaN(W) || !f(W) || h.has(V) || h.has(W)) {
            if (c) return {
              n: null,
              pos: e
            };
            u.unexpectedNumericSeparator(e, s, r);
          }
        } else {
          if (c) return {
            n: null,
            pos: e
          };
          u.numericSeparatorInEscapeSequence(e, s, r);
        }
        ++e;
        continue;
      }
      if (b >= 97 ? E = b - 97 + 10 : b >= 65 ? E = b - 65 + 10 : E1t(b) ? E = b - 48 : E = 1 / 0, E >= i) {
        if (E <= 9 && c)
          return {
            n: null,
            pos: e
          };
        if (E <= 9 && u.invalidDigit(e, s, r, i))
          E = 0;
        else if (o)
          E = 0, d = !0;
        else
          break;
      }
      ++e, m = m * i + E;
    }
    return e === p || a != null && e - p !== a || d ? {
      n: null,
      pos: e
    } : {
      n: m,
      pos: e
    };
  }
  n(Rre, "readInt");
  function qre(t, e, s, r, i, a) {
    let o = t.charCodeAt(e), l;
    if (o === 123) {
      if (++e, {
        code: l,
        pos: e
      } = mM(t, e, s, r, t.indexOf("}", e) - e, !0, i, a), ++e, l !== null && l > 1114111)
        if (i)
          a.invalidCodePoint(e, s, r);
        else
          return {
            code: null,
            pos: e
          };
    } else
      ({
        code: l,
        pos: e
      } = mM(t, e, s, r, 4, !1, i, a));
    return {
      code: l,
      pos: e
    };
  }
  n(qre, "readCodePoint");
  function O0(t, e, s) {
    return new yl(s, t - e, t);
  }
  n(O0, "buildPosition");
  var C1t = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]), ml = class {
    static {
      n(this, "Token");
    }
    constructor(e) {
      let s = e.startIndex || 0;
      this.type = e.type, this.value = e.value, this.start = s + e.start, this.end = s + e.end, this.loc = new Em(e.startLoc, e.endLoc);
    }
  }, yM = class extends fM {
    static {
      n(this, "Tokenizer");
    }
    constructor(e, s) {
      super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
        invalidDigit: /* @__PURE__ */ n((r, i, a, o) => this.optionFlags & 1024 ? (this.raise(ee.InvalidDigit, O0(r, i, a), {
          radix: o
        }), !0) : !1, "invalidDigit"),
        numericSeparatorInEscapeSequence: this.errorBuilder(ee.NumericSeparatorInEscapeSequence),
        unexpectedNumericSeparator: this.errorBuilder(ee.UnexpectedNumericSeparator)
      }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
        invalidEscapeSequence: this.errorBuilder(ee.InvalidEscapeSequence),
        invalidCodePoint: this.errorBuilder(ee.InvalidCodePoint)
      }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: /* @__PURE__ */ n((r, i, a) => {
          this.recordStrictModeErrors(ee.StrictNumericEscape, O0(r, i, a));
        }, "strictNumericEscape"),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(ee.UnterminatedString, O0(r - 1, i, a));
        }, "unterminated")
      }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: this.errorBuilder(ee.StrictNumericEscape),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(ee.UnterminatedTemplate, O0(r, i, a));
        }, "unterminated")
      }), this.state = new dM(), this.state.init(e), this.input = s, this.length = s.length, this.comments = [], this.isLookahead = !1;
    }
    pushToken(e) {
      this.tokens.length = this.state.tokensLength, this.tokens.push(e), ++this.state.tokensLength;
    }
    next() {
      this.checkKeywordEscapes(), this.optionFlags & 128 && this.pushToken(new ml(this.state)), this.state.lastTokEndLoc = this.state.endLoc,
      this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
    }
    eat(e) {
      return this.match(e) ? (this.next(), !0) : !1;
    }
    match(e) {
      return this.state.type === e;
    }
    createLookaheadState(e) {
      return {
        pos: e.pos,
        value: null,
        type: e.type,
        start: e.start,
        end: e.end,
        context: [this.curContext()],
        inType: e.inType,
        startLoc: e.startLoc,
        lastTokEndLoc: e.lastTokEndLoc,
        curLine: e.curLine,
        lineStart: e.lineStart,
        curPosition: e.curPosition
      };
    }
    lookahead() {
      let e = this.state;
      this.state = this.createLookaheadState(e), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
      let s = this.state;
      return this.state = e, s;
    }
    nextTokenStart() {
      return this.nextTokenStartSince(this.state.pos);
    }
    nextTokenStartSince(e) {
      return iM.lastIndex = e, iM.test(this.input) ? iM.lastIndex : e;
    }
    lookaheadCharCode() {
      return this.input.charCodeAt(this.nextTokenStart());
    }
    nextTokenInLineStart() {
      return this.nextTokenInLineStartSince(this.state.pos);
    }
    nextTokenInLineStartSince(e) {
      return nM.lastIndex = e, nM.test(this.input) ? nM.lastIndex : e;
    }
    lookaheadInLineCharCode() {
      return this.input.charCodeAt(this.nextTokenInLineStart());
    }
    codePointAtPos(e) {
      let s = this.input.charCodeAt(e);
      if ((s & 64512) === 55296 && ++e < this.input.length) {
        let r = this.input.charCodeAt(e);
        (r & 64512) === 56320 && (s = 65536 + ((s & 1023) << 10) + (r & 1023));
      }
      return s;
    }
    setStrict(e) {
      this.state.strict = e, e && (this.state.strictErrors.forEach(([s, r]) => this.raise(s, r)), 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(e) {
      let s;
      this.isLookahead || (s = this.state.curPosition());
      let r = this.state.pos, i = this.input.indexOf(e, r + 2);
      if (i === -1)
        throw this.raise(ee.UnterminatedComment, this.state.curPosition());
      for (this.state.pos = i + e.length, YE.lastIndex = r + 2; YE.test(this.input) && YE.lastIndex <= i; )
        ++this.state.curLine, this.state.lineStart = YE.lastIndex;
      if (this.isLookahead) return;
      let a = {
        type: "CommentBlock",
        value: this.input.slice(r + 2, i),
        start: this.sourceToOffsetPos(r),
        end: this.sourceToOffsetPos(i + e.length),
        loc: new Em(s, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(a), a;
    }
    skipLineComment(e) {
      let s = this.state.pos, r;
      this.isLookahead || (r = this.state.curPosition());
      let i = this.input.charCodeAt(this.state.pos += e);
      if (this.state.pos < this.length)
        for (; !Sm(i) && ++this.state.pos < this.length; )
          i = this.input.charCodeAt(this.state.pos);
      if (this.isLookahead) return;
      let a = this.state.pos, l = {
        type: "CommentLine",
        value: this.input.slice(s + e, a),
        start: this.sourceToOffsetPos(s),
        end: this.sourceToOffsetPos(a),
        loc: new Em(r, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(l), l;
    }
    skipSpace() {
      let e = this.state.pos, s = this.optionFlags & 2048 ? [] : null;
      e: for (; this.state.pos < this.length; ) {
        let r = this.input.charCodeAt(this.state.pos);
        switch (r) {
          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: {
                let i = this.skipBlockComment("*/");
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              case 47: {
                let i = this.skipLineComment(2);
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (P1t(r))
              ++this.state.pos;
            else if (r === 45 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 45 && this.input.charCodeAt(i + 2) === 62 && (e === 0 || this.state.lineStart > e)) {
                let a = this.skipLineComment(3);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else if (r === 60 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 33 && this.input.charCodeAt(i + 2) === 45 && this.input.charCodeAt(i + 3) === 45) {
                let a = this.skipLineComment(4);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else
              break e;
        }
      }
      if (s?.length > 0) {
        let r = this.state.pos, i = {
          start: this.sourceToOffsetPos(e),
          end: this.sourceToOffsetPos(r),
          comments: s,
          leadingNode: null,
          trailingNode: null,
          containingNode: null
        };
        this.state.commentStack.push(i);
      }
    }
    finishToken(e, s) {
      this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
      let r = this.state.type;
      this.state.type = e, this.state.value = s, this.isLookahead || this.updateContext(r);
    }
    replaceToken(e) {
      this.state.type = e, this.updateContext();
    }
    readToken_numberSign() {
      if (this.state.pos === 0 && this.readToken_interpreter())
        return;
      let e = this.state.pos + 1, s = this.codePointAtPos(e);
      if (s >= 48 && s <= 57)
        throw this.raise(ee.UnexpectedDigitAfterHash, this.state.curPosition());
      if (s === 123 || s === 91 && this.hasPlugin("recordAndTuple")) {
        if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
          throw this.raise(s === 123 ? ee.RecordExpressionHashIncorrectStartSyntaxType : ee.TupleExpressionHashIncorrectStartSyntaxType, this.
          state.curPosition());
        this.state.pos += 2, s === 123 ? this.finishToken(7) : this.finishToken(1);
      } else _u(s) ? (++this.state.pos, this.finishToken(139, this.readWord1(s))) : s === 92 ? (++this.state.pos, this.finishToken(139, this.
      readWord1())) : this.finishOp(27, 1);
    }
    readToken_dot() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      if (e >= 48 && e <= 57) {
        this.readNumber(!0);
        return;
      }
      e === 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 e = this.input.charCodeAt(this.state.pos + 1);
      if (e !== 33) return !1;
      let s = this.state.pos;
      for (this.state.pos += 1; !Sm(e) && ++this.state.pos < this.length; )
        e = this.input.charCodeAt(this.state.pos);
      let r = this.input.slice(s + 2, this.state.pos);
      return this.finishToken(28, r), !0;
    }
    readToken_mult_modulo(e) {
      let s = e === 42 ? 55 : 54, r = 1, i = this.input.charCodeAt(this.state.pos + 1);
      e === 42 && i === 42 && (r++, i = this.input.charCodeAt(this.state.pos + 2), s = 57), i === 61 && !this.state.inType && (r++, s = e ===
      37 ? 33 : 30), this.finishOp(s, r);
    }
    readToken_pipe_amp(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(e === 124 ? 41 : 42, 2);
        return;
      }
      if (e === 124) {
        if (s === 62) {
          this.finishOp(39, 2);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 125) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(ee.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(9);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 93) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(ee.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(4);
          return;
        }
      }
      if (s === 61) {
        this.finishOp(30, 2);
        return;
      }
      this.finishOp(e === 124 ? 43 : 45, 1);
    }
    readToken_caret() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      e === 61 && !this.state.inType ? this.finishOp(32, 2) : e === 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(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.finishOp(34, 2);
        return;
      }
      s === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
    }
    readToken_lt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 60) {
        if (this.input.charCodeAt(e + 2) === 61) {
          this.finishOp(30, 3);
          return;
        }
        this.finishOp(51, 2);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(47, 1);
    }
    readToken_gt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 62) {
        let r = this.input.charCodeAt(e + 2) === 62 ? 3 : 2;
        if (this.input.charCodeAt(e + r) === 61) {
          this.finishOp(30, r + 1);
          return;
        }
        this.finishOp(52, r);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(48, 1);
    }
    readToken_eq_excl(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === 61) {
        this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
        return;
      }
      if (e === 61 && s === 62) {
        this.state.pos += 2, this.finishToken(19);
        return;
      }
      this.finishOp(e === 61 ? 29 : 35, 1);
    }
    readToken_question() {
      let e = this.input.charCodeAt(this.state.pos + 1), s = this.input.charCodeAt(this.state.pos + 2);
      e === 63 ? s === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : e === 46 && !(s >= 48 && s <= 57) ? (this.state.pos += 2, this.finishToken(
      18)) : (++this.state.pos, this.finishToken(17));
    }
    getTokenFromCode(e) {
      switch (e) {
        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(ee.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(ee.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: {
          let s = this.input.charCodeAt(this.state.pos + 1);
          if (s === 120 || s === 88) {
            this.readRadixNumber(16);
            return;
          }
          if (s === 111 || s === 79) {
            this.readRadixNumber(8);
            return;
          }
          if (s === 98 || s === 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(e);
          return;
        case 47:
          this.readToken_slash();
          return;
        case 37:
        case 42:
          this.readToken_mult_modulo(e);
          return;
        case 124:
        case 38:
          this.readToken_pipe_amp(e);
          return;
        case 94:
          this.readToken_caret();
          return;
        case 43:
        case 45:
          this.readToken_plus_min(e);
          return;
        case 60:
          this.readToken_lt();
          return;
        case 62:
          this.readToken_gt();
          return;
        case 61:
        case 33:
          this.readToken_eq_excl(e);
          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 (_u(e)) {
            this.readWord(e);
            return;
          }
      }
      throw this.raise(ee.InvalidOrUnexpectedToken, this.state.curPosition(), {
        unexpected: String.fromCodePoint(e)
      });
    }
    finishOp(e, s) {
      let r = this.input.slice(this.state.pos, this.state.pos + s);
      this.state.pos += s, this.finishToken(e, r);
    }
    readRegexp() {
      let e = this.state.startLoc, s = this.state.start + 1, r, i, {
        pos: a
      } = this.state;
      for (; ; ++a) {
        if (a >= this.length)
          throw this.raise(ee.UnterminatedRegExp, On(e, 1));
        let c = this.input.charCodeAt(a);
        if (Sm(c))
          throw this.raise(ee.UnterminatedRegExp, On(e, 1));
        if (r)
          r = !1;
        else {
          if (c === 91)
            i = !0;
          else if (c === 93 && i)
            i = !1;
          else if (c === 47 && !i)
            break;
          r = c === 92;
        }
      }
      let o = this.input.slice(s, a);
      ++a;
      let l = "", u = /* @__PURE__ */ n(() => On(e, a + 2 - s), "nextPos");
      for (; a < this.length; ) {
        let c = this.codePointAtPos(a), p = String.fromCharCode(c);
        if (C1t.has(c))
          c === 118 ? l.includes("u") && this.raise(ee.IncompatibleRegExpUVFlags, u()) : c === 117 && l.includes("v") && this.raise(ee.IncompatibleRegExpUVFlags,
          u()), l.includes(p) && this.raise(ee.DuplicateRegExpFlags, u());
        else if (xm(c) || c === 92)
          this.raise(ee.MalformedRegExpFlags, u());
        else
          break;
        ++a, l += p;
      }
      this.state.pos = a, this.finishToken(138, {
        pattern: o,
        flags: l
      });
    }
    readInt(e, s, r = !1, i = !0) {
      let {
        n: a,
        pos: o
      } = Rre(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, s, r, i, this.errorHandlers_readInt, !1);
      return this.state.pos = o, a;
    }
    readRadixNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1;
      this.state.pos += 2;
      let a = this.readInt(e);
      a == null && this.raise(ee.InvalidDigit, On(r, 2), {
        radix: e
      });
      let o = this.input.charCodeAt(this.state.pos);
      if (o === 110)
        ++this.state.pos, i = !0;
      else if (o === 109)
        throw this.raise(ee.InvalidDecimal, r);
      if (_u(this.codePointAtPos(this.state.pos)))
        throw this.raise(ee.NumberIdentifier, this.state.curPosition());
      if (i) {
        let l = this.input.slice(s, this.state.pos).replace(/[_n]/g, "");
        this.finishToken(136, l);
        return;
      }
      this.finishToken(135, a);
    }
    readNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1, a = !1, o = !1, l = !1;
      !e && this.readInt(10) === null && this.raise(ee.InvalidNumber, this.state.curPosition());
      let u = this.state.pos - s >= 2 && this.input.charCodeAt(s) === 48;
      if (u) {
        let d = this.input.slice(s, this.state.pos);
        if (this.recordStrictModeErrors(ee.StrictOctalLiteral, r), !this.state.strict) {
          let m = d.indexOf("_");
          m > 0 && this.raise(ee.ZeroDigitNumericSeparator, On(r, m));
        }
        l = u && !/[89]/.test(d);
      }
      let c = this.input.charCodeAt(this.state.pos);
      if (c === 46 && !l && (++this.state.pos, this.readInt(10), i = !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(
      ee.InvalidOrMissingExponent, r), i = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((i || u) && this.raise(ee.InvalidBigIntLiteral,
      r), ++this.state.pos, a = !0), c === 109) {
        this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(ee.InvalidDecimal, r), ++this.state.pos;
        var p = !0;
      }
      if (_u(this.codePointAtPos(this.state.pos)))
        throw this.raise(ee.NumberIdentifier, this.state.curPosition());
      let h = this.input.slice(s, this.state.pos).replace(/[_mn]/g, "");
      if (a) {
        this.finishToken(136, h);
        return;
      }
      if (p) {
        this.finishToken(137, h);
        return;
      }
      let f = l ? parseInt(h, 8) : parseFloat(h);
      this.finishToken(135, f);
    }
    readCodePoint(e) {
      let {
        code: s,
        pos: r
      } = qre(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, this.errorHandlers_readCodePoint);
      return this.state.pos = r, s;
    }
    readString(e) {
      let {
        str: s,
        pos: r,
        curLine: i,
        lineStart: a
      } = Ere(e === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
      this.state.pos = r + 1, this.state.lineStart = a, this.state.curLine = i, this.finishToken(134, s);
    }
    readTemplateContinuation() {
      this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
    }
    readTemplateToken() {
      let e = this.input[this.state.pos], {
        str: s,
        firstInvalidLoc: r,
        pos: i,
        curLine: a,
        lineStart: o
      } = Ere("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
      this.state.pos = i + 1, this.state.lineStart = o, this.state.curLine = a, r && (this.state.firstInvalidTemplateEscapePos = new yl(r.curLine,
      r.pos - r.lineStart, this.sourceToOffsetPos(r.pos))), this.input.codePointAt(i) === 96 ? this.finishToken(24, r ? null : e + s + "`") :
      (this.state.pos++, this.finishToken(25, r ? null : e + s + "${"));
    }
    recordStrictModeErrors(e, s) {
      let r = s.index;
      this.state.strict && !this.state.strictErrors.has(r) ? this.raise(e, s) : this.state.strictErrors.set(r, [e, s]);
    }
    readWord1(e) {
      this.state.containsEsc = !1;
      let s = "", r = this.state.pos, i = this.state.pos;
      for (e !== void 0 && (this.state.pos += e <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
        let a = this.codePointAtPos(this.state.pos);
        if (xm(a))
          this.state.pos += a <= 65535 ? 1 : 2;
        else if (a === 92) {
          this.state.containsEsc = !0, s += this.input.slice(i, this.state.pos);
          let o = this.state.curPosition(), l = this.state.pos === r ? _u : xm;
          if (this.input.charCodeAt(++this.state.pos) !== 117) {
            this.raise(ee.MissingUnicodeEscape, this.state.curPosition()), i = this.state.pos - 1;
            continue;
          }
          ++this.state.pos;
          let u = this.readCodePoint(!0);
          u !== null && (l(u) || this.raise(ee.EscapedCharNotAnIdentifier, o), s += String.fromCodePoint(u)), i = this.state.pos;
        } else
          break;
      }
      return s + this.input.slice(i, this.state.pos);
    }
    readWord(e) {
      let s = this.readWord1(e), r = IM.get(s);
      r !== void 0 ? this.finishToken(r, gp(r)) : this.finishToken(132, s);
    }
    checkKeywordEscapes() {
      let {
        type: e
      } = this.state;
      LM(e) && this.state.containsEsc && this.raise(ee.InvalidEscapedReservedWord, this.state.startLoc, {
        reservedWord: gp(e)
      });
    }
    raise(e, s, r = {}) {
      let i = s instanceof yl ? s : s.loc.start, a = e(i, r);
      if (!(this.optionFlags & 1024)) throw a;
      return this.isLookahead || this.state.errors.push(a), a;
    }
    raiseOverwrite(e, s, r = {}) {
      let i = s instanceof yl ? s : s.loc.start, a = i.index, o = this.state.errors;
      for (let l = o.length - 1; l >= 0; l--) {
        let u = o[l];
        if (u.loc.index === a)
          return o[l] = e(i, r);
        if (u.loc.index < a) break;
      }
      return this.raise(e, s, r);
    }
    updateContext(e) {
    }
    unexpected(e, s) {
      throw this.raise(ee.UnexpectedToken, e ?? this.state.startLoc, {
        expected: s ? gp(s) : null
      });
    }
    expectPlugin(e, s) {
      if (this.hasPlugin(e))
        return !0;
      throw this.raise(ee.MissingPlugin, s ?? this.state.startLoc, {
        missingPlugin: [e]
      });
    }
    expectOnePlugin(e) {
      if (!e.some((s) => this.hasPlugin(s)))
        throw this.raise(ee.MissingOneOfPlugins, this.state.startLoc, {
          missingPlugin: e
        });
    }
    errorBuilder(e) {
      return (s, r, i) => {
        this.raise(e, O0(s, r, i));
      };
    }
  }, gM = class {
    static {
      n(this, "ClassScope");
    }
    constructor() {
      this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
    }
  }, TM = class {
    static {
      n(this, "ClassScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = e;
    }
    current() {
      return this.stack[this.stack.length - 1];
    }
    enter() {
      this.stack.push(new gM());
    }
    exit() {
      let e = this.stack.pop(), s = this.current();
      for (let [r, i] of Array.from(e.undefinedPrivateNames))
        s ? s.undefinedPrivateNames.has(r) || s.undefinedPrivateNames.set(r, i) : this.parser.raise(ee.InvalidPrivateFieldResolution, i, {
          identifierName: r
        });
    }
    declarePrivateName(e, s, r) {
      let {
        privateNames: i,
        loneAccessors: a,
        undefinedPrivateNames: o
      } = this.current(), l = i.has(e);
      if (s & 3) {
        let u = l && a.get(e);
        if (u) {
          let c = u & 4, p = s & 4, h = u & 3, f = s & 3;
          l = h === f || c !== p, l || a.delete(e);
        } else l || a.set(e, s);
      }
      l && this.parser.raise(ee.PrivateNameRedeclaration, r, {
        identifierName: e
      }), i.add(e), o.delete(e);
    }
    usePrivateName(e, s) {
      let r;
      for (r of this.stack)
        if (r.privateNames.has(e)) return;
      r ? r.undefinedPrivateNames.set(e, s) : this.parser.raise(ee.InvalidPrivateFieldResolution, s, {
        identifierName: e
      });
    }
  }, Am = class {
    static {
      n(this, "ExpressionScope");
    }
    constructor(e = 0) {
      this.type = e;
    }
    canBeArrowParameterDeclaration() {
      return this.type === 2 || this.type === 1;
    }
    isCertainlyParameterDeclaration() {
      return this.type === 3;
    }
  }, tA = class extends Am {
    static {
      n(this, "ArrowHeadParsingScope");
    }
    constructor(e) {
      super(e), this.declarationErrors = /* @__PURE__ */ new Map();
    }
    recordDeclarationError(e, s) {
      let r = s.index;
      this.declarationErrors.set(r, [e, s]);
    }
    clearDeclarationError(e) {
      this.declarationErrors.delete(e);
    }
    iterateErrors(e) {
      this.declarationErrors.forEach(e);
    }
  }, bM = class {
    static {
      n(this, "ExpressionScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [new Am()], this.parser = e;
    }
    enter(e) {
      this.stack.push(e);
    }
    exit() {
      this.stack.pop();
    }
    recordParameterInitializerError(e, s) {
      let r = s.loc.start, {
        stack: i
      } = this, a = i.length - 1, o = i[a];
      for (; !o.isCertainlyParameterDeclaration(); ) {
        if (o.canBeArrowParameterDeclaration())
          o.recordDeclarationError(e, r);
        else
          return;
        o = i[--a];
      }
      this.parser.raise(e, r);
    }
    recordArrowParameterBindingError(e, s) {
      let {
        stack: r
      } = this, i = r[r.length - 1], a = s.loc.start;
      if (i.isCertainlyParameterDeclaration())
        this.parser.raise(e, a);
      else if (i.canBeArrowParameterDeclaration())
        i.recordDeclarationError(e, a);
      else
        return;
    }
    recordAsyncArrowParametersError(e) {
      let {
        stack: s
      } = this, r = s.length - 1, i = s[r];
      for (; i.canBeArrowParameterDeclaration(); )
        i.type === 2 && i.recordDeclarationError(ee.AwaitBindingIdentifier, e), i = s[--r];
    }
    validateAsPattern() {
      let {
        stack: e
      } = this, s = e[e.length - 1];
      s.canBeArrowParameterDeclaration() && s.iterateErrors(([r, i]) => {
        this.parser.raise(r, i);
        let a = e.length - 2, o = e[a];
        for (; o.canBeArrowParameterDeclaration(); )
          o.clearDeclarationError(i.index), o = e[--a];
      });
    }
  };
  function w1t() {
    return new Am(3);
  }
  n(w1t, "newParameterDeclarationScope");
  function I1t() {
    return new tA(1);
  }
  n(I1t, "newArrowHeadScope");
  function N1t() {
    return new tA(2);
  }
  n(N1t, "newAsyncArrowScope");
  function Ure() {
    return new Am();
  }
  n(Ure, "newExpressionScope");
  var xM = class {
    static {
      n(this, "ProductionParameterHandler");
    }
    constructor() {
      this.stacks = [];
    }
    enter(e) {
      this.stacks.push(e);
    }
    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 QE(t, e) {
    return (t ? 2 : 0) | (e ? 1 : 0);
  }
  n(QE, "functionFlags");
  var SM = class extends yM {
    static {
      n(this, "UtilParser");
    }
    addExtra(e, s, r, i = !0) {
      if (!e) return;
      let {
        extra: a
      } = e;
      a == null && (a = {}, e.extra = a), i ? a[s] = r : Object.defineProperty(a, s, {
        enumerable: i,
        value: r
      });
    }
    isContextual(e) {
      return this.state.type === e && !this.state.containsEsc;
    }
    isUnparsedContextual(e, s) {
      let r = e + s.length;
      if (this.input.slice(e, r) === s) {
        let i = this.input.charCodeAt(r);
        return !(xm(i) || (i & 64512) === 55296);
      }
      return !1;
    }
    isLookaheadContextual(e) {
      let s = this.nextTokenStart();
      return this.isUnparsedContextual(s, e);
    }
    eatContextual(e) {
      return this.isContextual(e) ? (this.next(), !0) : !1;
    }
    expectContextual(e, s) {
      if (!this.eatContextual(e)) {
        if (s != null)
          throw this.raise(s, this.state.startLoc);
        this.unexpected(null, e);
      }
    }
    canInsertSemicolon() {
      return this.match(140) || this.match(8) || this.hasPrecedingLineBreak();
    }
    hasPrecedingLineBreak() {
      return Sre(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start);
    }
    hasFollowingLineBreak() {
      return Sre(this.input, this.state.end, this.nextTokenStart());
    }
    isLineTerminator() {
      return this.eat(13) || this.canInsertSemicolon();
    }
    semicolon(e = !0) {
      (e ? this.isLineTerminator() : this.eat(13)) || this.raise(ee.MissingSemicolon, this.state.lastTokEndLoc);
    }
    expect(e, s) {
      this.eat(e) || this.unexpected(s, e);
    }
    tryParse(e, s = this.state.clone()) {
      let r = {
        node: null
      };
      try {
        let i = e((a = null) => {
          throw r.node = a, r;
        });
        if (this.state.errors.length > s.errors.length) {
          let a = this.state;
          return this.state = s, this.state.tokensLength = a.tokensLength, {
            node: i,
            error: a.errors[s.errors.length],
            thrown: !1,
            aborted: !1,
            failState: a
          };
        }
        return {
          node: i,
          error: null,
          thrown: !1,
          aborted: !1,
          failState: null
        };
      } catch (i) {
        let a = this.state;
        if (this.state = s, i instanceof SyntaxError)
          return {
            node: null,
            error: i,
            thrown: !0,
            aborted: !1,
            failState: a
          };
        if (i === r)
          return {
            node: r.node,
            error: null,
            thrown: !1,
            aborted: !0,
            failState: a
          };
        throw i;
      }
    }
    checkExpressionErrors(e, s) {
      if (!e) return !1;
      let {
        shorthandAssignLoc: r,
        doubleProtoLoc: i,
        privateKeyLoc: a,
        optionalParametersLoc: o
      } = e, l = !!r || !!i || !!o || !!a;
      if (!s)
        return l;
      r != null && this.raise(ee.InvalidCoverInitializedName, r), i != null && this.raise(ee.DuplicateProto, i), a != null && this.raise(ee.
      UnexpectedPrivateField, a), o != null && this.unexpected(o);
    }
    isLiteralPropertyName() {
      return Dre(this.state.type);
    }
    isPrivateName(e) {
      return e.type === "PrivateName";
    }
    getPrivateNameSV(e) {
      return e.id.name;
    }
    hasPropertyAsPrivateName(e) {
      return (e.type === "MemberExpression" || e.type === "OptionalMemberExpression") && this.isPrivateName(e.property);
    }
    isObjectProperty(e) {
      return e.type === "ObjectProperty";
    }
    isObjectMethod(e) {
      return e.type === "ObjectMethod";
    }
    initializeScopes(e = this.options.sourceType === "module") {
      let s = this.state.labels;
      this.state.labels = [];
      let r = this.exportedIdentifiers;
      this.exportedIdentifiers = /* @__PURE__ */ new Set();
      let i = this.inModule;
      this.inModule = e;
      let a = this.scope, o = this.getScopeHandler();
      this.scope = new o(this, e);
      let l = this.prodParam;
      this.prodParam = new xM();
      let u = this.classScope;
      this.classScope = new TM(this);
      let c = this.expressionScope;
      return this.expressionScope = new bM(this), () => {
        this.state.labels = s, this.exportedIdentifiers = r, this.inModule = i, this.scope = a, this.prodParam = l, this.classScope = u, this.
        expressionScope = c;
      };
    }
    enterInitialScopes() {
      let e = 0;
      this.inModule && (e |= 2), this.scope.enter(1), this.prodParam.enter(e);
    }
    checkDestructuringPrivate(e) {
      let {
        privateKeyLoc: s
      } = e;
      s !== null && this.expectPlugin("destructuringPrivate", s);
    }
  }, Pm = class {
    static {
      n(this, "ExpressionErrors");
    }
    constructor() {
      this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
    }
  }, vm = class {
    static {
      n(this, "Node");
    }
    constructor(e, s, r) {
      this.type = "", this.start = s, this.end = 0, this.loc = new Em(r), e?.optionFlags & 64 && (this.range = [s, 0]), e != null && e.filename &&
      (this.loc.filename = e.filename);
    }
  }, FM = vm.prototype;
  FM.__clone = function() {
    let t = new vm(void 0, this.start, this.loc.start), e = Object.keys(this);
    for (let s = 0, r = e.length; s < r; s++) {
      let i = e[s];
      i !== "leadingComments" && i !== "trailingComments" && i !== "innerComments" && (t[i] = this[i]);
    }
    return t;
  };
  function k1t(t) {
    return Bu(t);
  }
  n(k1t, "clonePlaceholder");
  function Bu(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o,
      name: l
    } = t, u = Object.create(FM);
    return u.type = e, u.start = s, u.end = r, u.loc = i, u.range = a, u.extra = o, u.name = l, e === "Placeholder" && (u.expectedNode = t.expectedNode),
    u;
  }
  n(Bu, "cloneIdentifier");
  function D1t(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o
    } = t;
    if (e === "Placeholder")
      return k1t(t);
    let l = Object.create(FM);
    return l.type = e, l.start = s, l.end = r, l.loc = i, l.range = a, t.raw !== void 0 ? l.raw = t.raw : l.extra = o, l.value = t.value, l;
  }
  n(D1t, "cloneStringLiteral");
  var PM = class extends SM {
    static {
      n(this, "NodeUtils");
    }
    startNode() {
      let e = this.state.startLoc;
      return new vm(this, e.index, e);
    }
    startNodeAt(e) {
      return new vm(this, e.index, e);
    }
    startNodeAtNode(e) {
      return this.startNodeAt(e.loc.start);
    }
    finishNode(e, s) {
      return this.finishNodeAt(e, s, this.state.lastTokEndLoc);
    }
    finishNodeAt(e, s, r) {
      return e.type = s, e.end = r.index, e.loc.end = r, this.optionFlags & 64 && (e.range[1] = r.index), this.optionFlags & 2048 && this.processComment(
      e), e;
    }
    resetStartLocation(e, s) {
      e.start = s.index, e.loc.start = s, this.optionFlags & 64 && (e.range[0] = s.index);
    }
    resetEndLocation(e, s = this.state.lastTokEndLoc) {
      e.end = s.index, e.loc.end = s, this.optionFlags & 64 && (e.range[1] = s.index);
    }
    resetStartLocationFromNode(e, s) {
      this.resetStartLocation(e, s.loc.start);
    }
  }, O1t = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "sta\
tic", "string", "true", "typeof", "void"]), Mt = Lu`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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Cannot overwrite reserved type ${t}.`, "AssignReservedType"),
    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: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Boolean enum members need to be initialized. Use either \`${t} = true,\` or \`${t} = false,\` in enum \`${e}\`.`, "EnumBooleanMem\
berNotInitialized"),
    EnumDuplicateMemberName: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Enum member names need to be unique, but the name \`${t}\` has already been used before in enum \`${e}\`.`, "EnumDuplicateMemberN\
ame"),
    EnumInconsistentMemberValues: /* @__PURE__ */ n(({
      enumName: t
    }) => `Enum \`${t}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, num\
bers, or strings) for all member initializers.`, "EnumInconsistentMemberValues"),
    EnumInvalidExplicitType: /* @__PURE__ */ n(({
      invalidEnumType: t,
      enumName: e
    }) => `Enum type \`${t}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${e}\`.`, "EnumInvalidEx\
plicitType"),
    EnumInvalidExplicitTypeUnknownSupplied: /* @__PURE__ */ n(({
      enumName: t
    }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`, "EnumInvalidEx\
plicitTypeUnknownSupplied"),
    EnumInvalidMemberInitializerPrimaryType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      explicitType: s
    }) => `Enum \`${t}\` has type \`${s}\`, so the initializer of \`${e}\` needs to be a ${s} literal.`, "EnumInvalidMemberInitializerPrimar\
yType"),
    EnumInvalidMemberInitializerSymbolType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Symbol enum members cannot be initialized. Use \`${e},\` in enum \`${t}\`.`, "EnumInvalidMemberInitializerSymbolType"),
    EnumInvalidMemberInitializerUnknownType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `The enum member initializer for \`${e}\` needs to be a literal (either a boolean, number, or string) in enum \`${t}\`.`, "EnumInv\
alidMemberInitializerUnknownType"),
    EnumInvalidMemberName: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      suggestion: s
    }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${e}\`, consider using \`${s}\`, in enum \`${t}\
\`.`, "EnumInvalidMemberName"),
    EnumNumberMemberNotInitialized: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Number enum members need to be initialized, e.g. \`${e} = 1\` in enum \`${t}\`.`, "EnumNumberMemberNotInitialized"),
    EnumStringMemberInconsistentlyInitialized: /* @__PURE__ */ n(({
      enumName: t
    }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${t}\`.`, "EnumStringMemb\
erInconsistentlyInitialized"),
    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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Unexpected reserved type ${t}.`, "UnexpectedReservedType"),
    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: /* @__PURE__ */ n(({
      unsupportedExportKind: t,
      suggestion: e
    }) => `\`declare export ${t}\` is not supported. Use \`${e}\` instead.`, "UnsupportedDeclareExportKind"),
    UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
    UnterminatedFlowComment: "Unterminated flow-comment."
  });
  function _1t(t) {
    return t.type === "DeclareExportAllDeclaration" || t.type === "DeclareExportDeclaration" && (!t.declaration || t.declaration.type !== "T\
ypeAlias" && t.declaration.type !== "InterfaceDeclaration");
  }
  n(_1t, "isEsModuleType");
  function Are(t) {
    return t.importKind === "type" || t.importKind === "typeof";
  }
  n(Are, "hasTypeImportKind");
  var L1t = {
    const: "declare export var",
    let: "declare export var",
    type: "export type",
    interface: "export interface"
  };
  function B1t(t, e) {
    let s = [], r = [];
    for (let i = 0; i < t.length; i++)
      (e(t[i], i, t) ? s : r).push(t[i]);
    return [s, r];
  }
  n(B1t, "partition");
  var M1t = /\*?\s*@((?:no)?flow)\b/, F1t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "FlowParserMixin");
    }
    constructor(...s) {
      super(...s), this.flowPragma = void 0;
    }
    getScopeHandler() {
      return pM;
    }
    shouldParseTypes() {
      return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
    }
    finishToken(s, r) {
      s !== 134 && s !== 13 && s !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(s, r);
    }
    addComment(s) {
      if (this.flowPragma === void 0) {
        let r = M1t.exec(s.value);
        if (r) if (r[1] === "flow")
          this.flowPragma = "flow";
        else if (r[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
      }
      super.addComment(s);
    }
    flowParseTypeInitialiser(s) {
      let r = this.state.inType;
      this.state.inType = !0, this.expect(s || 14);
      let i = this.flowParseType();
      return this.state.inType = r, i;
    }
    flowParsePredicate() {
      let s = this.startNode(), r = this.state.startLoc;
      return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > r.index + 1 && this.raise(Mt.UnexpectedSpaceBetweenModuloChecks,
      r), this.eat(10) ? (s.value = super.parseExpression(), this.expect(11), this.finishNode(s, "DeclaredPredicate")) : this.finishNode(s, "\
InferredPredicate");
    }
    flowParseTypeAndPredicateInitialiser() {
      let s = this.state.inType;
      this.state.inType = !0, this.expect(14);
      let r = null, i = null;
      return this.match(54) ? (this.state.inType = s, i = this.flowParsePredicate()) : (r = this.flowParseType(), this.state.inType = s, this.
      match(54) && (i = this.flowParsePredicate())), [r, i];
    }
    flowParseDeclareClass(s) {
      return this.next(), this.flowParseInterfaceish(s, !0), this.finishNode(s, "DeclareClass");
    }
    flowParseDeclareFunction(s) {
      this.next();
      let r = s.id = this.parseIdentifier(), i = this.startNode(), a = this.startNode();
      this.match(47) ? i.typeParameters = this.flowParseTypeParameterDeclaration() : i.typeParameters = null, this.expect(10);
      let o = this.flowParseFunctionTypeParams();
      return i.params = o.params, i.rest = o.rest, i.this = o._this, this.expect(11), [i.returnType, s.predicate] = this.flowParseTypeAndPredicateInitialiser(),
      a.typeAnnotation = this.finishNode(i, "FunctionTypeAnnotation"), r.typeAnnotation = this.finishNode(a, "TypeAnnotation"), this.resetEndLocation(
      r), this.semicolon(), this.scope.declareName(s.id.name, 2048, s.id.loc.start), this.finishNode(s, "DeclareFunction");
    }
    flowParseDeclare(s, r) {
      if (this.match(80))
        return this.flowParseDeclareClass(s);
      if (this.match(68))
        return this.flowParseDeclareFunction(s);
      if (this.match(74))
        return this.flowParseDeclareVariable(s);
      if (this.eatContextual(127))
        return this.match(16) ? this.flowParseDeclareModuleExports(s) : (r && this.raise(Mt.NestedDeclareModule, this.state.lastTokStartLoc),
        this.flowParseDeclareModule(s));
      if (this.isContextual(130))
        return this.flowParseDeclareTypeAlias(s);
      if (this.isContextual(131))
        return this.flowParseDeclareOpaqueType(s);
      if (this.isContextual(129))
        return this.flowParseDeclareInterface(s);
      if (this.match(82))
        return this.flowParseDeclareExportDeclaration(s, r);
      this.unexpected();
    }
    flowParseDeclareVariable(s) {
      return this.next(), s.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(s.id.name, 5, s.id.loc.start), this.semicolon(),
      this.finishNode(s, "DeclareVariable");
    }
    flowParseDeclareModule(s) {
      this.scope.enter(0), this.match(134) ? s.id = super.parseExprAtom() : s.id = this.parseIdentifier();
      let r = s.body = this.startNode(), i = r.body = [];
      for (this.expect(5); !this.match(8); ) {
        let l = this.startNode();
        this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(Mt.InvalidNonTypeImportInDeclareModule, this.
        state.lastTokStartLoc), super.parseImport(l)) : (this.expectContextual(125, Mt.UnsupportedStatementInDeclareModule), l = this.flowParseDeclare(
        l, !0)), i.push(l);
      }
      this.scope.exit(), this.expect(8), this.finishNode(r, "BlockStatement");
      let a = null, o = !1;
      return i.forEach((l) => {
        _1t(l) ? (a === "CommonJS" && this.raise(Mt.AmbiguousDeclareModuleKind, l), a = "ES") : l.type === "DeclareModuleExports" && (o && this.
        raise(Mt.DuplicateDeclareModuleExports, l), a === "ES" && this.raise(Mt.AmbiguousDeclareModuleKind, l), a = "CommonJS", o = !0);
      }), s.kind = a || "CommonJS", this.finishNode(s, "DeclareModule");
    }
    flowParseDeclareExportDeclaration(s, r) {
      if (this.expect(82), this.eat(65))
        return this.match(68) || this.match(80) ? s.declaration = this.flowParseDeclare(this.startNode()) : (s.declaration = this.flowParseType(),
        this.semicolon()), s.default = !0, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !r) {
        let i = this.state.value;
        throw this.raise(Mt.UnsupportedDeclareExportKind, this.state.startLoc, {
          unsupportedExportKind: i,
          suggestion: L1t[i]
        });
      }
      if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
        return s.declaration = this.flowParseDeclare(this.startNode()), s.default = !1, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
        return s = this.parseExport(s, null), s.type === "ExportNamedDeclaration" && (s.type = "ExportDeclaration", s.default = !1, delete s.
        exportKind), s.type = "Declare" + s.type, s;
      this.unexpected();
    }
    flowParseDeclareModuleExports(s) {
      return this.next(), this.expectContextual(111), s.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(s,
      "DeclareModuleExports");
    }
    flowParseDeclareTypeAlias(s) {
      this.next();
      let r = this.flowParseTypeAlias(s);
      return r.type = "DeclareTypeAlias", r;
    }
    flowParseDeclareOpaqueType(s) {
      this.next();
      let r = this.flowParseOpaqueType(s, !0);
      return r.type = "DeclareOpaqueType", r;
    }
    flowParseDeclareInterface(s) {
      return this.next(), this.flowParseInterfaceish(s, !1), this.finishNode(s, "DeclareInterface");
    }
    flowParseInterfaceish(s, r) {
      if (s.id = this.flowParseRestrictedIdentifier(!r, !0), this.scope.declareName(s.id.name, r ? 17 : 8201, s.id.loc.start), this.match(47) ?
      s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (!r && this.eat(12));
      if (r) {
        if (s.implements = [], s.mixins = [], this.eatContextual(117))
          do
            s.mixins.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
        if (this.eatContextual(113))
          do
            s.implements.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
      }
      s.body = this.flowParseObjectType({
        allowStatic: r,
        allowExact: !1,
        allowSpread: !1,
        allowProto: r,
        allowInexact: !1
      });
    }
    flowParseInterfaceExtends() {
      let s = this.startNode();
      return s.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? s.typeParameters = this.flowParseTypeParameterInstantiation() :
      s.typeParameters = null, this.finishNode(s, "InterfaceExtends");
    }
    flowParseInterface(s) {
      return this.flowParseInterfaceish(s, !1), this.finishNode(s, "InterfaceDeclaration");
    }
    checkNotUnderscore(s) {
      s === "_" && this.raise(Mt.UnexpectedReservedUnderscore, this.state.startLoc);
    }
    checkReservedType(s, r, i) {
      O1t.has(s) && this.raise(i ? Mt.AssignReservedType : Mt.UnexpectedReservedType, r, {
        reservedType: s
      });
    }
    flowParseRestrictedIdentifier(s, r) {
      return this.checkReservedType(this.state.value, this.state.startLoc, r), this.parseIdentifier(s);
    }
    flowParseTypeAlias(s) {
      return s.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.start), this.match(47) ? s.
      typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.right = this.flowParseTypeInitialiser(29), this.
      semicolon(), this.finishNode(s, "TypeAlias");
    }
    flowParseOpaqueType(s, r) {
      return this.expectContextual(130), s.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.
      start), this.match(47) ? s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.supertype = null, this.
      match(14) && (s.supertype = this.flowParseTypeInitialiser(14)), s.impltype = null, r || (s.impltype = this.flowParseTypeInitialiser(29)),
      this.semicolon(), this.finishNode(s, "OpaqueType");
    }
    flowParseTypeParameter(s = !1) {
      let r = this.state.startLoc, i = this.startNode(), a = this.flowParseVariance(), o = this.flowParseTypeAnnotatableIdentifier();
      return i.name = o.name, i.variance = a, i.bound = o.typeAnnotation, this.match(29) ? (this.eat(29), i.default = this.flowParseType()) :
      s && this.raise(Mt.MissingTypeParamDefault, r), this.finishNode(i, "TypeParameter");
    }
    flowParseTypeParameterDeclaration() {
      let s = this.state.inType, r = this.startNode();
      r.params = [], this.state.inType = !0, this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = !1;
      do {
        let a = this.flowParseTypeParameter(i);
        r.params.push(a), a.default && (i = !0), this.match(48) || this.expect(12);
      } while (!this.match(48));
      return this.expect(48), this.state.inType = s, this.finishNode(r, "TypeParameterDeclaration");
    }
    flowInTopLevelContext(s) {
      if (this.curContext() !== er.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    flowParseTypeParameterInstantiationInExpression() {
      if (this.reScan_lt() === 47)
        return this.flowParseTypeParameterInstantiation();
    }
    flowParseTypeParameterInstantiation() {
      let s = this.startNode(), r = this.state.inType;
      return this.state.inType = !0, s.params = [], this.flowInTopLevelContext(() => {
        this.expect(47);
        let i = this.state.noAnonFunctionType;
        for (this.state.noAnonFunctionType = !1; !this.match(48); )
          s.params.push(this.flowParseType()), this.match(48) || this.expect(12);
        this.state.noAnonFunctionType = i;
      }), this.state.inType = r, !this.state.inType && this.curContext() === er.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(
      s, "TypeParameterInstantiation");
    }
    flowParseTypeParameterInstantiationCallOrNew() {
      if (this.reScan_lt() !== 47) return;
      let s = this.startNode(), r = this.state.inType;
      for (s.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
        s.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
      return this.expect(48), this.state.inType = r, this.finishNode(s, "TypeParameterInstantiation");
    }
    flowParseInterfaceType() {
      let s = this.startNode();
      if (this.expectContextual(129), s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      return s.body = this.flowParseObjectType({
        allowStatic: !1,
        allowExact: !1,
        allowSpread: !1,
        allowProto: !1,
        allowInexact: !1
      }), this.finishNode(s, "InterfaceTypeAnnotation");
    }
    flowParseObjectPropertyKey() {
      return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(!0);
    }
    flowParseObjectTypeIndexer(s, r, i) {
      return s.static = r, this.lookahead().type === 14 ? (s.id = this.flowParseObjectPropertyKey(), s.key = this.flowParseTypeInitialiser()) :
      (s.id = null, s.key = this.flowParseType()), this.expect(3), s.value = this.flowParseTypeInitialiser(), s.variance = i, this.finishNode(
      s, "ObjectTypeIndexer");
    }
    flowParseObjectTypeInternalSlot(s, r) {
      return s.static = r, s.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (s.method =
      !0, s.optional = !1, s.value = this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start))) : (s.method = !1, this.eat(17) && (s.
      optional = !0), s.value = this.flowParseTypeInitialiser()), this.finishNode(s, "ObjectTypeInternalSlot");
    }
    flowParseObjectTypeMethodish(s) {
      for (s.params = [], s.rest = null, s.typeParameters = null, s.this = null, this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()),
      this.expect(10), this.match(78) && (s.this = this.flowParseFunctionTypeParam(!0), s.this.name = null, this.match(11) || this.expect(12)); !this.
      match(11) && !this.match(21); )
        s.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (s.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), s.returnType = this.flowParseTypeInitialiser(),
      this.finishNode(s, "FunctionTypeAnnotation");
    }
    flowParseObjectTypeCallProperty(s, r) {
      let i = this.startNode();
      return s.static = r, s.value = this.flowParseObjectTypeMethodish(i), this.finishNode(s, "ObjectTypeCallProperty");
    }
    flowParseObjectType({
      allowStatic: s,
      allowExact: r,
      allowSpread: i,
      allowProto: a,
      allowInexact: o
    }) {
      let l = this.state.inType;
      this.state.inType = !0;
      let u = this.startNode();
      u.callProperties = [], u.properties = [], u.indexers = [], u.internalSlots = [];
      let c, p, h = !1;
      for (r && this.match(6) ? (this.expect(6), c = 9, p = !0) : (this.expect(5), c = 8, p = !1), u.exact = p; !this.match(c); ) {
        let d = !1, m = null, y = null, T = this.startNode();
        if (a && this.isContextual(118)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), m = this.state.startLoc, s = !1);
        }
        if (s && this.isContextual(106)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), d = !0);
        }
        let b = this.flowParseVariance();
        if (this.eat(0))
          m != null && this.unexpected(m), this.eat(0) ? (b && this.unexpected(b.loc.start), u.internalSlots.push(this.flowParseObjectTypeInternalSlot(
          T, d))) : u.indexers.push(this.flowParseObjectTypeIndexer(T, d, b));
        else if (this.match(10) || this.match(47))
          m != null && this.unexpected(m), b && this.unexpected(b.loc.start), u.callProperties.push(this.flowParseObjectTypeCallProperty(T, d));
        else {
          let E = "init";
          if (this.isContextual(99) || this.isContextual(104)) {
            let W = this.lookahead();
            Dre(W.type) && (E = this.state.value, this.next());
          }
          let V = this.flowParseObjectTypeProperty(T, d, m, b, E, i, o ?? !p);
          V === null ? (h = !0, y = this.state.lastTokStartLoc) : u.properties.push(V);
        }
        this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(Mt.UnexpectedExplicitInexactInObject, y);
      }
      this.expect(c), i && (u.inexact = h);
      let f = this.finishNode(u, "ObjectTypeAnnotation");
      return this.state.inType = l, f;
    }
    flowParseObjectTypeProperty(s, r, i, a, o, l, u) {
      if (this.eat(21))
        return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (l ? u || this.raise(Mt.InexactInsideExact, this.state.lastTokStartLoc) :
        this.raise(Mt.InexactInsideNonObject, this.state.lastTokStartLoc), a && this.raise(Mt.InexactVariance, a), null) : (l || this.raise(
        Mt.UnexpectedSpreadType, this.state.lastTokStartLoc), i != null && this.unexpected(i), a && this.raise(Mt.SpreadVariance, a), s.argument =
        this.flowParseType(), this.finishNode(s, "ObjectTypeSpreadProperty"));
      {
        s.key = this.flowParseObjectPropertyKey(), s.static = r, s.proto = i != null, s.kind = o;
        let c = !1;
        return this.match(47) || this.match(10) ? (s.method = !0, i != null && this.unexpected(i), a && this.unexpected(a.loc.start), s.value =
        this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start)), (o === "get" || o === "set") && this.flowCheckGetterSetterParams(s),
        !l && s.key.name === "constructor" && s.value.this && this.raise(Mt.ThisParamBannedInConstructor, s.value.this)) : (o !== "init" && this.
        unexpected(), s.method = !1, this.eat(17) && (c = !0), s.value = this.flowParseTypeInitialiser(), s.variance = a), s.optional = c, this.
        finishNode(s, "ObjectTypeProperty");
      }
    }
    flowCheckGetterSetterParams(s) {
      let r = s.kind === "get" ? 0 : 1, i = s.value.params.length + (s.value.rest ? 1 : 0);
      s.value.this && this.raise(s.kind === "get" ? Mt.GetterMayNotHaveThisParam : Mt.SetterMayNotHaveThisParam, s.value.this), i !== r && this.
      raise(s.kind === "get" ? ee.BadGetterArity : ee.BadSetterArity, s), s.kind === "set" && s.value.rest && this.raise(ee.BadSetterRestParameter,
      s);
    }
    flowObjectTypeSemicolon() {
      !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
    }
    flowParseQualifiedTypeIdentifier(s, r) {
      var i;
      (i = s) != null || (s = this.state.startLoc);
      let a = r || this.flowParseRestrictedIdentifier(!0);
      for (; this.eat(16); ) {
        let o = this.startNodeAt(s);
        o.qualification = a, o.id = this.flowParseRestrictedIdentifier(!0), a = this.finishNode(o, "QualifiedTypeIdentifier");
      }
      return a;
    }
    flowParseGenericType(s, r) {
      let i = this.startNodeAt(s);
      return i.typeParameters = null, i.id = this.flowParseQualifiedTypeIdentifier(s, r), this.match(47) && (i.typeParameters = this.flowParseTypeParameterInstantiation()),
      this.finishNode(i, "GenericTypeAnnotation");
    }
    flowParseTypeofType() {
      let s = this.startNode();
      return this.expect(87), s.argument = this.flowParsePrimaryType(), this.finishNode(s, "TypeofTypeAnnotation");
    }
    flowParseTupleType() {
      let s = this.startNode();
      for (s.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (s.types.push(this.flowParseType()), !this.match(
      3)); )
        this.expect(12);
      return this.expect(3), this.finishNode(s, "TupleTypeAnnotation");
    }
    flowParseFunctionTypeParam(s) {
      let r = null, i = !1, a = null, o = this.startNode(), l = this.lookahead(), u = this.state.type === 78;
      return l.type === 14 || l.type === 17 ? (u && !s && this.raise(Mt.ThisParamMustBeFirst, o), r = this.parseIdentifier(u), this.eat(17) &&
      (i = !0, u && this.raise(Mt.ThisParamMayNotBeOptional, o)), a = this.flowParseTypeInitialiser()) : a = this.flowParseType(), o.name = r,
      o.optional = i, o.typeAnnotation = a, this.finishNode(o, "FunctionTypeParam");
    }
    reinterpretTypeAsFunctionTypeParam(s) {
      let r = this.startNodeAt(s.loc.start);
      return r.name = null, r.optional = !1, r.typeAnnotation = s, this.finishNode(r, "FunctionTypeParam");
    }
    flowParseFunctionTypeParams(s = []) {
      let r = null, i = null;
      for (this.match(78) && (i = this.flowParseFunctionTypeParam(!0), i.name = null, this.match(11) || this.expect(12)); !this.match(11) &&
      !this.match(21); )
        s.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (r = this.flowParseFunctionTypeParam(!1)), {
        params: s,
        rest: r,
        _this: i
      };
    }
    flowIdentToTypeAnnotation(s, r, i) {
      switch (i.name) {
        case "any":
          return this.finishNode(r, "AnyTypeAnnotation");
        case "bool":
        case "boolean":
          return this.finishNode(r, "BooleanTypeAnnotation");
        case "mixed":
          return this.finishNode(r, "MixedTypeAnnotation");
        case "empty":
          return this.finishNode(r, "EmptyTypeAnnotation");
        case "number":
          return this.finishNode(r, "NumberTypeAnnotation");
        case "string":
          return this.finishNode(r, "StringTypeAnnotation");
        case "symbol":
          return this.finishNode(r, "SymbolTypeAnnotation");
        default:
          return this.checkNotUnderscore(i.name), this.flowParseGenericType(s, i);
      }
    }
    flowParsePrimaryType() {
      let s = this.state.startLoc, r = this.startNode(), i, a, o = !1, l = 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, a = this.flowParseTupleType(), this.state.noAnonFunctionType = l, a;
        case 47: {
          let u = this.startNode();
          return u.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), i = this.flowParseFunctionTypeParams(), u.params =
          i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), this.finishNode(
          u, "FunctionTypeAnnotation");
        }
        case 10: {
          let u = this.startNode();
          if (this.next(), !this.match(11) && !this.match(21))
            if (tr(this.state.type) || this.match(78)) {
              let c = this.lookahead().type;
              o = c !== 17 && c !== 14;
            } else
              o = !0;
          if (o) {
            if (this.state.noAnonFunctionType = !1, a = this.flowParseType(), this.state.noAnonFunctionType = l, this.state.noAnonFunctionType ||
            !(this.match(12) || this.match(11) && this.lookahead().type === 19))
              return this.expect(11), a;
            this.eat(12);
          }
          return a ? i = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]) : i = this.flowParseFunctionTypeParams(),
          u.params = i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), u.typeParameters =
          null, this.finishNode(u, "FunctionTypeAnnotation");
        }
        case 134:
          return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
        case 85:
        case 86:
          return r.value = this.match(85), this.next(), this.finishNode(r, "BooleanLiteralTypeAnnotation");
        case 53:
          if (this.state.value === "-") {
            if (this.next(), this.match(135))
              return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", r);
            if (this.match(136))
              return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", r);
            throw this.raise(Mt.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(r, "VoidTypeAnnotation");
        case 84:
          return this.next(), this.finishNode(r, "NullLiteralTypeAnnotation");
        case 78:
          return this.next(), this.finishNode(r, "ThisTypeAnnotation");
        case 55:
          return this.next(), this.finishNode(r, "ExistsTypeAnnotation");
        case 87:
          return this.flowParseTypeofType();
        default:
          if (LM(this.state.type)) {
            let u = gp(this.state.type);
            return this.next(), super.createIdentifier(r, u);
          } else if (tr(this.state.type))
            return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(s, r, this.parseIdentifier());
      }
      this.unexpected();
    }
    flowParsePostfixType() {
      let s = this.state.startLoc, r = this.flowParsePrimaryType(), i = !1;
      for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
        let a = this.startNodeAt(s), o = this.eat(18);
        i = i || o, this.expect(0), !o && this.match(3) ? (a.elementType = r, this.next(), r = this.finishNode(a, "ArrayTypeAnnotation")) : (a.
        objectType = r, a.indexType = this.flowParseType(), this.expect(3), i ? (a.optional = o, r = this.finishNode(a, "OptionalIndexedAcce\
ssType")) : r = this.finishNode(a, "IndexedAccessType"));
      }
      return r;
    }
    flowParsePrefixType() {
      let s = this.startNode();
      return this.eat(17) ? (s.typeAnnotation = this.flowParsePrefixType(), this.finishNode(s, "NullableTypeAnnotation")) : this.flowParsePostfixType();
    }
    flowParseAnonFunctionWithoutParens() {
      let s = this.flowParsePrefixType();
      if (!this.state.noAnonFunctionType && this.eat(19)) {
        let r = this.startNodeAt(s.loc.start);
        return r.params = [this.reinterpretTypeAsFunctionTypeParam(s)], r.rest = null, r.this = null, r.returnType = this.flowParseType(), r.
        typeParameters = null, this.finishNode(r, "FunctionTypeAnnotation");
      }
      return s;
    }
    flowParseIntersectionType() {
      let s = this.startNode();
      this.eat(45);
      let r = this.flowParseAnonFunctionWithoutParens();
      for (s.types = [r]; this.eat(45); )
        s.types.push(this.flowParseAnonFunctionWithoutParens());
      return s.types.length === 1 ? r : this.finishNode(s, "IntersectionTypeAnnotation");
    }
    flowParseUnionType() {
      let s = this.startNode();
      this.eat(43);
      let r = this.flowParseIntersectionType();
      for (s.types = [r]; this.eat(43); )
        s.types.push(this.flowParseIntersectionType());
      return s.types.length === 1 ? r : this.finishNode(s, "UnionTypeAnnotation");
    }
    flowParseType() {
      let s = this.state.inType;
      this.state.inType = !0;
      let r = this.flowParseUnionType();
      return this.state.inType = s, r;
    }
    flowParseTypeOrImplicitInstantiation() {
      if (this.state.type === 132 && this.state.value === "_") {
        let s = this.state.startLoc, r = this.parseIdentifier();
        return this.flowParseGenericType(s, r);
      } else
        return this.flowParseType();
    }
    flowParseTypeAnnotation() {
      let s = this.startNode();
      return s.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(s, "TypeAnnotation");
    }
    flowParseTypeAnnotatableIdentifier(s) {
      let r = s ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
      return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r)), r;
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    flowParseVariance() {
      let s = null;
      return this.match(53) ? (s = this.startNode(), this.state.value === "+" ? s.kind = "plus" : s.kind = "minus", this.next(), this.finishNode(
      s, "Variance")) : s;
    }
    parseFunctionBody(s, r, i = !1) {
      if (r) {
        this.forwardNoArrowParamsConversionAt(s, () => super.parseFunctionBody(s, !0, i));
        return;
      }
      super.parseFunctionBody(s, !1, i);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      if (this.match(14)) {
        let a = this.startNode();
        [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.returnType = a.typeAnnotation ? this.finishNode(a, "\
TypeAnnotation") : null;
      }
      return super.parseFunctionBodyAndFinish(s, r, i);
    }
    parseStatementLike(s) {
      if (this.state.strict && this.isContextual(129)) {
        let i = this.lookahead();
        if (Oo(i.type)) {
          let a = this.startNode();
          return this.next(), this.flowParseInterface(a);
        }
      } else if (this.isContextual(126)) {
        let i = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(i);
      }
      let r = super.parseStatementLike(s);
      return this.flowPragma === void 0 && !this.isValidDirective(r) && (this.flowPragma = null), r;
    }
    parseExpressionStatement(s, r, i) {
      if (r.type === "Identifier") {
        if (r.name === "declare") {
          if (this.match(80) || tr(this.state.type) || this.match(68) || this.match(74) || this.match(82))
            return this.flowParseDeclare(s);
        } else if (tr(this.state.type)) {
          if (r.name === "interface")
            return this.flowParseInterface(s);
          if (r.name === "type")
            return this.flowParseTypeAlias(s);
          if (r.name === "opaque")
            return this.flowParseOpaqueType(s, !1);
        }
      }
      return super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      let {
        type: s
      } = this.state;
      return s === 126 || xre(s) ? !this.state.containsEsc : super.shouldParseExportDeclaration();
    }
    isExportDefaultSpecifier() {
      let {
        type: s
      } = this.state;
      return s === 126 || xre(s) ? this.state.containsEsc : super.isExportDefaultSpecifier();
    }
    parseExportDefaultExpression() {
      if (this.isContextual(126)) {
        let s = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(s);
      }
      return super.parseExportDefaultExpression();
    }
    parseConditional(s, r, i) {
      if (!this.match(17)) return s;
      if (this.state.maybeInArrowParameters) {
        let f = this.lookaheadCharCode();
        if (f === 44 || f === 61 || f === 58 || f === 41)
          return this.setOptionalParametersError(i), s;
      }
      this.expect(17);
      let a = this.state.clone(), o = this.state.noArrowAt, l = this.startNodeAt(r), {
        consequent: u,
        failed: c
      } = this.tryParseConditionalConsequent(), [p, h] = this.getArrowLikeExpressions(u);
      if (c || h.length > 0) {
        let f = [...o];
        if (h.length > 0) {
          this.state = a, this.state.noArrowAt = f;
          for (let d = 0; d < h.length; d++)
            f.push(h[d].start);
          ({
            consequent: u,
            failed: c
          } = this.tryParseConditionalConsequent()), [p, h] = this.getArrowLikeExpressions(u);
        }
        c && p.length > 1 && this.raise(Mt.AmbiguousConditionalArrow, a.startLoc), c && p.length === 1 && (this.state = a, f.push(p[0].start),
        this.state.noArrowAt = f, {
          consequent: u,
          failed: c
        } = this.tryParseConditionalConsequent());
      }
      return this.getArrowLikeExpressions(u, !0), this.state.noArrowAt = o, this.expect(14), l.test = s, l.consequent = u, l.alternate = this.
      forwardNoArrowParamsConversionAt(l, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(l, "ConditionalExpression");
    }
    tryParseConditionalConsequent() {
      this.state.noArrowParamsConversionAt.push(this.state.start);
      let s = this.parseMaybeAssignAllowIn(), r = !this.match(14);
      return this.state.noArrowParamsConversionAt.pop(), {
        consequent: s,
        failed: r
      };
    }
    getArrowLikeExpressions(s, r) {
      let i = [s], a = [];
      for (; i.length !== 0; ) {
        let o = i.pop();
        o.type === "ArrowFunctionExpression" && o.body.type !== "BlockStatement" ? (o.typeParameters || !o.returnType ? this.finishArrowValidation(
        o) : a.push(o), i.push(o.body)) : o.type === "ConditionalExpression" && (i.push(o.consequent), i.push(o.alternate));
      }
      return r ? (a.forEach((o) => this.finishArrowValidation(o)), [a, []]) : B1t(a, (o) => o.params.every((l) => this.isAssignable(l, !0)));
    }
    finishArrowValidation(s) {
      var r;
      this.toAssignableList(s.params, (r = s.extra) == null ? void 0 : r.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(s, !1,
      !0), this.scope.exit();
    }
    forwardNoArrowParamsConversionAt(s, r) {
      let i;
      return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? (this.state.noArrowParamsConversionAt.push(this.
      state.start), i = r(), this.state.noArrowParamsConversionAt.pop()) : i = r(), i;
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = i, a.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(a, "TypeCastExpression");
      }
      return i;
    }
    assertModuleNodeAllowed(s) {
      s.type === "ImportDeclaration" && (s.importKind === "type" || s.importKind === "typeof") || s.type === "ExportNamedDeclaration" && s.exportKind ===
      "type" || s.type === "ExportAllDeclaration" && s.exportKind === "type" || super.assertModuleNodeAllowed(s);
    }
    parseExportDeclaration(s) {
      if (this.isContextual(130)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.match(5) ? (s.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(s), null) : this.flowParseTypeAlias(
        r);
      } else if (this.isContextual(131)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseOpaqueType(r, !1);
      } else if (this.isContextual(129)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseInterface(r);
      } else if (this.isContextual(126)) {
        s.exportKind = "value";
        let r = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(r);
      } else
        return super.parseExportDeclaration(s);
    }
    eatExportStar(s) {
      return super.eatExportStar(s) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (s.exportKind = "type", this.next(), this.
      next(), !0) : !1;
    }
    maybeParseExportNamespaceSpecifier(s) {
      let {
        startLoc: r
      } = this.state, i = super.maybeParseExportNamespaceSpecifier(s);
      return i && s.exportKind === "type" && this.unexpected(r), i;
    }
    parseClassId(s, r, i) {
      super.parseClassId(s, r, i), this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration());
    }
    parseClassMember(s, r, i) {
      let {
        startLoc: a
      } = this.state;
      if (this.isContextual(125)) {
        if (super.parseClassMemberFromModifier(s, r))
          return;
        r.declare = !0;
      }
      super.parseClassMember(s, r, i), r.declare && (r.type !== "ClassProperty" && r.type !== "ClassPrivateProperty" && r.type !== "Property\
Definition" ? this.raise(Mt.DeclareClassElement, a) : r.value && this.raise(Mt.DeclareClassFieldInitializer, r.value));
    }
    isIterator(s) {
      return s === "iterator" || s === "asyncIterator";
    }
    readIterator() {
      let s = super.readWord1(), r = "@@" + s;
      (!this.isIterator(s) || !this.state.inType) && this.raise(ee.InvalidIdentifier, this.state.curPosition(), {
        identifierName: r
      }), this.finishToken(132, r);
    }
    getTokenFromCode(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      s === 123 && r === 124 ? this.finishOp(6, 2) : this.state.inType && (s === 62 || s === 60) ? this.finishOp(s === 62 ? 48 : 47, 1) : this.
      state.inType && s === 63 ? r === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : g1t(s, r, this.input.charCodeAt(this.state.pos + 2)) ?
      (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(s);
    }
    isAssignable(s, r) {
      return s.type === "TypeCastExpression" ? this.isAssignable(s.expression, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      !r && s.type === "AssignmentExpression" && s.left.type === "TypeCastExpression" && (s.left = this.typeCastToParameter(s.left)), super.
      toAssignable(s, r);
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    toReferencedList(s, r) {
      for (let a = 0; a < s.length; a++) {
        var i;
        let o = s[a];
        o && o.type === "TypeCastExpression" && !((i = o.extra) != null && i.parenthesized) && (s.length > 1 || !r) && this.raise(Mt.TypeCastInPattern,
        o.typeAnnotation);
      }
      return s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return r && !this.state.maybeInArrowParameters && this.toReferencedList(o.elements), o;
    }
    isValidLVal(s, r, i) {
      return s === "TypeCastExpression" || super.isValidLVal(s, r, i);
    }
    parseClassProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(14) || super.isClassProperty();
    }
    isNonstaticConstructor(s) {
      return !this.match(14) && super.isNonstaticConstructor(s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      if (r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassMethod(s, r, i, a, o, l), r.params && o) {
        let u = r.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(Mt.ThisParamBannedInConstructor, r);
      } else if (r.type === "MethodDefinition" && o && r.value.params) {
        let u = r.value.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(Mt.ThisParamBannedInConstructor, r);
      }
    }
    pushClassPrivateMethod(s, r, i, a) {
      r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassPrivateMethod(s, r, i, a);
    }
    parseClassSuper(s) {
      if (super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression()),
      this.isContextual(113)) {
        this.next();
        let r = s.implements = [];
        do {
          let i = this.startNode();
          i.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? i.typeParameters = this.flowParseTypeParameterInstantiation() : i.
          typeParameters = null, r.push(this.finishNode(i, "ClassImplements"));
        } while (this.eat(12));
      }
    }
    checkGetterSetterParams(s) {
      super.checkGetterSetterParams(s);
      let r = this.getObjectOrClassMethodParams(s);
      if (r.length > 0) {
        let i = r[0];
        this.isThisParam(i) && s.kind === "get" ? this.raise(Mt.GetterMayNotHaveThisParam, i) : this.isThisParam(i) && this.raise(Mt.SetterMayNotHaveThisParam,
        i);
      }
    }
    parsePropertyNamePrefixOperator(s) {
      s.variance = this.flowParseVariance();
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      s.variance && this.unexpected(s.variance.loc.start), delete s.variance;
      let c;
      this.match(47) && !l && (c = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
      let p = super.parseObjPropValue(s, r, i, a, o, l, u);
      return c && ((p.value || p).typeParameters = c), p;
    }
    parseFunctionParamType(s) {
      return this.eat(17) && (s.type !== "Identifier" && this.raise(Mt.PatternIsOptional, s), this.isThisParam(s) && this.raise(Mt.ThisParamMayNotBeOptional,
      s), s.optional = !0), this.match(14) ? s.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(s) && this.raise(Mt.ThisParamAnnotationRequired,
      s), this.match(29) && this.isThisParam(s) && this.raise(Mt.ThisParamNoDefault, s), this.resetEndLocation(s), s;
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(Mt.TypeBeforeInitializer,
      i.typeAnnotation), i;
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(Mt.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    parseImportSpecifierLocal(s, r, i) {
      r.local = Are(s) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), s.specifiers.push(this.finishImportSpecifier(r,
      i));
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        if (!s) return !0;
        let r = this.lookaheadCharCode();
        return r === 123 || r === 42;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      if (super.applyImportPhase(s, r, i, a), r) {
        if (!i && this.match(65))
          return;
        s.exportKind = i === "type" ? i : "value";
      } else
        i === "type" && this.match(55) && this.unexpected(), s.importKind = i === "type" || i === "typeof" ? i : "value";
    }
    parseImportSpecifier(s, r, i, a, o) {
      let l = s.imported, u = null;
      l.type === "Identifier" && (l.name === "type" ? u = "type" : l.name === "typeof" && (u = "typeof"));
      let c = !1;
      if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
        let h = this.parseIdentifier(!0);
        u !== null && !Oo(this.state.type) ? (s.imported = h, s.importKind = u, s.local = Bu(h)) : (s.imported = l, s.importKind = null, s.local =
        this.parseIdentifier());
      } else {
        if (u !== null && Oo(this.state.type))
          s.imported = this.parseIdentifier(!0), s.importKind = u;
        else {
          if (r)
            throw this.raise(ee.ImportBindingIsString, s, {
              importName: l.value
            });
          s.imported = l, s.importKind = null;
        }
        this.eatContextual(93) ? s.local = this.parseIdentifier() : (c = !0, s.local = Bu(s.imported));
      }
      let p = Are(s);
      return i && p && this.raise(Mt.ImportTypeShorthandOnlyInPureImport, s), (i || p) && this.checkReservedType(s.local.name, s.local.loc.start,
      !0), c && !i && !p && this.checkReservedWord(s.local.name, s.loc.start, !0, !0), this.finishImportSpecifier(s, "ImportSpecifier");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 78:
          return this.parseIdentifier(!0);
        default:
          return super.parseBindingAtom();
      }
    }
    parseFunctionParams(s, r) {
      let i = s.kind;
      i !== "get" && i !== "set" && this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(
      s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), this.match(14) && (s.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      if (this.match(14)) {
        let i = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0, s.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = i;
      }
      return super.parseAsyncArrowFromCallExpression(s, r);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    parseMaybeAssign(s, r) {
      var i;
      let a = null, o;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (a = this.state.clone(), o = this.tryParse(() => super.parseMaybeAssign(s, r), a), !o.error) return o.node;
        let {
          context: c
        } = this.state, p = c[c.length - 1];
        (p === er.j_oTag || p === er.j_expr) && c.pop();
      }
      if ((i = o) != null && i.error || this.match(47)) {
        var l, u;
        a = a || this.state.clone();
        let c, p = this.tryParse((f) => {
          var d;
          c = this.flowParseTypeParameterDeclaration();
          let m = this.forwardNoArrowParamsConversionAt(c, () => {
            let T = super.parseMaybeAssign(s, r);
            return this.resetStartLocationFromNode(T, c), T;
          });
          (d = m.extra) != null && d.parenthesized && f();
          let y = this.maybeUnwrapTypeCastExpression(m);
          return y.type !== "ArrowFunctionExpression" && f(), y.typeParameters = c, this.resetStartLocationFromNode(y, c), m;
        }, a), h = null;
        if (p.node && this.maybeUnwrapTypeCastExpression(p.node).type === "ArrowFunctionExpression") {
          if (!p.error && !p.aborted)
            return p.node.async && this.raise(Mt.UnexpectedTypeParameterBeforeAsyncArrowFunction, c), p.node;
          h = p.node;
        }
        if ((l = o) != null && l.node)
          return this.state = o.failState, o.node;
        if (h)
          return this.state = p.failState, h;
        throw (u = o) != null && u.thrown ? o.error : p.thrown ? p.error : this.raise(Mt.UnexpectedTokenAfterTypeParameter, c);
      }
      return super.parseMaybeAssign(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse(() => {
          let i = this.state.noAnonFunctionType;
          this.state.noAnonFunctionType = !0;
          let a = this.startNode();
          return [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = i, this.canInsertSemicolon() &&
          this.unexpected(), this.match(19) || this.unexpected(), a;
        });
        if (r.thrown) return null;
        r.error && (this.state = r.failState), s.returnType = r.node.typeAnnotation ? this.finishNode(r.node, "TypeAnnotation") : null;
      }
      return super.parseArrow(s);
    }
    shouldParseArrow(s) {
      return this.match(14) || super.shouldParseArrow(s);
    }
    setArrowFunctionParameters(s, r) {
      this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? s.params = r : super.setArrowFunctionParameters(s, r);
    }
    checkParams(s, r, i, a = !0) {
      if (!(i && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)))) {
        for (let o = 0; o < s.params.length; o++)
          this.isThisParam(s.params[o]) && o > 0 && this.raise(Mt.ThisParamMustBeFirst, s.params[o]);
        super.checkParams(s, r, i, a);
      }
    }
    parseParenAndDistinguishExpression(s) {
      return super.parseParenAndDistinguishExpression(s && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)));
    }
    parseSubscripts(s, r, i) {
      if (s.type === "Identifier" && s.name === "async" && this.state.noArrowAt.includes(r.index)) {
        this.next();
        let a = this.startNodeAt(r);
        a.callee = s, a.arguments = super.parseCallExpressionArguments(11), s = this.finishNode(a, "CallExpression");
      } else if (s.type === "Identifier" && s.name === "async" && this.match(47)) {
        let a = this.state.clone(), o = this.tryParse((u) => this.parseAsyncArrowWithTypeParameters(r) || u(), a);
        if (!o.error && !o.aborted) return o.node;
        let l = this.tryParse(() => super.parseSubscripts(s, r, i), a);
        if (l.node && !l.error) return l.node;
        if (o.node)
          return this.state = o.failState, o.node;
        if (l.node)
          return this.state = l.failState, l.node;
        throw o.error || l.error;
      }
      return super.parseSubscripts(s, r, i);
    }
    parseSubscript(s, r, i, a) {
      if (this.match(18) && this.isLookaheadToken_lt()) {
        if (a.optionalChainMember = !0, i)
          return a.stop = !0, s;
        this.next();
        let o = this.startNodeAt(r);
        return o.callee = s, o.typeArguments = this.flowParseTypeParameterInstantiationInExpression(), this.expect(10), o.arguments = this.parseCallExpressionArguments(
        11), o.optional = !0, this.finishCallExpression(o, !0);
      } else if (!i && this.shouldParseTypes() && (this.match(47) || this.match(51))) {
        let o = this.startNodeAt(r);
        o.callee = s;
        let l = this.tryParse(() => (o.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), o.arguments = super.
        parseCallExpressionArguments(11), a.optionalChainMember && (o.optional = !1), this.finishCallExpression(o, a.optionalChainMember)));
        if (l.node)
          return l.error && (this.state = l.failState), l.node;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      super.parseNewCallee(s);
      let r = null;
      this.shouldParseTypes() && this.match(47) && (r = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), s.typeArguments =
      r;
    }
    parseAsyncArrowWithTypeParameters(s) {
      let r = this.startNodeAt(s);
      if (this.parseFunctionParams(r, !1), !!this.parseArrow(r))
        return super.parseArrowExpression(r, void 0, !0);
    }
    readToken_mult_modulo(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 42 && r === 47 && this.state.hasFlowComment) {
        this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
        return;
      }
      super.readToken_mult_modulo(s);
    }
    readToken_pipe_amp(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 124 && r === 125) {
        this.finishOp(9, 2);
        return;
      }
      super.readToken_pipe_amp(s);
    }
    parseTopLevel(s, r) {
      let i = super.parseTopLevel(s, r);
      return this.state.hasFlowComment && this.raise(Mt.UnterminatedFlowComment, this.state.curPosition()), i;
    }
    skipBlockComment() {
      if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
        if (this.state.hasFlowComment)
          throw this.raise(Mt.NestedFlowComment, this.state.startLoc);
        this.hasFlowCommentCompletion();
        let s = this.skipFlowComment();
        s && (this.state.pos += s, this.state.hasFlowComment = !0);
        return;
      }
      return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
    }
    skipFlowComment() {
      let {
        pos: s
      } = this.state, r = 2;
      for (; [32, 9].includes(this.input.charCodeAt(s + r)); )
        r++;
      let i = this.input.charCodeAt(r + s), a = this.input.charCodeAt(r + s + 1);
      return i === 58 && a === 58 ? r + 2 : this.input.slice(r + s, r + s + 12) === "flow-include" ? r + 12 : i === 58 && a !== 58 ? r : !1;
    }
    hasFlowCommentCompletion() {
      if (this.input.indexOf("*/", this.state.pos) === -1)
        throw this.raise(ee.UnterminatedComment, this.state.curPosition());
    }
    flowEnumErrorBooleanMemberNotInitialized(s, {
      enumName: r,
      memberName: i
    }) {
      this.raise(Mt.EnumBooleanMemberNotInitialized, s, {
        memberName: i,
        enumName: r
      });
    }
    flowEnumErrorInvalidMemberInitializer(s, r) {
      return this.raise(r.explicitType ? r.explicitType === "symbol" ? Mt.EnumInvalidMemberInitializerSymbolType : Mt.EnumInvalidMemberInitializerPrimaryType :
      Mt.EnumInvalidMemberInitializerUnknownType, s, r);
    }
    flowEnumErrorNumberMemberNotInitialized(s, r) {
      this.raise(Mt.EnumNumberMemberNotInitialized, s, r);
    }
    flowEnumErrorStringMemberInconsistentlyInitialized(s, r) {
      this.raise(Mt.EnumStringMemberInconsistentlyInitialized, s, r);
    }
    flowEnumMemberInit() {
      let s = this.state.startLoc, r = /* @__PURE__ */ n(() => this.match(12) || this.match(8), "endOfInit");
      switch (this.state.type) {
        case 135: {
          let i = this.parseNumericLiteral(this.state.value);
          return r() ? {
            type: "number",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 134: {
          let i = this.parseStringLiteral(this.state.value);
          return r() ? {
            type: "string",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 85:
        case 86: {
          let i = this.parseBooleanLiteral(this.match(85));
          return r() ? {
            type: "boolean",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        default:
          return {
            type: "invalid",
            loc: s
          };
      }
    }
    flowEnumMemberRaw() {
      let s = this.state.startLoc, r = this.parseIdentifier(!0), i = this.eat(29) ? this.flowEnumMemberInit() : {
        type: "none",
        loc: s
      };
      return {
        id: r,
        init: i
      };
    }
    flowEnumCheckExplicitTypeMismatch(s, r, i) {
      let {
        explicitType: a
      } = r;
      a !== null && a !== i && this.flowEnumErrorInvalidMemberInitializer(s, r);
    }
    flowEnumMembers({
      enumName: s,
      explicitType: r
    }) {
      let i = /* @__PURE__ */ new Set(), a = {
        booleanMembers: [],
        numberMembers: [],
        stringMembers: [],
        defaultedMembers: []
      }, o = !1;
      for (; !this.match(8); ) {
        if (this.eat(21)) {
          o = !0;
          break;
        }
        let l = this.startNode(), {
          id: u,
          init: c
        } = this.flowEnumMemberRaw(), p = u.name;
        if (p === "")
          continue;
        /^[a-z]/.test(p) && this.raise(Mt.EnumInvalidMemberName, u, {
          memberName: p,
          suggestion: p[0].toUpperCase() + p.slice(1),
          enumName: s
        }), i.has(p) && this.raise(Mt.EnumDuplicateMemberName, u, {
          memberName: p,
          enumName: s
        }), i.add(p);
        let h = {
          enumName: s,
          explicitType: r,
          memberName: p
        };
        switch (l.id = u, c.type) {
          case "boolean": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "boolean"), l.init = c.value, a.booleanMembers.push(this.finishNode(l, "EnumBoo\
leanMember"));
            break;
          }
          case "number": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "number"), l.init = c.value, a.numberMembers.push(this.finishNode(l, "EnumNumbe\
rMember"));
            break;
          }
          case "string": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "string"), l.init = c.value, a.stringMembers.push(this.finishNode(l, "EnumStrin\
gMember"));
            break;
          }
          case "invalid":
            throw this.flowEnumErrorInvalidMemberInitializer(c.loc, h);
          case "none":
            switch (r) {
              case "boolean":
                this.flowEnumErrorBooleanMemberNotInitialized(c.loc, h);
                break;
              case "number":
                this.flowEnumErrorNumberMemberNotInitialized(c.loc, h);
                break;
              default:
                a.defaultedMembers.push(this.finishNode(l, "EnumDefaultedMember"));
            }
        }
        this.match(8) || this.expect(12);
      }
      return {
        members: a,
        hasUnknownMembers: o
      };
    }
    flowEnumStringMembers(s, r, {
      enumName: i
    }) {
      if (s.length === 0)
        return r;
      if (r.length === 0)
        return s;
      if (r.length > s.length) {
        for (let a of s)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return r;
      } else {
        for (let a of r)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return s;
      }
    }
    flowEnumParseExplicitType({
      enumName: s
    }) {
      if (!this.eatContextual(102)) return null;
      if (!tr(this.state.type))
        throw this.raise(Mt.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
          enumName: s
        });
      let {
        value: r
      } = this.state;
      return this.next(), r !== "boolean" && r !== "number" && r !== "string" && r !== "symbol" && this.raise(Mt.EnumInvalidExplicitType, this.
      state.startLoc, {
        enumName: s,
        invalidEnumType: r
      }), r;
    }
    flowEnumBody(s, r) {
      let i = r.name, a = r.loc.start, o = this.flowEnumParseExplicitType({
        enumName: i
      });
      this.expect(5);
      let {
        members: l,
        hasUnknownMembers: u
      } = this.flowEnumMembers({
        enumName: i,
        explicitType: o
      });
      switch (s.hasUnknownMembers = u, o) {
        case "boolean":
          return s.explicitType = !0, s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
        case "number":
          return s.explicitType = !0, s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
        case "string":
          return s.explicitType = !0, s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
            enumName: i
          }), this.expect(8), this.finishNode(s, "EnumStringBody");
        case "symbol":
          return s.members = l.defaultedMembers, this.expect(8), this.finishNode(s, "EnumSymbolBody");
        default: {
          let c = /* @__PURE__ */ n(() => (s.members = [], this.expect(8), this.finishNode(s, "EnumStringBody")), "empty");
          s.explicitType = !1;
          let p = l.booleanMembers.length, h = l.numberMembers.length, f = l.stringMembers.length, d = l.defaultedMembers.length;
          if (!p && !h && !f && !d)
            return c();
          if (!p && !h)
            return s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
              enumName: i
            }), this.expect(8), this.finishNode(s, "EnumStringBody");
          if (!h && !f && p >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorBooleanMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
          } else if (!p && !f && h >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorNumberMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
          } else
            return this.raise(Mt.EnumInconsistentMemberValues, a, {
              enumName: i
            }), c();
        }
      }
    }
    flowParseEnumDeclaration(s) {
      let r = this.parseIdentifier();
      return s.id = r, s.body = this.flowEnumBody(this.startNode(), r), this.finishNode(s, "EnumDeclaration");
    }
    jsxParseOpeningElementAfterName(s) {
      return this.shouldParseTypes() && (this.match(47) || this.match(51)) && (s.typeArguments = this.flowParseTypeParameterInstantiationInExpression()),
      super.jsxParseOpeningElementAfterName(s);
    }
    isLookaheadToken_lt() {
      let s = this.nextTokenStart();
      if (this.input.charCodeAt(s) === 60) {
        let r = this.input.charCodeAt(s + 1);
        return r !== 60 && r !== 61;
      }
      return !1;
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    maybeUnwrapTypeCastExpression(s) {
      return s.type === "TypeCastExpression" ? s.expression : s;
    }
  }, "flow"), j1t = {
    __proto__: null,
    quot: '"',
    amp: "&",
    apos: "'",
    lt: "<",
    gt: ">",
    nbsp: "\xA0",
    iexcl: "\xA1",
    cent: "\xA2",
    pound: "\xA3",
    curren: "\xA4",
    yen: "\xA5",
    brvbar: "\xA6",
    sect: "\xA7",
    uml: "\xA8",
    copy: "\xA9",
    ordf: "\xAA",
    laquo: "\xAB",
    not: "\xAC",
    shy: "\xAD",
    reg: "\xAE",
    macr: "\xAF",
    deg: "\xB0",
    plusmn: "\xB1",
    sup2: "\xB2",
    sup3: "\xB3",
    acute: "\xB4",
    micro: "\xB5",
    para: "\xB6",
    middot: "\xB7",
    cedil: "\xB8",
    sup1: "\xB9",
    ordm: "\xBA",
    raquo: "\xBB",
    frac14: "\xBC",
    frac12: "\xBD",
    frac34: "\xBE",
    iquest: "\xBF",
    Agrave: "\xC0",
    Aacute: "\xC1",
    Acirc: "\xC2",
    Atilde: "\xC3",
    Auml: "\xC4",
    Aring: "\xC5",
    AElig: "\xC6",
    Ccedil: "\xC7",
    Egrave: "\xC8",
    Eacute: "\xC9",
    Ecirc: "\xCA",
    Euml: "\xCB",
    Igrave: "\xCC",
    Iacute: "\xCD",
    Icirc: "\xCE",
    Iuml: "\xCF",
    ETH: "\xD0",
    Ntilde: "\xD1",
    Ograve: "\xD2",
    Oacute: "\xD3",
    Ocirc: "\xD4",
    Otilde: "\xD5",
    Ouml: "\xD6",
    times: "\xD7",
    Oslash: "\xD8",
    Ugrave: "\xD9",
    Uacute: "\xDA",
    Ucirc: "\xDB",
    Uuml: "\xDC",
    Yacute: "\xDD",
    THORN: "\xDE",
    szlig: "\xDF",
    agrave: "\xE0",
    aacute: "\xE1",
    acirc: "\xE2",
    atilde: "\xE3",
    auml: "\xE4",
    aring: "\xE5",
    aelig: "\xE6",
    ccedil: "\xE7",
    egrave: "\xE8",
    eacute: "\xE9",
    ecirc: "\xEA",
    euml: "\xEB",
    igrave: "\xEC",
    iacute: "\xED",
    icirc: "\xEE",
    iuml: "\xEF",
    eth: "\xF0",
    ntilde: "\xF1",
    ograve: "\xF2",
    oacute: "\xF3",
    ocirc: "\xF4",
    otilde: "\xF5",
    ouml: "\xF6",
    divide: "\xF7",
    oslash: "\xF8",
    ugrave: "\xF9",
    uacute: "\xFA",
    ucirc: "\xFB",
    uuml: "\xFC",
    yacute: "\xFD",
    thorn: "\xFE",
    yuml: "\xFF",
    OElig: "\u0152",
    oelig: "\u0153",
    Scaron: "\u0160",
    scaron: "\u0161",
    Yuml: "\u0178",
    fnof: "\u0192",
    circ: "\u02C6",
    tilde: "\u02DC",
    Alpha: "\u0391",
    Beta: "\u0392",
    Gamma: "\u0393",
    Delta: "\u0394",
    Epsilon: "\u0395",
    Zeta: "\u0396",
    Eta: "\u0397",
    Theta: "\u0398",
    Iota: "\u0399",
    Kappa: "\u039A",
    Lambda: "\u039B",
    Mu: "\u039C",
    Nu: "\u039D",
    Xi: "\u039E",
    Omicron: "\u039F",
    Pi: "\u03A0",
    Rho: "\u03A1",
    Sigma: "\u03A3",
    Tau: "\u03A4",
    Upsilon: "\u03A5",
    Phi: "\u03A6",
    Chi: "\u03A7",
    Psi: "\u03A8",
    Omega: "\u03A9",
    alpha: "\u03B1",
    beta: "\u03B2",
    gamma: "\u03B3",
    delta: "\u03B4",
    epsilon: "\u03B5",
    zeta: "\u03B6",
    eta: "\u03B7",
    theta: "\u03B8",
    iota: "\u03B9",
    kappa: "\u03BA",
    lambda: "\u03BB",
    mu: "\u03BC",
    nu: "\u03BD",
    xi: "\u03BE",
    omicron: "\u03BF",
    pi: "\u03C0",
    rho: "\u03C1",
    sigmaf: "\u03C2",
    sigma: "\u03C3",
    tau: "\u03C4",
    upsilon: "\u03C5",
    phi: "\u03C6",
    chi: "\u03C7",
    psi: "\u03C8",
    omega: "\u03C9",
    thetasym: "\u03D1",
    upsih: "\u03D2",
    piv: "\u03D6",
    ensp: "\u2002",
    emsp: "\u2003",
    thinsp: "\u2009",
    zwnj: "\u200C",
    zwj: "\u200D",
    lrm: "\u200E",
    rlm: "\u200F",
    ndash: "\u2013",
    mdash: "\u2014",
    lsquo: "\u2018",
    rsquo: "\u2019",
    sbquo: "\u201A",
    ldquo: "\u201C",
    rdquo: "\u201D",
    bdquo: "\u201E",
    dagger: "\u2020",
    Dagger: "\u2021",
    bull: "\u2022",
    hellip: "\u2026",
    permil: "\u2030",
    prime: "\u2032",
    Prime: "\u2033",
    lsaquo: "\u2039",
    rsaquo: "\u203A",
    oline: "\u203E",
    frasl: "\u2044",
    euro: "\u20AC",
    image: "\u2111",
    weierp: "\u2118",
    real: "\u211C",
    trade: "\u2122",
    alefsym: "\u2135",
    larr: "\u2190",
    uarr: "\u2191",
    rarr: "\u2192",
    darr: "\u2193",
    harr: "\u2194",
    crarr: "\u21B5",
    lArr: "\u21D0",
    uArr: "\u21D1",
    rArr: "\u21D2",
    dArr: "\u21D3",
    hArr: "\u21D4",
    forall: "\u2200",
    part: "\u2202",
    exist: "\u2203",
    empty: "\u2205",
    nabla: "\u2207",
    isin: "\u2208",
    notin: "\u2209",
    ni: "\u220B",
    prod: "\u220F",
    sum: "\u2211",
    minus: "\u2212",
    lowast: "\u2217",
    radic: "\u221A",
    prop: "\u221D",
    infin: "\u221E",
    ang: "\u2220",
    and: "\u2227",
    or: "\u2228",
    cap: "\u2229",
    cup: "\u222A",
    int: "\u222B",
    there4: "\u2234",
    sim: "\u223C",
    cong: "\u2245",
    asymp: "\u2248",
    ne: "\u2260",
    equiv: "\u2261",
    le: "\u2264",
    ge: "\u2265",
    sub: "\u2282",
    sup: "\u2283",
    nsub: "\u2284",
    sube: "\u2286",
    supe: "\u2287",
    oplus: "\u2295",
    otimes: "\u2297",
    perp: "\u22A5",
    sdot: "\u22C5",
    lceil: "\u2308",
    rceil: "\u2309",
    lfloor: "\u230A",
    rfloor: "\u230B",
    lang: "\u2329",
    rang: "\u232A",
    loz: "\u25CA",
    spades: "\u2660",
    clubs: "\u2663",
    hearts: "\u2665",
    diams: "\u2666"
  }, rf = Lu`jsx`({
    AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
    MissingClosingTagElement: /* @__PURE__ */ n(({
      openingTagName: t
    }) => `Expected corresponding JSX closing tag for <${t}>.`, "MissingClosingTagElement"),
    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: /* @__PURE__ */ n(({
      unexpected: t,
      HTMLEntity: e
    }) => `Unexpected token \`${t}\`. Did you mean \`${e}\` or \`{'${t}'}\`?`, "UnexpectedToken"),
    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 yp(t) {
    return t ? t.type === "JSXOpeningFragment" || t.type === "JSXClosingFragment" : !1;
  }
  n(yp, "isFragment");
  function bm(t) {
    if (t.type === "JSXIdentifier")
      return t.name;
    if (t.type === "JSXNamespacedName")
      return t.namespace.name + ":" + t.name.name;
    if (t.type === "JSXMemberExpression")
      return bm(t.object) + "." + bm(t.property);
    throw new Error("Node had unexpected type: " + t.type);
  }
  n(bm, "getQualifiedJSXName");
  var R1t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "JSXParserMixin");
    }
    jsxReadToken() {
      let s = "", r = this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(rf.UnterminatedJsxContent, this.state.startLoc);
        let i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 60:
          case 123:
            if (this.state.pos === this.state.start) {
              i === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(143)) : super.getTokenFromCode(i);
              return;
            }
            s += this.input.slice(r, this.state.pos), this.finishToken(142, s);
            return;
          case 38:
            s += this.input.slice(r, this.state.pos), s += this.jsxReadEntity(), r = this.state.pos;
            break;
          case 62:
          case 125:
          default:
            Sm(i) ? (s += this.input.slice(r, this.state.pos), s += this.jsxReadNewLine(!0), r = this.state.pos) : ++this.state.pos;
        }
      }
    }
    jsxReadNewLine(s) {
      let r = this.input.charCodeAt(this.state.pos), i;
      return ++this.state.pos, r === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, i = s ? `
` : `\r
`) : i = String.fromCharCode(r), ++this.state.curLine, this.state.lineStart = this.state.pos, i;
    }
    jsxReadString(s) {
      let r = "", i = ++this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(ee.UnterminatedString, this.state.startLoc);
        let a = this.input.charCodeAt(this.state.pos);
        if (a === s) break;
        a === 38 ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos) : Sm(a) ? (r += this.input.slice(
        i, this.state.pos), r += this.jsxReadNewLine(!1), i = this.state.pos) : ++this.state.pos;
      }
      r += this.input.slice(i, this.state.pos++), this.finishToken(134, r);
    }
    jsxReadEntity() {
      let s = ++this.state.pos;
      if (this.codePointAtPos(this.state.pos) === 35) {
        ++this.state.pos;
        let r = 10;
        this.codePointAtPos(this.state.pos) === 120 && (r = 16, ++this.state.pos);
        let i = this.readInt(r, void 0, !1, "bail");
        if (i !== null && this.codePointAtPos(this.state.pos) === 59)
          return ++this.state.pos, String.fromCodePoint(i);
      } else {
        let r = 0, i = !1;
        for (; r++ < 10 && this.state.pos < this.length && !(i = this.codePointAtPos(this.state.pos) === 59); )
          ++this.state.pos;
        if (i) {
          let a = this.input.slice(s, this.state.pos), o = j1t[a];
          if (++this.state.pos, o)
            return o;
        }
      }
      return this.state.pos = s, "&";
    }
    jsxReadWord() {
      let s, r = this.state.pos;
      do
        s = this.input.charCodeAt(++this.state.pos);
      while (xm(s) || s === 45);
      this.finishToken(141, this.input.slice(r, this.state.pos));
    }
    jsxParseIdentifier() {
      let s = this.startNode();
      return this.match(141) ? s.name = this.state.value : LM(this.state.type) ? s.name = gp(this.state.type) : this.unexpected(), this.next(),
      this.finishNode(s, "JSXIdentifier");
    }
    jsxParseNamespacedName() {
      let s = this.state.startLoc, r = this.jsxParseIdentifier();
      if (!this.eat(14)) return r;
      let i = this.startNodeAt(s);
      return i.namespace = r, i.name = this.jsxParseIdentifier(), this.finishNode(i, "JSXNamespacedName");
    }
    jsxParseElementName() {
      let s = this.state.startLoc, r = this.jsxParseNamespacedName();
      if (r.type === "JSXNamespacedName")
        return r;
      for (; this.eat(16); ) {
        let i = this.startNodeAt(s);
        i.object = r, i.property = this.jsxParseIdentifier(), r = this.finishNode(i, "JSXMemberExpression");
      }
      return r;
    }
    jsxParseAttributeValue() {
      let s;
      switch (this.state.type) {
        case 5:
          return s = this.startNode(), this.setContext(er.brace), this.next(), s = this.jsxParseExpressionContainer(s, er.j_oTag), s.expression.
          type === "JSXEmptyExpression" && this.raise(rf.AttributeIsEmpty, s), s;
        case 143:
        case 134:
          return this.parseExprAtom();
        default:
          throw this.raise(rf.UnsupportedJsxValue, this.state.startLoc);
      }
    }
    jsxParseEmptyExpression() {
      let s = this.startNodeAt(this.state.lastTokEndLoc);
      return this.finishNodeAt(s, "JSXEmptyExpression", this.state.startLoc);
    }
    jsxParseSpreadChild(s) {
      return this.next(), s.expression = this.parseExpression(), this.setContext(er.j_expr), this.state.canStartJSXElement = !0, this.expect(
      8), this.finishNode(s, "JSXSpreadChild");
    }
    jsxParseExpressionContainer(s, r) {
      if (this.match(8))
        s.expression = this.jsxParseEmptyExpression();
      else {
        let i = this.parseExpression();
        s.expression = i;
      }
      return this.setContext(r), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXExpressionContainer");
    }
    jsxParseAttribute() {
      let s = this.startNode();
      return this.match(5) ? (this.setContext(er.brace), this.next(), this.expect(21), s.argument = this.parseMaybeAssignAllowIn(), this.setContext(
      er.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXSpreadAttribute")) : (s.name = this.jsxParseNamespacedName(),
      s.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(s, "JSXAttribute"));
    }
    jsxParseOpeningElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXOpeningFragment") : (r.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(
      r));
    }
    jsxParseOpeningElementAfterName(s) {
      let r = [];
      for (; !this.match(56) && !this.match(144); )
        r.push(this.jsxParseAttribute());
      return s.attributes = r, s.selfClosing = this.eat(56), this.expect(144), this.finishNode(s, "JSXOpeningElement");
    }
    jsxParseClosingElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXClosingFragment") : (r.name = this.jsxParseElementName(), this.expect(144), this.finishNode(
      r, "JSXClosingElement"));
    }
    jsxParseElementAt(s) {
      let r = this.startNodeAt(s), i = [], a = this.jsxParseOpeningElementAt(s), o = null;
      if (!a.selfClosing) {
        e: for (; ; )
          switch (this.state.type) {
            case 143:
              if (s = this.state.startLoc, this.next(), this.eat(56)) {
                o = this.jsxParseClosingElementAt(s);
                break e;
              }
              i.push(this.jsxParseElementAt(s));
              break;
            case 142:
              i.push(this.parseLiteral(this.state.value, "JSXText"));
              break;
            case 5: {
              let l = this.startNode();
              this.setContext(er.brace), this.next(), this.match(21) ? i.push(this.jsxParseSpreadChild(l)) : i.push(this.jsxParseExpressionContainer(
              l, er.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
        yp(a) && !yp(o) && o !== null ? this.raise(rf.MissingClosingTagFragment, o) : !yp(a) && yp(o) ? this.raise(rf.MissingClosingTagElement,
        o, {
          openingTagName: bm(a.name)
        }) : !yp(a) && !yp(o) && bm(o.name) !== bm(a.name) && this.raise(rf.MissingClosingTagElement, o, {
          openingTagName: bm(a.name)
        });
      }
      if (yp(a) ? (r.openingFragment = a, r.closingFragment = o) : (r.openingElement = a, r.closingElement = o), r.children = i, this.match(
      47))
        throw this.raise(rf.UnwrappedAdjacentJSXElements, this.state.startLoc);
      return yp(a) ? this.finishNode(r, "JSXFragment") : this.finishNode(r, "JSXElement");
    }
    jsxParseElement() {
      let s = this.state.startLoc;
      return this.next(), this.jsxParseElementAt(s);
    }
    setContext(s) {
      let {
        context: r
      } = this.state;
      r[r.length - 1] = s;
    }
    parseExprAtom(s) {
      return this.match(143) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(
      143), this.jsxParseElement()) : super.parseExprAtom(s);
    }
    skipSpace() {
      this.curContext().preserveSpace || super.skipSpace();
    }
    getTokenFromCode(s) {
      let r = this.curContext();
      if (r === er.j_expr) {
        this.jsxReadToken();
        return;
      }
      if (r === er.j_oTag || r === er.j_cTag) {
        if (_u(s)) {
          this.jsxReadWord();
          return;
        }
        if (s === 62) {
          ++this.state.pos, this.finishToken(144);
          return;
        }
        if ((s === 34 || s === 39) && r === er.j_oTag) {
          this.jsxReadString(s);
          return;
        }
      }
      if (s === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
        ++this.state.pos, this.finishToken(143);
        return;
      }
      super.getTokenFromCode(s);
    }
    updateContext(s) {
      let {
        context: r,
        type: i
      } = this.state;
      if (i === 56 && s === 143)
        r.splice(-2, 2, er.j_cTag), this.state.canStartJSXElement = !1;
      else if (i === 143)
        r.push(er.j_oTag);
      else if (i === 144) {
        let a = r[r.length - 1];
        a === er.j_oTag && s === 56 || a === er.j_cTag ? (r.pop(), this.state.canStartJSXElement = r[r.length - 1] === er.j_expr) : (this.setContext(
        er.j_expr), this.state.canStartJSXElement = !0);
      } else
        this.state.canStartJSXElement = t1t(i);
    }
  }, "jsx"), EM = class extends B0 {
    static {
      n(this, "TypeScriptScope");
    }
    constructor(...e) {
      super(...e), this.tsNames = /* @__PURE__ */ new Map();
    }
  }, AM = class extends M0 {
    static {
      n(this, "TypeScriptScopeHandler");
    }
    constructor(...e) {
      super(...e), this.importsStack = [];
    }
    createScope(e) {
      return this.importsStack.push(/* @__PURE__ */ new Set()), new EM(e);
    }
    enter(e) {
      e === 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(e);
    }
    exit() {
      let e = super.exit();
      return e === 256 && this.importsStack.pop(), e;
    }
    hasImport(e, s) {
      let r = this.importsStack.length;
      if (this.importsStack[r - 1].has(e))
        return !0;
      if (!s && r > 1) {
        for (let i = 0; i < r - 1; i++)
          if (this.importsStack[i].has(e)) return !0;
      }
      return !1;
    }
    declareName(e, s, r) {
      if (s & 4096) {
        this.hasImport(e, !0) && this.parser.raise(ee.VarRedeclaration, r, {
          identifierName: e
        }), this.importsStack[this.importsStack.length - 1].add(e);
        return;
      }
      let i = this.currentScope(), a = i.tsNames.get(e) || 0;
      if (s & 1024) {
        this.maybeExportDefined(i, e), i.tsNames.set(e, a | 16);
        return;
      }
      super.declareName(e, s, r), s & 2 && (s & 1 || (this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e)), a = a | 1),
      s & 256 && (a = a | 2), s & 512 && (a = a | 4), s & 128 && (a = a | 8), a && i.tsNames.set(e, a);
    }
    isRedeclaredInScope(e, s, r) {
      let i = e.tsNames.get(s);
      if ((i & 2) > 0) {
        if (r & 256) {
          let a = !!(r & 512), o = (i & 4) > 0;
          return a !== o;
        }
        return !0;
      }
      return r & 128 && (i & 8) > 0 ? e.names.get(s) & 2 ? !!(r & 1) : !1 : r & 2 && (i & 1) > 0 ? !0 : super.isRedeclaredInScope(e, s, r);
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      if (this.hasImport(s)) return;
      let r = this.scopeStack.length;
      for (let i = r - 1; i >= 0; i--) {
        let o = this.scopeStack[i].tsNames.get(s);
        if ((o & 1) > 0 || (o & 16) > 0)
          return;
      }
      super.checkLocalExport(e);
    }
  }, Kre = /* @__PURE__ */ n((t) => t.type === "ParenthesizedExpression" ? Kre(t.expression) : t, "unwrapParenthesizedExpression"), vM = class extends PM {
    static {
      n(this, "LValParser");
    }
    toAssignable(e, s = !1) {
      var r, i;
      let a;
      switch ((e.type === "ParenthesizedExpression" || (r = e.extra) != null && r.parenthesized) && (a = Kre(e), s ? a.type === "Identifier" ?
      this.expressionScope.recordArrowParameterBindingError(ee.InvalidParenthesizedAssignment, e) : a.type !== "MemberExpression" && !this.isOptionalMemberExpression(
      a) && this.raise(ee.InvalidParenthesizedAssignment, e) : this.raise(ee.InvalidParenthesizedAssignment, e)), e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          break;
        case "ObjectExpression":
          e.type = "ObjectPattern";
          for (let l = 0, u = e.properties.length, c = u - 1; l < u; l++) {
            var o;
            let p = e.properties[l], h = l === c;
            this.toAssignableObjectExpressionProp(p, h, s), h && p.type === "RestElement" && (o = e.extra) != null && o.trailingCommaLoc && this.
            raise(ee.RestTrailingComma, e.extra.trailingCommaLoc);
          }
          break;
        case "ObjectProperty": {
          let {
            key: l,
            value: u
          } = e;
          this.isPrivateName(l) && this.classScope.usePrivateName(this.getPrivateNameSV(l), l.loc.start), this.toAssignable(u, s);
          break;
        }
        case "SpreadElement":
          throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignabl\
e's caller.");
        case "ArrayExpression":
          e.type = "ArrayPattern", this.toAssignableList(e.elements, (i = e.extra) == null ? void 0 : i.trailingCommaLoc, s);
          break;
        case "AssignmentExpression":
          e.operator !== "=" && this.raise(ee.MissingEqInAssignment, e.left.loc.end), e.type = "AssignmentPattern", delete e.operator, this.
          toAssignable(e.left, s);
          break;
        case "ParenthesizedExpression":
          this.toAssignable(a, s);
          break;
      }
    }
    toAssignableObjectExpressionProp(e, s, r) {
      if (e.type === "ObjectMethod")
        this.raise(e.kind === "get" || e.kind === "set" ? ee.PatternHasAccessor : ee.PatternHasMethod, e.key);
      else if (e.type === "SpreadElement") {
        e.type = "RestElement";
        let i = e.argument;
        this.checkToRestConversion(i, !1), this.toAssignable(i, r), s || this.raise(ee.RestTrailingComma, e);
      } else
        this.toAssignable(e, r);
    }
    toAssignableList(e, s, r) {
      let i = e.length - 1;
      for (let a = 0; a <= i; a++) {
        let o = e[a];
        if (o) {
          if (o.type === "SpreadElement") {
            o.type = "RestElement";
            let l = o.argument;
            this.checkToRestConversion(l, !0), this.toAssignable(l, r);
          } else
            this.toAssignable(o, r);
          o.type === "RestElement" && (a < i ? this.raise(ee.RestTrailingComma, o) : s && this.raise(ee.RestTrailingComma, s));
        }
      }
    }
    isAssignable(e, s) {
      switch (e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          return !0;
        case "ObjectExpression": {
          let r = e.properties.length - 1;
          return e.properties.every((i, a) => i.type !== "ObjectMethod" && (a === r || i.type !== "SpreadElement") && this.isAssignable(i));
        }
        case "ObjectProperty":
          return this.isAssignable(e.value);
        case "SpreadElement":
          return this.isAssignable(e.argument);
        case "ArrayExpression":
          return e.elements.every((r) => r === null || this.isAssignable(r));
        case "AssignmentExpression":
          return e.operator === "=";
        case "ParenthesizedExpression":
          return this.isAssignable(e.expression);
        case "MemberExpression":
        case "OptionalMemberExpression":
          return !s;
        default:
          return !1;
      }
    }
    toReferencedList(e, s) {
      return e;
    }
    toReferencedListDeep(e, s) {
      this.toReferencedList(e, s);
      for (let r of e)
        r?.type === "ArrayExpression" && this.toReferencedListDeep(r.elements);
    }
    parseSpread(e) {
      let s = this.startNode();
      return this.next(), s.argument = this.parseMaybeAssignAllowIn(e, void 0), this.finishNode(s, "SpreadElement");
    }
    parseRestBinding() {
      let e = this.startNode();
      return this.next(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 0: {
          let e = this.startNode();
          return this.next(), e.elements = this.parseBindingList(3, 93, 1), this.finishNode(e, "ArrayPattern");
        }
        case 5:
          return this.parseObjectLike(8, !0);
      }
      return this.parseIdentifier();
    }
    parseBindingList(e, s, r) {
      let i = r & 1, a = [], o = !0;
      for (; !this.eat(e); )
        if (o ? o = !1 : this.expect(12), i && this.match(12))
          a.push(null);
        else {
          if (this.eat(e))
            break;
          if (this.match(21)) {
            let l = this.parseRestBinding();
            if ((this.hasPlugin("flow") || r & 2) && (l = this.parseFunctionParamType(l)), a.push(l), !this.checkCommaAfterRest(s)) {
              this.expect(e);
              break;
            }
          } else {
            let l = [];
            for (this.match(26) && this.hasPlugin("decorators") && this.raise(ee.UnsupportedParameterDecorator, this.state.startLoc); this.match(
            26); )
              l.push(this.parseDecorator());
            a.push(this.parseAssignableListItem(r, l));
          }
        }
      return a;
    }
    parseBindingRestProperty(e) {
      return this.next(), e.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(e, "RestElement");
    }
    parseBindingProperty() {
      let {
        type: e,
        startLoc: s
      } = this.state;
      if (e === 21)
        return this.parseBindingRestProperty(this.startNode());
      let r = this.startNode();
      return e === 139 ? (this.expectPlugin("destructuringPrivate", s), this.classScope.usePrivateName(this.state.value, s), r.key = this.parsePrivateName()) :
      this.parsePropertyName(r), r.method = !1, this.parseObjPropValue(r, s, !1, !1, !0, !1);
    }
    parseAssignableListItem(e, s) {
      let r = this.parseMaybeDefault();
      (this.hasPlugin("flow") || e & 2) && this.parseFunctionParamType(r);
      let i = this.parseMaybeDefault(r.loc.start, r);
      return s.length && (r.decorators = s), i;
    }
    parseFunctionParamType(e) {
      return e;
    }
    parseMaybeDefault(e, s) {
      var r, i;
      if ((r = e) != null || (e = this.state.startLoc), s = (i = s) != null ? i : this.parseBindingAtom(), !this.eat(29)) return s;
      let a = this.startNodeAt(e);
      return a.left = s, a.right = this.parseMaybeAssignAllowIn(), this.finishNode(a, "AssignmentPattern");
    }
    isValidLVal(e, s, r) {
      switch (e) {
        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(e) {
      return e.type === "OptionalMemberExpression";
    }
    checkLVal(e, s, r = 64, i = !1, a = !1, o = !1) {
      var l;
      let u = e.type;
      if (this.isObjectMethod(e)) return;
      let c = this.isOptionalMemberExpression(e);
      if (c || u === "MemberExpression") {
        c && (this.expectPlugin("optionalChainingAssign", e.loc.start), s.type !== "AssignmentExpression" && this.raise(ee.InvalidLhsOptionalChaining,
        e, {
          ancestor: s
        })), r !== 64 && this.raise(ee.InvalidPropertyBindingPattern, e);
        return;
      }
      if (u === "Identifier") {
        this.checkIdentifier(e, r, a);
        let {
          name: y
        } = e;
        i && (i.has(y) ? this.raise(ee.ParamDupe, e) : i.add(y));
        return;
      }
      let p = this.isValidLVal(u, !(o || (l = e.extra) != null && l.parenthesized) && s.type === "AssignmentExpression", r);
      if (p === !0) return;
      if (p === !1) {
        let y = r === 64 ? ee.InvalidLhs : ee.InvalidLhsBinding;
        this.raise(y, e, {
          ancestor: s
        });
        return;
      }
      let h, f;
      typeof p == "string" ? (h = p, f = u === "ParenthesizedExpression") : [h, f] = p;
      let d = u === "ArrayPattern" || u === "ObjectPattern" ? {
        type: u
      } : s, m = e[h];
      if (Array.isArray(m))
        for (let y of m)
          y && this.checkLVal(y, d, r, i, a, f);
      else m && this.checkLVal(m, d, r, i, a, f);
    }
    checkIdentifier(e, s, r = !1) {
      this.state.strict && (r ? Fre(e.name, this.inModule) : Mre(e.name)) && (s === 64 ? this.raise(ee.StrictEvalArguments, e, {
        referenceName: e.name
      }) : this.raise(ee.StrictEvalArgumentsBinding, e, {
        bindingName: e.name
      })), s & 8192 && e.name === "let" && this.raise(ee.LetInLexicalBinding, e), s & 64 || this.declareNameFromIdentifier(e, s);
    }
    declareNameFromIdentifier(e, s) {
      this.scope.declareName(e.name, s, e.loc.start);
    }
    checkToRestConversion(e, s) {
      switch (e.type) {
        case "ParenthesizedExpression":
          this.checkToRestConversion(e.expression, s);
          break;
        case "Identifier":
        case "MemberExpression":
          break;
        case "ArrayExpression":
        case "ObjectExpression":
          if (s) break;
        default:
          this.raise(ee.InvalidRestAssignmentPattern, e);
      }
    }
    checkCommaAfterRest(e) {
      return this.match(12) ? (this.raise(this.lookaheadCharCode() === e ? ee.RestTrailingComma : ee.ElementAfterRest, this.state.startLoc),
      !0) : !1;
    }
  };
  function q1t(t) {
    if (t == null)
      throw new Error(`Unexpected ${t} value.`);
    return t;
  }
  n(q1t, "nonNull");
  function vre(t) {
    if (!t)
      throw new Error("Assert fail");
  }
  n(vre, "assert");
  var dt = Lu`typescript`({
    AbstractMethodHasImplementation: /* @__PURE__ */ n(({
      methodName: t
    }) => `Method '${t}' cannot have an implementation because it is marked abstract.`, "AbstractMethodHasImplementation"),
    AbstractPropertyHasInitializer: /* @__PURE__ */ n(({
      propertyName: t
    }) => `Property '${t}' cannot have an initializer because it is marked abstract.`, "AbstractPropertyHasInitializer"),
    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 num\
eric literal or literal enum reference.",
    ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
    DeclareAccessor: /* @__PURE__ */ n(({
      kind: t
    }) => `'declare' is not allowed in ${t}ters.`, "DeclareAccessor"),
    DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
    DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
    DuplicateAccessibilityModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => "Accessibility modifier already seen.", "DuplicateAccessibilityModifier"),
    DuplicateModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => `Duplicate modifier: '${t}'.`, "DuplicateModifier"),
    EmptyHeritageClauseType: /* @__PURE__ */ n(({
      token: t
    }) => `'${t}' list cannot be empty.`, "EmptyHeritageClauseType"),
    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: /* @__PURE__ */ n(({
      modifiers: t
    }) => `'${t[0]}' modifier cannot be used with '${t[1]}' modifier.`, "IncompatibleModifiers"),
    IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
    IndexSignatureHasAccessibility: /* @__PURE__ */ n(({
      modifier: t
    }) => `Index signatures cannot have an accessibility modifier ('${t}').`, "IndexSignatureHasAccessibility"),
    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: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type member.`, "InvalidModifierOnTypeMember"),
    InvalidModifierOnTypeParameter: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type parameter.`, "InvalidModifierOnTypeParameter"),
    InvalidModifierOnTypeParameterPositions: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier can only appear on a type parameter of a class, interface or type alias.`, "InvalidModifierOnTypeParameterPositio\
ns"),
    InvalidModifiersOrder: /* @__PURE__ */ n(({
      orderedModifiers: t
    }) => `'${t[0]}' modifier must precede '${t[1]}' modifier.`, "InvalidModifiersOrder"),
    InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the i\
nstantiation 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: /* @__PURE__ */ n(({
      modifier: t
    }) => `Private elements cannot have an accessibility modifier ('${t}').`, "PrivateElementHasAccessibility"),
    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: /* @__PURE__ */ n(({
      typeParameterName: t
    }) => `Single type parameter ${t} should have a trailing comma. Example usage: <${t},>.`, "SingleTypeParameterWithoutTrailingComma"),
    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 (`n\
ame?: 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 statemen\
t.",
    TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statemen\
t.",
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${t}.`, "UnsupportedSignatureParameterKind")
  });
  function U1t(t) {
    switch (t) {
      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;
    }
  }
  n(U1t, "keywordTypeFromName");
  function Cre(t) {
    return t === "private" || t === "public" || t === "protected";
  }
  n(Cre, "tsIsAccessModifier");
  function K1t(t) {
    return t === "in" || t === "out";
  }
  n(K1t, "tsIsVarianceAnnotations");
  var V1t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "TypeScriptParserMixin");
    }
    constructor(...s) {
      super(...s), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out"],
        disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: dt.InvalidModifierOnTypeParameter
      }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["const"],
        disallowedModifiers: ["in", "out"],
        errorTemplate: dt.InvalidModifierOnTypeParameterPositions
      }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out", "const"],
        disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: dt.InvalidModifierOnTypeParameter
      });
    }
    getScopeHandler() {
      return AM;
    }
    tsIsIdentifier() {
      return tr(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(s, r) {
      if (!tr(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
        return;
      let i = this.state.value;
      if (s.includes(i)) {
        if (r && this.tsIsStartOfStaticBlocks())
          return;
        if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
          return i;
      }
    }
    tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: r,
      stopOnStartOfClassStaticBlock: i,
      errorTemplate: a = dt.InvalidModifierOnTypeMember
    }, o) {
      let l = /* @__PURE__ */ n((c, p, h, f) => {
        p === h && o[f] && this.raise(dt.InvalidModifiersOrder, c, {
          orderedModifiers: [h, f]
        });
      }, "enforceOrder"), u = /* @__PURE__ */ n((c, p, h, f) => {
        (o[h] && p === f || o[f] && p === h) && this.raise(dt.IncompatibleModifiers, c, {
          modifiers: [h, f]
        });
      }, "incompatible");
      for (; ; ) {
        let {
          startLoc: c
        } = this.state, p = this.tsParseModifier(s.concat(r ?? []), i);
        if (!p) break;
        Cre(p) ? o.accessibility ? this.raise(dt.DuplicateAccessibilityModifier, c, {
          modifier: p
        }) : (l(c, p, p, "override"), l(c, p, p, "static"), l(c, p, p, "readonly"), o.accessibility = p) : K1t(p) ? (o[p] && this.raise(dt.DuplicateModifier,
        c, {
          modifier: p
        }), o[p] = !0, l(c, p, "in", "out")) : (hasOwnProperty.call(o, p) ? this.raise(dt.DuplicateModifier, c, {
          modifier: p
        }) : (l(c, p, "static", "readonly"), l(c, p, "static", "override"), l(c, p, "override", "readonly"), l(c, p, "abstract", "override"),
        u(c, p, "declare", "override"), u(c, p, "static", "abstract")), o[p] = !0), r != null && r.includes(p) && this.raise(a, c, {
          modifier: p
        });
      }
    }
    tsIsListTerminator(s) {
      switch (s) {
        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(s, r) {
      let i = [];
      for (; !this.tsIsListTerminator(s); )
        i.push(r());
      return i;
    }
    tsParseDelimitedList(s, r, i) {
      return q1t(this.tsParseDelimitedListWorker(s, r, !0, i));
    }
    tsParseDelimitedListWorker(s, r, i, a) {
      let o = [], l = -1;
      for (; !this.tsIsListTerminator(s); ) {
        l = -1;
        let u = r();
        if (u == null)
          return;
        if (o.push(u), this.eat(12)) {
          l = this.state.lastTokStartLoc.index;
          continue;
        }
        if (this.tsIsListTerminator(s))
          break;
        i && this.expect(12);
        return;
      }
      return a && (a.value = l), o;
    }
    tsParseBracketedList(s, r, i, a, o) {
      a || (i ? this.expect(0) : this.expect(47));
      let l = this.tsParseDelimitedList(s, r, o);
      return i ? this.expect(3) : this.expect(48), l;
    }
    tsParseImportType() {
      let s = this.startNode();
      return this.expect(83), this.expect(10), this.match(134) ? s.argument = this.parseStringLiteral(this.state.value) : (this.raise(dt.UnsupportedImportTypeArgument,
      this.state.startLoc), s.argument = super.parseExprAtom()), this.eat(12) && !this.match(11) ? (s.options = super.parseMaybeAssignAllowIn(),
      this.eat(12)) : s.options = null, this.expect(11), this.eat(16) && (s.qualifier = this.tsParseEntityName(3)), this.match(47) && (s.typeParameters =
      this.tsParseTypeArguments()), this.finishNode(s, "TSImportType");
    }
    tsParseEntityName(s) {
      let r;
      if (s & 1 && this.match(78))
        if (s & 2)
          r = this.parseIdentifier(!0);
        else {
          let i = this.startNode();
          this.next(), r = this.finishNode(i, "ThisExpression");
        }
      else
        r = this.parseIdentifier(!!(s & 1));
      for (; this.eat(16); ) {
        let i = this.startNodeAtNode(r);
        i.left = r, i.right = this.parseIdentifier(!!(s & 1)), r = this.finishNode(i, "TSQualifiedName");
      }
      return r;
    }
    tsParseTypeReference() {
      let s = this.startNode();
      return s.typeName = this.tsParseEntityName(1), !this.hasPrecedingLineBreak() && this.match(47) && (s.typeParameters = this.tsParseTypeArguments()),
      this.finishNode(s, "TSTypeReference");
    }
    tsParseThisTypePredicate(s) {
      this.next();
      let r = this.startNodeAtNode(s);
      return r.parameterName = s, r.typeAnnotation = this.tsParseTypeAnnotation(!1), r.asserts = !1, this.finishNode(r, "TSTypePredicate");
    }
    tsParseThisTypeNode() {
      let s = this.startNode();
      return this.next(), this.finishNode(s, "TSThisType");
    }
    tsParseTypeQuery() {
      let s = this.startNode();
      return this.expect(87), this.match(83) ? s.exprName = this.tsParseImportType() : s.exprName = this.tsParseEntityName(3), !this.hasPrecedingLineBreak() &&
      this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSTypeQuery");
    }
    tsParseTypeParameter(s) {
      let r = this.startNode();
      return s(r), r.name = this.tsParseTypeParameterName(), r.constraint = this.tsEatThenParseType(81), r.default = this.tsEatThenParseType(
      29), this.finishNode(r, "TSTypeParameter");
    }
    tsTryParseTypeParameters(s) {
      if (this.match(47))
        return this.tsParseTypeParameters(s);
    }
    tsParseTypeParameters(s) {
      let r = this.startNode();
      this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = {
        value: -1
      };
      return r.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, s), !1, !0, i), r.params.
      length === 0 && this.raise(dt.EmptyTypeParameters, r), i.value !== -1 && this.addExtra(r, "trailingComma", i.value), this.finishNode(r,
      "TSTypeParameterDeclaration");
    }
    tsFillSignature(s, r) {
      let i = s === 19, a = "parameters", o = "typeAnnotation";
      r.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), r[a] = this.tsParseBindingListForSignature(),
      i ? r[o] = this.tsParseTypeOrTypePredicateAnnotation(s) : this.match(s) && (r[o] = this.tsParseTypeOrTypePredicateAnnotation(s));
    }
    tsParseBindingListForSignature() {
      let s = super.parseBindingList(11, 41, 2);
      for (let r of s) {
        let {
          type: i
        } = r;
        (i === "AssignmentPattern" || i === "TSParameterProperty") && this.raise(dt.UnsupportedSignatureParameterKind, r, {
          type: i
        });
      }
      return s;
    }
    tsParseTypeMemberSemicolon() {
      !this.eat(12) && !this.isLineTerminator() && this.expect(13);
    }
    tsParseSignatureMember(s, r) {
      return this.tsFillSignature(14, r), this.tsParseTypeMemberSemicolon(), this.finishNode(r, s);
    }
    tsIsUnambiguouslyIndexSignature() {
      return this.next(), tr(this.state.type) ? (this.next(), this.match(14)) : !1;
    }
    tsTryParseIndexSignature(s) {
      if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
        return;
      this.expect(0);
      let r = this.parseIdentifier();
      r.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(r), this.expect(3), s.parameters = [r];
      let i = this.tsTryParseTypeAnnotation();
      return i && (s.typeAnnotation = i), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSIndexSignature");
    }
    tsParsePropertyOrMethodSignature(s, r) {
      this.eat(17) && (s.optional = !0);
      let i = s;
      if (this.match(10) || this.match(47)) {
        r && this.raise(dt.ReadonlyForMethodSignature, s);
        let a = i;
        a.kind && this.match(47) && this.raise(dt.AccessorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, a), this.
        tsParseTypeMemberSemicolon();
        let o = "parameters", l = "typeAnnotation";
        if (a.kind === "get")
          a[o].length > 0 && (this.raise(ee.BadGetterArity, this.state.curPosition()), this.isThisParam(a[o][0]) && this.raise(dt.AccessorCannotDeclareThisParameter,
          this.state.curPosition()));
        else if (a.kind === "set") {
          if (a[o].length !== 1)
            this.raise(ee.BadSetterArity, this.state.curPosition());
          else {
            let u = a[o][0];
            this.isThisParam(u) && this.raise(dt.AccessorCannotDeclareThisParameter, this.state.curPosition()), u.type === "Identifier" && u.
            optional && this.raise(dt.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()), u.type === "RestElement" && this.raise(
            dt.SetAccessorCannotHaveRestParameter, this.state.curPosition());
          }
          a[l] && this.raise(dt.SetAccessorCannotHaveReturnType, a[l]);
        } else
          a.kind = "method";
        return this.finishNode(a, "TSMethodSignature");
      } else {
        let a = i;
        r && (a.readonly = !0);
        let o = this.tsTryParseTypeAnnotation();
        return o && (a.typeAnnotation = o), this.tsParseTypeMemberSemicolon(), this.finishNode(a, "TSPropertySignature");
      }
    }
    tsParseTypeMember() {
      let s = this.startNode();
      if (this.match(10) || this.match(47))
        return this.tsParseSignatureMember("TSCallSignatureDeclaration", s);
      if (this.match(77)) {
        let i = this.startNode();
        return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", s) : (s.key = this.
        createIdentifier(i, "new"), this.tsParsePropertyOrMethodSignature(s, !1));
      }
      this.tsParseModifiers({
        allowedModifiers: ["readonly"],
        disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
      }, s);
      let r = this.tsTryParseIndexSignature(s);
      return r || (super.parsePropertyName(s), !s.computed && s.key.type === "Identifier" && (s.key.name === "get" || s.key.name === "set") &&
      this.tsTokenCanFollowModifier() && (s.kind = s.key.name, super.parsePropertyName(s)), this.tsParsePropertyOrMethodSignature(s, !!s.readonly));
    }
    tsParseTypeLiteral() {
      let s = this.startNode();
      return s.members = this.tsParseObjectTypeMembers(), this.finishNode(s, "TSTypeLiteral");
    }
    tsParseObjectTypeMembers() {
      this.expect(5);
      let s = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
      return this.expect(8), s;
    }
    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() {
      let s = this.startNode();
      this.expect(5), this.match(53) ? (s.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) &&
      (s.readonly = !0), this.expect(0);
      {
        let r = this.startNode();
        r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), s.typeParameter = this.finishNode(r, "TSTyp\
eParameter");
      }
      return s.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (s.optional = this.state.value,
      this.next(), this.expect(17)) : this.eat(17) && (s.optional = !0), s.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(
      8), this.finishNode(s, "TSMappedType");
    }
    tsParseTupleType() {
      let s = this.startNode();
      s.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
      let r = !1;
      return s.elementTypes.forEach((i) => {
        let {
          type: a
        } = i;
        r && a !== "TSRestType" && a !== "TSOptionalType" && !(a === "TSNamedTupleMember" && i.optional) && this.raise(dt.OptionalTypeBeforeRequired,
        i), r || (r = a === "TSNamedTupleMember" && i.optional || a === "TSOptionalType");
      }), this.finishNode(s, "TSTupleType");
    }
    tsParseTupleElementType() {
      let s = this.state.startLoc, r = this.eat(21), {
        startLoc: i
      } = this.state, a, o, l, u, p = Oo(this.state.type) ? this.lookaheadCharCode() : null;
      if (p === 58)
        a = !0, l = !1, o = this.parseIdentifier(!0), this.expect(14), u = this.tsParseType();
      else if (p === 63) {
        l = !0;
        let h = this.state.value, f = this.tsParseNonArrayType();
        this.lookaheadCharCode() === 58 ? (a = !0, o = this.createIdentifier(this.startNodeAt(i), h), this.expect(17), this.expect(14), u = this.
        tsParseType()) : (a = !1, u = f, this.expect(17));
      } else
        u = this.tsParseType(), l = this.eat(17), a = this.eat(14);
      if (a) {
        let h;
        o ? (h = this.startNodeAt(i), h.optional = l, h.label = o, h.elementType = u, this.eat(17) && (h.optional = !0, this.raise(dt.TupleOptionalAfterType,
        this.state.lastTokStartLoc))) : (h = this.startNodeAt(i), h.optional = l, this.raise(dt.InvalidTupleMemberLabel, u), h.label = u, h.
        elementType = this.tsParseType()), u = this.finishNode(h, "TSNamedTupleMember");
      } else if (l) {
        let h = this.startNodeAt(i);
        h.typeAnnotation = u, u = this.finishNode(h, "TSOptionalType");
      }
      if (r) {
        let h = this.startNodeAt(s);
        h.typeAnnotation = u, u = this.finishNode(h, "TSRestType");
      }
      return u;
    }
    tsParseParenthesizedType() {
      let s = this.startNode();
      return this.expect(10), s.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(s, "TSParenthesizedType");
    }
    tsParseFunctionOrConstructorType(s, r) {
      let i = this.startNode();
      return s === "TSConstructorType" && (i.abstract = !!r, r && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.
      tsFillSignature(19, i)), this.finishNode(i, s);
    }
    tsParseLiteralTypeNode() {
      let s = this.startNode();
      switch (this.state.type) {
        case 135:
        case 136:
        case 134:
        case 85:
        case 86:
          s.literal = super.parseExprAtom();
          break;
        default:
          this.unexpected();
      }
      return this.finishNode(s, "TSLiteralType");
    }
    tsParseTemplateLiteralType() {
      {
        let s = this.startNode();
        return s.literal = super.parseTemplate(!1), this.finishNode(s, "TSLiteralType");
      }
    }
    parseTemplateSubstitution() {
      return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
    }
    tsParseThisTypeOrThisTypePredicate() {
      let s = this.tsParseThisTypeNode();
      return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(s) : s;
    }
    tsParseNonArrayType() {
      switch (this.state.type) {
        case 134:
        case 135:
        case 136:
        case 85:
        case 86:
          return this.tsParseLiteralTypeNode();
        case 53:
          if (this.state.value === "-") {
            let s = this.startNode(), r = this.lookahead();
            return r.type !== 135 && r.type !== 136 && this.unexpected(), s.literal = this.parseMaybeUnary(), this.finishNode(s, "TSLiteralT\
ype");
          }
          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: {
          let {
            type: s
          } = this.state;
          if (tr(s) || s === 88 || s === 84) {
            let r = s === 88 ? "TSVoidKeyword" : s === 84 ? "TSNullKeyword" : U1t(this.state.value);
            if (r !== void 0 && this.lookaheadCharCode() !== 46) {
              let i = this.startNode();
              return this.next(), this.finishNode(i, r);
            }
            return this.tsParseTypeReference();
          }
        }
      }
      this.unexpected();
    }
    tsParseArrayTypeOrHigher() {
      let {
        startLoc: s
      } = this.state, r = this.tsParseNonArrayType();
      for (; !this.hasPrecedingLineBreak() && this.eat(0); )
        if (this.match(3)) {
          let i = this.startNodeAt(s);
          i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
        } else {
          let i = this.startNodeAt(s);
          i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
        }
      return r;
    }
    tsParseTypeOperator() {
      let s = this.startNode(), r = this.state.value;
      return this.next(), s.operator = r, s.typeAnnotation = this.tsParseTypeOperatorOrHigher(), r === "readonly" && this.tsCheckTypeAnnotationForReadOnly(
      s), this.finishNode(s, "TSTypeOperator");
    }
    tsCheckTypeAnnotationForReadOnly(s) {
      switch (s.typeAnnotation.type) {
        case "TSTupleType":
        case "TSArrayType":
          return;
        default:
          this.raise(dt.UnexpectedReadonly, s);
      }
    }
    tsParseInferType() {
      let s = this.startNode();
      this.expectContextual(115);
      let r = this.startNode();
      return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), s.typeParameter =
      this.finishNode(r, "TSTypeParameter"), this.finishNode(s, "TSInferType");
    }
    tsParseConstraintForInferType() {
      if (this.eat(81)) {
        let s = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
        if (this.state.inDisallowConditionalTypesContext || !this.match(17))
          return s;
      }
    }
    tsParseTypeOperatorOrHigher() {
      return o1t(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() :
      this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
    }
    tsParseUnionOrIntersectionType(s, r, i) {
      let a = this.startNode(), o = this.eat(i), l = [];
      do
        l.push(r());
      while (this.eat(i));
      return l.length === 1 && !o ? l[0] : (a.types = l, this.finishNode(a, s));
    }
    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 (tr(this.state.type) || this.match(78))
        return this.next(), !0;
      if (this.match(5)) {
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return this.parseObjectLike(8, !0), s.length === r;
        } catch {
          return !1;
        }
      }
      if (this.match(0)) {
        this.next();
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return super.parseBindingList(3, 93, 1), s.length === r;
        } 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(s) {
      return this.tsInType(() => {
        let r = this.startNode();
        this.expect(s);
        let i = this.startNode(), a = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
        if (a && this.match(78)) {
          let u = this.tsParseThisTypeOrThisTypePredicate();
          return u.type === "TSThisType" ? (i.parameterName = u, i.asserts = !0, i.typeAnnotation = null, u = this.finishNode(i, "TSTypePred\
icate")) : (this.resetStartLocationFromNode(u, i), u.asserts = !0), r.typeAnnotation = u, this.finishNode(r, "TSTypeAnnotation");
        }
        let o = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
        if (!o)
          return a ? (i.parameterName = this.parseIdentifier(), i.asserts = a, i.typeAnnotation = null, r.typeAnnotation = this.finishNode(i,
          "TSTypePredicate"), this.finishNode(r, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, r);
        let l = this.tsParseTypeAnnotation(!1);
        return i.parameterName = o, i.typeAnnotation = l, i.asserts = a, r.typeAnnotation = this.finishNode(i, "TSTypePredicate"), this.finishNode(
        r, "TSTypeAnnotation");
      });
    }
    tsTryParseTypeOrTypePredicateAnnotation() {
      if (this.match(14))
        return this.tsParseTypeOrTypePredicateAnnotation(14);
    }
    tsTryParseTypeAnnotation() {
      if (this.match(14))
        return this.tsParseTypeAnnotation();
    }
    tsTryParseType() {
      return this.tsEatThenParseType(14);
    }
    tsParseTypePredicatePrefix() {
      let s = this.parseIdentifier();
      if (this.isContextual(116) && !this.hasPrecedingLineBreak())
        return this.next(), s;
    }
    tsParseTypePredicateAsserts() {
      if (this.state.type !== 109)
        return !1;
      let s = this.state.containsEsc;
      return this.next(), !tr(this.state.type) && !this.match(78) ? !1 : (s && this.raise(ee.InvalidEscapedReservedWord, this.state.lastTokStartLoc,
      {
        reservedWord: "asserts"
      }), !0);
    }
    tsParseTypeAnnotation(s = !0, r = this.startNode()) {
      return this.tsInType(() => {
        s && this.expect(14), r.typeAnnotation = this.tsParseType();
      }), this.finishNode(r, "TSTypeAnnotation");
    }
    tsParseType() {
      vre(this.state.inType);
      let s = this.tsParseNonConditionalType();
      if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
        return s;
      let r = this.startNodeAtNode(s);
      return r.checkType = s, r.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(
      17), r.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), r.falseType = this.tsInAllowConditionalTypesContext(
      () => this.tsParseType()), this.finishNode(r, "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(dt.ReservedTypeAssertion, this.state.startLoc);
      let s = this.startNode();
      return s.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.
      expect(48), s.expression = this.parseMaybeUnary(), this.finishNode(s, "TSTypeAssertion");
    }
    tsParseHeritageClause(s) {
      let r = this.state.startLoc, i = this.tsParseDelimitedList("HeritageClauseElement", () => {
        let a = this.startNode();
        return a.expression = this.tsParseEntityName(3), this.match(47) && (a.typeParameters = this.tsParseTypeArguments()), this.finishNode(
        a, "TSExpressionWithTypeArguments");
      });
      return i.length || this.raise(dt.EmptyHeritageClauseType, r, {
        token: s
      }), i;
    }
    tsParseInterfaceDeclaration(s, r = {}) {
      if (this.hasFollowingLineBreak()) return null;
      this.expectContextual(129), r.declare && (s.declare = !0), tr(this.state.type) ? (s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, 130)) : (s.id = null, this.raise(dt.MissingInterfaceName, this.state.startLoc)), s.typeParameters = this.tsTryParseTypeParameters(
      this.tsParseInOutConstModifiers), this.eat(81) && (s.extends = this.tsParseHeritageClause("extends"));
      let i = this.startNode();
      return i.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), s.body = this.finishNode(i, "TSInterfaceBody"), this.finishNode(
      s, "TSInterfaceDeclaration");
    }
    tsParseTypeAliasDeclaration(s) {
      return s.id = this.parseIdentifier(), this.checkIdentifier(s.id, 2), s.typeAnnotation = this.tsInType(() => {
        if (s.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().
        type !== 16) {
          let r = this.startNode();
          return this.next(), this.finishNode(r, "TSIntrinsicKeyword");
        }
        return this.tsParseType();
      }), this.semicolon(), this.finishNode(s, "TSTypeAliasDeclaration");
    }
    tsInTopLevelContext(s) {
      if (this.curContext() !== er.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    tsInType(s) {
      let r = this.state.inType;
      this.state.inType = !0;
      try {
        return s();
      } finally {
        this.state.inType = r;
      }
    }
    tsInDisallowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !0;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsInAllowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !1;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsEatThenParseType(s) {
      if (this.match(s))
        return this.tsNextThenParseType();
    }
    tsExpectThenParseType(s) {
      return this.tsInType(() => (this.expect(s), this.tsParseType()));
    }
    tsNextThenParseType() {
      return this.tsInType(() => (this.next(), this.tsParseType()));
    }
    tsParseEnumMember() {
      let s = this.startNode();
      return s.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (s.initializer =
      super.parseMaybeAssignAllowIn()), this.finishNode(s, "TSEnumMember");
    }
    tsParseEnumDeclaration(s, r = {}) {
      return r.const && (s.const = !0), r.declare && (s.declare = !0), this.expectContextual(126), s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, s.const ? 8971 : 8459), this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)),
      this.expect(8), this.finishNode(s, "TSEnumDeclaration");
    }
    tsParseEnumBody() {
      let s = this.startNode();
      return this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(
      s, "TSEnumBody");
    }
    tsParseModuleBlock() {
      let s = this.startNode();
      return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(s.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(
      s, "TSModuleBlock");
    }
    tsParseModuleOrNamespaceDeclaration(s, r = !1) {
      if (s.id = this.parseIdentifier(), r || this.checkIdentifier(s.id, 1024), this.eat(16)) {
        let i = this.startNode();
        this.tsParseModuleOrNamespaceDeclaration(i, !0), s.body = i;
      } else
        this.scope.enter(256), this.prodParam.enter(0), s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
      return this.finishNode(s, "TSModuleDeclaration");
    }
    tsParseAmbientExternalModuleDeclaration(s) {
      return this.isContextual(112) ? (s.kind = "global", s.global = !0, s.id = this.parseIdentifier()) : this.match(134) ? (s.kind = "modul\
e", s.id = super.parseStringLiteral(this.state.value)) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0),
      s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(s, "TSModuleDeclarat\
ion");
    }
    tsParseImportEqualsDeclaration(s, r, i) {
      s.isExport = i || !1, s.id = r || this.parseIdentifier(), this.checkIdentifier(s.id, 4096), this.expect(29);
      let a = this.tsParseModuleReference();
      return s.importKind === "type" && a.type !== "TSExternalModuleReference" && this.raise(dt.ImportAliasHasImportType, a), s.moduleReference =
      a, this.semicolon(), this.finishNode(s, "TSImportEqualsDeclaration");
    }
    tsIsExternalModuleReference() {
      return this.isContextual(119) && this.lookaheadCharCode() === 40;
    }
    tsParseModuleReference() {
      return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0);
    }
    tsParseExternalModuleReference() {
      let s = this.startNode();
      return this.expectContextual(119), this.expect(10), this.match(134) || this.unexpected(), s.expression = super.parseExprAtom(), this.expect(
      11), this.sawUnambiguousESM = !0, this.finishNode(s, "TSExternalModuleReference");
    }
    tsLookAhead(s) {
      let r = this.state.clone(), i = s();
      return this.state = r, i;
    }
    tsTryParseAndCatch(s) {
      let r = this.tryParse((i) => s() || i());
      if (!(r.aborted || !r.node))
        return r.error && (this.state = r.failState), r.node;
    }
    tsTryParse(s) {
      let r = this.state.clone(), i = s();
      if (i !== void 0 && i !== !1)
        return i;
      this.state = r;
    }
    tsTryParseDeclare(s) {
      if (this.isLineTerminator())
        return;
      let r = this.state.type, i;
      return this.isContextual(100) && (r = 74, i = "let"), this.tsInAmbientContext(() => {
        switch (r) {
          case 68:
            return s.declare = !0, super.parseFunctionStatement(s, !1, !1);
          case 80:
            return s.declare = !0, this.parseClass(s, !0, !1);
          case 126:
            return this.tsParseEnumDeclaration(s, {
              declare: !0
            });
          case 112:
            return this.tsParseAmbientExternalModuleDeclaration(s);
          case 75:
          case 74:
            return !this.match(75) || !this.isLookaheadContextual("enum") ? (s.declare = !0, this.parseVarStatement(s, i || this.state.value,
            !0)) : (this.expect(75), this.tsParseEnumDeclaration(s, {
              const: !0,
              declare: !0
            }));
          case 129: {
            let a = this.tsParseInterfaceDeclaration(s, {
              declare: !0
            });
            if (a) return a;
          }
          default:
            if (tr(r))
              return this.tsParseDeclaration(s, this.state.value, !0, null);
        }
      });
    }
    tsTryParseExportDeclaration() {
      return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
    }
    tsParseExpressionStatement(s, r, i) {
      switch (r.name) {
        case "declare": {
          let a = this.tsTryParseDeclare(s);
          return a && (a.declare = !0), a;
        }
        case "global":
          if (this.match(5)) {
            this.scope.enter(256), this.prodParam.enter(0);
            let a = s;
            return a.kind = "global", s.global = !0, a.id = r, a.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(),
            this.finishNode(a, "TSModuleDeclaration");
          }
          break;
        default:
          return this.tsParseDeclaration(s, r.name, !1, i);
      }
    }
    tsParseDeclaration(s, r, i, a) {
      switch (r) {
        case "abstract":
          if (this.tsCheckLineTerminator(i) && (this.match(80) || tr(this.state.type)))
            return this.tsParseAbstractDeclaration(s, a);
          break;
        case "module":
          if (this.tsCheckLineTerminator(i)) {
            if (this.match(134))
              return this.tsParseAmbientExternalModuleDeclaration(s);
            if (tr(this.state.type))
              return s.kind = "module", this.tsParseModuleOrNamespaceDeclaration(s);
          }
          break;
        case "namespace":
          if (this.tsCheckLineTerminator(i) && tr(this.state.type))
            return s.kind = "namespace", this.tsParseModuleOrNamespaceDeclaration(s);
          break;
        case "type":
          if (this.tsCheckLineTerminator(i) && tr(this.state.type))
            return this.tsParseTypeAliasDeclaration(s);
          break;
      }
    }
    tsCheckLineTerminator(s) {
      return s ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
    }
    tsTryParseGenericAsyncArrowFunction(s) {
      if (!this.match(47)) return;
      let r = this.state.maybeInArrowParameters;
      this.state.maybeInArrowParameters = !0;
      let i = this.tsTryParseAndCatch(() => {
        let a = this.startNodeAt(s);
        return a.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(a), a.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(),
        this.expect(19), a;
      });
      if (this.state.maybeInArrowParameters = r, !!i)
        return super.parseArrowExpression(i, null, !0);
    }
    tsParseTypeArgumentsInExpression() {
      if (this.reScan_lt() === 47)
        return this.tsParseTypeArguments();
    }
    tsParseTypeArguments() {
      let s = this.startNode();
      return s.params = this.tsInType(() => this.tsInTopLevelContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArgu\
ments", this.tsParseType.bind(this))))), s.params.length === 0 ? this.raise(dt.EmptyTypeArguments, s) : !this.state.inType && this.curContext() ===
      er.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(s, "TSTypeParameterInstantiation");
    }
    tsIsDeclarationStart() {
      return l1t(this.state.type);
    }
    isExportDefaultSpecifier() {
      return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
    }
    parseAssignableListItem(s, r) {
      let i = this.state.startLoc, a = {};
      this.tsParseModifiers({
        allowedModifiers: ["public", "private", "protected", "override", "readonly"]
      }, a);
      let o = a.accessibility, l = a.override, u = a.readonly;
      !(s & 4) && (o || u || l) && this.raise(dt.UnexpectedParameterModifier, i);
      let c = this.parseMaybeDefault();
      s & 2 && this.parseFunctionParamType(c);
      let p = this.parseMaybeDefault(c.loc.start, c);
      if (o || u || l) {
        let h = this.startNodeAt(i);
        return r.length && (h.decorators = r), o && (h.accessibility = o), u && (h.readonly = u), l && (h.override = l), p.type !== "Identif\
ier" && p.type !== "AssignmentPattern" && this.raise(dt.UnsupportedParameterPropertyKind, h), h.parameter = p, this.finishNode(h, "TSParamet\
erProperty");
      }
      return r.length && (c.decorators = r), p;
    }
    isSimpleParameter(s) {
      return s.type === "TSParameterProperty" && super.isSimpleParameter(s.parameter) || super.isSimpleParameter(s);
    }
    tsDisallowOptionalPattern(s) {
      for (let r of s.params)
        r.type !== "Identifier" && r.optional && !this.state.isAmbientContext && this.raise(dt.PatternIsOptional, r);
    }
    setArrowFunctionParameters(s, r, i) {
      super.setArrowFunctionParameters(s, r, i), this.tsDisallowOptionalPattern(s);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      this.match(14) && (s.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
      let a = r === "FunctionDeclaration" ? "TSDeclareFunction" : r === "ClassMethod" || r === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
      return a && !this.match(5) && this.isLineTerminator() ? this.finishNode(s, a) : a === "TSDeclareFunction" && this.state.isAmbientContext &&
      (this.raise(dt.DeclareFunctionHasImplementation, s), s.declare) ? super.parseFunctionBodyAndFinish(s, a, i) : (this.tsDisallowOptionalPattern(
      s), super.parseFunctionBodyAndFinish(s, r, i));
    }
    registerFunctionStatementId(s) {
      !s.body && s.id ? this.checkIdentifier(s.id, 1024) : super.registerFunctionStatementId(s);
    }
    tsCheckForInvalidTypeCasts(s) {
      s.forEach((r) => {
        r?.type === "TSTypeCastExpression" && this.raise(dt.UnexpectedTypeAnnotation, r.typeAnnotation);
      });
    }
    toReferencedList(s, r) {
      return this.tsCheckForInvalidTypeCasts(s), s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return o.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(o.elements), o;
    }
    parseSubscript(s, r, i, a) {
      if (!this.hasPrecedingLineBreak() && this.match(35)) {
        this.state.canStartJSXElement = !1, this.next();
        let l = this.startNodeAt(r);
        return l.expression = s, this.finishNode(l, "TSNonNullExpression");
      }
      let o = !1;
      if (this.match(18) && this.lookaheadCharCode() === 60) {
        if (i)
          return a.stop = !0, s;
        a.optionalChainMember = o = !0, this.next();
      }
      if (this.match(47) || this.match(51)) {
        let l, u = this.tsTryParseAndCatch(() => {
          if (!i && this.atPossibleAsyncArrow(s)) {
            let f = this.tsTryParseGenericAsyncArrowFunction(r);
            if (f)
              return f;
          }
          let c = this.tsParseTypeArgumentsInExpression();
          if (!c) return;
          if (o && !this.match(10)) {
            l = this.state.curPosition();
            return;
          }
          if (eA(this.state.type)) {
            let f = super.parseTaggedTemplateExpression(s, r, a);
            return f.typeParameters = c, f;
          }
          if (!i && this.eat(10)) {
            let f = this.startNodeAt(r);
            return f.callee = s, f.arguments = this.parseCallExpressionArguments(11), this.tsCheckForInvalidTypeCasts(f.arguments), f.typeParameters =
            c, a.optionalChainMember && (f.optional = o), this.finishCallExpression(f, a.optionalChainMember);
          }
          let p = this.state.type;
          if (p === 48 || p === 52 || p !== 10 && lM(p) && !this.hasPrecedingLineBreak())
            return;
          let h = this.startNodeAt(r);
          return h.expression = s, h.typeParameters = c, this.finishNode(h, "TSInstantiationExpression");
        });
        if (l && this.unexpected(l, 10), u)
          return u.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(
          dt.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), u;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      var r;
      super.parseNewCallee(s);
      let {
        callee: i
      } = s;
      i.type === "TSInstantiationExpression" && !((r = i.extra) != null && r.parenthesized) && (s.typeParameters = i.typeParameters, s.callee =
      i.expression);
    }
    parseExprOp(s, r, i) {
      let a;
      if (GE(58) > i && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (a = this.isContextual(120)))) {
        let o = this.startNodeAt(r);
        return o.expression = s, o.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (a && this.raise(ee.UnexpectedKeyword,
        this.state.startLoc, {
          keyword: "const"
        }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(o, a ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(),
        this.parseExprOp(o, r, i);
      }
      return super.parseExprOp(s, r, i);
    }
    checkReservedWord(s, r, i, a) {
      this.state.isAmbientContext || super.checkReservedWord(s, r, i, a);
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(dt.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    checkDuplicateExports() {
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        let r = this.lookaheadCharCode();
        return s ? r === 123 || r === 42 : r !== 61;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      super.applyImportPhase(s, r, i, a), r ? s.exportKind = i === "type" ? "type" : "value" : s.importKind = i === "type" || i === "typeof" ?
      i : "value";
    }
    parseImport(s) {
      if (this.match(134))
        return s.importKind = "value", super.parseImport(s);
      let r;
      if (tr(this.state.type) && this.lookaheadCharCode() === 61)
        return s.importKind = "value", this.tsParseImportEqualsDeclaration(s);
      if (this.isContextual(130)) {
        let i = this.parseMaybeImportPhase(s, !1);
        if (this.lookaheadCharCode() === 61)
          return this.tsParseImportEqualsDeclaration(s, i);
        r = super.parseImportSpecifiersAndAfter(s, i);
      } else
        r = super.parseImport(s);
      return r.importKind === "type" && r.specifiers.length > 1 && r.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(dt.TypeImportCannotSpecifyDefaultAndNamed,
      r), r;
    }
    parseExport(s, r) {
      if (this.match(83)) {
        let i = s;
        this.next();
        let a = null;
        return this.isContextual(130) && this.isPotentialImportPhase(!1) ? a = this.parseMaybeImportPhase(i, !1) : i.importKind = "value", this.
        tsParseImportEqualsDeclaration(i, a, !0);
      } else if (this.eat(29)) {
        let i = s;
        return i.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(i, "TSExportAssignment");
      } else if (this.eatContextual(93)) {
        let i = s;
        return this.expectContextual(128), i.id = this.parseIdentifier(), this.semicolon(), this.finishNode(i, "TSNamespaceExportDeclaration");
      } else
        return super.parseExport(s, r);
    }
    isAbstractClass() {
      return this.isContextual(124) && this.lookahead().type === 80;
    }
    parseExportDefaultExpression() {
      if (this.isAbstractClass()) {
        let s = this.startNode();
        return this.next(), s.abstract = !0, this.parseClass(s, !0, !0);
      }
      if (this.match(129)) {
        let s = this.tsParseInterfaceDeclaration(this.startNode());
        if (s) return s;
      }
      return super.parseExportDefaultExpression();
    }
    parseVarStatement(s, r, i = !1) {
      let {
        isAmbientContext: a
      } = this.state, o = super.parseVarStatement(s, r, i || a);
      if (!a) return o;
      for (let {
        id: l,
        init: u
      } of o.declarations)
        u && (r !== "const" || l.typeAnnotation ? this.raise(dt.InitializerNotAllowedInAmbientContext, u) : $1t(u, this.hasPlugin("estree")) ||
        this.raise(dt.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, u));
      return o;
    }
    parseStatementContent(s, r) {
      if (this.match(75) && this.isLookaheadContextual("enum")) {
        let i = this.startNode();
        return this.expect(75), this.tsParseEnumDeclaration(i, {
          const: !0
        });
      }
      if (this.isContextual(126))
        return this.tsParseEnumDeclaration(this.startNode());
      if (this.isContextual(129)) {
        let i = this.tsParseInterfaceDeclaration(this.startNode());
        if (i) return i;
      }
      return super.parseStatementContent(s, r);
    }
    parseAccessModifier() {
      return this.tsParseModifier(["public", "protected", "private"]);
    }
    tsHasSomeModifiers(s, r) {
      return r.some((i) => Cre(i) ? s.accessibility === i : !!s[i]);
    }
    tsIsStartOfStaticBlocks() {
      return this.isContextual(106) && this.lookaheadCharCode() === 123;
    }
    parseClassMember(s, r, i) {
      let a = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
      this.tsParseModifiers({
        allowedModifiers: a,
        disallowedModifiers: ["in", "out"],
        stopOnStartOfClassStaticBlock: !0,
        errorTemplate: dt.InvalidModifierOnTypeParameterPositions
      }, r);
      let o = /* @__PURE__ */ n(() => {
        this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(r, a) && this.raise(dt.StaticBlockCannotHaveModifier,
        this.state.curPosition()), super.parseClassStaticBlock(s, r)) : this.parseClassMemberWithIsStatic(s, r, i, !!r.static);
      }, "callParseClassMemberWithIsStatic");
      r.declare ? this.tsInAmbientContext(o) : o();
    }
    parseClassMemberWithIsStatic(s, r, i, a) {
      let o = this.tsTryParseIndexSignature(r);
      if (o) {
        s.body.push(o), r.abstract && this.raise(dt.IndexSignatureHasAbstract, r), r.accessibility && this.raise(dt.IndexSignatureHasAccessibility,
        r, {
          modifier: r.accessibility
        }), r.declare && this.raise(dt.IndexSignatureHasDeclare, r), r.override && this.raise(dt.IndexSignatureHasOverride, r);
        return;
      }
      !this.state.inAbstractClass && r.abstract && this.raise(dt.NonAbstractClassHasAbstractMethod, r), r.override && (i.hadSuperClass || this.
      raise(dt.OverrideNotInSubClass, r)), super.parseClassMemberWithIsStatic(s, r, i, a);
    }
    parsePostMemberNameModifiers(s) {
      this.eat(17) && (s.optional = !0), s.readonly && this.match(10) && this.raise(dt.ClassMethodHasReadonly, s), s.declare && this.match(10) &&
      this.raise(dt.ClassMethodHasDeclare, s);
    }
    parseExpressionStatement(s, r, i) {
      return (r.type === "Identifier" ? this.tsParseExpressionStatement(s, r, i) : void 0) || super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
    }
    parseConditional(s, r, i) {
      if (!this.state.maybeInArrowParameters || !this.match(17))
        return super.parseConditional(s, r, i);
      let a = this.tryParse(() => super.parseConditional(s, r));
      return a.node ? (a.error && (this.state = a.failState), a.node) : (a.error && super.setOptionalParametersError(i, a.error), s);
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = s, a.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(a, "TSTypeCastExpression");
      }
      return s;
    }
    parseExportDeclaration(s) {
      if (!this.state.isAmbientContext && this.isContextual(125))
        return this.tsInAmbientContext(() => this.parseExportDeclaration(s));
      let r = this.state.startLoc, i = this.eatContextual(125);
      if (i && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
        throw this.raise(dt.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
      let o = tr(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(s);
      return o ? ((o.type === "TSInterfaceDeclaration" || o.type === "TSTypeAliasDeclaration" || i) && (s.exportKind = "type"), i && o.type !==
      "TSImportEqualsDeclaration" && (this.resetStartLocation(o, r), o.declare = !0), o) : null;
    }
    parseClassId(s, r, i, a) {
      if ((!r || i) && this.isContextual(113))
        return;
      super.parseClassId(s, r, i, s.declare ? 1024 : 8331);
      let o = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
      o && (s.typeParameters = o);
    }
    parseClassPropertyAnnotation(s) {
      s.optional || (this.eat(35) ? s.definite = !0 : this.eat(17) && (s.optional = !0));
      let r = this.tsTryParseTypeAnnotation();
      r && (s.typeAnnotation = r);
    }
    parseClassProperty(s) {
      if (this.parseClassPropertyAnnotation(s), this.state.isAmbientContext && !(s.readonly && !s.typeAnnotation) && this.match(29) && this.
      raise(dt.DeclareClassFieldHasInitializer, this.state.startLoc), s.abstract && this.match(29)) {
        let {
          key: r
        } = s;
        this.raise(dt.AbstractPropertyHasInitializer, this.state.startLoc, {
          propertyName: r.type === "Identifier" && !s.computed ? r.name : `[${this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(
          r.end))}]`
        });
      }
      return super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return s.abstract && this.raise(dt.PrivateElementHasAbstract, s), s.accessibility && this.raise(dt.PrivateElementHasAccessibility, s, {
        modifier: s.accessibility
      }), this.parseClassPropertyAnnotation(s), super.parseClassPrivateProperty(s);
    }
    parseClassAccessorProperty(s) {
      return this.parseClassPropertyAnnotation(s), s.optional && this.raise(dt.AccessorCannotBeOptional, s), super.parseClassAccessorProperty(
      s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      let u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      u && o && this.raise(dt.ConstructorHasTypeParameters, u);
      let {
        declare: c = !1,
        kind: p
      } = r;
      c && (p === "get" || p === "set") && this.raise(dt.DeclareAccessor, r, {
        kind: p
      }), u && (r.typeParameters = u), super.pushClassMethod(s, r, i, a, o, l);
    }
    pushClassPrivateMethod(s, r, i, a) {
      let o = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      o && (r.typeParameters = o), super.pushClassPrivateMethod(s, r, i, a);
    }
    declareClassPrivateMethodInScope(s, r) {
      s.type !== "TSDeclareMethod" && (s.type === "MethodDefinition" && !hasOwnProperty.call(s.value, "body") || super.declareClassPrivateMethodInScope(
      s, r));
    }
    parseClassSuper(s) {
      super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.tsParseTypeArgumentsInExpression()),
      this.eatContextual(113) && (s.implements = this.tsParseHeritageClause("implements"));
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      let c = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      return c && (s.typeParameters = c), super.parseObjPropValue(s, r, i, a, o, l, u);
    }
    parseFunctionParams(s, r) {
      let i = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      i && (s.typeParameters = i), super.parseFunctionParams(s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), s.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (s.definite = !0);
      let i = this.tsTryParseTypeAnnotation();
      i && (s.id.typeAnnotation = i, this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      return this.match(14) && (s.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(s, r);
    }
    parseMaybeAssign(s, r) {
      var i, a, o, l, u;
      let c, p, h;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (c = this.state.clone(), p = this.tryParse(() => super.parseMaybeAssign(s, r), c), !p.error) return p.node;
        let {
          context: m
        } = this.state, y = m[m.length - 1];
        (y === er.j_oTag || y === er.j_expr) && m.pop();
      }
      if (!((i = p) != null && i.error) && !this.match(47))
        return super.parseMaybeAssign(s, r);
      (!c || c === this.state) && (c = this.state.clone());
      let f, d = this.tryParse((m) => {
        var y, T;
        f = this.tsParseTypeParameters(this.tsParseConstModifier);
        let b = super.parseMaybeAssign(s, r);
        return (b.type !== "ArrowFunctionExpression" || (y = b.extra) != null && y.parenthesized) && m(), ((T = f) == null ? void 0 : T.params.
        length) !== 0 && this.resetStartLocationFromNode(b, f), b.typeParameters = f, b;
      }, c);
      if (!d.error && !d.aborted)
        return f && this.reportReservedArrowTypeParam(f), d.node;
      if (!p && (vre(!this.hasPlugin("jsx")), h = this.tryParse(() => super.parseMaybeAssign(s, r), c), !h.error))
        return h.node;
      if ((a = p) != null && a.node)
        return this.state = p.failState, p.node;
      if (d.node)
        return this.state = d.failState, f && this.reportReservedArrowTypeParam(f), d.node;
      if ((o = h) != null && o.node)
        return this.state = h.failState, h.node;
      throw ((l = p) == null ? void 0 : l.error) || d.error || ((u = h) == null ? void 0 : u.error);
    }
    reportReservedArrowTypeParam(s) {
      var r;
      s.params.length === 1 && !s.params[0].constraint && !((r = s.extra) != null && r.trailingComma) && this.getPluginOption("typescript", "\
disallowAmbiguousJSXLike") && this.raise(dt.ReservedArrowTypeParam, s);
    }
    parseMaybeUnary(s, r) {
      return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse((i) => {
          let a = this.tsParseTypeOrTypePredicateAnnotation(14);
          return (this.canInsertSemicolon() || !this.match(19)) && i(), a;
        });
        if (r.aborted) return;
        r.thrown || (r.error && (this.state = r.failState), s.returnType = r.node);
      }
      return super.parseArrow(s);
    }
    parseFunctionParamType(s) {
      this.eat(17) && (s.optional = !0);
      let r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r), this.resetEndLocation(s), s;
    }
    isAssignable(s, r) {
      switch (s.type) {
        case "TSTypeCastExpression":
          return this.isAssignable(s.expression, r);
        case "TSParameterProperty":
          return !0;
        default:
          return super.isAssignable(s, r);
      }
    }
    toAssignable(s, r = !1) {
      switch (s.type) {
        case "ParenthesizedExpression":
          this.toAssignableParenthesizedExpression(s, r);
          break;
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
          r ? this.expressionScope.recordArrowParameterBindingError(dt.UnexpectedTypeCastInParameter, s) : this.raise(dt.UnexpectedTypeCastInParameter,
          s), this.toAssignable(s.expression, r);
          break;
        case "AssignmentExpression":
          !r && s.left.type === "TSTypeCastExpression" && (s.left = this.typeCastToParameter(s.left));
        default:
          super.toAssignable(s, r);
      }
    }
    toAssignableParenthesizedExpression(s, r) {
      switch (s.expression.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
        case "ParenthesizedExpression":
          this.toAssignable(s.expression, r);
          break;
        default:
          super.toAssignable(s, r);
      }
    }
    checkToRestConversion(s, r) {
      switch (s.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
        case "TSNonNullExpression":
          this.checkToRestConversion(s.expression, !1);
          break;
        default:
          super.checkToRestConversion(s, r);
      }
    }
    isValidLVal(s, r, i) {
      switch (s) {
        case "TSTypeCastExpression":
          return !0;
        case "TSParameterProperty":
          return "parameter";
        case "TSNonNullExpression":
        case "TSInstantiationExpression":
          return "expression";
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
          return (i !== 64 || !r) && ["expression", !0];
        default:
          return super.isValidLVal(s, r, i);
      }
    }
    parseBindingAtom() {
      return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
    }
    parseMaybeDecoratorArguments(s, r) {
      if (this.match(47) || this.match(51)) {
        let i = this.tsParseTypeArgumentsInExpression();
        if (this.match(10)) {
          let a = super.parseMaybeDecoratorArguments(s, r);
          return a.typeParameters = i, a;
        }
        this.unexpected(null, 10);
      }
      return super.parseMaybeDecoratorArguments(s, r);
    }
    checkCommaAfterRest(s) {
      return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === s ? (this.next(), !1) : super.checkCommaAfterRest(
      s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(35) || this.match(14) || super.isClassProperty();
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(dt.TypeAnnotationAfterAssign,
      i.typeAnnotation), i;
    }
    getTokenFromCode(s) {
      if (this.state.inType) {
        if (s === 62) {
          this.finishOp(48, 1);
          return;
        }
        if (s === 60) {
          this.finishOp(47, 1);
          return;
        }
      }
      super.getTokenFromCode(s);
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TSTypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    shouldParseArrow(s) {
      return this.match(14) ? s.every((r) => this.isAssignable(r, !0)) : super.shouldParseArrow(s);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    canHaveLeadingDecorator() {
      return super.canHaveLeadingDecorator() || this.isAbstractClass();
    }
    jsxParseOpeningElementAfterName(s) {
      if (this.match(47) || this.match(51)) {
        let r = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
        r && (s.typeParameters = r);
      }
      return super.jsxParseOpeningElementAfterName(s);
    }
    getGetterSetterExpectedParamCount(s) {
      let r = super.getGetterSetterExpectedParamCount(s), a = this.getObjectOrClassMethodParams(s)[0];
      return a && this.isThisParam(a) ? r + 1 : r;
    }
    parseCatchClauseParam() {
      let s = super.parseCatchClauseParam(), r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r, this.resetEndLocation(s)), s;
    }
    tsInAmbientContext(s) {
      let {
        isAmbientContext: r,
        strict: i
      } = this.state;
      this.state.isAmbientContext = !0, this.state.strict = !1;
      try {
        return s();
      } finally {
        this.state.isAmbientContext = r, this.state.strict = i;
      }
    }
    parseClass(s, r, i) {
      let a = this.state.inAbstractClass;
      this.state.inAbstractClass = !!s.abstract;
      try {
        return super.parseClass(s, r, i);
      } finally {
        this.state.inAbstractClass = a;
      }
    }
    tsParseAbstractDeclaration(s, r) {
      if (this.match(80))
        return s.abstract = !0, this.maybeTakeDecorators(r, this.parseClass(s, !0, !1));
      if (this.isContextual(129)) {
        if (!this.hasFollowingLineBreak())
          return s.abstract = !0, this.raise(dt.NonClassMethodPropertyHasAbstractModifer, s), this.tsParseInterfaceDeclaration(s);
      } else
        this.unexpected(null, 80);
    }
    parseMethod(s, r, i, a, o, l, u) {
      let c = super.parseMethod(s, r, i, a, o, l, u);
      if (c.abstract && (this.hasPlugin("estree") ? c.value : c).body) {
        let {
          key: f
        } = c;
        this.raise(dt.AbstractMethodHasImplementation, c, {
          methodName: f.type === "Identifier" && !c.computed ? f.name : `[${this.input.slice(this.offsetToSourcePos(f.start), this.offsetToSourcePos(
          f.end))}]`
        });
      }
      return c;
    }
    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(s, r, i, a) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !1, i), this.finishNode(s, "ExportSpecifier")) : (s.exportKind = "value",
      super.parseExportSpecifier(s, r, i, a));
    }
    parseImportSpecifier(s, r, i, a, o) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !0, i), this.finishNode(s, "ImportSpecifier")) : (s.importKind = "value",
      super.parseImportSpecifier(s, r, i, a, i ? 4098 : 4096));
    }
    parseTypeOnlyImportExportSpecifier(s, r, i) {
      let a = r ? "imported" : "local", o = r ? "local" : "exported", l = s[a], u, c = !1, p = !0, h = l.loc.start;
      if (this.isContextual(93)) {
        let d = this.parseIdentifier();
        if (this.isContextual(93)) {
          let m = this.parseIdentifier();
          Oo(this.state.type) ? (c = !0, l = d, u = r ? this.parseIdentifier() : this.parseModuleExportName(), p = !1) : (u = m, p = !1);
        } else Oo(this.state.type) ? (p = !1, u = r ? this.parseIdentifier() : this.parseModuleExportName()) : (c = !0, l = d);
      } else Oo(this.state.type) && (c = !0, r ? (l = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(l.name, l.loc.
      start, !0, !0)) : l = this.parseModuleExportName());
      c && i && this.raise(r ? dt.TypeModifierIsUsedInTypeImports : dt.TypeModifierIsUsedInTypeExports, h), s[a] = l, s[o] = u;
      let f = r ? "importKind" : "exportKind";
      s[f] = c ? "type" : "value", p && this.eatContextual(93) && (s[o] = r ? this.parseIdentifier() : this.parseModuleExportName()), s[o] ||
      (s[o] = Bu(s[a])), r && this.checkIdentifier(s[o], c ? 4098 : 4096);
    }
  }, "typescript");
  function W1t(t) {
    if (t.type !== "MemberExpression") return !1;
    let {
      computed: e,
      property: s
    } = t;
    return e && s.type !== "StringLiteral" && (s.type !== "TemplateLiteral" || s.expressions.length > 0) ? !1 : Wre(t.object);
  }
  n(W1t, "isPossiblyLiteralEnum");
  function $1t(t, e) {
    var s;
    let {
      type: r
    } = t;
    if ((s = t.extra) != null && s.parenthesized)
      return !1;
    if (e) {
      if (r === "Literal") {
        let {
          value: i
        } = t;
        if (typeof i == "string" || typeof i == "boolean")
          return !0;
      }
    } else if (r === "StringLiteral" || r === "BooleanLiteral")
      return !0;
    return !!(Vre(t, e) || H1t(t, e) || r === "TemplateLiteral" && t.expressions.length === 0 || W1t(t));
  }
  n($1t, "isValidAmbientConstInitializer");
  function Vre(t, e) {
    return e ? t.type === "Literal" && (typeof t.value == "number" || "bigint" in t) : t.type === "NumericLiteral" || t.type === "BigIntLite\
ral";
  }
  n(Vre, "isNumber");
  function H1t(t, e) {
    if (t.type === "UnaryExpression") {
      let {
        operator: s,
        argument: r
      } = t;
      if (s === "-" && Vre(r, e))
        return !0;
    }
    return !1;
  }
  n(H1t, "isNegativeNumber");
  function Wre(t) {
    return t.type === "Identifier" ? !0 : t.type !== "MemberExpression" || t.computed ? !1 : Wre(t.object);
  }
  n(Wre, "isUncomputedMemberExpressionChain");
  var wre = Lu`placeholders`({
    ClassNameIsRequired: "A class name is required.",
    UnexpectedSpace: "Unexpected space in placeholder."
  }), J1t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "PlaceholdersParserMixin");
    }
    parsePlaceholder(s) {
      if (this.match(133)) {
        let r = this.startNode();
        return this.next(), this.assertNoSpace(), r.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(133), this.finishPlaceholder(
        r, s);
      }
    }
    finishPlaceholder(s, r) {
      let i = s;
      return (!i.expectedNode || !i.type) && (i = this.finishNode(i, "Placeholder")), i.expectedNode = r, i;
    }
    getTokenFromCode(s) {
      s === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(133, 2) : super.getTokenFromCode(s);
    }
    parseExprAtom(s) {
      return this.parsePlaceholder("Expression") || super.parseExprAtom(s);
    }
    parseIdentifier(s) {
      return this.parsePlaceholder("Identifier") || super.parseIdentifier(s);
    }
    checkReservedWord(s, r, i, a) {
      s !== void 0 && super.checkReservedWord(s, r, i, a);
    }
    parseBindingAtom() {
      return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
    }
    isValidLVal(s, r, i) {
      return s === "Placeholder" || super.isValidLVal(s, r, i);
    }
    toAssignable(s, r) {
      s && s.type === "Placeholder" && s.expectedNode === "Expression" ? s.expectedNode = "Pattern" : super.toAssignable(s, r);
    }
    chStartsBindingIdentifier(s, r) {
      return !!(super.chStartsBindingIdentifier(s, r) || this.lookahead().type === 133);
    }
    verifyBreakContinue(s, r) {
      s.label && s.label.type === "Placeholder" || super.verifyBreakContinue(s, r);
    }
    parseExpressionStatement(s, r) {
      var i;
      if (r.type !== "Placeholder" || (i = r.extra) != null && i.parenthesized)
        return super.parseExpressionStatement(s, r);
      if (this.match(14)) {
        let o = s;
        return o.label = this.finishPlaceholder(r, "Identifier"), this.next(), o.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(),
        this.finishNode(o, "LabeledStatement");
      }
      this.semicolon();
      let a = s;
      return a.name = r.name, this.finishPlaceholder(a, "Statement");
    }
    parseBlock(s, r, i) {
      return this.parsePlaceholder("BlockStatement") || super.parseBlock(s, r, i);
    }
    parseFunctionId(s) {
      return this.parsePlaceholder("Identifier") || super.parseFunctionId(s);
    }
    parseClass(s, r, i) {
      let a = r ? "ClassDeclaration" : "ClassExpression";
      this.next();
      let o = this.state.strict, l = this.parsePlaceholder("Identifier");
      if (l)
        if (this.match(81) || this.match(133) || this.match(5))
          s.id = l;
        else {
          if (i || !r)
            return s.id = null, s.body = this.finishPlaceholder(l, "ClassBody"), this.finishNode(s, a);
          throw this.raise(wre.ClassNameIsRequired, this.state.startLoc);
        }
      else
        this.parseClassId(s, r, i);
      return super.parseClassSuper(s), s.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!s.superClass, o), this.finishNode(
      s, a);
    }
    parseExport(s, r) {
      let i = this.parsePlaceholder("Identifier");
      if (!i) return super.parseExport(s, r);
      let a = s;
      if (!this.isContextual(98) && !this.match(12))
        return a.specifiers = [], a.source = null, a.declaration = this.finishPlaceholder(i, "Declaration"), this.finishNode(a, "ExportNamed\
Declaration");
      this.expectPlugin("exportDefaultFrom");
      let o = this.startNode();
      return o.exported = i, a.specifiers = [this.finishNode(o, "ExportDefaultSpecifier")], super.parseExport(a, r);
    }
    isExportDefaultSpecifier() {
      if (this.match(65)) {
        let s = this.nextTokenStart();
        if (this.isUnparsedContextual(s, "from") && this.input.startsWith(gp(133), this.nextTokenStartSince(s + 4)))
          return !0;
      }
      return super.isExportDefaultSpecifier();
    }
    maybeParseExportDefaultSpecifier(s, r) {
      var i;
      return (i = s.specifiers) != null && i.length ? !0 : super.maybeParseExportDefaultSpecifier(s, r);
    }
    checkExport(s) {
      let {
        specifiers: r
      } = s;
      r != null && r.length && (s.specifiers = r.filter((i) => i.exported.type === "Placeholder")), super.checkExport(s), s.specifiers = r;
    }
    parseImport(s) {
      let r = this.parsePlaceholder("Identifier");
      if (!r) return super.parseImport(s);
      if (s.specifiers = [], !this.isContextual(98) && !this.match(12))
        return s.source = this.finishPlaceholder(r, "StringLiteral"), this.semicolon(), this.finishNode(s, "ImportDeclaration");
      let i = this.startNodeAtNode(r);
      return i.local = r, s.specifiers.push(this.finishNode(i, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(
      s) || this.parseNamedImportSpecifiers(s)), this.expectContextual(98), s.source = this.parseImportSource(), this.semicolon(), this.finishNode(
      s, "ImportDeclaration");
    }
    parseImportSource() {
      return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
    }
    assertNoSpace() {
      this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index) && this.raise(wre.UnexpectedSpace, this.state.lastTokEndLoc);
    }
  }, "placeholders"), Y1t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "V8IntrinsicMixin");
    }
    parseV8Intrinsic() {
      if (this.match(54)) {
        let s = this.state.startLoc, r = this.startNode();
        if (this.next(), tr(this.state.type)) {
          let i = this.parseIdentifierName(), a = this.createIdentifier(r, i);
          if (a.type = "V8IntrinsicIdentifier", this.match(10))
            return a;
        }
        this.unexpected(s);
      }
    }
    parseExprAtom(s) {
      return this.parseV8Intrinsic() || super.parseExprAtom(s);
    }
  }, "v8intrinsic"), Ire = ["minimal", "fsharp", "hack", "smart"], Nre = ["^^", "@@", "^", "%", "#"];
  function X1t(t) {
    if (t.has("decorators")) {
      if (t.has("decorators-legacy"))
        throw new Error("Cannot use the decorators and decorators-legacy plugin together");
      let s = t.get("decorators").decoratorsBeforeExport;
      if (s != null && typeof s != "boolean")
        throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
      let r = t.get("decorators").allowCallParenthesized;
      if (r != null && typeof r != "boolean")
        throw new Error("'allowCallParenthesized' must be a boolean.");
    }
    if (t.has("flow") && t.has("typescript"))
      throw new Error("Cannot combine flow and typescript plugins.");
    if (t.has("placeholders") && t.has("v8intrinsic"))
      throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
    if (t.has("pipelineOperator")) {
      var e;
      let s = t.get("pipelineOperator").proposal;
      if (!Ire.includes(s)) {
        let i = Ire.map((a) => `"${a}"`).join(", ");
        throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${i}.`);
      }
      let r = ((e = t.get("recordAndTuple")) == null ? void 0 : e.syntaxType) === "hash";
      if (s === "hack") {
        if (t.has("placeholders"))
          throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
        if (t.has("v8intrinsic"))
          throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
        let i = t.get("pipelineOperator").topicToken;
        if (!Nre.includes(i)) {
          let a = Nre.map((o) => `"${o}"`).join(", ");
          throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${a}\
.`);
        }
        if (i === "#" && r)
          throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["\
recordAndTuple", t.get("recordAndTuple")])}\`.`);
      } else if (s === "smart" && r)
        throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", t.
        get("recordAndTuple")])}\`.`);
    }
    if (t.has("moduleAttributes")) {
      if (t.has("deprecatedImportAssert") || t.has("importAssertions"))
        throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");
      if (t.get("moduleAttributes").version !== "may-2020")
        throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the on\
ly supported value is 'may-2020'.");
    }
    if (t.has("importAssertions") && t.has("deprecatedImportAssert"))
      throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");
    if (!t.has("deprecatedImportAssert") && t.has("importAttributes") && t.get("importAttributes").deprecatedAssertSyntax && t.set("deprecat\
edImportAssert", {}), t.has("recordAndTuple")) {
      let s = t.get("recordAndTuple").syntaxType;
      if (s != null) {
        let r = ["hash", "bar"];
        if (!r.includes(s))
          throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + r.map((i) => `'${i}'`).join(", "));
      }
    }
    if (t.has("asyncDoExpressions") && !t.has("doExpressions")) {
      let s = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
      throw s.missingPlugins = "doExpressions", s;
    }
    if (t.has("optionalChainingAssign") && t.get("optionalChainingAssign").version !== "2023-07")
      throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, th\
e only supported value is '2023-07'.");
  }
  n(X1t, "validatePlugins");
  var $re = {
    estree: GAt,
    jsx: R1t,
    flow: F1t,
    typescript: V1t,
    v8intrinsic: Y1t,
    placeholders: J1t
  }, z1t = Object.keys($re), CM = class extends vM {
    static {
      n(this, "ExpressionParser");
    }
    checkProto(e, s, r, i) {
      if (e.type === "SpreadElement" || this.isObjectMethod(e) || e.computed || e.shorthand)
        return;
      let a = e.key;
      if ((a.type === "Identifier" ? a.name : a.value) === "__proto__") {
        if (s) {
          this.raise(ee.RecordNoProto, a);
          return;
        }
        r.used && (i ? i.doubleProtoLoc === null && (i.doubleProtoLoc = a.loc.start) : this.raise(ee.DuplicateProto, a)), r.used = !0;
      }
    }
    shouldExitDescending(e, s) {
      return e.type === "ArrowFunctionExpression" && this.offsetToSourcePos(e.start) === s;
    }
    getExpression() {
      this.enterInitialScopes(), this.nextToken();
      let e = this.parseExpression();
      return this.match(140) || this.unexpected(), this.finalizeRemainingComments(), e.comments = this.comments, e.errors = this.state.errors,
      this.optionFlags & 128 && (e.tokens = this.tokens), e;
    }
    parseExpression(e, s) {
      return e ? this.disallowInAnd(() => this.parseExpressionBase(s)) : this.allowInAnd(() => this.parseExpressionBase(s));
    }
    parseExpressionBase(e) {
      let s = this.state.startLoc, r = this.parseMaybeAssign(e);
      if (this.match(12)) {
        let i = this.startNodeAt(s);
        for (i.expressions = [r]; this.eat(12); )
          i.expressions.push(this.parseMaybeAssign(e));
        return this.toReferencedList(i.expressions), this.finishNode(i, "SequenceExpression");
      }
      return r;
    }
    parseMaybeAssignDisallowIn(e, s) {
      return this.disallowInAnd(() => this.parseMaybeAssign(e, s));
    }
    parseMaybeAssignAllowIn(e, s) {
      return this.allowInAnd(() => this.parseMaybeAssign(e, s));
    }
    setOptionalParametersError(e, s) {
      var r;
      e.optionalParametersLoc = (r = s?.loc) != null ? r : this.state.startLoc;
    }
    parseMaybeAssign(e, s) {
      let r = this.state.startLoc;
      if (this.isContextual(108) && this.prodParam.hasYield) {
        let l = this.parseYield();
        return s && (l = s.call(this, l, r)), l;
      }
      let i;
      e ? i = !1 : (e = new Pm(), i = !0);
      let {
        type: a
      } = this.state;
      (a === 10 || tr(a)) && (this.state.potentialArrowAt = this.state.start);
      let o = this.parseMaybeConditional(e);
      if (s && (o = s.call(this, o, r)), s1t(this.state.type)) {
        let l = this.startNodeAt(r), u = this.state.value;
        if (l.operator = u, this.match(29)) {
          this.toAssignable(o, !0), l.left = o;
          let c = r.index;
          e.doubleProtoLoc != null && e.doubleProtoLoc.index >= c && (e.doubleProtoLoc = null), e.shorthandAssignLoc != null && e.shorthandAssignLoc.
          index >= c && (e.shorthandAssignLoc = null), e.privateKeyLoc != null && e.privateKeyLoc.index >= c && (this.checkDestructuringPrivate(
          e), e.privateKeyLoc = null);
        } else
          l.left = o;
        return this.next(), l.right = this.parseMaybeAssign(), this.checkLVal(o, this.finishNode(l, "AssignmentExpression")), l;
      } else i && this.checkExpressionErrors(e, !0);
      return o;
    }
    parseMaybeConditional(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprOps(e);
      return this.shouldExitDescending(i, r) ? i : this.parseConditional(i, s, e);
    }
    parseConditional(e, s, r) {
      if (this.eat(17)) {
        let i = this.startNodeAt(s);
        return i.test = e, i.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), i.alternate = this.parseMaybeAssign(), this.finishNode(
        i, "ConditionalExpression");
      }
      return e;
    }
    parseMaybeUnaryOrPrivate(e) {
      return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(e);
    }
    parseExprOps(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseMaybeUnaryOrPrivate(e);
      return this.shouldExitDescending(i, r) ? i : this.parseExprOp(i, s, -1);
    }
    parseExprOp(e, s, r) {
      if (this.isPrivateName(e)) {
        let a = this.getPrivateNameSV(e);
        (r >= GE(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(ee.PrivateInExpectedIn, e, {
          identifierName: a
        }), this.classScope.usePrivateName(a, e.loc.start);
      }
      let i = this.state.type;
      if (i1t(i) && (this.prodParam.hasIn || !this.match(58))) {
        let a = GE(i);
        if (a > r) {
          if (i === 39) {
            if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
              return e;
            this.checkPipelineAtInfixOperator(e, s);
          }
          let o = this.startNodeAt(s);
          o.left = e, o.operator = this.state.value;
          let l = i === 41 || i === 42, u = i === 40;
          if (u && (a = GE(42)), this.next(), i === 39 && this.hasPlugin(["pipelineOperator", {
            proposal: "minimal"
          }]) && this.state.type === 96 && this.prodParam.hasAwait)
            throw this.raise(ee.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
          o.right = this.parseExprOpRightExpr(i, a);
          let c = this.finishNode(o, l || u ? "LogicalExpression" : "BinaryExpression"), p = this.state.type;
          if (u && (p === 41 || p === 42) || l && p === 40)
            throw this.raise(ee.MixingCoalesceWithLogical, this.state.startLoc);
          return this.parseExprOp(c, s, r);
        }
      }
      return e;
    }
    parseExprOpRightExpr(e, s) {
      let r = this.state.startLoc;
      switch (e) {
        case 39:
          switch (this.getPluginOption("pipelineOperator", "proposal")) {
            case "hack":
              return this.withTopicBindingContext(() => this.parseHackPipeBody());
            case "fsharp":
              return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(s));
          }
          if (this.getPluginOption("pipelineOperator", "proposal") === "smart")
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(108))
                throw this.raise(ee.PipeBodyIsTighter, this.state.startLoc);
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(e, s), r);
            });
        default:
          return this.parseExprOpBaseRightExpr(e, s);
      }
    }
    parseExprOpBaseRightExpr(e, s) {
      let r = this.state.startLoc;
      return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, u1t(e) ? s - 1 : s);
    }
    parseHackPipeBody() {
      var e;
      let {
        startLoc: s
      } = this.state, r = this.parseMaybeAssign();
      return WAt.has(r.type) && !((e = r.extra) != null && e.parenthesized) && this.raise(ee.PipeUnparenthesizedBody, s, {
        type: r.type
      }), this.topicReferenceWasUsedInCurrentContext() || this.raise(ee.PipeTopicUnused, s), r;
    }
    checkExponentialAfterUnary(e) {
      this.match(57) && this.raise(ee.UnexpectedTokenUnaryExponentiation, e.argument);
    }
    parseMaybeUnary(e, s) {
      let r = this.state.startLoc, i = this.isContextual(96);
      if (i && this.recordAwaitIfAllowed()) {
        this.next();
        let u = this.parseAwait(r);
        return s || this.checkExponentialAfterUnary(u), u;
      }
      let a = this.match(34), o = this.startNode();
      if (a1t(this.state.type)) {
        o.operator = this.state.value, o.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
        let u = this.match(89);
        if (this.next(), o.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(e, !0), this.state.strict && u) {
          let c = o.argument;
          c.type === "Identifier" ? this.raise(ee.StrictDelete, o) : this.hasPropertyAsPrivateName(c) && this.raise(ee.DeletePrivateField, o);
        }
        if (!a)
          return s || this.checkExponentialAfterUnary(o), this.finishNode(o, "UnaryExpression");
      }
      let l = this.parseUpdate(o, a, e);
      if (i) {
        let {
          type: u
        } = this.state;
        if ((this.hasPlugin("v8intrinsic") ? lM(u) : lM(u) && !this.match(54)) && !this.isAmbiguousAwait())
          return this.raiseOverwrite(ee.AwaitNotInAsyncContext, r), this.parseAwait(r);
      }
      return l;
    }
    parseUpdate(e, s, r) {
      if (s) {
        let o = e;
        return this.checkLVal(o.argument, this.finishNode(o, "UpdateExpression")), e;
      }
      let i = this.state.startLoc, a = this.parseExprSubscripts(r);
      if (this.checkExpressionErrors(r, !1)) return a;
      for (; n1t(this.state.type) && !this.canInsertSemicolon(); ) {
        let o = this.startNodeAt(i);
        o.operator = this.state.value, o.prefix = !1, o.argument = a, this.next(), this.checkLVal(a, a = this.finishNode(o, "UpdateExpressio\
n"));
      }
      return a;
    }
    parseExprSubscripts(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprAtom(e);
      return this.shouldExitDescending(i, r) ? i : this.parseSubscripts(i, s);
    }
    parseSubscripts(e, s, r) {
      let i = {
        optionalChainMember: !1,
        maybeAsyncArrow: this.atPossibleAsyncArrow(e),
        stop: !1
      };
      do
        e = this.parseSubscript(e, s, r, i), i.maybeAsyncArrow = !1;
      while (!i.stop);
      return e;
    }
    parseSubscript(e, s, r, i) {
      let {
        type: a
      } = this.state;
      if (!r && a === 15)
        return this.parseBind(e, s, r, i);
      if (eA(a))
        return this.parseTaggedTemplateExpression(e, s, i);
      let o = !1;
      if (a === 18) {
        if (r && (this.raise(ee.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
          return i.stop = !0, e;
        i.optionalChainMember = o = !0, this.next();
      }
      if (!r && this.match(10))
        return this.parseCoverCallAndAsyncArrowHead(e, s, i, o);
      {
        let l = this.eat(0);
        return l || o || this.eat(16) ? this.parseMember(e, s, i, l, o) : (i.stop = !0, e);
      }
    }
    parseMember(e, s, r, i, a) {
      let o = this.startNodeAt(s);
      return o.object = e, o.computed = i, i ? (o.property = this.parseExpression(), this.expect(3)) : this.match(139) ? (e.type === "Super" &&
      this.raise(ee.SuperPrivateField, s), this.classScope.usePrivateName(this.state.value, this.state.startLoc), o.property = this.parsePrivateName()) :
      o.property = this.parseIdentifier(!0), r.optionalChainMember ? (o.optional = a, this.finishNode(o, "OptionalMemberExpression")) : this.
      finishNode(o, "MemberExpression");
    }
    parseBind(e, s, r, i) {
      let a = this.startNodeAt(s);
      return a.object = e, this.next(), a.callee = this.parseNoCallExpr(), i.stop = !0, this.parseSubscripts(this.finishNode(a, "BindExpress\
ion"), s, r);
    }
    parseCoverCallAndAsyncArrowHead(e, s, r, i) {
      let a = this.state.maybeInArrowParameters, o = null;
      this.state.maybeInArrowParameters = !0, this.next();
      let l = this.startNodeAt(s);
      l.callee = e;
      let {
        maybeAsyncArrow: u,
        optionalChainMember: c
      } = r;
      u && (this.expressionScope.enter(N1t()), o = new Pm()), c && (l.optional = i), i ? l.arguments = this.parseCallExpressionArguments(11) :
      l.arguments = this.parseCallExpressionArguments(11, e.type !== "Super", l, o);
      let p = this.finishCallExpression(l, c);
      return u && this.shouldParseAsyncArrow() && !i ? (r.stop = !0, this.checkDestructuringPrivate(o), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), p = this.parseAsyncArrowFromCallExpression(this.startNodeAt(s), p)) : (u && (this.checkExpressionErrors(o,
      !0), this.expressionScope.exit()), this.toReferencedArguments(p)), this.state.maybeInArrowParameters = a, p;
    }
    toReferencedArguments(e, s) {
      this.toReferencedListDeep(e.arguments, s);
    }
    parseTaggedTemplateExpression(e, s, r) {
      let i = this.startNodeAt(s);
      return i.tag = e, i.quasi = this.parseTemplate(!0), r.optionalChainMember && this.raise(ee.OptionalChainingNoTemplate, s), this.finishNode(
      i, "TaggedTemplateExpression");
    }
    atPossibleAsyncArrow(e) {
      return e.type === "Identifier" && e.name === "async" && this.state.lastTokEndLoc.index === e.end && !this.canInsertSemicolon() && e.end -
      e.start === 5 && this.offsetToSourcePos(e.start) === this.state.potentialArrowAt;
    }
    finishCallExpression(e, s) {
      if (e.callee.type === "Import")
        if (e.arguments.length === 0 || e.arguments.length > 2)
          this.raise(ee.ImportCallArity, e);
        else
          for (let r of e.arguments)
            r.type === "SpreadElement" && this.raise(ee.ImportCallSpreadArgument, r);
      return this.finishNode(e, s ? "OptionalCallExpression" : "CallExpression");
    }
    parseCallExpressionArguments(e, s, r, i) {
      let a = [], o = !0, l = this.state.inFSharpPipelineDirectBody;
      for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          r && this.addTrailingCommaExtraToNode(r), this.next();
          break;
        }
        a.push(this.parseExprListItem(!1, i, s));
      }
      return this.state.inFSharpPipelineDirectBody = l, a;
    }
    shouldParseAsyncArrow() {
      return this.match(19) && !this.canInsertSemicolon();
    }
    parseAsyncArrowFromCallExpression(e, s) {
      var r;
      return this.resetPreviousNodeTrailingComments(s), this.expect(19), this.parseArrowExpression(e, s.arguments, !0, (r = s.extra) == null ?
      void 0 : r.trailingCommaLoc), s.innerComments && F0(e, s.innerComments), s.callee.trailingComments && F0(e, s.callee.trailingComments),
      e;
    }
    parseNoCallExpr() {
      let e = this.state.startLoc;
      return this.parseSubscripts(this.parseExprAtom(), e, !0);
    }
    parseExprAtom(e) {
      let s, r = null, {
        type: i
      } = this.state;
      switch (i) {
        case 79:
          return this.parseSuper();
        case 83:
          return s = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(s) : this.match(10) ? this.optionFlags & 256 ?
          this.parseImportCall(s) : this.finishNode(s, "Import") : (this.raise(ee.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(
          s, "Import"));
        case 78:
          return s = this.startNode(), this.next(), this.finishNode(s, "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: {
          let a = this.state.potentialArrowAt === this.state.start;
          return this.parseParenAndDistinguishExpression(a);
        }
        case 2:
        case 1:
          return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
        case 0:
          return this.parseArrayLike(3, !0, !1, e);
        case 6:
        case 7:
          return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
        case 5:
          return this.parseObjectLike(8, !1, !1, e);
        case 68:
          return this.parseFunctionOrFunctionSent();
        case 26:
          r = this.parseDecorators();
        case 80:
          return this.parseClass(this.maybeTakeDecorators(r, this.startNode()), !1);
        case 77:
          return this.parseNewOrNewTarget();
        case 25:
        case 24:
          return this.parseTemplate(!1);
        case 15: {
          s = this.startNode(), this.next(), s.object = null;
          let a = s.callee = this.parseNoCallExpr();
          if (a.type === "MemberExpression")
            return this.finishNode(s, "BindExpression");
          throw this.raise(ee.UnsupportedBind, a);
        }
        case 139:
          return this.raise(ee.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: {
          let a = this.getPluginOption("pipelineOperator", "proposal");
          if (a)
            return this.parseTopicReference(a);
          this.unexpected();
          break;
        }
        case 47: {
          let a = this.input.codePointAt(this.nextTokenStart());
          _u(a) || a === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
          break;
        }
        default:
          if (i === 137)
            return this.parseDecimalLiteral(this.state.value);
          if (tr(i)) {
            if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
              return this.parseModuleExpression();
            let a = this.state.potentialArrowAt === this.state.start, o = this.state.containsEsc, l = this.parseIdentifier();
            if (!o && l.name === "async" && !this.canInsertSemicolon()) {
              let {
                type: u
              } = this.state;
              if (u === 68)
                return this.resetPreviousNodeTrailingComments(l), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(l));
              if (tr(u))
                return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(l)) : l;
              if (u === 90)
                return this.resetPreviousNodeTrailingComments(l), this.parseDo(this.startNodeAtNode(l), !0);
            }
            return a && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(l), [l],
            !1)) : l;
          } else
            this.unexpected();
      }
    }
    parseTopicReferenceThenEqualsSign(e, s) {
      let r = this.getPluginOption("pipelineOperator", "proposal");
      if (r)
        return this.state.type = e, this.state.value = s, this.state.pos--, this.state.end--, this.state.endLoc = On(this.state.endLoc, -1),
        this.parseTopicReference(r);
      this.unexpected();
    }
    parseTopicReference(e) {
      let s = this.startNode(), r = this.state.startLoc, i = this.state.type;
      return this.next(), this.finishTopicReference(s, r, e, i);
    }
    finishTopicReference(e, s, r, i) {
      if (this.testTopicReferenceConfiguration(r, s, i))
        return r === "hack" ? (this.topicReferenceIsAllowedInCurrentContext() || this.raise(ee.PipeTopicUnbound, s), this.registerTopicReference(),
        this.finishNode(e, "TopicReference")) : (this.topicReferenceIsAllowedInCurrentContext() || this.raise(ee.PrimaryTopicNotAllowed, s),
        this.registerTopicReference(), this.finishNode(e, "PipelinePrimaryTopicReference"));
      throw this.raise(ee.PipeTopicUnconfiguredToken, s, {
        token: gp(i)
      });
    }
    testTopicReferenceConfiguration(e, s, r) {
      switch (e) {
        case "hack":
          return this.hasPlugin(["pipelineOperator", {
            topicToken: gp(r)
          }]);
        case "smart":
          return r === 27;
        default:
          throw this.raise(ee.PipeTopicRequiresHackPipes, s);
      }
    }
    parseAsyncArrowUnaryFunction(e) {
      this.prodParam.enter(QE(!0, this.prodParam.hasYield));
      let s = [this.parseIdentifier()];
      return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(ee.LineTerminatorBeforeArrow, this.state.curPosition()), this.
      expect(19), this.parseArrowExpression(e, s, !0);
    }
    parseDo(e, s) {
      this.expectPlugin("doExpressions"), s && this.expectPlugin("asyncDoExpressions"), e.async = s, this.next();
      let r = this.state.labels;
      return this.state.labels = [], s ? (this.prodParam.enter(2), e.body = this.parseBlock(), this.prodParam.exit()) : e.body = this.parseBlock(),
      this.state.labels = r, this.finishNode(e, "DoExpression");
    }
    parseSuper() {
      let e = this.startNode();
      return this.next(), this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16) ? this.raise(ee.SuperNotAllowed, e) : !this.
      scope.allowSuper && !(this.optionFlags & 16) && this.raise(ee.UnexpectedSuper, e), !this.match(10) && !this.match(0) && !this.match(16) &&
      this.raise(ee.UnsupportedSuper, e), this.finishNode(e, "Super");
    }
    parsePrivateName() {
      let e = this.startNode(), s = this.startNodeAt(On(this.state.startLoc, 1)), r = this.state.value;
      return this.next(), e.id = this.createIdentifier(s, r), this.finishNode(e, "PrivateName");
    }
    parseFunctionOrFunctionSent() {
      let e = this.startNode();
      if (this.next(), this.prodParam.hasYield && this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "function");
        return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.
        parseMetaProperty(e, s, "sent");
      }
      return this.parseFunction(e);
    }
    parseMetaProperty(e, s, r) {
      e.meta = s;
      let i = this.state.containsEsc;
      return e.property = this.parseIdentifier(!0), (e.property.name !== r || i) && this.raise(ee.UnsupportedMetaProperty, e.property, {
        target: s.name,
        onlyValidPropertyName: r
      }), this.finishNode(e, "MetaProperty");
    }
    parseImportMetaProperty(e) {
      let s = this.createIdentifier(this.startNodeAtNode(e), "import");
      if (this.next(), this.isContextual(101))
        this.inModule || this.raise(ee.ImportMetaOutsideModule, s), this.sawUnambiguousESM = !0;
      else if (this.isContextual(105) || this.isContextual(97)) {
        let r = this.isContextual(105);
        if (this.expectPlugin(r ? "sourcePhaseImports" : "deferredImportEvaluation"), !(this.optionFlags & 256))
          throw this.raise(ee.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
            phase: this.state.value
          });
        return this.next(), e.phase = r ? "source" : "defer", this.parseImportCall(e);
      }
      return this.parseMetaProperty(e, s, "meta");
    }
    parseLiteralAtNode(e, s, r) {
      return this.addExtra(r, "rawValue", e), this.addExtra(r, "raw", this.input.slice(this.offsetToSourcePos(r.start), this.state.end)), r.
      value = e, this.next(), this.finishNode(r, s);
    }
    parseLiteral(e, s) {
      let r = this.startNode();
      return this.parseLiteralAtNode(e, s, r);
    }
    parseStringLiteral(e) {
      return this.parseLiteral(e, "StringLiteral");
    }
    parseNumericLiteral(e) {
      return this.parseLiteral(e, "NumericLiteral");
    }
    parseBigIntLiteral(e) {
      return this.parseLiteral(e, "BigIntLiteral");
    }
    parseDecimalLiteral(e) {
      return this.parseLiteral(e, "DecimalLiteral");
    }
    parseRegExpLiteral(e) {
      let s = this.startNode();
      return this.addExtra(s, "raw", this.input.slice(this.offsetToSourcePos(s.start), this.state.end)), s.pattern = e.pattern, s.flags = e.
      flags, this.next(), this.finishNode(s, "RegExpLiteral");
    }
    parseBooleanLiteral(e) {
      let s = this.startNode();
      return s.value = e, this.next(), this.finishNode(s, "BooleanLiteral");
    }
    parseNullLiteral() {
      let e = this.startNode();
      return this.next(), this.finishNode(e, "NullLiteral");
    }
    parseParenAndDistinguishExpression(e) {
      let s = this.state.startLoc, r;
      this.next(), this.expressionScope.enter(I1t());
      let i = this.state.maybeInArrowParameters, a = this.state.inFSharpPipelineDirectBody;
      this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
      let o = this.state.startLoc, l = [], u = new Pm(), c = !0, p, h;
      for (; !this.match(11); ) {
        if (c)
          c = !1;
        else if (this.expect(12, u.optionalParametersLoc === null ? null : u.optionalParametersLoc), this.match(11)) {
          h = this.state.startLoc;
          break;
        }
        if (this.match(21)) {
          let m = this.state.startLoc;
          if (p = this.state.startLoc, l.push(this.parseParenItem(this.parseRestBinding(), m)), !this.checkCommaAfterRest(41))
            break;
        } else
          l.push(this.parseMaybeAssignAllowIn(u, this.parseParenItem));
      }
      let f = this.state.lastTokEndLoc;
      this.expect(11), this.state.maybeInArrowParameters = i, this.state.inFSharpPipelineDirectBody = a;
      let d = this.startNodeAt(s);
      return e && this.shouldParseArrow(l) && (d = this.parseArrow(d)) ? (this.checkDestructuringPrivate(u), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), this.parseArrowExpression(d, l, !1), d) : (this.expressionScope.exit(), l.length || this.unexpected(this.
      state.lastTokStartLoc), h && this.unexpected(h), p && this.unexpected(p), this.checkExpressionErrors(u, !0), this.toReferencedListDeep(
      l, !0), l.length > 1 ? (r = this.startNodeAt(o), r.expressions = l, this.finishNode(r, "SequenceExpression"), this.resetEndLocation(r,
      f)) : r = l[0], this.wrapParenthesis(s, r));
    }
    wrapParenthesis(e, s) {
      if (!(this.optionFlags & 512))
        return this.addExtra(s, "parenthesized", !0), this.addExtra(s, "parenStart", e.index), this.takeSurroundingComments(s, e.index, this.
        state.lastTokEndLoc.index), s;
      let r = this.startNodeAt(e);
      return r.expression = s, this.finishNode(r, "ParenthesizedExpression");
    }
    shouldParseArrow(e) {
      return !this.canInsertSemicolon();
    }
    parseArrow(e) {
      if (this.eat(19))
        return e;
    }
    parseParenItem(e, s) {
      return e;
    }
    parseNewOrNewTarget() {
      let e = this.startNode();
      if (this.next(), this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "new");
        this.next();
        let r = this.parseMetaProperty(e, s, "target");
        return !this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4) && this.raise(ee.UnexpectedNewTarget, r), r;
      }
      return this.parseNew(e);
    }
    parseNew(e) {
      if (this.parseNewCallee(e), this.eat(10)) {
        let s = this.parseExprList(11);
        this.toReferencedList(s), e.arguments = s;
      } else
        e.arguments = [];
      return this.finishNode(e, "NewExpression");
    }
    parseNewCallee(e) {
      let s = this.match(83), r = this.parseNoCallExpr();
      e.callee = r, s && (r.type === "Import" || r.type === "ImportExpression") && this.raise(ee.ImportCallNotNewExpression, r);
    }
    parseTemplateElement(e) {
      let {
        start: s,
        startLoc: r,
        end: i,
        value: a
      } = this.state, o = s + 1, l = this.startNodeAt(On(r, 1));
      a === null && (e || this.raise(ee.InvalidEscapeSequenceTemplate, On(this.state.firstInvalidTemplateEscapePos, 1)));
      let u = this.match(24), c = u ? -1 : -2, p = i + c;
      l.value = {
        raw: this.input.slice(o, p).replace(/\r\n?/g, `
`),
        cooked: a === null ? null : a.slice(1, c)
      }, l.tail = u, this.next();
      let h = this.finishNode(l, "TemplateElement");
      return this.resetEndLocation(h, On(this.state.lastTokEndLoc, c)), h;
    }
    parseTemplate(e) {
      let s = this.startNode(), r = this.parseTemplateElement(e), i = [r], a = [];
      for (; !r.tail; )
        a.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), i.push(r = this.parseTemplateElement(e));
      return s.expressions = a, s.quasis = i, this.finishNode(s, "TemplateLiteral");
    }
    parseTemplateSubstitution() {
      return this.parseExpression();
    }
    parseObjectLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = /* @__PURE__ */ Object.create(null), l = !0, u = this.startNode();
      for (u.properties = [], this.next(); !this.match(e); ) {
        if (l)
          l = !1;
        else if (this.expect(12), this.match(e)) {
          this.addTrailingCommaExtraToNode(u);
          break;
        }
        let p;
        s ? p = this.parseBindingProperty() : (p = this.parsePropertyDefinition(i), this.checkProto(p, r, o, i)), r && !this.isObjectProperty(
        p) && p.type !== "SpreadElement" && this.raise(ee.InvalidRecordProperty, p), p.shorthand && this.addExtra(p, "shorthand", !0), u.properties.
        push(p);
      }
      this.next(), this.state.inFSharpPipelineDirectBody = a;
      let c = "ObjectExpression";
      return s ? c = "ObjectPattern" : r && (c = "RecordExpression"), this.finishNode(u, c);
    }
    addTrailingCommaExtraToNode(e) {
      this.addExtra(e, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(e, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
    }
    maybeAsyncOrAccessorProp(e) {
      return !e.computed && e.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
    }
    parsePropertyDefinition(e) {
      let s = [];
      if (this.match(26))
        for (this.hasPlugin("decorators") && this.raise(ee.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
          s.push(this.parseDecorator());
      let r = this.startNode(), i = !1, a = !1, o;
      if (this.match(21))
        return s.length && this.unexpected(), this.parseSpread();
      s.length && (r.decorators = s, s = []), r.method = !1, e && (o = this.state.startLoc);
      let l = this.eat(55);
      this.parsePropertyNamePrefixOperator(r);
      let u = this.state.containsEsc;
      if (this.parsePropertyName(r, e), !l && !u && this.maybeAsyncOrAccessorProp(r)) {
        let {
          key: c
        } = r, p = c.name;
        p === "async" && !this.hasPrecedingLineBreak() && (i = !0, this.resetPreviousNodeTrailingComments(c), l = this.eat(55), this.parsePropertyName(
        r)), (p === "get" || p === "set") && (a = !0, this.resetPreviousNodeTrailingComments(c), r.kind = p, this.match(55) && (l = !0, this.
        raise(ee.AccessorIsGenerator, this.state.curPosition(), {
          kind: p
        }), this.next()), this.parsePropertyName(r));
      }
      return this.parseObjPropValue(r, o, l, i, !1, a, e);
    }
    getGetterSetterExpectedParamCount(e) {
      return e.kind === "get" ? 0 : 1;
    }
    getObjectOrClassMethodParams(e) {
      return e.params;
    }
    checkGetterSetterParams(e) {
      var s;
      let r = this.getGetterSetterExpectedParamCount(e), i = this.getObjectOrClassMethodParams(e);
      i.length !== r && this.raise(e.kind === "get" ? ee.BadGetterArity : ee.BadSetterArity, e), e.kind === "set" && ((s = i[i.length - 1]) ==
      null ? void 0 : s.type) === "RestElement" && this.raise(ee.BadSetterRestParameter, e);
    }
    parseObjectMethod(e, s, r, i, a) {
      if (a) {
        let o = this.parseMethod(e, s, !1, !1, !1, "ObjectMethod");
        return this.checkGetterSetterParams(o), o;
      }
      if (r || s || this.match(10))
        return i && this.unexpected(), e.kind = "method", e.method = !0, this.parseMethod(e, s, r, !1, !1, "ObjectMethod");
    }
    parseObjectProperty(e, s, r, i) {
      if (e.shorthand = !1, this.eat(14))
        return e.value = r ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(i), this.finishNode(e, "ObjectProper\
ty");
      if (!e.computed && e.key.type === "Identifier") {
        if (this.checkReservedWord(e.key.name, e.key.loc.start, !0, !1), r)
          e.value = this.parseMaybeDefault(s, Bu(e.key));
        else if (this.match(29)) {
          let a = this.state.startLoc;
          i != null ? i.shorthandAssignLoc === null && (i.shorthandAssignLoc = a) : this.raise(ee.InvalidCoverInitializedName, a), e.value =
          this.parseMaybeDefault(s, Bu(e.key));
        } else
          e.value = Bu(e.key);
        return e.shorthand = !0, this.finishNode(e, "ObjectProperty");
      }
    }
    parseObjPropValue(e, s, r, i, a, o, l) {
      let u = this.parseObjectMethod(e, r, i, a, o) || this.parseObjectProperty(e, s, a, l);
      return u || this.unexpected(), u;
    }
    parsePropertyName(e, s) {
      if (this.eat(0))
        e.computed = !0, e.key = this.parseMaybeAssignAllowIn(), this.expect(3);
      else {
        let {
          type: r,
          value: i
        } = this.state, a;
        if (Oo(r))
          a = this.parseIdentifier(!0);
        else
          switch (r) {
            case 135:
              a = this.parseNumericLiteral(i);
              break;
            case 134:
              a = this.parseStringLiteral(i);
              break;
            case 136:
              a = this.parseBigIntLiteral(i);
              break;
            case 139: {
              let o = this.state.startLoc;
              s != null ? s.privateKeyLoc === null && (s.privateKeyLoc = o) : this.raise(ee.UnexpectedPrivateField, o), a = this.parsePrivateName();
              break;
            }
            default:
              if (r === 137) {
                a = this.parseDecimalLiteral(i);
                break;
              }
              this.unexpected();
          }
        e.key = a, r !== 139 && (e.computed = !1);
      }
    }
    initFunction(e, s) {
      e.id = null, e.generator = !1, e.async = s;
    }
    parseMethod(e, s, r, i, a, o, l = !1) {
      this.initFunction(e, r), e.generator = s, this.scope.enter(18 | (l ? 64 : 0) | (a ? 32 : 0)), this.prodParam.enter(QE(r, e.generator)),
      this.parseFunctionParams(e, i);
      let u = this.parseFunctionBodyAndFinish(e, o, !0);
      return this.prodParam.exit(), this.scope.exit(), u;
    }
    parseArrayLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = this.startNode();
      return this.next(), o.elements = this.parseExprList(e, !r, i, o), this.state.inFSharpPipelineDirectBody = a, this.finishNode(o, r ? "T\
upleExpression" : "ArrayExpression");
    }
    parseArrowExpression(e, s, r, i) {
      this.scope.enter(6);
      let a = QE(r, !1);
      !this.match(5) && this.prodParam.hasIn && (a |= 8), this.prodParam.enter(a), this.initFunction(e, r);
      let o = this.state.maybeInArrowParameters;
      return s && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(e, s, i)), this.state.maybeInArrowParameters = !1,
      this.parseFunctionBody(e, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = o, this.finishNode(e, "Ar\
rowFunctionExpression");
    }
    setArrowFunctionParameters(e, s, r) {
      this.toAssignableList(s, r, !1), e.params = s;
    }
    parseFunctionBodyAndFinish(e, s, r = !1) {
      return this.parseFunctionBody(e, !1, r), this.finishNode(e, s);
    }
    parseFunctionBody(e, s, r = !1) {
      let i = s && !this.match(5);
      if (this.expressionScope.enter(Ure()), i)
        e.body = this.parseMaybeAssign(), this.checkParams(e, !1, s, !1);
      else {
        let a = this.state.strict, o = this.state.labels;
        this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), e.body = this.parseBlock(!0, !1, (l) => {
          let u = !this.isSimpleParamList(e.params);
          l && u && this.raise(ee.IllegalLanguageModeDirective, (e.kind === "method" || e.kind === "constructor") && e.key ? e.key.loc.end :
          e);
          let c = !a && this.state.strict;
          this.checkParams(e, !this.state.strict && !s && !r && !u, s, c), this.state.strict && e.id && this.checkIdentifier(e.id, 65, c);
        }), this.prodParam.exit(), this.state.labels = o;
      }
      this.expressionScope.exit();
    }
    isSimpleParameter(e) {
      return e.type === "Identifier";
    }
    isSimpleParamList(e) {
      for (let s = 0, r = e.length; s < r; s++)
        if (!this.isSimpleParameter(e[s])) return !1;
      return !0;
    }
    checkParams(e, s, r, i = !0) {
      let a = !s && /* @__PURE__ */ new Set(), o = {
        type: "FormalParameters"
      };
      for (let l of e.params)
        this.checkLVal(l, o, 5, a, i);
    }
    parseExprList(e, s, r, i) {
      let a = [], o = !0;
      for (; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          i && this.addTrailingCommaExtraToNode(i), this.next();
          break;
        }
        a.push(this.parseExprListItem(s, r));
      }
      return a;
    }
    parseExprListItem(e, s, r) {
      let i;
      if (this.match(12))
        e || this.raise(ee.UnexpectedToken, this.state.curPosition(), {
          unexpected: ","
        }), i = null;
      else if (this.match(21)) {
        let a = this.state.startLoc;
        i = this.parseParenItem(this.parseSpread(s), a);
      } else if (this.match(17)) {
        this.expectPlugin("partialApplication"), r || this.raise(ee.UnexpectedArgumentPlaceholder, this.state.startLoc);
        let a = this.startNode();
        this.next(), i = this.finishNode(a, "ArgumentPlaceholder");
      } else
        i = this.parseMaybeAssignAllowIn(s, this.parseParenItem);
      return i;
    }
    parseIdentifier(e) {
      let s = this.startNode(), r = this.parseIdentifierName(e);
      return this.createIdentifier(s, r);
    }
    createIdentifier(e, s) {
      return e.name = s, e.loc.identifierName = s, this.finishNode(e, "Identifier");
    }
    parseIdentifierName(e) {
      let s, {
        startLoc: r,
        type: i
      } = this.state;
      Oo(i) ? s = this.state.value : this.unexpected();
      let a = e1t(i);
      return e ? a && this.replaceToken(132) : this.checkReservedWord(s, r, a, !1), this.next(), s;
    }
    checkReservedWord(e, s, r, i) {
      if (e.length > 10 || !b1t(e))
        return;
      if (r && y1t(e)) {
        this.raise(ee.UnexpectedKeyword, s, {
          keyword: e
        });
        return;
      }
      if ((this.state.strict ? i ? Fre : Bre : Lre)(e, this.inModule)) {
        this.raise(ee.UnexpectedReservedWord, s, {
          reservedWord: e
        });
        return;
      } else if (e === "yield") {
        if (this.prodParam.hasYield) {
          this.raise(ee.YieldBindingIdentifier, s);
          return;
        }
      } else if (e === "await") {
        if (this.prodParam.hasAwait) {
          this.raise(ee.AwaitBindingIdentifier, s);
          return;
        }
        if (this.scope.inStaticBlock) {
          this.raise(ee.AwaitBindingIdentifierInStaticBlock, s);
          return;
        }
        this.expressionScope.recordAsyncArrowParametersError(s);
      } else if (e === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
        this.raise(ee.ArgumentsInClass, s);
        return;
      }
    }
    recordAwaitIfAllowed() {
      let e = this.prodParam.hasAwait || this.optionFlags & 1 && !this.scope.inFunction;
      return e && !this.scope.inFunction && (this.state.hasTopLevelAwait = !0), e;
    }
    parseAwait(e) {
      let s = this.startNodeAt(e);
      return this.expressionScope.recordParameterInitializerError(ee.AwaitExpressionFormalParameter, s), this.eat(55) && this.raise(ee.ObsoleteAwaitStar,
      s), !this.scope.inFunction && !(this.optionFlags & 1) && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM =
      !0), this.state.soloAwait || (s.argument = this.parseMaybeUnary(null, !0)), this.finishNode(s, "AwaitExpression");
    }
    isAmbiguousAwait() {
      if (this.hasPrecedingLineBreak()) return !0;
      let {
        type: e
      } = this.state;
      return e === 53 || e === 10 || e === 0 || eA(e) || e === 102 && !this.state.containsEsc || e === 138 || e === 56 || this.hasPlugin("v8\
intrinsic") && e === 54;
    }
    parseYield() {
      let e = this.startNode();
      this.expressionScope.recordParameterInitializerError(ee.YieldInParameter, e), this.next();
      let s = !1, r = null;
      if (!this.hasPrecedingLineBreak())
        switch (s = this.eat(55), this.state.type) {
          case 13:
          case 140:
          case 8:
          case 11:
          case 3:
          case 9:
          case 14:
          case 12:
            if (!s) break;
          default:
            r = this.parseMaybeAssign();
        }
      return e.delegate = s, e.argument = r, this.finishNode(e, "YieldExpression");
    }
    parseImportCall(e) {
      if (this.next(), e.source = this.parseMaybeAssignAllowIn(), e.options = null, this.eat(12) && !this.match(11) && (e.options = this.parseMaybeAssignAllowIn(),
      this.eat(12) && !this.match(11))) {
        do
          this.parseMaybeAssignAllowIn();
        while (this.eat(12) && !this.match(11));
        this.raise(ee.ImportCallArity, e);
      }
      return this.expect(11), this.finishNode(e, "ImportExpression");
    }
    checkPipelineAtInfixOperator(e, s) {
      this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }]) && e.type === "SequenceExpression" && this.raise(ee.PipelineHeadSequenceExpression, s);
    }
    parseSmartPipelineBodyInStyle(e, s) {
      if (this.isSimpleReference(e)) {
        let r = this.startNodeAt(s);
        return r.callee = e, this.finishNode(r, "PipelineBareFunction");
      } else {
        let r = this.startNodeAt(s);
        return this.checkSmartPipeTopicBodyEarlyErrors(s), r.expression = e, this.finishNode(r, "PipelineTopicExpression");
      }
    }
    isSimpleReference(e) {
      switch (e.type) {
        case "MemberExpression":
          return !e.computed && this.isSimpleReference(e.object);
        case "Identifier":
          return !0;
        default:
          return !1;
      }
    }
    checkSmartPipeTopicBodyEarlyErrors(e) {
      if (this.match(19))
        throw this.raise(ee.PipelineBodyNoArrow, this.state.startLoc);
      this.topicReferenceWasUsedInCurrentContext() || this.raise(ee.PipelineTopicUnused, e);
    }
    withTopicBindingContext(e) {
      let s = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 1,
        maxTopicIndex: null
      };
      try {
        return e();
      } finally {
        this.state.topicContext = s;
      }
    }
    withSmartMixTopicForbiddingContext(e) {
      if (this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }])) {
        let s = this.state.topicContext;
        this.state.topicContext = {
          maxNumOfResolvableTopics: 0,
          maxTopicIndex: null
        };
        try {
          return e();
        } finally {
          this.state.topicContext = s;
        }
      } else
        return e();
    }
    withSoloAwaitPermittingContext(e) {
      let s = this.state.soloAwait;
      this.state.soloAwait = !0;
      try {
        return e();
      } finally {
        this.state.soloAwait = s;
      }
    }
    allowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & ~s) {
        this.prodParam.enter(s | 8);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    disallowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & s) {
        this.prodParam.enter(s & -9);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    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(e) {
      let s = this.state.startLoc;
      this.state.potentialArrowAt = this.state.start;
      let r = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !0;
      let i = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), s, e);
      return this.state.inFSharpPipelineDirectBody = r, i;
    }
    parseModuleExpression() {
      this.expectPlugin("moduleBlocks");
      let e = this.startNode();
      this.next(), this.match(5) || this.unexpected(null, 5);
      let s = this.startNodeAt(this.state.endLoc);
      this.next();
      let r = this.initializeScopes(!0);
      this.enterInitialScopes();
      try {
        e.body = this.parseProgram(s, 8, "module");
      } finally {
        r();
      }
      return this.finishNode(e, "ModuleExpression");
    }
    parsePropertyNamePrefixOperator(e) {
    }
  }, aM = {
    kind: 1
  }, G1t = {
    kind: 2
  }, Q1t = /[\uD800-\uDFFF]/u, oM = /in(?:stanceof)?/y;
  function Z1t(t, e, s) {
    for (let r = 0; r < t.length; r++) {
      let i = t[r], {
        type: a
      } = i;
      if (typeof a == "number") {
        {
          if (a === 139) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = On(o.start, 1);
            t.splice(r, 1, new ml({
              type: Du(27),
              value: "#",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }), new ml({
              type: Du(132),
              value: u,
              start: p,
              end: c,
              startLoc: h,
              endLoc: o.end
            })), r++;
            continue;
          }
          if (eA(a)) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = On(o.start, 1), f;
            e.charCodeAt(l - s) === 96 ? f = new ml({
              type: Du(22),
              value: "`",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }) : f = new ml({
              type: Du(8),
              value: "}",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            });
            let d, m, y, T;
            a === 24 ? (m = c - 1, y = On(o.end, -1), d = u === null ? null : u.slice(1, -1), T = new ml({
              type: Du(22),
              value: "`",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })) : (m = c - 2, y = On(o.end, -2), d = u === null ? null : u.slice(1, -2), T = new ml({
              type: Du(23),
              value: "${",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })), t.splice(r, 1, f, new ml({
              type: Du(20),
              value: d,
              start: p,
              end: m,
              startLoc: h,
              endLoc: y
            }), T), r += 2;
            continue;
          }
        }
        i.type = Du(a);
      }
    }
    return t;
  }
  n(Z1t, "babel7CompatTokens");
  var wM = class extends CM {
    static {
      n(this, "StatementParser");
    }
    parseTopLevel(e, s) {
      return e.program = this.parseProgram(s), e.comments = this.comments, this.optionFlags & 128 && (e.tokens = Z1t(this.tokens, this.input,
      this.startIndex)), this.finishNode(e, "File");
    }
    parseProgram(e, s = 140, r = this.options.sourceType) {
      if (e.sourceType = r, e.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(e, !0, !0, s), this.inModule) {
        if (!(this.optionFlags & 32) && this.scope.undefinedExports.size > 0)
          for (let [a, o] of Array.from(this.scope.undefinedExports))
            this.raise(ee.ModuleExportUndefined, o, {
              localName: a
            });
        this.addExtra(e, "topLevelAwait", this.state.hasTopLevelAwait);
      }
      let i;
      return s === 140 ? i = this.finishNode(e, "Program") : i = this.finishNodeAt(e, "Program", On(this.state.startLoc, -1)), i;
    }
    stmtToDirective(e) {
      let s = e;
      s.type = "Directive", s.value = s.expression, delete s.expression;
      let r = s.value, i = r.value, a = this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(r.end)), o = r.value = a.slice(
      1, -1);
      return this.addExtra(r, "raw", a), this.addExtra(r, "rawValue", o), this.addExtra(r, "expressionValue", i), r.type = "DirectiveLiteral",
      s;
    }
    parseInterpreterDirective() {
      if (!this.match(28))
        return null;
      let e = this.startNode();
      return e.value = this.state.value, this.next(), this.finishNode(e, "InterpreterDirective");
    }
    isLet() {
      return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
    }
    chStartsBindingIdentifier(e, s) {
      if (_u(e)) {
        if (oM.lastIndex = s, oM.test(this.input)) {
          let r = this.codePointAtPos(oM.lastIndex);
          if (!xm(r) && r !== 92)
            return !1;
        }
        return !0;
      } else return e === 92;
    }
    chStartsBindingPattern(e) {
      return e === 91 || e === 123;
    }
    hasFollowingBindingAtom() {
      let e = this.nextTokenStart(), s = this.codePointAtPos(e);
      return this.chStartsBindingPattern(s) || this.chStartsBindingIdentifier(s, e);
    }
    hasInLineFollowingBindingIdentifierOrBrace() {
      let e = this.nextTokenInLineStart(), s = this.codePointAtPos(e);
      return s === 123 || this.chStartsBindingIdentifier(s, e);
    }
    startsUsingForOf() {
      let {
        type: e,
        containsEsc: s
      } = this.lookahead();
      if (e === 102 && !s)
        return !1;
      if (tr(e) && !this.hasFollowingLineBreak())
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    startsAwaitUsing() {
      let e = this.nextTokenInLineStart();
      if (this.isUnparsedContextual(e, "using")) {
        e = this.nextTokenInLineStartSince(e + 5);
        let s = this.codePointAtPos(e);
        if (this.chStartsBindingIdentifier(s, e))
          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(e = !1) {
      let s = 0;
      return this.options.annexB && !this.state.strict && (s |= 4, e && (s |= 8)), this.parseStatementLike(s);
    }
    parseStatement() {
      return this.parseStatementLike(0);
    }
    parseStatementLike(e) {
      let s = null;
      return this.match(26) && (s = this.parseDecorators(!0)), this.parseStatementContent(e, s);
    }
    parseStatementContent(e, s) {
      let r = this.state.type, i = this.startNode(), a = !!(e & 2), o = !!(e & 4), l = e & 1;
      switch (r) {
        case 60:
          return this.parseBreakContinueStatement(i, !0);
        case 63:
          return this.parseBreakContinueStatement(i, !1);
        case 64:
          return this.parseDebuggerStatement(i);
        case 90:
          return this.parseDoWhileStatement(i);
        case 91:
          return this.parseForStatement(i);
        case 68:
          if (this.lookaheadCharCode() === 46) break;
          return o || this.raise(this.state.strict ? ee.StrictFunction : this.options.annexB ? ee.SloppyFunctionAnnexB : ee.SloppyFunction, this.
          state.startLoc), this.parseFunctionStatement(i, !1, !a && o);
        case 80:
          return a || this.unexpected(), this.parseClass(this.maybeTakeDecorators(s, i), !0);
        case 69:
          return this.parseIfStatement(i);
        case 70:
          return this.parseReturnStatement(i);
        case 71:
          return this.parseSwitchStatement(i);
        case 72:
          return this.parseThrowStatement(i);
        case 73:
          return this.parseTryStatement(i);
        case 96:
          if (!this.state.containsEsc && this.startsAwaitUsing())
            return this.recordAwaitIfAllowed() ? a || this.raise(ee.UnexpectedLexicalDeclaration, i) : this.raise(ee.AwaitUsingNotInAsyncContext,
            i), this.next(), this.parseVarStatement(i, "await using");
          break;
        case 107:
          if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace())
            break;
          return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(ee.UnexpectedUsingDeclaration,
          this.state.startLoc) : a || this.raise(ee.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(i, "using");
        case 100: {
          if (this.state.containsEsc)
            break;
          let p = this.nextTokenStart(), h = this.codePointAtPos(p);
          if (h !== 91 && (!a && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(h, p) && h !== 123))
            break;
        }
        case 75:
          a || this.raise(ee.UnexpectedLexicalDeclaration, this.state.startLoc);
        case 74: {
          let p = this.state.value;
          return this.parseVarStatement(i, p);
        }
        case 92:
          return this.parseWhileStatement(i);
        case 76:
          return this.parseWithStatement(i);
        case 5:
          return this.parseBlock();
        case 13:
          return this.parseEmptyStatement(i);
        case 83: {
          let p = this.lookaheadCharCode();
          if (p === 40 || p === 46)
            break;
        }
        case 82: {
          !(this.optionFlags & 8) && !l && this.raise(ee.UnexpectedImportExport, this.state.startLoc), this.next();
          let p;
          return r === 83 ? (p = this.parseImport(i), p.type === "ImportDeclaration" && (!p.importKind || p.importKind === "value") && (this.
          sawUnambiguousESM = !0)) : (p = this.parseExport(i, s), (p.type === "ExportNamedDeclaration" && (!p.exportKind || p.exportKind ===
          "value") || p.type === "ExportAllDeclaration" && (!p.exportKind || p.exportKind === "value") || p.type === "ExportDefaultDeclarati\
on") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(p), p;
        }
        default:
          if (this.isAsyncFunction())
            return a || this.raise(ee.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(
            i, !0, !a && o);
      }
      let u = this.state.value, c = this.parseExpression();
      return tr(r) && c.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(i, u, c, e) : this.parseExpressionStatement(i, c,
      s);
    }
    assertModuleNodeAllowed(e) {
      !(this.optionFlags & 8) && !this.inModule && this.raise(ee.ImportOutsideModule, e);
    }
    decoratorsEnabledBeforeExport() {
      return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBefore\
Export") !== !1;
    }
    maybeTakeDecorators(e, s, r) {
      if (e) {
        var i;
        (i = s.decorators) != null && i.length ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(
        ee.DecoratorsBeforeAfterExport, s.decorators[0]), s.decorators.unshift(...e)) : s.decorators = e, this.resetStartLocationFromNode(s,
        e[0]), r && this.resetStartLocationFromNode(r, s);
      }
      return s;
    }
    canHaveLeadingDecorator() {
      return this.match(80);
    }
    parseDecorators(e) {
      let s = [];
      do
        s.push(this.parseDecorator());
      while (this.match(26));
      if (this.match(82))
        e || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(ee.DecoratorExportClass, this.state.startLoc);
      else if (!this.canHaveLeadingDecorator())
        throw this.raise(ee.UnexpectedLeadingDecorator, this.state.startLoc);
      return s;
    }
    parseDecorator() {
      this.expectOnePlugin(["decorators", "decorators-legacy"]);
      let e = this.startNode();
      if (this.next(), this.hasPlugin("decorators")) {
        let s = this.state.startLoc, r;
        if (this.match(10)) {
          let i = this.state.startLoc;
          this.next(), r = this.parseExpression(), this.expect(11), r = this.wrapParenthesis(i, r);
          let a = this.state.startLoc;
          e.expression = this.parseMaybeDecoratorArguments(r, i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && e.expression !==
          r && this.raise(ee.DecoratorArgumentsOutsideParentheses, a);
        } else {
          for (r = this.parseIdentifier(!1); this.eat(16); ) {
            let i = this.startNodeAt(s);
            i.object = r, this.match(139) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), i.property = this.parsePrivateName()) :
            i.property = this.parseIdentifier(!0), i.computed = !1, r = this.finishNode(i, "MemberExpression");
          }
          e.expression = this.parseMaybeDecoratorArguments(r, s);
        }
      } else
        e.expression = this.parseExprSubscripts();
      return this.finishNode(e, "Decorator");
    }
    parseMaybeDecoratorArguments(e, s) {
      if (this.eat(10)) {
        let r = this.startNodeAt(s);
        return r.callee = e, r.arguments = this.parseCallExpressionArguments(11), this.toReferencedList(r.arguments), this.finishNode(r, "Ca\
llExpression");
      }
      return e;
    }
    parseBreakContinueStatement(e, s) {
      return this.next(), this.isLineTerminator() ? e.label = null : (e.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(
      e, s), this.finishNode(e, s ? "BreakStatement" : "ContinueStatement");
    }
    verifyBreakContinue(e, s) {
      let r;
      for (r = 0; r < this.state.labels.length; ++r) {
        let i = this.state.labels[r];
        if ((e.label == null || i.name === e.label.name) && (i.kind != null && (s || i.kind === 1) || e.label && s))
          break;
      }
      if (r === this.state.labels.length) {
        let i = s ? "BreakStatement" : "ContinueStatement";
        this.raise(ee.IllegalBreakContinue, e, {
          type: i
        });
      }
    }
    parseDebuggerStatement(e) {
      return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
    }
    parseHeaderExpression() {
      this.expect(10);
      let e = this.parseExpression();
      return this.expect(11), e;
    }
    parseDoWhileStatement(e) {
      return this.next(), this.state.labels.push(aM), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.
      labels.pop(), this.expect(92), e.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(e, "DoWhileStatement");
    }
    parseForStatement(e) {
      this.next(), this.state.labels.push(aM);
      let s = null;
      if (this.isContextual(96) && this.recordAwaitIfAllowed() && (s = this.state.startLoc, this.next()), this.scope.enter(0), this.expect(10),
      this.match(13))
        return s !== null && this.unexpected(s), this.parseFor(e, null);
      let r = this.isContextual(100);
      {
        let u = this.isContextual(96) && this.startsAwaitUsing(), c = u || this.isContextual(107) && this.startsUsingForOf(), p = r && this.
        hasFollowingBindingAtom() || c;
        if (this.match(74) || this.match(75) || p) {
          let h = this.startNode(), f;
          u ? (f = "await using", this.recordAwaitIfAllowed() || this.raise(ee.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) :
          f = this.state.value, this.next(), this.parseVar(h, !0, f);
          let d = this.finishNode(h, "VariableDeclaration"), m = this.match(58);
          return m && c && this.raise(ee.ForInUsing, d), (m || this.isContextual(102)) && d.declarations.length === 1 ? this.parseForIn(e, d,
          s) : (s !== null && this.unexpected(s), this.parseFor(e, d));
        }
      }
      let i = this.isContextual(95), a = new Pm(), o = this.parseExpression(!0, a), l = this.isContextual(102);
      if (l && (r && this.raise(ee.ForOfLet, o), s === null && i && o.type === "Identifier" && this.raise(ee.ForOfAsync, o)), l || this.match(
      58)) {
        this.checkDestructuringPrivate(a), this.toAssignable(o, !0);
        let u = l ? "ForOfStatement" : "ForInStatement";
        return this.checkLVal(o, {
          type: u
        }), this.parseForIn(e, o, s);
      } else
        this.checkExpressionErrors(a, !0);
      return s !== null && this.unexpected(s), this.parseFor(e, o);
    }
    parseFunctionStatement(e, s, r) {
      return this.next(), this.parseFunction(e, 1 | (r ? 2 : 0) | (s ? 8 : 0));
    }
    parseIfStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), e.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), e.alternate =
      this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(e, "IfStatement");
    }
    parseReturnStatement(e) {
      return !this.prodParam.hasReturn && !(this.optionFlags & 2) && this.raise(ee.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ?
      e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
    }
    parseSwitchStatement(e) {
      this.next(), e.discriminant = this.parseHeaderExpression();
      let s = e.cases = [];
      this.expect(5), this.state.labels.push(G1t), this.scope.enter(0);
      let r;
      for (let i; !this.match(8); )
        if (this.match(61) || this.match(65)) {
          let a = this.match(61);
          r && this.finishNode(r, "SwitchCase"), s.push(r = this.startNode()), r.consequent = [], this.next(), a ? r.test = this.parseExpression() :
          (i && this.raise(ee.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), i = !0, r.test = null), this.expect(14);
        } else
          r ? r.consequent.push(this.parseStatementListItem()) : this.unexpected();
      return this.scope.exit(), r && this.finishNode(r, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(e, "SwitchState\
ment");
    }
    parseThrowStatement(e) {
      return this.next(), this.hasPrecedingLineBreak() && this.raise(ee.NewlineAfterThrow, this.state.lastTokEndLoc), e.argument = this.parseExpression(),
      this.semicolon(), this.finishNode(e, "ThrowStatement");
    }
    parseCatchClauseParam() {
      let e = this.parseBindingAtom();
      return this.scope.enter(this.options.annexB && e.type === "Identifier" ? 8 : 0), this.checkLVal(e, {
        type: "CatchClause"
      }, 9), e;
    }
    parseTryStatement(e) {
      if (this.next(), e.block = this.parseBlock(), e.handler = null, this.match(62)) {
        let s = this.startNode();
        this.next(), this.match(10) ? (this.expect(10), s.param = this.parseCatchClauseParam(), this.expect(11)) : (s.param = null, this.scope.
        enter(0)), s.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), e.handler = this.finishNode(
        s, "CatchClause");
      }
      return e.finalizer = this.eat(67) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(ee.NoCatchOrFinally, e), this.finishNode(
      e, "TryStatement");
    }
    parseVarStatement(e, s, r = !1) {
      return this.next(), this.parseVar(e, !1, s, r), this.semicolon(), this.finishNode(e, "VariableDeclaration");
    }
    parseWhileStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), this.state.labels.push(aM), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.state.labels.pop(), this.finishNode(e, "WhileStatement");
    }
    parseWithStatement(e) {
      return this.state.strict && this.raise(ee.StrictWith, this.state.startLoc), this.next(), e.object = this.parseHeaderExpression(), e.body =
      this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(e, "WithStatement");
    }
    parseEmptyStatement(e) {
      return this.next(), this.finishNode(e, "EmptyStatement");
    }
    parseLabeledStatement(e, s, r, i) {
      for (let o of this.state.labels)
        o.name === s && this.raise(ee.LabelRedeclaration, r, {
          labelName: s
        });
      let a = r1t(this.state.type) ? 1 : this.match(71) ? 2 : null;
      for (let o = this.state.labels.length - 1; o >= 0; o--) {
        let l = this.state.labels[o];
        if (l.statementStart === e.start)
          l.statementStart = this.sourceToOffsetPos(this.state.start), l.kind = a;
        else
          break;
      }
      return this.state.labels.push({
        name: s,
        kind: a,
        statementStart: this.sourceToOffsetPos(this.state.start)
      }), e.body = i & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), e.label =
      r, this.finishNode(e, "LabeledStatement");
    }
    parseExpressionStatement(e, s, r) {
      return e.expression = s, this.semicolon(), this.finishNode(e, "ExpressionStatement");
    }
    parseBlock(e = !1, s = !0, r) {
      let i = this.startNode();
      return e && this.state.strictErrors.clear(), this.expect(5), s && this.scope.enter(0), this.parseBlockBody(i, e, !1, 8, r), s && this.
      scope.exit(), this.finishNode(i, "BlockStatement");
    }
    isValidDirective(e) {
      return e.type === "ExpressionStatement" && e.expression.type === "StringLiteral" && !e.expression.extra.parenthesized;
    }
    parseBlockBody(e, s, r, i, a) {
      let o = e.body = [], l = e.directives = [];
      this.parseBlockOrModuleBlockBody(o, s ? l : void 0, r, i, a);
    }
    parseBlockOrModuleBlockBody(e, s, r, i, a) {
      let o = this.state.strict, l = !1, u = !1;
      for (; !this.match(i); ) {
        let c = r ? this.parseModuleItem() : this.parseStatementListItem();
        if (s && !u) {
          if (this.isValidDirective(c)) {
            let p = this.stmtToDirective(c);
            s.push(p), !l && p.value.value === "use strict" && (l = !0, this.setStrict(!0));
            continue;
          }
          u = !0, this.state.strictErrors.clear();
        }
        e.push(c);
      }
      a?.call(this, l), o || this.setStrict(!1), this.next();
    }
    parseFor(e, s) {
      return e.init = s, this.semicolon(!1), e.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), e.update = this.match(
      11) ? null : this.parseExpression(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.
      scope.exit(), this.state.labels.pop(), this.finishNode(e, "ForStatement");
    }
    parseForIn(e, s, r) {
      let i = this.match(58);
      return this.next(), i ? r !== null && this.unexpected(r) : e.await = r !== null, s.type === "VariableDeclaration" && s.declarations[0].
      init != null && (!i || !this.options.annexB || this.state.strict || s.kind !== "var" || s.declarations[0].id.type !== "Identifier") &&
      this.raise(ee.ForInOfLoopInitializer, s, {
        type: i ? "ForInStatement" : "ForOfStatement"
      }), s.type === "AssignmentPattern" && this.raise(ee.InvalidLhs, s, {
        ancestor: {
          type: "ForStatement"
        }
      }), e.left = s, e.right = i ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement");
    }
    parseVar(e, s, r, i = !1) {
      let a = e.declarations = [];
      for (e.kind = r; ; ) {
        let o = this.startNode();
        if (this.parseVarId(o, r), o.init = this.eat(29) ? s ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, o.
        init === null && !i && (o.id.type !== "Identifier" && !(s && (this.match(58) || this.isContextual(102))) ? this.raise(ee.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: "destructuring"
        }) : (r === "const" || r === "using" || r === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(ee.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: r
        })), a.push(this.finishNode(o, "VariableDeclarator")), !this.eat(12)) break;
      }
      return e;
    }
    parseVarId(e, s) {
      let r = this.parseBindingAtom();
      (s === "using" || s === "await using") && (r.type === "ArrayPattern" || r.type === "ObjectPattern") && this.raise(ee.UsingDeclarationHasBindingPattern,
      r.loc.start), this.checkLVal(r, {
        type: "VariableDeclarator"
      }, s === "var" ? 5 : 8201), e.id = r;
    }
    parseAsyncFunctionExpression(e) {
      return this.parseFunction(e, 8);
    }
    parseFunction(e, s = 0) {
      let r = s & 2, i = !!(s & 1), a = i && !(s & 4), o = !!(s & 8);
      this.initFunction(e, o), this.match(55) && (r && this.raise(ee.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), e.
      generator = !0), i && (e.id = this.parseFunctionId(a));
      let l = this.state.maybeInArrowParameters;
      return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(QE(o, e.generator)), i || (e.id = this.parseFunctionId()),
      this.parseFunctionParams(e, !1), this.withSmartMixTopicForbiddingContext(() => {
        this.parseFunctionBodyAndFinish(e, i ? "FunctionDeclaration" : "FunctionExpression");
      }), this.prodParam.exit(), this.scope.exit(), i && !r && this.registerFunctionStatementId(e), this.state.maybeInArrowParameters = l, e;
    }
    parseFunctionId(e) {
      return e || tr(this.state.type) ? this.parseIdentifier() : null;
    }
    parseFunctionParams(e, s) {
      this.expect(10), this.expressionScope.enter(w1t()), e.params = this.parseBindingList(11, 41, 2 | (s ? 4 : 0)), this.expressionScope.exit();
    }
    registerFunctionStatementId(e) {
      e.id && this.scope.declareName(e.id.name, !this.options.annexB || this.state.strict || e.generator || e.async ? this.scope.treatFunctionsAsVar ?
      5 : 8201 : 17, e.id.loc.start);
    }
    parseClass(e, s, r) {
      this.next();
      let i = this.state.strict;
      return this.state.strict = !0, this.parseClassId(e, s, r), this.parseClassSuper(e), e.body = this.parseClassBody(!!e.superClass, i), this.
      finishNode(e, s ? "ClassDeclaration" : "ClassExpression");
    }
    isClassProperty() {
      return this.match(29) || this.match(13) || this.match(8);
    }
    isClassMethod() {
      return this.match(10);
    }
    nameIsConstructor(e) {
      return e.type === "Identifier" && e.name === "constructor" || e.type === "StringLiteral" && e.value === "constructor";
    }
    isNonstaticConstructor(e) {
      return !e.computed && !e.static && this.nameIsConstructor(e.key);
    }
    parseClassBody(e, s) {
      this.classScope.enter();
      let r = {
        hadConstructor: !1,
        hadSuperClass: e
      }, i = [], a = this.startNode();
      if (a.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
        for (; !this.match(8); ) {
          if (this.eat(13)) {
            if (i.length > 0)
              throw this.raise(ee.DecoratorSemicolon, this.state.lastTokEndLoc);
            continue;
          }
          if (this.match(26)) {
            i.push(this.parseDecorator());
            continue;
          }
          let o = this.startNode();
          i.length && (o.decorators = i, this.resetStartLocationFromNode(o, i[0]), i = []), this.parseClassMember(a, o, r), o.kind === "cons\
tructor" && o.decorators && o.decorators.length > 0 && this.raise(ee.DecoratorConstructor, o);
        }
      }), this.state.strict = s, this.next(), i.length)
        throw this.raise(ee.TrailingDecorator, this.state.startLoc);
      return this.classScope.exit(), this.finishNode(a, "ClassBody");
    }
    parseClassMemberFromModifier(e, s) {
      let r = this.parseIdentifier(!0);
      if (this.isClassMethod()) {
        let i = s;
        return i.kind = "method", i.computed = !1, i.key = r, i.static = !1, this.pushClassMethod(e, i, !1, !1, !1, !1), !0;
      } else if (this.isClassProperty()) {
        let i = s;
        return i.computed = !1, i.key = r, i.static = !1, e.body.push(this.parseClassProperty(i)), !0;
      }
      return this.resetPreviousNodeTrailingComments(r), !1;
    }
    parseClassMember(e, s, r) {
      let i = this.isContextual(106);
      if (i) {
        if (this.parseClassMemberFromModifier(e, s))
          return;
        if (this.eat(5)) {
          this.parseClassStaticBlock(e, s);
          return;
        }
      }
      this.parseClassMemberWithIsStatic(e, s, r, i);
    }
    parseClassMemberWithIsStatic(e, s, r, i) {
      let a = s, o = s, l = s, u = s, c = s, p = a, h = a;
      if (s.static = i, this.parsePropertyNamePrefixOperator(s), this.eat(55)) {
        p.kind = "method";
        let b = this.match(139);
        if (this.parseClassElementName(p), b) {
          this.pushClassPrivateMethod(e, o, !0, !1);
          return;
        }
        this.isNonstaticConstructor(a) && this.raise(ee.ConstructorIsGenerator, a.key), this.pushClassMethod(e, a, !0, !1, !1, !1);
        return;
      }
      let f = !this.state.containsEsc && tr(this.state.type), d = this.parseClassElementName(s), m = f ? d.name : null, y = this.isPrivateName(
      d), T = this.state.startLoc;
      if (this.parsePostMemberNameModifiers(h), this.isClassMethod()) {
        if (p.kind = "method", y) {
          this.pushClassPrivateMethod(e, o, !1, !1);
          return;
        }
        let b = this.isNonstaticConstructor(a), E = !1;
        b && (a.kind = "constructor", r.hadConstructor && !this.hasPlugin("typescript") && this.raise(ee.DuplicateConstructor, d), b && this.
        hasPlugin("typescript") && s.override && this.raise(ee.OverrideOnConstructor, d), r.hadConstructor = !0, E = r.hadSuperClass), this.
        pushClassMethod(e, a, !1, !1, b, E);
      } else if (this.isClassProperty())
        y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l);
      else if (m === "async" && !this.isLineTerminator()) {
        this.resetPreviousNodeTrailingComments(d);
        let b = this.eat(55);
        h.optional && this.unexpected(T), p.kind = "method";
        let E = this.match(139);
        this.parseClassElementName(p), this.parsePostMemberNameModifiers(h), E ? this.pushClassPrivateMethod(e, o, b, !0) : (this.isNonstaticConstructor(
        a) && this.raise(ee.ConstructorIsAsync, a.key), this.pushClassMethod(e, a, b, !0, !1, !1));
      } else if ((m === "get" || m === "set") && !(this.match(55) && this.isLineTerminator())) {
        this.resetPreviousNodeTrailingComments(d), p.kind = m;
        let b = this.match(139);
        this.parseClassElementName(a), b ? this.pushClassPrivateMethod(e, o, !1, !1) : (this.isNonstaticConstructor(a) && this.raise(ee.ConstructorIsAccessor,
        a.key), this.pushClassMethod(e, a, !1, !1, !1, !1)), this.checkGetterSetterParams(a);
      } else if (m === "accessor" && !this.isLineTerminator()) {
        this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(d);
        let b = this.match(139);
        this.parseClassElementName(l), this.pushClassAccessorProperty(e, c, b);
      } else this.isLineTerminator() ? y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l) : this.unexpected();
    }
    parseClassElementName(e) {
      let {
        type: s,
        value: r
      } = this.state;
      if ((s === 132 || s === 134) && e.static && r === "prototype" && this.raise(ee.StaticPrototype, this.state.startLoc), s === 139) {
        r === "constructor" && this.raise(ee.ConstructorClassPrivateField, this.state.startLoc);
        let i = this.parsePrivateName();
        return e.key = i, i;
      }
      return this.parsePropertyName(e), e.key;
    }
    parseClassStaticBlock(e, s) {
      var r;
      this.scope.enter(208);
      let i = this.state.labels;
      this.state.labels = [], this.prodParam.enter(0);
      let a = s.body = [];
      this.parseBlockOrModuleBlockBody(a, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = i, e.body.push(this.
      finishNode(s, "StaticBlock")), (r = s.decorators) != null && r.length && this.raise(ee.DecoratorStaticBlock, s);
    }
    pushClassProperty(e, s) {
      !s.computed && this.nameIsConstructor(s.key) && this.raise(ee.ConstructorClassField, s.key), e.body.push(this.parseClassProperty(s));
    }
    pushClassPrivateProperty(e, s) {
      let r = this.parseClassPrivateProperty(s);
      e.body.push(r), this.classScope.declarePrivateName(this.getPrivateNameSV(r.key), 0, r.key.loc.start);
    }
    pushClassAccessorProperty(e, s, r) {
      !r && !s.computed && this.nameIsConstructor(s.key) && this.raise(ee.ConstructorClassField, s.key);
      let i = this.parseClassAccessorProperty(s);
      e.body.push(i), r && this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
    }
    pushClassMethod(e, s, r, i, a, o) {
      e.body.push(this.parseMethod(s, r, i, a, o, "ClassMethod", !0));
    }
    pushClassPrivateMethod(e, s, r, i) {
      let a = this.parseMethod(s, r, i, !1, !1, "ClassPrivateMethod", !0);
      e.body.push(a);
      let o = a.kind === "get" ? a.static ? 6 : 2 : a.kind === "set" ? a.static ? 5 : 1 : 0;
      this.declareClassPrivateMethodInScope(a, o);
    }
    declareClassPrivateMethodInScope(e, s) {
      this.classScope.declarePrivateName(this.getPrivateNameSV(e.key), s, e.key.loc.start);
    }
    parsePostMemberNameModifiers(e) {
    }
    parseClassPrivateProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassPrivateProperty");
    }
    parseClassProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassProperty");
    }
    parseClassAccessorProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassAccessorProperty");
    }
    parseInitializer(e) {
      this.scope.enter(80), this.expressionScope.enter(Ure()), this.prodParam.enter(0), e.value = this.eat(29) ? this.parseMaybeAssignAllowIn() :
      null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
    }
    parseClassId(e, s, r, i = 8331) {
      if (tr(this.state.type))
        e.id = this.parseIdentifier(), s && this.declareNameFromIdentifier(e.id, i);
      else if (r || !s)
        e.id = null;
      else
        throw this.raise(ee.MissingClassName, this.state.startLoc);
    }
    parseClassSuper(e) {
      e.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
    }
    parseExport(e, s) {
      let r = this.parseMaybeImportPhase(e, !0), i = this.maybeParseExportDefaultSpecifier(e, r), a = !i || this.eat(12), o = a && this.eatExportStar(
      e), l = o && this.maybeParseExportNamespaceSpecifier(e), u = a && (!l || this.eat(12)), c = i || o;
      if (o && !l) {
        if (i && this.unexpected(), s)
          throw this.raise(ee.UnsupportedDecoratorExport, e);
        return this.parseExportFrom(e, !0), this.finishNode(e, "ExportAllDeclaration");
      }
      let p = this.maybeParseExportNamedSpecifiers(e);
      i && a && !o && !p && this.unexpected(null, 5), l && u && this.unexpected(null, 98);
      let h;
      if (c || p) {
        if (h = !1, s)
          throw this.raise(ee.UnsupportedDecoratorExport, e);
        this.parseExportFrom(e, c);
      } else
        h = this.maybeParseExportDeclaration(e);
      if (c || p || h) {
        var f;
        let d = e;
        if (this.checkExport(d, !0, !1, !!d.source), ((f = d.declaration) == null ? void 0 : f.type) === "ClassDeclaration")
          this.maybeTakeDecorators(s, d.declaration, d);
        else if (s)
          throw this.raise(ee.UnsupportedDecoratorExport, e);
        return this.finishNode(d, "ExportNamedDeclaration");
      }
      if (this.eat(65)) {
        let d = e, m = this.parseExportDefaultExpression();
        if (d.declaration = m, m.type === "ClassDeclaration")
          this.maybeTakeDecorators(s, m, d);
        else if (s)
          throw this.raise(ee.UnsupportedDecoratorExport, e);
        return this.checkExport(d, !0, !0), this.finishNode(d, "ExportDefaultDeclaration");
      }
      this.unexpected(null, 5);
    }
    eatExportStar(e) {
      return this.eat(55);
    }
    maybeParseExportDefaultSpecifier(e, s) {
      if (s || this.isExportDefaultSpecifier()) {
        this.expectPlugin("exportDefaultFrom", s?.loc.start);
        let r = s || this.parseIdentifier(!0), i = this.startNodeAtNode(r);
        return i.exported = r, e.specifiers = [this.finishNode(i, "ExportDefaultSpecifier")], !0;
      }
      return !1;
    }
    maybeParseExportNamespaceSpecifier(e) {
      if (this.isContextual(93)) {
        var s, r;
        (r = (s = e).specifiers) != null || (s.specifiers = []);
        let i = this.startNodeAt(this.state.lastTokStartLoc);
        return this.next(), i.exported = this.parseModuleExportName(), e.specifiers.push(this.finishNode(i, "ExportNamespaceSpecifier")), !0;
      }
      return !1;
    }
    maybeParseExportNamedSpecifiers(e) {
      if (this.match(5)) {
        let s = e;
        s.specifiers || (s.specifiers = []);
        let r = s.exportKind === "type";
        return s.specifiers.push(...this.parseExportSpecifiers(r)), s.source = null, s.declaration = null, this.hasPlugin("importAssertions") &&
        (s.assertions = []), !0;
      }
      return !1;
    }
    maybeParseExportDeclaration(e) {
      return this.shouldParseExportDeclaration() ? (e.specifiers = [], e.source = null, this.hasPlugin("importAssertions") && (e.assertions =
      []), e.declaration = this.parseExportDeclaration(e), !0) : !1;
    }
    isAsyncFunction() {
      if (!this.isContextual(95)) return !1;
      let e = this.nextTokenInLineStart();
      return this.isUnparsedContextual(e, "function");
    }
    parseExportDefaultExpression() {
      let e = this.startNode();
      if (this.match(68))
        return this.next(), this.parseFunction(e, 5);
      if (this.isAsyncFunction())
        return this.next(), this.next(), this.parseFunction(e, 13);
      if (this.match(80))
        return this.parseClass(e, !0, !0);
      if (this.match(26))
        return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(ee.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(ee.UnsupportedDefaultExport, this.state.startLoc);
      let s = this.parseMaybeAssignAllowIn();
      return this.semicolon(), s;
    }
    parseExportDeclaration(e) {
      return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
    }
    isExportDefaultSpecifier() {
      let {
        type: e
      } = this.state;
      if (tr(e)) {
        if (e === 95 && !this.state.containsEsc || e === 100)
          return !1;
        if ((e === 130 || e === 129) && !this.state.containsEsc) {
          let {
            type: i
          } = this.lookahead();
          if (tr(i) && i !== 98 || i === 5)
            return this.expectOnePlugin(["flow", "typescript"]), !1;
        }
      } else if (!this.match(65))
        return !1;
      let s = this.nextTokenStart(), r = this.isUnparsedContextual(s, "from");
      if (this.input.charCodeAt(s) === 44 || tr(this.state.type) && r)
        return !0;
      if (this.match(65) && r) {
        let i = this.input.charCodeAt(this.nextTokenStartSince(s + 4));
        return i === 34 || i === 39;
      }
      return !1;
    }
    parseExportFrom(e, s) {
      this.eatContextual(98) ? (e.source = this.parseImportSource(), this.checkExport(e), this.maybeParseImportAttributes(e), this.checkJSONModuleImport(
      e)) : s && this.unexpected(), this.semicolon();
    }
    shouldParseExportDeclaration() {
      let {
        type: e
      } = this.state;
      return e === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("\
decorators", "decoratorsBeforeExport") === !0 && this.raise(ee.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.
      raise(ee.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(ee.UsingDeclarationExport,
      this.state.startLoc), !0) : e === 74 || e === 75 || e === 68 || e === 80 || this.isLet() || this.isAsyncFunction();
    }
    checkExport(e, s, r, i) {
      if (s) {
        var a;
        if (r) {
          if (this.checkDuplicateExports(e, "default"), this.hasPlugin("exportDefaultFrom")) {
            var o;
            let l = e.declaration;
            l.type === "Identifier" && l.name === "from" && l.end - l.start === 4 && !((o = l.extra) != null && o.parenthesized) && this.raise(
            ee.ExportDefaultFromAsIdentifier, l);
          }
        } else if ((a = e.specifiers) != null && a.length)
          for (let l of e.specifiers) {
            let {
              exported: u
            } = l, c = u.type === "Identifier" ? u.name : u.value;
            if (this.checkDuplicateExports(l, c), !i && l.local) {
              let {
                local: p
              } = l;
              p.type !== "Identifier" ? this.raise(ee.ExportBindingIsString, l, {
                localName: p.value,
                exportName: c
              }) : (this.checkReservedWord(p.name, p.loc.start, !0, !1), this.scope.checkLocalExport(p));
            }
          }
        else if (e.declaration) {
          let l = e.declaration;
          if (l.type === "FunctionDeclaration" || l.type === "ClassDeclaration") {
            let {
              id: u
            } = l;
            if (!u) throw new Error("Assertion failure");
            this.checkDuplicateExports(e, u.name);
          } else if (l.type === "VariableDeclaration")
            for (let u of l.declarations)
              this.checkDeclaration(u.id);
        }
      }
    }
    checkDeclaration(e) {
      if (e.type === "Identifier")
        this.checkDuplicateExports(e, e.name);
      else if (e.type === "ObjectPattern")
        for (let s of e.properties)
          this.checkDeclaration(s);
      else if (e.type === "ArrayPattern")
        for (let s of e.elements)
          s && this.checkDeclaration(s);
      else e.type === "ObjectProperty" ? this.checkDeclaration(e.value) : e.type === "RestElement" ? this.checkDeclaration(e.argument) : e.type ===
      "AssignmentPattern" && this.checkDeclaration(e.left);
    }
    checkDuplicateExports(e, s) {
      this.exportedIdentifiers.has(s) && (s === "default" ? this.raise(ee.DuplicateDefaultExport, e) : this.raise(ee.DuplicateExport, e, {
        exportName: s
      })), this.exportedIdentifiers.add(s);
    }
    parseExportSpecifiers(e) {
      let s = [], r = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (r)
          r = !1;
        else if (this.expect(12), this.eat(8)) break;
        let i = this.isContextual(130), a = this.match(134), o = this.startNode();
        o.local = this.parseModuleExportName(), s.push(this.parseExportSpecifier(o, a, e, i));
      }
      return s;
    }
    parseExportSpecifier(e, s, r, i) {
      return this.eatContextual(93) ? e.exported = this.parseModuleExportName() : s ? e.exported = D1t(e.local) : e.exported || (e.exported =
      Bu(e.local)), this.finishNode(e, "ExportSpecifier");
    }
    parseModuleExportName() {
      if (this.match(134)) {
        let e = this.parseStringLiteral(this.state.value), s = Q1t.exec(e.value);
        return s && this.raise(ee.ModuleExportNameHasLoneSurrogate, e, {
          surrogateCharCode: s[0].charCodeAt(0)
        }), e;
      }
      return this.parseIdentifier(!0);
    }
    isJSONModuleImport(e) {
      return e.assertions != null ? e.assertions.some(({
        key: s,
        value: r
      }) => r.value === "json" && (s.type === "Identifier" ? s.name === "type" : s.value === "type")) : !1;
    }
    checkImportReflection(e) {
      let {
        specifiers: s
      } = e, r = s.length === 1 ? s[0].type : null;
      if (e.phase === "source")
        r !== "ImportDefaultSpecifier" && this.raise(ee.SourcePhaseImportRequiresDefault, s[0].loc.start);
      else if (e.phase === "defer")
        r !== "ImportNamespaceSpecifier" && this.raise(ee.DeferImportRequiresNamespace, s[0].loc.start);
      else if (e.module) {
        var i;
        r !== "ImportDefaultSpecifier" && this.raise(ee.ImportReflectionNotBinding, s[0].loc.start), ((i = e.assertions) == null ? void 0 : i.
        length) > 0 && this.raise(ee.ImportReflectionHasAssertion, s[0].loc.start);
      }
    }
    checkJSONModuleImport(e) {
      if (this.isJSONModuleImport(e) && e.type !== "ExportAllDeclaration") {
        let {
          specifiers: s
        } = e;
        if (s != null) {
          let r = s.find((i) => {
            let a;
            if (i.type === "ExportSpecifier" ? a = i.local : i.type === "ImportSpecifier" && (a = i.imported), a !== void 0)
              return a.type === "Identifier" ? a.name !== "default" : a.value !== "default";
          });
          r !== void 0 && this.raise(ee.ImportJSONBindingNotDefault, r.loc.start);
        }
      }
    }
    isPotentialImportPhase(e) {
      return e ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
    }
    applyImportPhase(e, s, r, i) {
      s || (r === "module" ? (this.expectPlugin("importReflection", i), e.module = !0) : this.hasPlugin("importReflection") && (e.module = !1),
      r === "source" ? (this.expectPlugin("sourcePhaseImports", i), e.phase = "source") : r === "defer" ? (this.expectPlugin("deferredImport\
Evaluation", i), e.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (e.phase = null));
    }
    parseMaybeImportPhase(e, s) {
      if (!this.isPotentialImportPhase(s))
        return this.applyImportPhase(e, s, null), null;
      let r = this.parseIdentifier(!0), {
        type: i
      } = this.state;
      return (Oo(i) ? i !== 98 || this.lookaheadCharCode() === 102 : i !== 12) ? (this.resetPreviousIdentifierLeadingComments(r), this.applyImportPhase(
      e, s, r.name, r.loc.start), null) : (this.applyImportPhase(e, s, null), r);
    }
    isPrecedingIdImportPhase(e) {
      let {
        type: s
      } = this.state;
      return tr(s) ? s !== 98 || this.lookaheadCharCode() === 102 : s !== 12;
    }
    parseImport(e) {
      return this.match(134) ? this.parseImportSourceAndAttributes(e) : this.parseImportSpecifiersAndAfter(e, this.parseMaybeImportPhase(e, !1));
    }
    parseImportSpecifiersAndAfter(e, s) {
      e.specifiers = [];
      let i = !this.maybeParseDefaultImportSpecifier(e, s) || this.eat(12), a = i && this.maybeParseStarImportSpecifier(e);
      return i && !a && this.parseNamedImportSpecifiers(e), this.expectContextual(98), this.parseImportSourceAndAttributes(e);
    }
    parseImportSourceAndAttributes(e) {
      var s;
      return (s = e.specifiers) != null || (e.specifiers = []), e.source = this.parseImportSource(), this.maybeParseImportAttributes(e), this.
      checkImportReflection(e), this.checkJSONModuleImport(e), this.semicolon(), this.finishNode(e, "ImportDeclaration");
    }
    parseImportSource() {
      return this.match(134) || this.unexpected(), this.parseExprAtom();
    }
    parseImportSpecifierLocal(e, s, r) {
      s.local = this.parseIdentifier(), e.specifiers.push(this.finishImportSpecifier(s, r));
    }
    finishImportSpecifier(e, s, r = 8201) {
      return this.checkLVal(e.local, {
        type: s
      }, r), this.finishNode(e, s);
    }
    parseImportAttributes() {
      this.expect(5);
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        if (this.match(8))
          break;
        let r = this.startNode(), i = this.state.value;
        if (s.has(i) && this.raise(ee.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
          key: i
        }), s.add(i), this.match(134) ? r.key = this.parseStringLiteral(i) : r.key = this.parseIdentifier(!0), this.expect(14), !this.match(
        134))
          throw this.raise(ee.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return this.expect(8), e;
    }
    parseModuleAttributes() {
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        let r = this.startNode();
        if (r.key = this.parseIdentifier(!0), r.key.name !== "type" && this.raise(ee.ModuleAttributeDifferentFromType, r.key), s.has(r.key.name) &&
        this.raise(ee.ModuleAttributesWithDuplicateKeys, r.key, {
          key: r.key.name
        }), s.add(r.key.name), this.expect(14), !this.match(134))
          throw this.raise(ee.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return e;
    }
    maybeParseImportAttributes(e) {
      let s;
      var r = !1;
      if (this.match(76)) {
        if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
          return;
        this.next(), this.hasPlugin("moduleAttributes") ? s = this.parseModuleAttributes() : s = this.parseImportAttributes(), r = !0;
      } else this.isContextual(94) && !this.hasPrecedingLineBreak() ? (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importA\
ssertions") && this.raise(ee.ImportAttributesUseAssert, this.state.startLoc), this.hasPlugin("importAssertions") || this.addExtra(e, "deprec\
atedAssertSyntax", !0), this.next(), s = this.parseImportAttributes()) : s = [];
      !r && this.hasPlugin("importAssertions") ? e.assertions = s : e.attributes = s;
    }
    maybeParseDefaultImportSpecifier(e, s) {
      if (s) {
        let r = this.startNodeAtNode(s);
        return r.local = s, e.specifiers.push(this.finishImportSpecifier(r, "ImportDefaultSpecifier")), !0;
      } else if (Oo(this.state.type))
        return this.parseImportSpecifierLocal(e, this.startNode(), "ImportDefaultSpecifier"), !0;
      return !1;
    }
    maybeParseStarImportSpecifier(e) {
      if (this.match(55)) {
        let s = this.startNode();
        return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(e, s, "ImportNamespaceSpecifier"), !0;
      }
      return !1;
    }
    parseNamedImportSpecifiers(e) {
      let s = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (s)
          s = !1;
        else {
          if (this.eat(14))
            throw this.raise(ee.DestructureNamedImport, this.state.startLoc);
          if (this.expect(12), this.eat(8)) break;
        }
        let r = this.startNode(), i = this.match(134), a = this.isContextual(130);
        r.imported = this.parseModuleExportName();
        let o = this.parseImportSpecifier(r, i, e.importKind === "type" || e.importKind === "typeof", a, void 0);
        e.specifiers.push(o);
      }
    }
    parseImportSpecifier(e, s, r, i, a) {
      if (this.eatContextual(93))
        e.local = this.parseIdentifier();
      else {
        let {
          imported: o
        } = e;
        if (s)
          throw this.raise(ee.ImportBindingIsString, e, {
            importName: o.value
          });
        this.checkReservedWord(o.name, e.loc.start, !0, !0), e.local || (e.local = Bu(o));
      }
      return this.finishImportSpecifier(e, "ImportSpecifier", a);
    }
    isThisParam(e) {
      return e.type === "Identifier" && e.name === "this";
    }
  }, sA = class extends wM {
    static {
      n(this, "Parser");
    }
    constructor(e, s, r) {
      e = XAt(e), super(e, s), this.options = e, this.initializeScopes(), this.plugins = r, this.filename = e.sourceFilename, this.startIndex =
      e.startIndex;
      let i = 0;
      e.allowAwaitOutsideFunction && (i |= 1), e.allowReturnOutsideFunction && (i |= 2), e.allowImportExportEverywhere && (i |= 8), e.allowSuperOutsideMethod &&
      (i |= 16), e.allowUndeclaredExports && (i |= 32), e.allowNewTargetOutsideFunction && (i |= 4), e.ranges && (i |= 64), e.tokens && (i |=
      128), e.createImportExpressions && (i |= 256), e.createParenthesizedExpressions && (i |= 512), e.errorRecovery && (i |= 1024), e.attachComment &&
      (i |= 2048), e.annexB && (i |= 4096), this.optionFlags = i;
    }
    getScopeHandler() {
      return M0;
    }
    parse() {
      this.enterInitialScopes();
      let e = this.startNode(), s = this.startNode();
      return this.nextToken(), e.errors = null, this.parseTopLevel(e, s), e.errors = this.state.errors, e.comments.length = this.state.commentsLen,
      e;
    }
  };
  function evt(t, e) {
    var s;
    if (((s = e) == null ? void 0 : s.sourceType) === "unambiguous") {
      e = Object.assign({}, e);
      try {
        e.sourceType = "module";
        let r = _0(e, t), i = r.parse();
        if (r.sawUnambiguousESM)
          return i;
        if (r.ambiguousScriptDifferentAst)
          try {
            return e.sourceType = "script", _0(e, t).parse();
          } catch {
          }
        else
          i.program.sourceType = "script";
        return i;
      } catch (r) {
        try {
          return e.sourceType = "script", _0(e, t).parse();
        } catch {
        }
        throw r;
      }
    } else
      return _0(e, t).parse();
  }
  n(evt, "parse");
  function tvt(t, e) {
    let s = _0(e, t);
    return s.options.strictMode && (s.state.strict = !0), s.getExpression();
  }
  n(tvt, "parseExpression");
  function svt(t) {
    let e = {};
    for (let s of Object.keys(t))
      e[s] = Du(t[s]);
    return e;
  }
  n(svt, "generateExportedTokenTypes");
  var rvt = svt(ZAt);
  function _0(t, e) {
    let s = sA, r = /* @__PURE__ */ new Map();
    if (t != null && t.plugins) {
      for (let i of t.plugins) {
        let a, o;
        typeof i == "string" ? a = i : [a, o] = i, r.has(a) || r.set(a, o || {});
      }
      X1t(r), s = ivt(r);
    }
    return new s(t, e, r);
  }
  n(_0, "getParser");
  var kre = /* @__PURE__ */ new Map();
  function ivt(t) {
    let e = [];
    for (let i of z1t)
      t.has(i) && e.push(i);
    let s = e.join("|"), r = kre.get(s);
    if (!r) {
      r = sA;
      for (let i of e)
        r = $re[i](r);
      kre.set(s, r);
    }
    return r;
  }
  n(ivt, "getParserClass");
  j0.parse = evt;
  j0.parseExpression = tvt;
  j0.tokTypes = rvt;
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/replacement.js
var XB = g((Tp) => {
  "use strict";
  Object.defineProperty(Tp, "__esModule", {
    value: !0
  });
  Tp._replaceWith = eie;
  Tp.replaceExpressionWithStatements = Ovt;
  Tp.replaceInline = _vt;
  Tp.replaceWith = Dvt;
  Tp.replaceWithMultiple = Nvt;
  Tp.replaceWithSourceString = kvt;
  var nvt = Hl(), RM = v0(), avt = dp(), Gre = zh(), qM = $E(), ovt = Hre(), lvt = fe(), Cm = dl(), {
    FUNCTION_TYPES: Jre,
    arrowFunctionExpression: uvt,
    assignmentExpression: Qre,
    awaitExpression: cvt,
    blockStatement: pvt,
    buildUndefinedNode: jM,
    callExpression: hvt,
    cloneNode: UM,
    conditionalExpression: fvt,
    expressionStatement: dvt,
    getBindingIdentifiers: mvt,
    identifier: yvt,
    inheritLeadingComments: gvt,
    inheritTrailingComments: Tvt,
    inheritsComments: bvt,
    isBlockStatement: xvt,
    isEmptyStatement: Yre,
    isExpression: Zre,
    isExpressionStatement: Svt,
    isIfStatement: Pvt,
    isProgram: Evt,
    isStatement: Avt,
    isVariableDeclaration: vvt,
    removeComments: Cvt,
    returnStatement: Xre,
    sequenceExpression: wvt,
    validate: zre,
    yieldExpression: Ivt
  } = lvt;
  function Nvt(t) {
    var e;
    Cm.resync.call(this), t = qM._verifyNodeList.call(this, t), gvt(t[0], this.node), Tvt(t[t.length - 1], this.node), (e = (0, Gre.getCachedPaths)(
    this.hub, this.parent)) == null || e.delete(this.node), this.node = this.container[this.key] = null;
    let s = this.insertAfter(t);
    return this.node ? this.requeue() : this.remove(), s;
  }
  n(Nvt, "replaceWithMultiple");
  function kvt(t) {
    Cm.resync.call(this);
    let e;
    try {
      t = `(${t})`, e = (0, ovt.parse)(t);
    } catch (r) {
      let i = r.loc;
      throw i && (r.message += ` - make sure this is an expression.
` + (0, nvt.codeFrameColumns)(t, {
        start: {
          line: i.line,
          column: i.column + 1
        }
      }), r.code = "BABEL_REPLACE_SOURCE_ERROR"), r;
    }
    let s = e.program.body[0].expression;
    return RM.default.removeProperties(s), this.replaceWith(s);
  }
  n(kvt, "replaceWithSourceString");
  function Dvt(t) {
    if (Cm.resync.call(this), this.removed)
      throw new Error("You can't replace this node, we've already removed it");
    let e = t instanceof avt.default ? t.node : t;
    if (!e)
      throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");
    if (this.node === e)
      return [this];
    if (this.isProgram() && !Evt(e))
      throw new Error("You can only replace a Program root node with another Program node");
    if (Array.isArray(e))
      throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");
    if (typeof e == "string")
      throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");
    let s = "";
    if (this.isNodeType("Statement") && Zre(e) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(
    e) && !this.parentPath.isExportDefaultDeclaration() && (e = dvt(e), s = "expression"), this.isNodeType("Expression") && Avt(e) && !this.
    canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(e))
      return this.replaceExpressionWithStatements([e]);
    let r = this.node;
    return r && (bvt(e, r), Cvt(r)), eie.call(this, e), this.type = e.type, Cm.setScope.call(this), this.requeue(), [s ? this.get(s) : this];
  }
  n(Dvt, "replaceWith");
  function eie(t) {
    var e;
    if (!this.container)
      throw new ReferenceError("Container is falsy");
    this.inList ? zre(this.parent, this.key, [t]) : zre(this.parent, this.key, t), this.debug(`Replace with ${t?.type}`), (e = (0, Gre.getCachedPaths)(
    this.hub, this.parent)) == null || e.set(t, this).delete(this.node), this.node = this.container[this.key] = t;
  }
  n(eie, "_replaceWith");
  function Ovt(t) {
    Cm.resync.call(this);
    let e = [], s = rA(t, e);
    if (s) {
      for (let f of e) this.scope.push({
        id: f
      });
      return this.replaceWith(s)[0].get("expressions");
    }
    let r = this.getFunctionParent(), i = r?.node.async, a = r?.node.generator, o = uvt([], pvt(t));
    this.replaceWith(hvt(o, []));
    let l = this.get("callee");
    l.get("body").scope.hoistVariables((f) => this.scope.push({
      id: f
    }));
    let u = l.getCompletionRecords();
    for (let f of u) {
      if (!f.isExpressionStatement()) continue;
      let d = f.findParent((m) => m.isLoop());
      if (d) {
        let m = d.getData("expressionReplacementReturnUid");
        m ? m = yvt(m.name) : (m = l.scope.generateDeclaredUidIdentifier("ret"), l.get("body").pushContainer("body", Xre(UM(m))), d.setData(
        "expressionReplacementReturnUid", m)), f.get("expression").replaceWith(Qre("=", UM(m), f.node.expression));
      } else
        f.replaceWith(Xre(f.node.expression));
    }
    l.arrowFunctionToExpression();
    let c = l, p = i && RM.default.hasType(this.get("callee.body").node, "AwaitExpression", Jre), h = a && RM.default.hasType(this.get("call\
ee.body").node, "YieldExpression", Jre);
    return p && (c.set("async", !0), h || this.replaceWith(cvt(this.node))), h && (c.set("generator", !0), this.replaceWith(Ivt(this.node, !0))),
    c.get("body.body");
  }
  n(Ovt, "replaceExpressionWithStatements");
  function rA(t, e) {
    let s = [], r = !0;
    for (let i of t)
      if (Yre(i) || (r = !1), Zre(i))
        s.push(i);
      else if (Svt(i))
        s.push(i.expression);
      else if (vvt(i)) {
        if (i.kind !== "var") return;
        for (let a of i.declarations) {
          let o = mvt(a);
          for (let l of Object.keys(o))
            e.push(UM(o[l]));
          a.init && s.push(Qre("=", a.id, a.init));
        }
        r = !0;
      } else if (Pvt(i)) {
        let a = i.consequent ? rA([i.consequent], e) : jM(), o = i.alternate ? rA([i.alternate], e) : jM();
        if (!a || !o) return;
        s.push(fvt(i.test, a, o));
      } else if (xvt(i)) {
        let a = rA(i.body, e);
        if (!a) return;
        s.push(a);
      } else if (Yre(i))
        t.indexOf(i) === 0 && (r = !0);
      else
        return;
    return r && s.push(jM()), s.length === 1 ? s[0] : wvt(s);
  }
  n(rA, "gatherSequenceExpressions");
  function _vt(t) {
    if (Cm.resync.call(this), Array.isArray(t))
      if (Array.isArray(this.container)) {
        t = qM._verifyNodeList.call(this, t);
        let e = qM._containerInsertAfter.call(this, t);
        return this.remove(), e;
      } else
        return this.replaceWithMultiple(t);
    else
      return this.replaceWith(t);
  }
  n(_vt, "replaceInline");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/evaluation.js
var iie = g((iA) => {
  "use strict";
  Object.defineProperty(iA, "__esModule", {
    value: !0
  });
  iA.evaluate = Uvt;
  iA.evaluateTruthy = Rvt;
  var Lvt = ["Number", "String", "Math"], Bvt = ["isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeUR\
I", "encodeURIComponent", null, null], Mvt = ["random"];
  function tie(t) {
    return Lvt.includes(t);
  }
  n(tie, "isValidObjectCallee");
  function Fvt(t) {
    return Bvt.includes(t);
  }
  n(Fvt, "isValidIdentifierCallee");
  function jvt(t) {
    return Mvt.includes(t);
  }
  n(jvt, "isInvalidMethod");
  function Rvt() {
    let t = this.evaluate();
    if (t.confident) return !!t.value;
  }
  n(Rvt, "evaluateTruthy");
  function Mu(t, e) {
    e.confident && (e.deoptPath = t, e.confident = !1);
  }
  n(Mu, "deopt");
  var sie = /* @__PURE__ */ new Map([["undefined", void 0], ["Infinity", 1 / 0], ["NaN", NaN]]);
  function _n(t, e) {
    let {
      node: s
    } = t, {
      seen: r
    } = e;
    if (r.has(s)) {
      let i = r.get(s);
      if (i.resolved)
        return i.value;
      Mu(t, e);
      return;
    } else {
      let i = {
        resolved: !1
      };
      r.set(s, i);
      let a = qvt(t, e);
      return e.confident && (i.resolved = !0, i.value = a), a;
    }
  }
  n(_n, "evaluateCached");
  function qvt(t, e) {
    if (e.confident) {
      if (t.isSequenceExpression()) {
        let s = t.get("expressions");
        return _n(s[s.length - 1], e);
      }
      if (t.isStringLiteral() || t.isNumericLiteral() || t.isBooleanLiteral())
        return t.node.value;
      if (t.isNullLiteral())
        return null;
      if (t.isTemplateLiteral())
        return rie(t, t.node.quasis, e);
      if (t.isTaggedTemplateExpression() && t.get("tag").isMemberExpression()) {
        let s = t.get("tag.object"), {
          node: {
            name: r
          }
        } = s, i = t.get("tag.property");
        if (s.isIdentifier() && r === "String" && !t.scope.getBinding(r) && i.isIdentifier() && i.node.name === "raw")
          return rie(t, t.node.quasi.quasis, e, !0);
      }
      if (t.isConditionalExpression()) {
        let s = _n(t.get("test"), e);
        return e.confident ? _n(s ? t.get("consequent") : t.get("alternate"), e) : void 0;
      }
      if (t.isExpressionWrapper())
        return _n(t.get("expression"), e);
      if (t.isMemberExpression() && !t.parentPath.isCallExpression({
        callee: t.node
      })) {
        let s = t.get("property"), r = t.get("object");
        if (r.isLiteral()) {
          let i = r.node.value, a = typeof i, o = null;
          if (t.node.computed) {
            if (o = _n(s, e), !e.confident) return;
          } else s.isIdentifier() && (o = s.node.name);
          if ((a === "number" || a === "string") && o != null && (typeof o == "number" || typeof o == "string"))
            return i[o];
        }
      }
      if (t.isReferencedIdentifier()) {
        let s = t.scope.getBinding(t.node.name);
        if (s) {
          if (s.constantViolations.length > 0 || t.node.start < s.path.node.end) {
            Mu(s.path, e);
            return;
          }
          if (s.hasValue)
            return s.value;
        }
        let r = t.node.name;
        if (sie.has(r)) {
          if (!s)
            return sie.get(r);
          Mu(s.path, e);
          return;
        }
        let i = t.resolve();
        if (i === t) {
          Mu(t, e);
          return;
        } else
          return _n(i, e);
      }
      if (t.isUnaryExpression({
        prefix: !0
      })) {
        if (t.node.operator === "void")
          return;
        let s = t.get("argument");
        if (t.node.operator === "typeof" && (s.isFunction() || s.isClass()))
          return "function";
        let r = _n(s, e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "!":
            return !r;
          case "+":
            return +r;
          case "-":
            return -r;
          case "~":
            return ~r;
          case "typeof":
            return typeof r;
        }
      }
      if (t.isArrayExpression()) {
        let s = [], r = t.get("elements");
        for (let i of r) {
          let a = i.evaluate();
          if (a.confident)
            s.push(a.value);
          else {
            Mu(a.deopt, e);
            return;
          }
        }
        return s;
      }
      if (t.isObjectExpression()) {
        let s = {}, r = t.get("properties");
        for (let i of r) {
          if (i.isObjectMethod() || i.isSpreadElement()) {
            Mu(i, e);
            return;
          }
          let a = i.get("key"), o;
          if (i.node.computed) {
            if (o = a.evaluate(), !o.confident) {
              Mu(o.deopt, e);
              return;
            }
            o = o.value;
          } else a.isIdentifier() ? o = a.node.name : o = a.node.value;
          let u = i.get("value").evaluate();
          if (!u.confident) {
            Mu(u.deopt, e);
            return;
          }
          u = u.value, s[o] = u;
        }
        return s;
      }
      if (t.isLogicalExpression()) {
        let s = e.confident, r = _n(t.get("left"), e), i = e.confident;
        e.confident = s;
        let a = _n(t.get("right"), e), o = e.confident;
        switch (t.node.operator) {
          case "||":
            return e.confident = i && (!!r || o), e.confident ? r || a : void 0;
          case "&&":
            return e.confident = i && (!r || o), e.confident ? r && a : void 0;
          case "??":
            return e.confident = i && (r != null || o), e.confident ? r ?? a : void 0;
        }
      }
      if (t.isBinaryExpression()) {
        let s = _n(t.get("left"), e);
        if (!e.confident) return;
        let r = _n(t.get("right"), e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "-":
            return s - r;
          case "+":
            return s + r;
          case "/":
            return s / r;
          case "*":
            return s * r;
          case "%":
            return s % r;
          case "**":
            return Math.pow(s, r);
          case "<":
            return s < r;
          case ">":
            return s > r;
          case "<=":
            return s <= r;
          case ">=":
            return s >= r;
          case "==":
            return s == r;
          case "!=":
            return s != r;
          case "===":
            return s === r;
          case "!==":
            return s !== r;
          case "|":
            return s | r;
          case "&":
            return s & r;
          case "^":
            return s ^ r;
          case "<<":
            return s << r;
          case ">>":
            return s >> r;
          case ">>>":
            return s >>> r;
        }
      }
      if (t.isCallExpression()) {
        let s = t.get("callee"), r, i;
        if (s.isIdentifier() && !t.scope.getBinding(s.node.name) && (tie(s.node.name) || Fvt(s.node.name)) && (i = global[s.node.name]), s.isMemberExpression()) {
          let a = s.get("object"), o = s.get("property");
          if (a.isIdentifier() && o.isIdentifier() && tie(a.node.name) && !jvt(o.node.name)) {
            r = global[a.node.name];
            let l = o.node.name;
            hasOwnProperty.call(r, l) && (i = r[l]);
          }
          if (a.isLiteral() && o.isIdentifier()) {
            let l = typeof a.node.value;
            (l === "string" || l === "number") && (r = a.node.value, i = r[o.node.name]);
          }
        }
        if (i) {
          let a = t.get("arguments").map((o) => _n(o, e));
          return e.confident ? i.apply(r, a) : void 0;
        }
      }
      Mu(t, e);
    }
  }
  n(qvt, "_evaluate");
  function rie(t, e, s, r = !1) {
    let i = "", a = 0, o = t.isTemplateLiteral() ? t.get("expressions") : t.get("quasi.expressions");
    for (let l of e) {
      if (!s.confident) break;
      i += r ? l.value.raw : l.value.cooked;
      let u = o[a++];
      u && (i += String(_n(u, s)));
    }
    if (s.confident)
      return i;
  }
  n(rie, "evaluateQuasis");
  function Uvt() {
    let t = {
      confident: !0,
      deoptPath: null,
      seen: /* @__PURE__ */ new Map()
    }, e = _n(this, t);
    return t.confident || (e = void 0), {
      confident: t.confident,
      deopt: t.deoptPath,
      value: e
    };
  }
  n(Uvt, "evaluate");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/conversion.js
var hie = g((Fu) => {
  "use strict";
  Object.defineProperty(Fu, "__esModule", {
    value: !0
  });
  Fu.arrowFunctionToExpression = gCt;
  Fu.ensureBlock = dCt;
  Fu.ensureFunctionName = NCt;
  Fu.splitExportDeclaration = wCt;
  Fu.toComputedKey = fCt;
  Fu.unwrapFunctionEnvironment = mCt;
  var Kvt = fe(), Vvt = Jl(), WM = A0(), Wvt = dl(), {
    arrowFunctionExpression: $M,
    assignmentExpression: af,
    binaryExpression: KM,
    blockStatement: $vt,
    callExpression: wm,
    conditionalExpression: Hvt,
    expressionStatement: oie,
    identifier: yr,
    isIdentifier: Jvt,
    jsxIdentifier: Yvt,
    logicalExpression: Xvt,
    LOGICAL_OPERATORS: zvt,
    memberExpression: _o,
    metaProperty: Gvt,
    numericLiteral: Qvt,
    objectExpression: Zvt,
    restElement: eCt,
    returnStatement: tCt,
    sequenceExpression: sCt,
    spreadElement: rCt,
    stringLiteral: lie,
    super: VM,
    thisExpression: R0,
    toExpression: uie,
    unaryExpression: iCt,
    toBindingIdentifierName: nCt,
    isFunction: aCt,
    isAssignmentPattern: oCt,
    isRestElement: lCt,
    getFunctionName: uCt,
    cloneNode: of,
    variableDeclaration: cCt,
    variableDeclarator: pCt,
    exportNamedDeclaration: nie,
    exportSpecifier: aie,
    inherits: hCt
  } = Kvt;
  function fCt() {
    let t;
    if (this.isMemberExpression())
      t = this.node.property;
    else if (this.isProperty() || this.isMethod())
      t = this.node.key;
    else
      throw new ReferenceError("todo");
    return this.node.computed || Jvt(t) && (t = lie(t.name)), t;
  }
  n(fCt, "toComputedKey");
  function dCt() {
    let t = this.get("body"), e = t.node;
    if (Array.isArray(t))
      throw new Error("Can't convert array path to a block statement");
    if (!e)
      throw new Error("Can't convert node without a body");
    if (t.isBlockStatement())
      return e;
    let s = [], r = "body", i, a;
    t.isStatement() ? (a = "body", i = 0, s.push(t.node)) : (r += ".body.0", this.isFunction() ? (i = "argument", s.push(tCt(t.node))) : (i =
    "expression", s.push(oie(t.node)))), this.node.body = $vt(s);
    let o = this.get(r);
    return Wvt.setup.call(t, o, a ? o.node[a] : o.node, a, i), this.node;
  }
  n(dCt, "ensureBlock");
  Fu.arrowFunctionToShadowed = function() {
    this.isArrowFunctionExpression() && this.arrowFunctionToExpression();
  };
  function mCt() {
    if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration())
      throw this.buildCodeFrameError("Can only unwrap the environment of a function.");
    cie(this);
  }
  n(mCt, "unwrapFunctionEnvironment");
  function yCt(t, e) {
    t.node.type = e;
  }
  n(yCt, "setType");
  function gCt({
    allowInsertArrow: t = !0,
    allowInsertArrowWithRest: e = t,
    noNewArrows: s = !((r) => (r = arguments[0]) == null ? void 0 : r.specCompliant)()
  } = {}) {
    if (!this.isArrowFunctionExpression())
      throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");
    let r = this;
    if (!s) {
      var i;
      r = (i = r.ensureFunctionName(!1)) != null ? i : r;
    }
    let {
      thisBinding: a,
      fnPath: o
    } = cie(r, s, t, e);
    if (o.ensureBlock(), yCt(o, "FunctionExpression"), !s) {
      let l = a ? null : o.scope.generateUidIdentifier("arrowCheckId");
      return l && o.parentPath.scope.push({
        id: l,
        init: Zvt([])
      }), o.get("body").unshiftContainer("body", oie(wm(this.hub.addHelper("newArrowCheck"), [R0(), yr(l ? l.name : a)]))), o.replaceWith(wm(
      _o(o.node, yr("bind")), [l ? yr(l.name) : R0()])), o.get("callee.object");
    }
    return o;
  }
  n(gCt, "arrowFunctionToExpression");
  var TCt = (0, WM.environmentVisitor)({
    CallExpression(t, {
      allSuperCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    }
  });
  function cie(t, e = !0, s = !0, r = !0) {
    let i, a = t.findParent((d) => {
      if (d.isArrowFunctionExpression()) {
        var m;
        return (m = i) != null || (i = d), !1;
      }
      return d.isFunction() || d.isProgram() || d.isClassProperty({
        static: !1
      }) || d.isClassPrivateProperty({
        static: !1
      });
    }), o = a.isClassMethod({
      kind: "constructor"
    });
    if (a.isClassProperty() || a.isClassPrivateProperty())
      if (i)
        a = i;
      else if (s)
        t.replaceWith(wm($M([], uie(t.node)), [])), a = t.get("callee"), t = a.get("body");
      else
        throw t.buildCodeFrameError("Unable to transform arrow inside class property");
    let {
      thisPaths: l,
      argumentsPaths: u,
      newTargetPaths: c,
      superProps: p,
      superCalls: h
    } = CCt(t);
    if (o && h.length > 0) {
      if (!s)
        throw h[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an a\
rrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      if (!r)
        throw h[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\
.");
      let d = [];
      a.traverse(TCt, {
        allSuperCalls: d
      });
      let m = ECt(a);
      d.forEach((y) => {
        let T = yr(m);
        T.loc = y.node.callee.loc, y.get("callee").replaceWith(T);
      });
    }
    if (u.length > 0) {
      let d = q0(a, "arguments", () => {
        let m = /* @__PURE__ */ n(() => yr("arguments"), "args");
        return a.scope.path.isProgram() ? Hvt(KM("===", iCt("typeof", m()), lie("undefined")), a.scope.buildUndefinedNode(), m()) : m();
      });
      u.forEach((m) => {
        let y = yr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (c.length > 0) {
      let d = q0(a, "newtarget", () => Gvt(yr("new"), yr("target")));
      c.forEach((m) => {
        let y = yr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (p.length > 0) {
      if (!s)
        throw p[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in a\
n arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      p.reduce((m, y) => m.concat(xCt(y)), []).forEach((m) => {
        let y = m.node.computed ? "" : m.get("property").node.name, T = m.parentPath, b = T.isAssignmentExpression({
          left: m.node
        }), E = T.isCallExpression({
          callee: m.node
        }), V = T.isTaggedTemplateExpression({
          tag: m.node
        }), W = ACt(a, b, y), oe = [];
        if (m.node.computed && oe.push(m.get("property").node), b) {
          let ye = T.node.right;
          oe.push(ye);
        }
        let de = wm(yr(W), oe);
        E ? (T.unshiftContainer("arguments", R0()), m.replaceWith(_o(de, yr("call"))), l.push(T.get("arguments.0"))) : b ? T.replaceWith(de) :
        V ? (m.replaceWith(wm(_o(de, yr("bind"), !1), [R0()])), l.push(m.get("arguments.0"))) : m.replaceWith(de);
      });
    }
    let f;
    return (l.length > 0 || !e) && (f = PCt(a, o), (e || o && pie(a)) && (l.forEach((d) => {
      let m = d.isJSX() ? Yvt(f) : yr(f);
      m.loc = d.node.loc, d.replaceWith(m);
    }), e || (f = null))), {
      thisBinding: f,
      fnPath: t
    };
  }
  n(cie, "hoistFunctionEnvironment");
  function bCt(t) {
    return zvt.includes(t);
  }
  n(bCt, "isLogicalOp");
  function xCt(t) {
    if (t.parentPath.isAssignmentExpression() && t.parentPath.node.operator !== "=") {
      let s = t.parentPath, r = s.node.operator.slice(0, -1), i = s.node.right, a = bCt(r);
      if (t.node.computed) {
        let o = t.scope.generateDeclaredUidIdentifier("tmp"), l = t.node.object, u = t.node.property;
        s.get("left").replaceWith(_o(l, af("=", o, u), !0)), s.get("right").replaceWith(e(a ? "=" : r, _o(l, yr(o.name), !0), i));
      } else {
        let o = t.node.object, l = t.node.property;
        s.get("left").replaceWith(_o(o, l)), s.get("right").replaceWith(e(a ? "=" : r, _o(o, yr(l.name)), i));
      }
      return a ? s.replaceWith(Xvt(r, s.node.left, s.node.right)) : s.node.operator = "=", [s.get("left"), s.get("right").get("left")];
    } else if (t.parentPath.isUpdateExpression()) {
      let s = t.parentPath, r = t.scope.generateDeclaredUidIdentifier("tmp"), i = t.node.computed ? t.scope.generateDeclaredUidIdentifier("p\
rop") : null, a = [af("=", r, _o(t.node.object, i ? af("=", i, t.node.property) : t.node.property, t.node.computed)), af("=", _o(t.node.object,
      i ? yr(i.name) : t.node.property, t.node.computed), KM(t.parentPath.node.operator[0], yr(r.name), Qvt(1)))];
      t.parentPath.node.prefix || a.push(yr(r.name)), s.replaceWith(sCt(a));
      let o = s.get("expressions.0.right"), l = s.get("expressions.1.left");
      return [o, l];
    }
    return [t];
    function e(s, r, i) {
      return s === "=" ? af("=", r, i) : KM(s, r, i);
    }
  }
  n(xCt, "standardizeSuperProperty");
  function pie(t) {
    return t.isClassMethod() && !!t.parentPath.parentPath.node.superClass;
  }
  n(pie, "hasSuperClass");
  var SCt = (0, WM.environmentVisitor)({
    CallExpression(t, {
      supers: e,
      thisBinding: s
    }) {
      t.get("callee").isSuper() && (e.has(t.node) || (e.add(t.node), t.replaceWithMultiple([t.node, af("=", yr(s), yr("this"))])));
    }
  });
  function PCt(t, e) {
    return q0(t, "this", (s) => {
      if (!e || !pie(t)) return R0();
      t.traverse(SCt, {
        supers: /* @__PURE__ */ new WeakSet(),
        thisBinding: s
      });
    });
  }
  n(PCt, "getThisBinding");
  function ECt(t) {
    return q0(t, "supercall", () => {
      let e = t.scope.generateUidIdentifier("args");
      return $M([eCt(e)], wm(VM(), [rCt(yr(e.name))]));
    });
  }
  n(ECt, "getSuperBinding");
  function ACt(t, e, s) {
    return q0(t, `superprop_${e ? "set" : "get"}:${s || ""}`, () => {
      let i = [], a;
      if (s)
        a = _o(VM(), yr(s));
      else {
        let o = t.scope.generateUidIdentifier("prop");
        i.unshift(o), a = _o(VM(), yr(o.name), !0);
      }
      if (e) {
        let o = t.scope.generateUidIdentifier("value");
        i.push(o), a = af("=", a, yr(o.name));
      }
      return $M(i, a);
    });
  }
  n(ACt, "getSuperPropBinding");
  function q0(t, e, s) {
    let r = "binding:" + e, i = t.getData(r);
    if (!i) {
      let a = t.scope.generateUidIdentifier(e);
      i = a.name, t.setData(r, i), t.scope.push({
        id: a,
        init: s(i)
      });
    }
    return i;
  }
  n(q0, "getBinding");
  var vCt = (0, WM.environmentVisitor)({
    ThisExpression(t, {
      thisPaths: e
    }) {
      e.push(t);
    },
    JSXIdentifier(t, {
      thisPaths: e
    }) {
      t.node.name === "this" && (!t.parentPath.isJSXMemberExpression({
        object: t.node
      }) && !t.parentPath.isJSXOpeningElement({
        name: t.node
      }) || e.push(t));
    },
    CallExpression(t, {
      superCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    },
    MemberExpression(t, {
      superProps: e
    }) {
      t.get("object").isSuper() && e.push(t);
    },
    Identifier(t, {
      argumentsPaths: e
    }) {
      if (!t.isReferencedIdentifier({
        name: "arguments"
      })) return;
      let s = t.scope;
      do {
        if (s.hasOwnBinding("arguments")) {
          s.rename("arguments");
          return;
        }
        if (s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
      } while (s = s.parent);
      e.push(t);
    },
    MetaProperty(t, {
      newTargetPaths: e
    }) {
      t.get("meta").isIdentifier({
        name: "new"
      }) && t.get("property").isIdentifier({
        name: "target"
      }) && e.push(t);
    }
  });
  function CCt(t) {
    let e = [], s = [], r = [], i = [], a = [];
    return t.traverse(vCt, {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    }), {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    };
  }
  n(CCt, "getScopeInformation");
  function wCt() {
    if (!this.isExportDeclaration() || this.isExportAllDeclaration())
      throw new Error("Only default and named export declarations can be split.");
    if (this.isExportNamedDeclaration() && this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let t = this.get("declaration");
    if (this.isExportDefaultDeclaration()) {
      let i = t.isFunctionDeclaration() || t.isClassDeclaration(), a = t.isFunctionExpression() || t.isClassExpression(), o = t.isScope() ? t.
      scope.parent : t.scope, l = t.node.id, u = !1;
      l ? a && o.hasBinding(l.name) && (u = !0, l = o.generateUidIdentifier(l.name)) : (u = !0, l = o.generateUidIdentifier("default"), (i ||
      a) && (t.node.id = of(l)));
      let c = i ? t.node : cCt("var", [pCt(of(l), t.node)]), p = nie(null, [aie(of(l), yr("default"))]);
      return this.insertAfter(p), this.replaceWith(c), u && o.registerDeclaration(this), this;
    } else if (this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let e = t.getOuterBindingIdentifiers(), s = Object.keys(e).map((i) => aie(yr(i), yr(i))), r = nie(null, s);
    return this.insertAfter(r), this.replaceWith(t.node), this;
  }
  n(wCt, "splitExportDeclaration");
  var ICt = {
    "ReferencedIdentifier|BindingIdentifier"(t, e) {
      t.node.name === e.name && (e.needsRename = !0, t.stop());
    },
    Scope(t, e) {
      t.scope.hasOwnBinding(e.name) && t.skip();
    }
  };
  function NCt(t) {
    if (this.node.id) return this;
    let e = uCt(this.node, this.parent);
    if (e == null) return this;
    let {
      name: s
    } = e;
    if (!t && /[\uD800-\uDFFF]/.test(s) || s.startsWith("get ") || s.startsWith("set "))
      return null;
    s = nCt(s.replace(/[/ ]/g, "_"));
    let r = yr(s);
    hCt(r, e.originalNode);
    let i = {
      needsRename: !1,
      name: s
    }, {
      scope: a
    } = this, o = a.getOwnBinding(s);
    if (o ? o.kind === "param" && (i.needsRename = !0) : (a.parent.hasBinding(s) || a.hasGlobal(s)) && this.traverse(ICt, i), !i.needsRename)
      return this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (a.hasBinding(r.name) && !a.hasGlobal(r.name))
      return a.rename(r.name), this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (!aCt(this.node)) return null;
    let l = a.generateUidIdentifier(r.name), u = [];
    for (let p = 0, h = kCt(this.node); p < h; p++)
      u.push(a.generateUidIdentifier("x"));
    let c = Vvt.default.expression.ast`
    (function (${l}) {
      function ${r}(${u}) {
        return ${of(l)}.apply(this, arguments);
      }

      ${of(r)}.toString = function () {
        return ${of(l)}.toString();
      }

      return ${of(r)};
    })(${uie(this.node)})
  `;
    return this.replaceWith(c)[0].get("arguments.0");
  }
  n(NCt, "ensureFunctionName");
  function kCt(t) {
    let e = t.params.findIndex((s) => oCt(s) || lCt(s));
    return e === -1 ? t.params.length : e;
  }
  n(kCt, "getFunctionArity");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/introspection.js
var Tie = g((ui) => {
  "use strict";
  Object.defineProperty(ui, "__esModule", {
    value: !0
  });
  ui._guessExecutionStatusRelativeTo = GCt;
  ui._resolve = gie;
  ui.canHaveVariableDeclarationOrExpression = VCt;
  ui.canSwapBetweenExpressionAndStatement = WCt;
  ui.getSource = YCt;
  ui.isCompletionRecord = $Ct;
  ui.isConstantExpression = twt;
  ui.isInStrictMode = swt;
  ui.isNodeType = KCt;
  ui.isStatementOrBlock = HCt;
  ui.isStatic = UCt;
  ui.matchesPattern = qCt;
  ui.referencesImport = JCt;
  ui.resolve = ewt;
  ui.willIMaybeExecuteBefore = XCt;
  var DCt = fe(), {
    STATEMENT_OR_BLOCK_KEYS: OCt,
    VISITOR_KEYS: _Ct,
    isBlockStatement: yie,
    isExpression: LCt,
    isIdentifier: BCt,
    isLiteral: MCt,
    isStringLiteral: FCt,
    isType: jCt,
    matchesPattern: RCt
  } = DCt;
  function qCt(t, e) {
    return RCt(this.node, t, e);
  }
  n(qCt, "matchesPattern");
  ui.has = /* @__PURE__ */ n(function(e) {
    var s;
    let r = (s = this.node) == null ? void 0 : s[e];
    return r && Array.isArray(r) ? !!r.length : !!r;
  }, "has");
  function UCt() {
    return this.scope.isStatic(this.node);
  }
  n(UCt, "isStatic");
  ui.is = ui.has, ui.isnt = /* @__PURE__ */ n(function(e) {
    return !this.has(e);
  }, "isnt"), ui.equals = /* @__PURE__ */ n(function(e, s) {
    return this.node[e] === s;
  }, "equals");
  function KCt(t) {
    return jCt(this.type, t);
  }
  n(KCt, "isNodeType");
  function VCt() {
    return (this.key === "init" || this.key === "left") && this.parentPath.isFor();
  }
  n(VCt, "canHaveVariableDeclarationOrExpression");
  function WCt(t) {
    return this.key !== "body" || !this.parentPath.isArrowFunctionExpression() ? !1 : this.isExpression() ? yie(t) : this.isBlockStatement() ?
    LCt(t) : !1;
  }
  n(WCt, "canSwapBetweenExpressionAndStatement");
  function $Ct(t) {
    let e = this, s = !0;
    do {
      let {
        type: r,
        container: i
      } = e;
      if (!s && (e.isFunction() || r === "StaticBlock"))
        return !!t;
      if (s = !1, Array.isArray(i) && e.key !== i.length - 1)
        return !1;
    } while ((e = e.parentPath) && !e.isProgram() && !e.isDoExpression());
    return !0;
  }
  n($Ct, "isCompletionRecord");
  function HCt() {
    return this.parentPath.isLabeledStatement() || yie(this.container) ? !1 : OCt.includes(this.key);
  }
  n(HCt, "isStatementOrBlock");
  function JCt(t, e) {
    if (!this.isReferencedIdentifier()) {
      if (this.isJSXMemberExpression() && this.node.property.name === e || (this.isMemberExpression() || this.isOptionalMemberExpression()) &&
      (this.node.computed ? FCt(this.node.property, {
        value: e
      }) : this.node.property.name === e)) {
        let a = this.get("object");
        return a.isReferencedIdentifier() && a.referencesImport(t, "*");
      }
      return !1;
    }
    let s = this.scope.getBinding(this.node.name);
    if (!s || s.kind !== "module") return !1;
    let r = s.path, i = r.parentPath;
    if (!i.isImportDeclaration()) return !1;
    if (i.node.source.value === t) {
      if (!e) return !0;
    } else
      return !1;
    return !!(r.isImportDefaultSpecifier() && e === "default" || r.isImportNamespaceSpecifier() && e === "*" || r.isImportSpecifier() && BCt(
    r.node.imported, {
      name: e
    }));
  }
  n(JCt, "referencesImport");
  function YCt() {
    let t = this.node;
    if (t.end) {
      let e = this.hub.getCode();
      if (e) return e.slice(t.start, t.end);
    }
    return "";
  }
  n(YCt, "getSource");
  function XCt(t) {
    return this._guessExecutionStatusRelativeTo(t) !== "after";
  }
  n(XCt, "willIMaybeExecuteBefore");
  function fie(t) {
    return t.isProgram() ? t : (t.parentPath.scope.getFunctionParent() || t.parentPath.scope.getProgramParent()).path;
  }
  n(fie, "getOuterFunction");
  function zCt(t, e) {
    switch (t) {
      case "LogicalExpression":
        return e === "right";
      case "ConditionalExpression":
      case "IfStatement":
        return e === "consequent" || e === "alternate";
      case "WhileStatement":
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForOfStatement":
        return e === "body";
      case "ForStatement":
        return e === "body" || e === "update";
      case "SwitchStatement":
        return e === "cases";
      case "TryStatement":
        return e === "handler";
      case "AssignmentPattern":
        return e === "right";
      case "OptionalMemberExpression":
        return e === "property";
      case "OptionalCallExpression":
        return e === "arguments";
      default:
        return !1;
    }
  }
  n(zCt, "isExecutionUncertain");
  function die(t, e) {
    for (let s = 0; s < e; s++) {
      let r = t[s];
      if (zCt(r.parent.type, r.parentKey))
        return !0;
    }
    return !1;
  }
  n(die, "isExecutionUncertainInList");
  var mie = Symbol();
  function GCt(t) {
    return HM(this, t, /* @__PURE__ */ new Map());
  }
  n(GCt, "_guessExecutionStatusRelativeTo");
  function HM(t, e, s) {
    let r = {
      this: fie(t),
      target: fie(e)
    };
    if (r.target.node !== r.this.node)
      return ZCt(t, r.target, s);
    let i = {
      target: e.getAncestry(),
      this: t.getAncestry()
    };
    if (i.target.includes(t)) return "after";
    if (i.this.includes(e)) return "before";
    let a, o = {
      target: 0,
      this: 0
    };
    for (; !a && o.this < i.this.length; ) {
      let p = i.this[o.this];
      o.target = i.target.indexOf(p), o.target >= 0 ? a = p : o.this++;
    }
    if (!a)
      throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");
    if (die(i.this, o.this - 1) || die(i.target, o.target - 1))
      return "unknown";
    let l = {
      this: i.this[o.this - 1],
      target: i.target[o.target - 1]
    };
    if (l.target.listKey && l.this.listKey && l.target.container === l.this.container)
      return l.target.key > l.this.key ? "before" : "after";
    let u = _Ct[a.type], c = {
      this: u.indexOf(l.this.parentKey),
      target: u.indexOf(l.target.parentKey)
    };
    return c.target > c.this ? "before" : "after";
  }
  n(HM, "_guessExecutionStatusRelativeToCached");
  function QCt(t, e, s) {
    if (e.isFunctionDeclaration()) {
      if (e.parentPath.isExportDeclaration())
        return "unknown";
    } else return HM(t, e, s) === "before" ? "before" : "unknown";
    let r = e.scope.getBinding(e.node.id.name);
    if (!r.references) return "before";
    let i = r.referencePaths, a;
    for (let o of i) {
      if (!!o.find((c) => c.node === e.node)) continue;
      if (o.key !== "callee" || !o.parentPath.isCallExpression())
        return "unknown";
      let u = HM(t, o, s);
      if (a && a !== u)
        return "unknown";
      a = u;
    }
    return a;
  }
  n(QCt, "_guessExecutionStatusRelativeToDifferentFunctionsInternal");
  function ZCt(t, e, s) {
    let r = s.get(t.node), i;
    if (!r)
      s.set(t.node, r = /* @__PURE__ */ new Map());
    else if (i = r.get(e.node))
      return i === mie ? "unknown" : i;
    r.set(e.node, mie);
    let a = QCt(t, e, s);
    return r.set(e.node, a), a;
  }
  n(ZCt, "_guessExecutionStatusRelativeToDifferentFunctionsCached");
  function ewt(t, e) {
    return gie.call(this, t, e) || this;
  }
  n(ewt, "resolve");
  function gie(t, e) {
    var s;
    if (!((s = e) != null && s.includes(this)))
      if (e = e || [], e.push(this), this.isVariableDeclarator()) {
        if (this.get("id").isIdentifier())
          return this.get("init").resolve(t, e);
      } else if (this.isReferencedIdentifier()) {
        let r = this.scope.getBinding(this.node.name);
        if (!r || !r.constant || r.kind === "module") return;
        if (r.path !== this) {
          let i = r.path.resolve(t, e);
          return this.find((a) => a.node === i.node) ? void 0 : i;
        }
      } else {
        if (this.isTypeCastExpression())
          return this.get("expression").resolve(t, e);
        if (t && this.isMemberExpression()) {
          let r = this.toComputedKey();
          if (!MCt(r)) return;
          let i = r.value, a = this.get("object").resolve(t, e);
          if (a.isObjectExpression()) {
            let o = a.get("properties");
            for (let l of o) {
              if (!l.isProperty()) continue;
              let u = l.get("key"), c = l.isnt("computed") && u.isIdentifier({
                name: i
              });
              if (c = c || u.isLiteral({
                value: i
              }), c) return l.get("value").resolve(t, e);
            }
          } else if (a.isArrayExpression() && !isNaN(+i)) {
            let l = a.get("elements")[i];
            if (l) return l.resolve(t, e);
          }
        }
      }
  }
  n(gie, "_resolve");
  function twt() {
    if (this.isIdentifier()) {
      let t = this.scope.getBinding(this.node.name);
      return t ? t.constant : !1;
    }
    if (this.isLiteral())
      return this.isRegExpLiteral() ? !1 : this.isTemplateLiteral() ? this.get("expressions").every((t) => t.isConstantExpression()) : !0;
    if (this.isUnaryExpression())
      return this.node.operator !== "void" ? !1 : this.get("argument").isConstantExpression();
    if (this.isBinaryExpression()) {
      let {
        operator: t
      } = this.node;
      return t !== "in" && t !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression();
    }
    return this.isMemberExpression() ? !this.node.computed && this.get("object").isIdentifier({
      name: "Symbol"
    }) && !this.scope.hasBinding("Symbol", {
      noGlobals: !0
    }) : this.isCallExpression() ? this.node.arguments.length === 1 && this.get("callee").matchesPattern("Symbol.for") && !this.scope.hasBinding(
    "Symbol", {
      noGlobals: !0
    }) && this.get("arguments")[0].isStringLiteral() : !1;
  }
  n(twt, "isConstantExpression");
  function swt() {
    return !!(this.isProgram() ? this : this.parentPath).find((s) => {
      if (s.isProgram({
        sourceType: "module"
      }) || s.isClass()) return !0;
      if (s.isArrowFunctionExpression() && !s.get("body").isBlockStatement())
        return !1;
      let r;
      if (s.isFunction())
        r = s.node.body;
      else if (s.isProgram())
        r = s.node;
      else
        return !1;
      for (let i of r.directives)
        if (i.value.value === "use strict")
          return !0;
    });
  }
  n(swt, "isInStrictMode");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/family.js
var Eie = g((Yi) => {
  "use strict";
  Object.defineProperty(Yi, "__esModule", {
    value: !0
  });
  Yi._getKey = Sie;
  Yi._getPattern = Pie;
  Yi.get = bwt;
  Yi.getAllNextSiblings = gwt;
  Yi.getAllPrevSiblings = Twt;
  Yi.getAssignmentIdentifiers = xwt;
  Yi.getBindingIdentifierPaths = Ewt;
  Yi.getBindingIdentifiers = Swt;
  Yi.getCompletionRecords = fwt;
  Yi.getNextSibling = ywt;
  Yi.getOpposite = cwt;
  Yi.getOuterBindingIdentifierPaths = Awt;
  Yi.getOuterBindingIdentifiers = Pwt;
  Yi.getPrevSibling = mwt;
  Yi.getSibling = dwt;
  var YM = dp(), rwt = fe(), {
    getAssignmentIdentifiers: iwt,
    getBindingIdentifiers: xie,
    getOuterBindingIdentifiers: nwt,
    numericLiteral: awt,
    unaryExpression: owt
  } = rwt, XM = 0, U0 = 1;
  function lwt(t) {
    return {
      type: XM,
      path: t
    };
  }
  n(lwt, "NormalCompletion");
  function uwt(t) {
    return {
      type: U0,
      path: t
    };
  }
  n(uwt, "BreakCompletion");
  function cwt() {
    return this.key === "left" ? this.getSibling("right") : this.key === "right" ? this.getSibling("left") : null;
  }
  n(cwt, "getOpposite");
  function Im(t, e, s) {
    return t && e.push(...Nm(t, s)), e;
  }
  n(Im, "addCompletionRecords");
  function pwt(t, e, s) {
    let r = [];
    for (let i = 0; i < t.length; i++) {
      let a = t[i], o = Nm(a, s), l = [], u = [];
      for (let c of o)
        c.type === XM && l.push(c), c.type === U0 && u.push(c);
      l.length && (r = l), e.push(...u);
    }
    return e.push(...r), e;
  }
  n(pwt, "completionRecordForSwitch");
  function hwt(t) {
    t.forEach((e) => {
      e.type = U0;
    });
  }
  n(hwt, "normalCompletionToBreak");
  function JM(t, e) {
    t.forEach((s) => {
      s.path.isBreakStatement({
        label: null
      }) && (e ? s.path.replaceWith(owt("void", awt(0))) : s.path.remove());
    });
  }
  n(JM, "replaceBreakStatementInBreakCompletion");
  function bie(t, e) {
    let s = [];
    if (e.canHaveBreak) {
      let r = [];
      for (let i = 0; i < t.length; i++) {
        let a = t[i], o = Object.assign({}, e, {
          inCaseClause: !1
        });
        a.isBlockStatement() && (e.inCaseClause || e.shouldPopulateBreak) ? o.shouldPopulateBreak = !0 : o.shouldPopulateBreak = !1;
        let l = Nm(a, o);
        if (l.length > 0 && l.every((u) => u.type === U0)) {
          r.length > 0 && l.every((u) => u.path.isBreakStatement({
            label: null
          })) ? (hwt(r), s.push(...r), r.some((u) => u.path.isDeclaration()) && (s.push(...l), JM(l, !0)), JM(l, !1)) : (s.push(...l), e.shouldPopulateBreak ||
          JM(l, !0));
          break;
        }
        if (i === t.length - 1)
          s.push(...l);
        else {
          r = [];
          for (let u = 0; u < l.length; u++) {
            let c = l[u];
            c.type === U0 && s.push(c), c.type === XM && r.push(c);
          }
        }
      }
    } else if (t.length)
      for (let r = t.length - 1; r >= 0; r--) {
        let i = Nm(t[r], e);
        if (i.length > 1 || i.length === 1 && !i[0].path.isVariableDeclaration()) {
          s.push(...i);
          break;
        }
      }
    return s;
  }
  n(bie, "getStatementListCompletion");
  function Nm(t, e) {
    let s = [];
    if (t.isIfStatement())
      s = Im(t.get("consequent"), s, e), s = Im(t.get("alternate"), s, e);
    else {
      if (t.isDoExpression() || t.isFor() || t.isWhile() || t.isLabeledStatement())
        return Im(t.get("body"), s, e);
      if (t.isProgram() || t.isBlockStatement())
        return bie(t.get("body"), e);
      if (t.isFunction())
        return Nm(t.get("body"), e);
      if (t.isTryStatement())
        s = Im(t.get("block"), s, e), s = Im(t.get("handler"), s, e);
      else {
        if (t.isCatchClause())
          return Im(t.get("body"), s, e);
        if (t.isSwitchStatement())
          return pwt(t.get("cases"), s, e);
        if (t.isSwitchCase())
          return bie(t.get("consequent"), {
            canHaveBreak: !0,
            shouldPopulateBreak: !1,
            inCaseClause: !0
          });
        t.isBreakStatement() ? s.push(uwt(t)) : s.push(lwt(t));
      }
    }
    return s;
  }
  n(Nm, "_getCompletionRecords");
  function fwt() {
    return Nm(this, {
      canHaveBreak: !1,
      shouldPopulateBreak: !1,
      inCaseClause: !1
    }).map((e) => e.path);
  }
  n(fwt, "getCompletionRecords");
  function dwt(t) {
    return YM.default.get({
      parentPath: this.parentPath,
      parent: this.parent,
      container: this.container,
      listKey: this.listKey,
      key: t
    }).setContext(this.context);
  }
  n(dwt, "getSibling");
  function mwt() {
    return this.getSibling(this.key - 1);
  }
  n(mwt, "getPrevSibling");
  function ywt() {
    return this.getSibling(this.key + 1);
  }
  n(ywt, "getNextSibling");
  function gwt() {
    let t = this.key, e = this.getSibling(++t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(++t);
    return s;
  }
  n(gwt, "getAllNextSiblings");
  function Twt() {
    let t = this.key, e = this.getSibling(--t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(--t);
    return s;
  }
  n(Twt, "getAllPrevSiblings");
  function bwt(t, e = !0) {
    e === !0 && (e = this.context);
    let s = t.split(".");
    return s.length === 1 ? Sie.call(this, t, e) : Pie.call(this, s, e);
  }
  n(bwt, "get");
  function Sie(t, e) {
    let s = this.node, r = s[t];
    return Array.isArray(r) ? r.map((i, a) => YM.default.get({
      listKey: t,
      parentPath: this,
      parent: s,
      container: r,
      key: a
    }).setContext(e)) : YM.default.get({
      parentPath: this,
      parent: s,
      container: s,
      key: t
    }).setContext(e);
  }
  n(Sie, "_getKey");
  function Pie(t, e) {
    let s = this;
    for (let r of t)
      r === "." ? s = s.parentPath : Array.isArray(s) ? s = s[r] : s = s.get(r, e);
    return s;
  }
  n(Pie, "_getPattern");
  function xwt() {
    return iwt(this.node);
  }
  n(xwt, "getAssignmentIdentifiers");
  function Swt(t) {
    return xie(this.node, t);
  }
  n(Swt, "getBindingIdentifiers");
  function Pwt(t) {
    return nwt(this.node, t);
  }
  n(Pwt, "getOuterBindingIdentifiers");
  function Ewt(t = !1, e = !1) {
    let r = [this], i = /* @__PURE__ */ Object.create(null);
    for (; r.length; ) {
      let a = r.shift();
      if (!a || !a.node) continue;
      let o = xie.keys[a.node.type];
      if (a.isIdentifier()) {
        t ? (i[a.node.name] = i[a.node.name] || []).push(a) : i[a.node.name] = a;
        continue;
      }
      if (a.isExportDeclaration()) {
        let l = a.get("declaration");
        l.isDeclaration() && r.push(l);
        continue;
      }
      if (e) {
        if (a.isFunctionDeclaration()) {
          r.push(a.get("id"));
          continue;
        }
        if (a.isFunctionExpression())
          continue;
      }
      if (o)
        for (let l = 0; l < o.length; l++) {
          let u = o[l], c = a.get(u);
          Array.isArray(c) ? r.push(...c) : c.node && r.push(c);
        }
    }
    return i;
  }
  n(Ewt, "getBindingIdentifierPaths");
  function Awt(t = !1) {
    return this.getBindingIdentifierPaths(t, !0);
  }
  n(Awt, "getOuterBindingIdentifierPaths");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/comments.js
var vie = g((K0) => {
  "use strict";
  Object.defineProperty(K0, "__esModule", {
    value: !0
  });
  K0.addComment = Nwt;
  K0.addComments = kwt;
  K0.shareCommentsWithSiblings = Iwt;
  var vwt = fe(), {
    addComment: Cwt,
    addComments: wwt
  } = vwt;
  function Iwt() {
    if (typeof this.key == "string") return;
    let t = this.node;
    if (!t) return;
    let e = t.trailingComments, s = t.leadingComments;
    if (!e && !s) return;
    let r = this.getSibling(this.key - 1), i = this.getSibling(this.key + 1), a = !!r.node, o = !!i.node;
    a && (s && r.addComments("trailing", Aie(s, r.node.trailingComments)), e && !o && r.addComments("trailing", e)), o && (e && i.addComments(
    "leading", Aie(e, i.node.leadingComments)), s && !a && i.addComments("leading", s));
  }
  n(Iwt, "shareCommentsWithSiblings");
  function Aie(t, e) {
    if (!(e != null && e.length)) return t;
    let s = new Set(e);
    return t.filter((r) => !s.has(r));
  }
  n(Aie, "removeIfExisting");
  function Nwt(t, e, s) {
    Cwt(this.node, t, e, s);
  }
  n(Nwt, "addComment");
  function kwt(t, e) {
    wwt(this.node, t, e);
  }
  n(kwt, "addComments");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js
var dp = g((bl) => {
  "use strict";
  Object.defineProperty(bl, "__esModule", {
    value: !0
  });
  bl.default = bl.SHOULD_STOP = bl.SHOULD_SKIP = bl.REMOVED = void 0;
  var Dwt = nB(), Owt = go(), _wt = v0(), Lwt = dB(), Iie = fe(), nA = Iie, Bwt = zh(), Mwt = Lse(), gl = Bse(), km = tre(), Dm = XB(), Cie = iie(),
  lf = hie(), Pi = Tie(), Nie = dl(), ci = Nie, Om = WE(), Tl = $E(), Ln = Eie(), zM = vie(), Fwt = oB(), {
    validate: jwt
  } = Iie, wie = Owt("babel"), qJs = bl.REMOVED = 1, UJs = bl.SHOULD_STOP = 2, KJs = bl.SHOULD_SKIP = 4, ju = bl.default = class kie {
    static {
      n(this, "NodePath");
    }
    constructor(e, s) {
      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 = s, this.hub = e, this.data = null, this.
      context = null, this.scope = null;
    }
    get removed() {
      return (this._traverseFlags & 1) > 0;
    }
    set removed(e) {
      e ? this._traverseFlags |= 1 : this._traverseFlags &= -2;
    }
    get shouldStop() {
      return (this._traverseFlags & 2) > 0;
    }
    set shouldStop(e) {
      e ? this._traverseFlags |= 2 : this._traverseFlags &= -3;
    }
    get shouldSkip() {
      return (this._traverseFlags & 4) > 0;
    }
    set shouldSkip(e) {
      e ? this._traverseFlags |= 4 : this._traverseFlags &= -5;
    }
    static get({
      hub: e,
      parentPath: s,
      parent: r,
      container: i,
      listKey: a,
      key: o
    }) {
      if (!e && s && (e = s.hub), !r)
        throw new Error("To get a node path the parent needs to exist");
      let l = i[o], u = Bwt.getOrCreateCachedPaths(e, r), c = u.get(l);
      return c || (c = new kie(e, r), l && u.set(l, c)), Nie.setup.call(c, s, i, a, o), c;
    }
    getScope(e) {
      return this.isScope() ? new Lwt.default(this) : e;
    }
    setData(e, s) {
      return this.data == null && (this.data = /* @__PURE__ */ Object.create(null)), this.data[e] = s;
    }
    getData(e, s) {
      this.data == null && (this.data = /* @__PURE__ */ Object.create(null));
      let r = this.data[e];
      return r === void 0 && s !== void 0 && (r = this.data[e] = s), r;
    }
    hasNode() {
      return this.node != null;
    }
    buildCodeFrameError(e, s = SyntaxError) {
      return this.hub.buildError(this.node, e, s);
    }
    traverse(e, s) {
      (0, _wt.default)(this.node, e, this.scope, s, this);
    }
    set(e, s) {
      jwt(this.node, e, s), this.node[e] = s;
    }
    getPathLocation() {
      let e = [], s = this;
      do {
        let r = s.key;
        s.inList && (r = `${s.listKey}[${r}]`), e.unshift(r);
      } while (s = s.parentPath);
      return e.join(".");
    }
    debug(e) {
      wie.enabled && wie(`${this.getPathLocation()} ${this.type}: ${e}`);
    }
    toString() {
      return (0, Mwt.default)(this.node).code;
    }
    get inList() {
      return !!this.listKey;
    }
    set inList(e) {
      e || (this.listKey = null);
    }
    get parentKey() {
      return this.listKey || this.key;
    }
  }, Rwt = {
    findParent: gl.findParent,
    find: gl.find,
    getFunctionParent: gl.getFunctionParent,
    getStatementParent: gl.getStatementParent,
    getEarliestCommonAncestorFrom: gl.getEarliestCommonAncestorFrom,
    getDeepestCommonAncestorFrom: gl.getDeepestCommonAncestorFrom,
    getAncestry: gl.getAncestry,
    isAncestor: gl.isAncestor,
    isDescendant: gl.isDescendant,
    inType: gl.inType,
    getTypeAnnotation: km.getTypeAnnotation,
    isBaseType: km.isBaseType,
    couldBeBaseType: km.couldBeBaseType,
    baseTypeStrictlyMatches: km.baseTypeStrictlyMatches,
    isGenericType: km.isGenericType,
    replaceWithMultiple: Dm.replaceWithMultiple,
    replaceWithSourceString: Dm.replaceWithSourceString,
    replaceWith: Dm.replaceWith,
    replaceExpressionWithStatements: Dm.replaceExpressionWithStatements,
    replaceInline: Dm.replaceInline,
    evaluateTruthy: Cie.evaluateTruthy,
    evaluate: Cie.evaluate,
    toComputedKey: lf.toComputedKey,
    ensureBlock: lf.ensureBlock,
    unwrapFunctionEnvironment: lf.unwrapFunctionEnvironment,
    arrowFunctionToExpression: lf.arrowFunctionToExpression,
    splitExportDeclaration: lf.splitExportDeclaration,
    ensureFunctionName: lf.ensureFunctionName,
    matchesPattern: Pi.matchesPattern,
    isStatic: Pi.isStatic,
    isNodeType: Pi.isNodeType,
    canHaveVariableDeclarationOrExpression: Pi.canHaveVariableDeclarationOrExpression,
    canSwapBetweenExpressionAndStatement: Pi.canSwapBetweenExpressionAndStatement,
    isCompletionRecord: Pi.isCompletionRecord,
    isStatementOrBlock: Pi.isStatementOrBlock,
    referencesImport: Pi.referencesImport,
    getSource: Pi.getSource,
    willIMaybeExecuteBefore: Pi.willIMaybeExecuteBefore,
    _guessExecutionStatusRelativeTo: Pi._guessExecutionStatusRelativeTo,
    resolve: Pi.resolve,
    isConstantExpression: Pi.isConstantExpression,
    isInStrictMode: Pi.isInStrictMode,
    isDenylisted: ci.isDenylisted,
    visit: ci.visit,
    skip: ci.skip,
    skipKey: ci.skipKey,
    stop: ci.stop,
    setContext: ci.setContext,
    requeue: ci.requeue,
    requeueComputedKeyAndDecorators: ci.requeueComputedKeyAndDecorators,
    remove: Om.remove,
    insertBefore: Tl.insertBefore,
    insertAfter: Tl.insertAfter,
    unshiftContainer: Tl.unshiftContainer,
    pushContainer: Tl.pushContainer,
    getOpposite: Ln.getOpposite,
    getCompletionRecords: Ln.getCompletionRecords,
    getSibling: Ln.getSibling,
    getPrevSibling: Ln.getPrevSibling,
    getNextSibling: Ln.getNextSibling,
    getAllNextSiblings: Ln.getAllNextSiblings,
    getAllPrevSiblings: Ln.getAllPrevSiblings,
    get: Ln.get,
    getAssignmentIdentifiers: Ln.getAssignmentIdentifiers,
    getBindingIdentifiers: Ln.getBindingIdentifiers,
    getOuterBindingIdentifiers: Ln.getOuterBindingIdentifiers,
    getBindingIdentifierPaths: Ln.getBindingIdentifierPaths,
    getOuterBindingIdentifierPaths: Ln.getOuterBindingIdentifierPaths,
    shareCommentsWithSiblings: zM.shareCommentsWithSiblings,
    addComment: zM.addComment,
    addComments: zM.addComments
  };
  Object.assign(ju.prototype, Rwt);
  ju.prototype.arrowFunctionToShadowed = lf.arrowFunctionToShadowed, Object.assign(ju.prototype, {
    has: Pi.has,
    is: Pi.is,
    isnt: Pi.isnt,
    equals: Pi.equals,
    hoist: Tl.hoist,
    updateSiblingKeys: Tl.updateSiblingKeys,
    call: ci.call,
    isBlacklisted: ci.isBlacklisted,
    setScope: ci.setScope,
    resync: ci.resync,
    popContext: ci.popContext,
    pushContext: ci.pushContext,
    setup: ci.setup,
    setKey: ci.setKey
  });
  ju.prototype._guessExecutionStatusRelativeToDifferentFunctions = Pi._guessExecutionStatusRelativeTo, ju.prototype._guessExecutionStatusRelativeToDifferentFunctions =
  Pi._guessExecutionStatusRelativeTo, Object.assign(ju.prototype, {
    _getTypeAnnotation: km._getTypeAnnotation,
    _replaceWith: Dm._replaceWith,
    _resolve: Pi._resolve,
    _call: ci._call,
    _resyncParent: ci._resyncParent,
    _resyncKey: ci._resyncKey,
    _resyncList: ci._resyncList,
    _resyncRemoved: ci._resyncRemoved,
    _getQueueContexts: ci._getQueueContexts,
    _removeFromScope: Om._removeFromScope,
    _callRemovalHooks: Om._callRemovalHooks,
    _remove: Om._remove,
    _markRemoved: Om._markRemoved,
    _assertUnremoved: Om._assertUnremoved,
    _containerInsert: Tl._containerInsert,
    _containerInsertBefore: Tl._containerInsertBefore,
    _containerInsertAfter: Tl._containerInsertAfter,
    _verifyNodeList: Tl._verifyNodeList,
    _getKey: Ln._getKey,
    _getPattern: Ln._getPattern
  });
  for (let t of nA.TYPES) {
    let e = `is${t}`, s = nA[e];
    ju.prototype[e] = function(r) {
      return s(this.node, r);
    }, ju.prototype[`assert${t}`] = function(r) {
      if (!s(this.node, r))
        throw new TypeError(`Expected node path of type ${t}`);
    };
  }
  Object.assign(ju.prototype, Fwt);
  for (let t of Object.keys(Dwt))
    t[0] !== "_" && (nA.TYPES.includes(t) || nA.TYPES.push(t));
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/context.js
var Die = g((aA) => {
  "use strict";
  Object.defineProperty(aA, "__esModule", {
    value: !0
  });
  aA.default = void 0;
  var qwt = dp(), Uwt = fe(), GM = dl(), {
    VISITOR_KEYS: Kwt
  } = Uwt, QM = class {
    static {
      n(this, "TraversalContext");
    }
    constructor(e, s, r, i) {
      this.queue = null, this.priorityQueue = null, this.parentPath = i, this.scope = e, this.state = r, this.opts = s;
    }
    shouldVisit(e) {
      let s = this.opts;
      if (s.enter || s.exit || s[e.type]) return !0;
      let r = Kwt[e.type];
      if (!(r != null && r.length)) return !1;
      for (let i of r)
        if (e[i])
          return !0;
      return !1;
    }
    create(e, s, r, i) {
      return qwt.default.get({
        parentPath: this.parentPath,
        parent: e,
        container: s,
        key: r,
        listKey: i
      });
    }
    maybeQueue(e, s) {
      this.queue && (s ? this.queue.push(e) : this.priorityQueue.push(e));
    }
    visitMultiple(e, s, r) {
      if (e.length === 0) return !1;
      let i = [];
      for (let a = 0; a < e.length; a++) {
        let o = e[a];
        o && this.shouldVisit(o) && i.push(this.create(s, e, a, r));
      }
      return this.visitQueue(i);
    }
    visitSingle(e, s) {
      return this.shouldVisit(e[s]) ? this.visitQueue([this.create(e, e, s)]) : !1;
    }
    visitQueue(e) {
      this.queue = e, this.priorityQueue = [];
      let s = /* @__PURE__ */ new WeakSet(), r = !1, i = 0;
      for (; i < e.length; ) {
        let a = e[i];
        if (i++, GM.resync.call(a), (a.contexts.length === 0 || a.contexts[a.contexts.length - 1] !== this) && GM.pushContext.call(a, this),
        a.key === null) continue;
        let {
          node: o
        } = a;
        if (!s.has(o)) {
          if (o && s.add(o), a.visit()) {
            r = !0;
            break;
          }
          if (this.priorityQueue.length && (r = this.visitQueue(this.priorityQueue), this.priorityQueue = [], this.queue = e, r))
            break;
        }
      }
      for (let a = 0; a < i; a++)
        GM.popContext.call(e[a]);
      return this.queue = null, r;
    }
    visit(e, s) {
      let r = e[s];
      return r ? Array.isArray(r) ? this.visitMultiple(r, e, s) : this.visitSingle(e, s) : !1;
    }
  };
  aA.default = QM;
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/traverse-node.js
var SE = g((ZM) => {
  "use strict";
  Object.defineProperty(ZM, "__esModule", {
    value: !0
  });
  ZM.traverseNode = Hwt;
  var Vwt = Die(), Wwt = fe(), {
    VISITOR_KEYS: $wt
  } = Wwt;
  function Hwt(t, e, s, r, i, a, o) {
    let l = $wt[t.type];
    if (!l) return !1;
    let u = new Vwt.default(s, e, r, i);
    if (o)
      return a != null && a[i.parentKey] ? !1 : u.visitQueue([i]);
    for (let c of l)
      if (!(a != null && a[c]) && u.visit(t, c))
        return !0;
    return !1;
  }
  n(Hwt, "traverseNode");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/context.js
var dl = g((Kr) => {
  "use strict";
  Object.defineProperty(Kr, "__esModule", {
    value: !0
  });
  Kr._call = tF;
  Kr._getQueueContexts = lIt;
  Kr._resyncKey = Fie;
  Kr._resyncList = jie;
  Kr._resyncParent = Mie;
  Kr._resyncRemoved = sIt;
  Kr.call = eF;
  Kr.isDenylisted = Lie;
  Kr.popContext = rIt;
  Kr.pushContext = iIt;
  Kr.requeue = aIt;
  Kr.requeueComputedKeyAndDecorators = oIt;
  Kr.resync = tIt;
  Kr.setContext = eIt;
  Kr.setKey = oA;
  Kr.setScope = Bie;
  Kr.setup = nIt;
  Kr.skip = Gwt;
  Kr.skipKey = Qwt;
  Kr.stop = Zwt;
  Kr.visit = zwt;
  var Jwt = SE(), Oie = dp(), Ywt = WE(), Xwt = fe();
  function eF(t) {
    let e = this.opts;
    if (this.debug(t), this.node && tF.call(this, e[t]))
      return !0;
    if (this.node) {
      var s;
      return tF.call(this, (s = e[this.node.type]) == null ? void 0 : s[t]);
    }
    return !1;
  }
  n(eF, "call");
  function tF(t) {
    if (!t) return !1;
    for (let e of t) {
      if (!e) continue;
      let s = this.node;
      if (!s) return !0;
      let r = e.call(this.state, this, this.state);
      if (r && typeof r == "object" && typeof r.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 suppo\
rt. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      if (r)
        throw new Error(`Unexpected return value from visitor method ${e}`);
      if (this.node !== s || this._traverseFlags > 0) return !0;
    }
    return !1;
  }
  n(tF, "_call");
  function Lie() {
    var t;
    let e = (t = this.opts.denylist) != null ? t : this.opts.blacklist;
    return e?.includes(this.node.type);
  }
  n(Lie, "isDenylisted");
  Kr.isBlacklisted = Lie;
  function _ie(t, e) {
    t.context !== e && (t.context = e, t.state = e.state, t.opts = e.opts);
  }
  n(_ie, "restoreContext");
  function zwt() {
    var t, e;
    if (!this.node || this.isDenylisted() || (t = (e = this.opts).shouldSkip) != null && t.call(e, this))
      return !1;
    let s = this.context;
    return this.shouldSkip || eF.call(this, "enter") ? (this.debug("Skip..."), this.shouldStop) : (_ie(this, s), this.debug("Recursing into.\
.."), this.shouldStop = (0, Jwt.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys), _ie(this, s), eF.call(this,
    "exit"), this.shouldStop);
  }
  n(zwt, "visit");
  function Gwt() {
    this.shouldSkip = !0;
  }
  n(Gwt, "skip");
  function Qwt(t) {
    this.skipKeys == null && (this.skipKeys = {}), this.skipKeys[t] = !0;
  }
  n(Qwt, "skipKey");
  function Zwt() {
    this._traverseFlags |= Oie.SHOULD_SKIP | Oie.SHOULD_STOP;
  }
  n(Zwt, "stop");
  function Bie() {
    var t, e;
    if ((t = this.opts) != null && t.noScope) return;
    let s = this.parentPath;
    ((this.key === "key" || this.listKey === "decorators") && s.isMethod() || this.key === "discriminant" && s.isSwitchStatement()) && (s = s.
    parentPath);
    let r;
    for (; s && !r; ) {
      var i;
      if ((i = s.opts) != null && i.noScope) return;
      r = s.scope, s = s.parentPath;
    }
    this.scope = this.getScope(r), (e = this.scope) == null || e.init();
  }
  n(Bie, "setScope");
  function eIt(t) {
    return this.skipKeys != null && (this.skipKeys = {}), this._traverseFlags = 0, t && (this.context = t, this.state = t.state, this.opts =
    t.opts), Bie.call(this), this;
  }
  n(eIt, "setContext");
  function tIt() {
    this.removed || (Mie.call(this), jie.call(this), Fie.call(this));
  }
  n(tIt, "resync");
  function Mie() {
    this.parentPath && (this.parent = this.parentPath.node);
  }
  n(Mie, "_resyncParent");
  function Fie() {
    if (this.container && this.node !== this.container[this.key]) {
      if (Array.isArray(this.container)) {
        for (let t = 0; t < this.container.length; t++)
          if (this.container[t] === this.node) {
            oA.call(this, t);
            return;
          }
      } else
        for (let t of Object.keys(this.container))
          if (this.container[t] === this.node) {
            oA.call(this, t);
            return;
          }
      this.key = null;
    }
  }
  n(Fie, "_resyncKey");
  function jie() {
    if (!this.parent || !this.inList) return;
    let t = this.parent[this.listKey];
    this.container !== t && (this.container = t || null);
  }
  n(jie, "_resyncList");
  function sIt() {
    (this.key == null || !this.container || this.container[this.key] !== this.node) && Ywt._markRemoved.call(this);
  }
  n(sIt, "_resyncRemoved");
  function rIt() {
    this.contexts.pop(), this.contexts.length > 0 ? this.setContext(this.contexts[this.contexts.length - 1]) : this.setContext(void 0);
  }
  n(rIt, "popContext");
  function iIt(t) {
    this.contexts.push(t), this.setContext(t);
  }
  n(iIt, "pushContext");
  function nIt(t, e, s, r) {
    this.listKey = s, this.container = e, this.parentPath = t || this.parentPath, oA.call(this, r);
  }
  n(nIt, "setup");
  function oA(t) {
    var e;
    this.key = t, this.node = this.container[this.key], this.type = (e = this.node) == null ? void 0 : e.type;
  }
  n(oA, "setKey");
  function aIt(t = this) {
    if (t.removed) return;
    let e = this.contexts;
    for (let s of e)
      s.maybeQueue(t);
  }
  n(aIt, "requeue");
  function oIt() {
    let {
      context: t,
      node: e
    } = this;
    if (!Xwt.isPrivate(e) && e.computed && t.maybeQueue(this.get("key")), e.decorators)
      for (let s of this.get("decorators"))
        t.maybeQueue(s);
  }
  n(oIt, "requeueComputedKeyAndDecorators");
  function lIt() {
    let t = this, e = this.contexts;
    for (; !e.length && (t = t.parentPath, !!t); )
      e = t.contexts;
    return e;
  }
  n(lIt, "_getQueueContexts");
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/hub.js
var Rie = g((lA) => {
  "use strict";
  Object.defineProperty(lA, "__esModule", {
    value: !0
  });
  lA.default = void 0;
  var sF = class {
    static {
      n(this, "Hub");
    }
    getCode() {
    }
    getScope() {
    }
    addHelper() {
      throw new Error("Helpers are not supported by the default hub.");
    }
    buildError(e, s, r = TypeError) {
      return new r(s);
    }
  };
  lA.default = sF;
});

// ../node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/index.js
var v0 = g((Ru) => {
  "use strict";
  Object.defineProperty(Ru, "__esModule", {
    value: !0
  });
  Object.defineProperty(Ru, "Hub", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fIt.default;
    }, "get")
  });
  Object.defineProperty(Ru, "NodePath", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return pIt.default;
    }, "get")
  });
  Object.defineProperty(Ru, "Scope", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return hIt.default;
    }, "get")
  });
  Ru.visitors = Ru.default = void 0;
  dl();
  var V0 = A0();
  Ru.visitors = V0;
  var uIt = fe(), cIt = zh(), qie = SE(), pIt = dp(), hIt = dB(), fIt = Rie(), {
    VISITOR_KEYS: dIt,
    removeProperties: mIt,
    traverseFast: Uie
  } = uIt;
  function Ha(t, e = {}, s, r, i, a) {
    if (t) {
      if (!e.noScope && !s && t.type !== "Program" && t.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 ${t.
        type} node without passing scope and parentPath.`);
      if (!i && a)
        throw new Error("visitSelf can only be used when providing a NodePath.");
      dIt[t.type] && (V0.explode(e), (0, qie.traverseNode)(t, e, s, r, i, null, a));
    }
  }
  n(Ha, "traverse");
  var ZJs = Ru.default = Ha;
  Ha.visitors = V0;
  Ha.verify = V0.verify;
  Ha.explode = V0.explode;
  Ha.cheap = function(t, e) {
    Uie(t, e);
  };
  Ha.node = function(t, e, s, r, i, a) {
    (0, qie.traverseNode)(t, e, s, r, i, a);
  };
  Ha.clearNode = function(t, e) {
    mIt(t, e);
  };
  Ha.removeProperties = function(t, e) {
    return Uie(t, Ha.clearNode, e), t;
  };
  function yIt(t, e) {
    t.node.type === e.type && (e.has = !0, t.stop());
  }
  n(yIt, "hasDenylistedType");
  Ha.hasType = function(t, e, s) {
    if (s != null && s.includes(t.type)) return !1;
    if (t.type === e) return !0;
    let r = {
      has: !1,
      type: e
    };
    return Ha(t, {
      noScope: !0,
      denylist: s,
      enter: yIt
    }, null, r), r.has;
  };
  Ha.cache = cIt;
});

// ../node_modules/@babel/helper-replace-supers/lib/index.js
var cA = g((Lm) => {
  "use strict";
  Object.defineProperty(Lm, "__esModule", {
    value: !0
  });
  Lm.default = void 0;
  var gIt = sB(), uA = iB(), an = ai(), iF = v0(), {
    assignmentExpression: TIt,
    callExpression: qu,
    cloneNode: Xi,
    identifier: _m,
    memberExpression: uf,
    sequenceExpression: cf,
    stringLiteral: Vie,
    thisExpression: on
  } = an.types;
  Lm.environmentVisitor = iF.visitors.environmentVisitor({}), Lm.skipAllButComputedKey = /* @__PURE__ */ n(function(e) {
    e.skip(), e.node.computed && e.context.maybeQueue(e.get("key"));
  }, "skipAllButComputedKey");
  var Kie = iF.visitors.environmentVisitor({
    Super(t, e) {
      let {
        node: s,
        parentPath: r
      } = t;
      r.isMemberExpression({
        object: s
      }) && e.handle(r);
    }
  }), bIt = iF.visitors.environmentVisitor({
    Scopable(t, {
      refName: e
    }) {
      let s = t.scope.getOwnBinding(e);
      s && s.identifier.name === e && t.scope.rename(e);
    }
  }), Wie = {
    memoise(t, e) {
      let {
        scope: s,
        node: r
      } = t, {
        computed: i,
        property: a
      } = r;
      if (!i)
        return;
      let o = s.maybeGenerateMemoised(a);
      o && this.memoiser.set(a, o, e);
    },
    prop(t) {
      let {
        computed: e,
        property: s
      } = t.node;
      return this.memoiser.has(s) ? Xi(this.memoiser.get(s)) : e ? Xi(s) : Vie(s.name);
    },
    _getPrototypeOfExpression() {
      let t = Xi(this.getObjectRef()), e = this.isStatic || this.isPrivateMethod ? t : uf(t, _m("prototype"));
      return qu(this.file.addHelper("getPrototypeOf"), [e]);
    },
    get(t) {
      let e = Xi(this.getObjectRef());
      return qu(this.file.addHelper("superPropGet"), [this.isDerivedConstructor ? cf([on(), e]) : e, this.prop(t), on(), ...this.isStatic ||
      this.isPrivateMethod ? [] : [an.types.numericLiteral(1)]]);
    },
    _call(t, e, s) {
      let r = Xi(this.getObjectRef()), i;
      e.length === 1 && an.types.isSpreadElement(e[0]) && (an.types.isIdentifier(e[0].argument) || an.types.isArrayExpression(e[0].argument)) ?
      i = e[0].argument : i = an.types.arrayExpression(e);
      let a = an.types.callExpression(this.file.addHelper("superPropGet"), [this.isDerivedConstructor ? cf([on(), r]) : r, this.prop(t), on(),
      an.types.numericLiteral(2 | (this.isStatic || this.isPrivateMethod ? 0 : 1))]);
      return s ? an.types.optionalCallExpression(a, [i], !0) : qu(a, [i]);
    },
    set(t, e) {
      let s = Xi(this.getObjectRef());
      return qu(this.file.addHelper("superPropSet"), [this.isDerivedConstructor ? cf([on(), s]) : s, this.prop(t), e, on(), an.types.numericLiteral(
      t.isInStrictMode() ? 1 : 0), ...this.isStatic || this.isPrivateMethod ? [] : [an.types.numericLiteral(1)]]);
    },
    destructureSet(t) {
      throw t.buildCodeFrameError("Destructuring to a super field is not supported yet.");
    },
    call(t, e) {
      return this._call(t, e, !1);
    },
    optionalCall(t, e) {
      return this._call(t, e, !0);
    },
    delete(t) {
      return t.node.computed ? cf([qu(this.file.addHelper("toPropertyKey"), [Xi(t.node.property)]), an.template.expression.ast`
          function () { throw new ReferenceError("'delete super[expr]' is invalid"); }()
        `]) : an.template.expression.ast`
        function () { throw new ReferenceError("'delete super.prop' is invalid"); }()
      `;
    }
  }, xIt = {
    memoise(t, e) {
      let {
        scope: s,
        node: r
      } = t, {
        computed: i,
        property: a
      } = r;
      if (!i)
        return;
      let o = s.maybeGenerateMemoised(a);
      o && this.memoiser.set(a, o, e);
    },
    prop(t) {
      let {
        computed: e,
        property: s
      } = t.node;
      return this.memoiser.has(s) ? Xi(this.memoiser.get(s)) : e ? Xi(s) : Vie(s.name);
    },
    _getPrototypeOfExpression() {
      let t = Xi(this.getObjectRef()), e = this.isStatic || this.isPrivateMethod ? t : uf(t, _m("prototype"));
      return qu(this.file.addHelper("getPrototypeOf"), [e]);
    },
    get(t) {
      return this._get(t);
    },
    _get(t) {
      let e = this._getPrototypeOfExpression();
      return qu(this.file.addHelper("get"), [this.isDerivedConstructor ? cf([on(), e]) : e, this.prop(t), on()]);
    },
    set(t, e) {
      let s = this._getPrototypeOfExpression();
      return qu(this.file.addHelper("set"), [this.isDerivedConstructor ? cf([on(), s]) : s, this.prop(t), e, on(), an.types.booleanLiteral(t.
      isInStrictMode())]);
    },
    destructureSet(t) {
      throw t.buildCodeFrameError("Destructuring to a super field is not supported yet.");
    },
    call(t, e) {
      return (0, uA.default)(this._get(t), on(), e, !1);
    },
    optionalCall(t, e) {
      return (0, uA.default)(this._get(t), Xi(on()), e, !0);
    },
    delete(t) {
      return t.node.computed ? cf([qu(this.file.addHelper("toPropertyKey"), [Xi(t.node.property)]), an.template.expression.ast`
          function () { throw new ReferenceError("'delete super[expr]' is invalid"); }()
        `]) : an.template.expression.ast`
        function () { throw new ReferenceError("'delete super.prop' is invalid"); }()
      `;
    }
  }, SIt = Object.assign({}, Wie, {
    prop(t) {
      let {
        property: e
      } = t.node;
      return this.memoiser.has(e) ? Xi(this.memoiser.get(e)) : Xi(e);
    },
    get(t) {
      let {
        isStatic: e,
        getSuperRef: s
      } = this, {
        computed: r
      } = t.node, i = this.prop(t), a;
      if (e) {
        var o;
        a = (o = s()) != null ? o : uf(_m("Function"), _m("prototype"));
      } else {
        var l;
        a = uf((l = s()) != null ? l : _m("Object"), _m("prototype"));
      }
      return uf(a, i, r);
    },
    set(t, e) {
      let {
        computed: s
      } = t.node, r = this.prop(t);
      return TIt("=", uf(on(), r, s), e);
    },
    destructureSet(t) {
      let {
        computed: e
      } = t.node, s = this.prop(t);
      return uf(on(), s, e);
    },
    call(t, e) {
      return (0, uA.default)(this.get(t), on(), e, !1);
    },
    optionalCall(t, e) {
      return (0, uA.default)(this.get(t), on(), e, !0);
    }
  }), rF = class {
    static {
      n(this, "ReplaceSupers");
    }
    constructor(e) {
      var s;
      let r = e.methodPath;
      this.methodPath = r, this.isDerivedConstructor = r.isClassMethod({
        kind: "constructor"
      }) && !!e.superRef, this.isStatic = r.isObjectMethod() || r.node.static || (r.isStaticBlock == null ? void 0 : r.isStaticBlock()), this.
      isPrivateMethod = r.isPrivate() && r.isMethod(), this.file = e.file, this.constantSuper = (s = e.constantSuper) != null ? s : e.isLoose,
      this.opts = e;
    }
    getObjectRef() {
      return Xi(this.opts.objectRef || this.opts.getObjectRef());
    }
    getSuperRef() {
      if (this.opts.superRef) return Xi(this.opts.superRef);
      if (this.opts.getSuperRef)
        return Xi(this.opts.getSuperRef());
    }
    replace() {
      let {
        methodPath: e
      } = this;
      this.opts.refToPreserve && e.traverse(bIt, {
        refName: this.opts.refToPreserve.name
      });
      let s = this.constantSuper ? SIt : this.file.availableHelper("superPropSet") ? Wie : xIt;
      Kie.shouldSkip = (r) => {
        if (r.parentPath === e && (r.parentKey === "decorators" || r.parentKey === "key"))
          return !0;
      }, (0, gIt.default)(e, Kie, 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: s.get
      }, s));
    }
  };
  Lm.default = rF;
});

// ../node_modules/@babel/helper-skip-transparent-expression-wrappers/lib/index.js
var aF = g((W0) => {
  "use strict";
  Object.defineProperty(W0, "__esModule", {
    value: !0
  });
  W0.isTransparentExprWrapper = nF;
  W0.skipTransparentExprWrapperNodes = kIt;
  W0.skipTransparentExprWrappers = NIt;
  var PIt = fe(), {
    isParenthesizedExpression: EIt,
    isTSAsExpression: AIt,
    isTSNonNullExpression: vIt,
    isTSSatisfiesExpression: CIt,
    isTSTypeAssertion: wIt,
    isTypeCastExpression: IIt
  } = PIt;
  function nF(t) {
    return AIt(t) || CIt(t) || wIt(t) || vIt(t) || IIt(t) || EIt(t);
  }
  n(nF, "isTransparentExprWrapper");
  function NIt(t) {
    for (; nF(t.node); )
      t = t.get("expression");
    return t;
  }
  n(NIt, "skipTransparentExprWrappers");
  function kIt(t) {
    for (; nF(t); )
      t = t.expression;
    return t;
  }
  n(kIt, "skipTransparentExprWrapperNodes");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/lib/virtual-types.js
var oF = g((bs) => {
  "use strict";
  Object.defineProperty(bs, "__esModule", {
    value: !0
  });
  bs.Var = bs.User = bs.Statement = bs.SpreadProperty = bs.Scope = bs.RestProperty = bs.ReferencedMemberExpression = bs.ReferencedIdentifier =
  bs.Referenced = bs.Pure = bs.NumericLiteralTypeAnnotation = bs.Generated = bs.ForAwaitStatement = bs.Flow = bs.Expression = bs.ExistentialTypeParam =
  bs.BlockScoped = bs.BindingIdentifier = void 0;
  var aYs = bs.ReferencedIdentifier = ["Identifier", "JSXIdentifier"], oYs = bs.ReferencedMemberExpression = ["MemberExpression"], lYs = bs.
  BindingIdentifier = ["Identifier"], uYs = bs.Statement = ["Statement"], cYs = bs.Expression = ["Expression"], pYs = bs.Scope = ["Scopable",
  "Pattern"], hYs = bs.Referenced = null, fYs = bs.BlockScoped = null, dYs = bs.Var = ["VariableDeclaration"], mYs = bs.User = null, yYs = bs.
  Generated = null, gYs = bs.Pure = null, TYs = bs.Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"], bYs = bs.RestProperty =
  ["RestElement"], xYs = bs.SpreadProperty = ["RestElement"], SYs = bs.ExistentialTypeParam = ["ExistsTypeAnnotation"], PYs = bs.NumericLiteralTypeAnnotation =
  ["NumberLiteralTypeAnnotation"], EYs = bs.ForAwaitStatement = ["ForOfStatement"];
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js
var uF = g((Ni) => {
  "use strict";
  Object.defineProperty(Ni, "__esModule", {
    value: !0
  });
  Ni.isBindingIdentifier = ZIt;
  Ni.isBlockScoped = iNt;
  Ni.isExpression = tNt;
  Ni.isFlow = uNt;
  Ni.isForAwaitStatement = hNt;
  Ni.isGenerated = oNt;
  Ni.isPure = lNt;
  Ni.isReferenced = rNt;
  Ni.isReferencedIdentifier = GIt;
  Ni.isReferencedMemberExpression = QIt;
  Ni.isRestProperty = cNt;
  Ni.isScope = sNt;
  Ni.isSpreadProperty = pNt;
  Ni.isStatement = eNt;
  Ni.isUser = aNt;
  Ni.isVar = nNt;
  var DIt = fe(), {
    isBinding: OIt,
    isBlockScoped: _It,
    isExportDeclaration: LIt,
    isExpression: BIt,
    isFlow: MIt,
    isForStatement: FIt,
    isForXStatement: jIt,
    isIdentifier: $ie,
    isImportDeclaration: RIt,
    isImportSpecifier: qIt,
    isJSXIdentifier: UIt,
    isJSXMemberExpression: KIt,
    isMemberExpression: VIt,
    isRestElement: Hie,
    isReferenced: lF,
    isScope: WIt,
    isStatement: $It,
    isVar: HIt,
    isVariableDeclaration: JIt,
    react: YIt,
    isForOfStatement: XIt
  } = DIt, {
    isCompatTag: zIt
  } = YIt;
  function GIt(t) {
    let {
      node: e,
      parent: s
    } = this;
    if (!$ie(e, t) && !KIt(s, t))
      if (UIt(e, t)) {
        if (zIt(e.name)) return !1;
      } else
        return !1;
    return lF(e, s, this.parentPath.parent);
  }
  n(GIt, "isReferencedIdentifier");
  function QIt() {
    let {
      node: t,
      parent: e
    } = this;
    return VIt(t) && lF(t, e);
  }
  n(QIt, "isReferencedMemberExpression");
  function ZIt() {
    let {
      node: t,
      parent: e
    } = this, s = this.parentPath.parent;
    return $ie(t) && OIt(t, e, s);
  }
  n(ZIt, "isBindingIdentifier");
  function eNt() {
    let {
      node: t,
      parent: e
    } = this;
    return $It(t) ? !(JIt(t) && (jIt(e, {
      left: t
    }) || FIt(e, {
      init: t
    }))) : !1;
  }
  n(eNt, "isStatement");
  function tNt() {
    return this.isIdentifier() ? this.isReferencedIdentifier() : BIt(this.node);
  }
  n(tNt, "isExpression");
  function sNt() {
    return WIt(this.node, this.parent);
  }
  n(sNt, "isScope");
  function rNt() {
    return lF(this.node, this.parent);
  }
  n(rNt, "isReferenced");
  function iNt() {
    return _It(this.node);
  }
  n(iNt, "isBlockScoped");
  function nNt() {
    return HIt(this.node);
  }
  n(nNt, "isVar");
  function aNt() {
    return this.node && !!this.node.loc;
  }
  n(aNt, "isUser");
  function oNt() {
    return !this.isUser();
  }
  n(oNt, "isGenerated");
  function lNt(t) {
    return this.scope.isPure(this.node, t);
  }
  n(lNt, "isPure");
  function uNt() {
    let {
      node: t
    } = this;
    return MIt(t) ? !0 : RIt(t) ? t.importKind === "type" || t.importKind === "typeof" : LIt(t) ? t.exportKind === "type" : qIt(t) ? t.importKind ===
    "type" || t.importKind === "typeof" : !1;
  }
  n(uNt, "isFlow");
  function cNt() {
    var t;
    return Hie(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectPattern());
  }
  n(cNt, "isRestProperty");
  function pNt() {
    var t;
    return Hie(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectExpression());
  }
  n(pNt, "isSpreadProperty");
  function hNt() {
    return XIt(this.node, {
      await: !0
    });
  }
  n(hNt, "isForAwaitStatement");
  Ni.isExistentialTypeParam = /* @__PURE__ */ n(function() {
    throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.");
  }, "isExistentialTypeParam"), Ni.isNumericLiteralTypeAnnotation = /* @__PURE__ */ n(function() {
    throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.");
  }, "isNumericLiteralTypeAnnotation");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/visitors.js
var H0 = g((hf) => {
  "use strict";
  Object.defineProperty(hf, "__esModule", {
    value: !0
  });
  hf.environmentVisitor = xNt;
  hf.explode = rne;
  hf.isExplodedVisitor = sne;
  hf.merge = nne;
  hf.verify = ine;
  var tne = oF(), fNt = uF(), dNt = fe(), Jie = xl(), {
    DEPRECATED_KEYS: Yie,
    DEPRECATED_ALIASES: Xie,
    FLIPPED_ALIAS_KEYS: zie,
    TYPES: mNt,
    __internal__deprecationWarning: Gie
  } = dNt;
  function yNt(t) {
    return t in tne;
  }
  n(yNt, "isVirtualType");
  function sne(t) {
    return t?._exploded;
  }
  n(sne, "isExplodedVisitor");
  function rne(t) {
    if (sne(t)) return t;
    t._exploded = !0;
    for (let e of Object.keys(t)) {
      if (pf(e)) continue;
      let s = e.split("|");
      if (s.length === 1) continue;
      let r = t[e];
      delete t[e];
      for (let i of s)
        t[i] = r;
    }
    ine(t), delete t.__esModule, gNt(t), ene(t);
    for (let e of Object.keys(t)) {
      if (pf(e) || !yNt(e)) continue;
      let s = t[e];
      for (let i of Object.keys(s))
        s[i] = TNt(e, s[i]);
      delete t[e];
      let r = tne[e];
      if (r !== null)
        for (let i of r)
          t[i] ? $0(t[i], s) : t[i] = s;
      else
        $0(t, s);
    }
    for (let e of Object.keys(t)) {
      if (pf(e)) continue;
      let s = zie[e];
      if (e in Yie) {
        let i = Yie[e];
        Gie(e, i, "Visitor "), s = [i];
      } else if (e in Xie) {
        let i = Xie[e];
        Gie(e, i, "Visitor "), s = zie[i];
      }
      if (!s) continue;
      let r = t[e];
      delete t[e];
      for (let i of s) {
        let a = t[i];
        a ? $0(a, r) : t[i] = Object.assign({}, r);
      }
    }
    for (let e of Object.keys(t))
      pf(e) || ene(t[e]);
    return t;
  }
  n(rne, "explode$1");
  function ine(t) {
    if (!t._verified) {
      if (typeof t == "function")
        throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Functi\
on }`?");
      for (let e of Object.keys(t)) {
        if ((e === "enter" || e === "exit") && Qie(e, t[e]), pf(e)) continue;
        if (!mNt.includes(e))
          throw new Error(`You gave us a visitor for the node type ${e} but it's not a valid type in @babel/traverse 7.26.9`);
        let s = t[e];
        if (typeof s == "object")
          for (let r of Object.keys(s))
            if (r === "enter" || r === "exit")
              Qie(`${e}.${r}`, s[r]);
            else
              throw new Error(`You passed \`traverse()\` a visitor object with the property ${e} that has the invalid property ${r}`);
      }
      t._verified = !0;
    }
  }
  n(ine, "verify$1");
  function Qie(t, e) {
    let s = [].concat(e);
    for (let r of s)
      if (typeof r != "function")
        throw new TypeError(`Non-function found defined in ${t} with type ${typeof r}`);
  }
  n(Qie, "validateVisitorMethods");
  function nne(t, e = [], s) {
    let r = {
      _verified: !0,
      _exploded: !0
    };
    Object.defineProperty(r, "_exploded", {
      enumerable: !1
    }), Object.defineProperty(r, "_verified", {
      enumerable: !1
    });
    for (let i = 0; i < t.length; i++) {
      let a = rne(t[i]), o = e[i], l = a;
      (o || s) && (l = Zie(l, o, s)), $0(r, l);
      for (let u of Object.keys(a)) {
        if (pf(u)) continue;
        let c = a[u];
        (o || s) && (c = Zie(c, o, s));
        let p = r[u] || (r[u] = {});
        $0(p, c);
      }
    }
    return r;
  }
  n(nne, "merge");
  function Zie(t, e, s) {
    let r = {};
    for (let i of ["enter", "exit"]) {
      let a = t[i];
      Array.isArray(a) && (a = a.map(function(o) {
        let l = o;
        return e && (l = /* @__PURE__ */ n(function(u) {
          o.call(e, u, e);
        }, "newFn")), s && (l = s(e?.key, i, l)), l !== o && (l.toString = () => o.toString()), l;
      }), r[i] = a);
    }
    return r;
  }
  n(Zie, "wrapWithStateOrWrapper");
  function gNt(t) {
    for (let e of Object.keys(t)) {
      if (pf(e)) continue;
      let s = t[e];
      typeof s == "function" && (t[e] = {
        enter: s
      });
    }
  }
  n(gNt, "ensureEntranceObjects");
  function ene(t) {
    t.enter && !Array.isArray(t.enter) && (t.enter = [t.enter]), t.exit && !Array.isArray(t.exit) && (t.exit = [t.exit]);
  }
  n(ene, "ensureCallbackArrays");
  function TNt(t, e) {
    let s = `is${t}`, r = fNt[s], i = /* @__PURE__ */ n(function(a) {
      if (r.call(a))
        return e.apply(this, arguments);
    }, "newFn");
    return i.toString = () => e.toString(), i;
  }
  n(TNt, "wrapCheck");
  function pf(t) {
    return t[0] === "_" || t === "enter" || t === "exit" || t === "shouldSkip" || t === "denylist" || t === "noScope" || t === "skipKeys" ||
    t === "blacklist";
  }
  n(pf, "shouldIgnoreKey");
  function $0(t, e) {
    for (let s of ["enter", "exit"])
      e[s] && (t[s] = [].concat(t[s] || [], e[s]));
  }
  n($0, "mergePair");
  var bNt = {
    FunctionParent(t) {
      t.isArrowFunctionExpression() || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() :
      Jie.requeueComputedKeyAndDecorators.call(t)));
    },
    Property(t) {
      t.isObjectProperty() || (t.skip(), t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() : Jie.requeueComputedKeyAndDecorators.
      call(t));
    }
  };
  function xNt(t) {
    return nne([bNt, t]);
  }
  n(xNt, "environmentVisitor");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/scope/lib/renamer.js
var ane = g((hA) => {
  "use strict";
  Object.defineProperty(hA, "__esModule", {
    value: !0
  });
  hA.default = void 0;
  var pA = fe(), SNt = pA, PNt = fA(), ENt = H0(), ANt = xl(), {
    getAssignmentIdentifiers: vNt
  } = SNt, CNt = {
    ReferencedIdentifier({
      node: t
    }, e) {
      t.name === e.oldName && (t.name = e.newName);
    },
    Scope(t, e) {
      t.scope.bindingIdentifierEquals(e.oldName, e.binding.identifier) || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.
      requeueComputedKeyAndDecorators() : ANt.requeueComputedKeyAndDecorators.call(t)));
    },
    ObjectProperty({
      node: t,
      scope: e
    }, s) {
      let {
        name: r
      } = t.key;
      if (t.shorthand && (r === s.oldName || r === s.newName) && e.getBindingIdentifier(r) === s.binding.identifier) {
        t.shorthand = !1;
        {
          var i;
          (i = t.extra) != null && i.shorthand && (t.extra.shorthand = !1);
        }
      }
    },
    "AssignmentExpression|Declaration|VariableDeclarator"(t, e) {
      if (t.isVariableDeclaration()) return;
      let s = t.isAssignmentExpression() ? vNt(t.node) : t.getOuterBindingIdentifiers();
      for (let r in s)
        r === e.oldName && (s[r].name = e.newName);
    }
  }, cF = class {
    static {
      n(this, "Renamer");
    }
    constructor(e, s, r) {
      this.newName = r, this.oldName = s, this.binding = e;
    }
    maybeConvertFromExportDeclaration(e) {
      let s = e.parentPath;
      if (s.isExportDeclaration()) {
        if (s.isExportDefaultDeclaration()) {
          let {
            declaration: r
          } = s.node;
          if (pA.isDeclaration(r) && !r.id)
            return;
        }
        s.isExportAllDeclaration() || s.splitExportDeclaration();
      }
    }
    maybeConvertFromClassFunctionDeclaration(e) {
      return e;
    }
    maybeConvertFromClassFunctionExpression(e) {
      return e;
    }
    rename() {
      let {
        binding: e,
        oldName: s,
        newName: r
      } = this, {
        scope: i,
        path: a
      } = e, o = a.find((c) => c.isDeclaration() || c.isFunctionExpression() || c.isClassExpression());
      o && o.getOuterBindingIdentifiers()[s] === e.identifier && this.maybeConvertFromExportDeclaration(o);
      let l = arguments[0] || i.block, u = {
        discriminant: !0
      };
      pA.isMethod(l) && (l.computed && (u.key = !0), pA.isObjectMethod(l) || (u.decorators = !0)), (0, PNt.traverseNode)(l, (0, ENt.explode)(
      CNt), i, this, i.path, u), arguments[0] || (i.removeOwnBinding(s), i.bindings[r] = e, this.binding.identifier.name = r), o && (this.maybeConvertFromClassFunctionDeclaration(
      a), this.maybeConvertFromClassFunctionExpression(a));
    }
  };
  hA.default = cF;
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/scope/binding.js
var one = g((dA) => {
  "use strict";
  Object.defineProperty(dA, "__esModule", {
    value: !0
  });
  dA.default = void 0;
  var pF = class {
    static {
      n(this, "Binding");
    }
    constructor({
      identifier: e,
      scope: s,
      path: r,
      kind: i
    }) {
      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 = e, this.scope = s, this.path = r, this.kind = i,
      (i === "var" || i === "hoisted") && wNt(r) && this.reassign(r), this.clearValue();
    }
    deoptValue() {
      this.clearValue(), this.hasDeoptedValue = !0;
    }
    setValue(e) {
      this.hasDeoptedValue || (this.hasValue = !0, this.value = e);
    }
    clearValue() {
      this.hasDeoptedValue = !1, this.hasValue = !1, this.value = null;
    }
    reassign(e) {
      this.constant = !1, !this.constantViolations.includes(e) && this.constantViolations.push(e);
    }
    reference(e) {
      this.referencePaths.includes(e) || (this.referenced = !0, this.references++, this.referencePaths.push(e));
    }
    dereference() {
      this.references--, this.referenced = !!this.references;
    }
  };
  dA.default = pF;
  function wNt(t) {
    for (let {
      parentPath: e,
      key: s
    } = t; e; {
      parentPath: e,
      key: s
    } = e) {
      if (e.isFunctionParent()) return !1;
      if (e.isWhile() || e.isForXStatement() || e.isForStatement() && s === "body")
        return !0;
    }
    return !1;
  }
  n(wNt, "isDeclaredInLoop");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/cache.js
var ff = g((da) => {
  "use strict";
  Object.defineProperty(da, "__esModule", {
    value: !0
  });
  da.clear = NNt;
  da.clearPath = lne;
  da.clearScope = une;
  da.getCachedPaths = kNt;
  da.getOrCreateCachedPaths = DNt;
  da.scope = da.path = void 0;
  var mA = da.path = /* @__PURE__ */ new WeakMap(), INt = da.scope = /* @__PURE__ */ new WeakMap();
  function NNt() {
    lne(), une();
  }
  n(NNt, "clear");
  function lne() {
    da.path = mA = /* @__PURE__ */ new WeakMap();
  }
  n(lne, "clearPath");
  function une() {
    da.scope = INt = /* @__PURE__ */ new WeakMap();
  }
  n(une, "clearScope");
  var hF = Object.freeze({});
  function kNt(t, e) {
    var s, r;
    return t = null, (s = mA.get((r = t) != null ? r : hF)) == null ? void 0 : s.get(e);
  }
  n(kNt, "getCachedPaths");
  function DNt(t, e) {
    var s, r;
    t = null;
    let i = mA.get((s = t) != null ? s : hF);
    i || mA.set((r = t) != null ? r : hF, i = /* @__PURE__ */ new WeakMap());
    let a = i.get(e);
    return a || i.set(e, a = /* @__PURE__ */ new Map()), a;
  }
  n(DNt, "getOrCreateCachedPaths");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/scope/index.js
var yF = g((gA) => {
  "use strict";
  Object.defineProperty(gA, "__esModule", {
    value: !0
  });
  gA.default = void 0;
  var ONt = ane(), _Nt = Bo(), LNt = one(), BNt = md(), Tne = fe(), bne = Tne, cne = ff(), MNt = H0(), {
    NOT_LOCAL_BINDING: pne,
    assignmentExpression: FNt,
    callExpression: hne,
    cloneNode: fne,
    getBindingIdentifiers: xne,
    identifier: mf,
    isArrayExpression: Sne,
    isBinary: jNt,
    isCallExpression: dne,
    isClass: RNt,
    isClassBody: qNt,
    isClassDeclaration: UNt,
    isExportAllDeclaration: Pne,
    isExportDefaultDeclaration: KNt,
    isExportNamedDeclaration: fF,
    isFunctionDeclaration: VNt,
    isIdentifier: df,
    isImportDeclaration: dF,
    isLiteral: WNt,
    isMemberExpression: $Nt,
    isMethod: HNt,
    isModuleSpecifier: JNt,
    isNullLiteral: YNt,
    isObjectExpression: XNt,
    isProperty: zNt,
    isPureish: GNt,
    isRegExpLiteral: QNt,
    isSuper: ZNt,
    isTaggedTemplateExpression: ekt,
    isTemplateLiteral: Ene,
    isThisExpression: mne,
    isUnaryExpression: tkt,
    isVariableDeclaration: skt,
    expressionStatement: rkt,
    matchesPattern: yne,
    memberExpression: mF,
    numericLiteral: ikt,
    toIdentifier: nkt,
    variableDeclaration: akt,
    variableDeclarator: okt,
    isRecordExpression: lkt,
    isTupleExpression: ukt,
    isObjectProperty: ckt,
    isTopicReference: gne,
    isMetaProperty: pkt,
    isPrivateName: hkt,
    isExportDeclaration: fkt,
    buildUndefinedNode: dkt,
    sequenceExpression: mkt
  } = Tne;
  function Nr(t, e) {
    switch (t?.type) {
      default:
        if (dF(t) || fkt(t)) {
          var s;
          if ((Pne(t) || fF(t) || dF(t)) && t.source)
            Nr(t.source, e);
          else if ((fF(t) || dF(t)) && (s = t.specifiers) != null && s.length)
            for (let r of t.specifiers) Nr(r, e);
          else (KNt(t) || fF(t)) && t.declaration && Nr(t.declaration, e);
        } else JNt(t) ? Nr(t.local, e) : WNt(t) && !YNt(t) && !QNt(t) && !Ene(t) && e.push(t.value);
        break;
      case "MemberExpression":
      case "OptionalMemberExpression":
      case "JSXMemberExpression":
        Nr(t.object, e), Nr(t.property, e);
        break;
      case "Identifier":
      case "JSXIdentifier":
        e.push(t.name);
        break;
      case "CallExpression":
      case "OptionalCallExpression":
      case "NewExpression":
        Nr(t.callee, e);
        break;
      case "ObjectExpression":
      case "ObjectPattern":
        for (let r of t.properties)
          Nr(r, e);
        break;
      case "SpreadElement":
      case "RestElement":
        Nr(t.argument, e);
        break;
      case "ObjectProperty":
      case "ObjectMethod":
      case "ClassProperty":
      case "ClassMethod":
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
        Nr(t.key, e);
        break;
      case "ThisExpression":
        e.push("this");
        break;
      case "Super":
        e.push("super");
        break;
      case "Import":
        e.push("import");
        break;
      case "DoExpression":
        e.push("do");
        break;
      case "YieldExpression":
        e.push("yield"), Nr(t.argument, e);
        break;
      case "AwaitExpression":
        e.push("await"), Nr(t.argument, e);
        break;
      case "AssignmentExpression":
        Nr(t.left, e);
        break;
      case "VariableDeclarator":
        Nr(t.id, e);
        break;
      case "FunctionExpression":
      case "FunctionDeclaration":
      case "ClassExpression":
      case "ClassDeclaration":
        Nr(t.id, e);
        break;
      case "PrivateName":
        Nr(t.id, e);
        break;
      case "ParenthesizedExpression":
        Nr(t.expression, e);
        break;
      case "UnaryExpression":
      case "UpdateExpression":
        Nr(t.argument, e);
        break;
      case "MetaProperty":
        Nr(t.meta, e), Nr(t.property, e);
        break;
      case "JSXElement":
        Nr(t.openingElement, e);
        break;
      case "JSXOpeningElement":
        Nr(t.name, e);
        break;
      case "JSXFragment":
        Nr(t.openingFragment, e);
        break;
      case "JSXOpeningFragment":
        e.push("Fragment");
        break;
      case "JSXNamespacedName":
        Nr(t.namespace, e), Nr(t.name, e);
        break;
    }
  }
  n(Nr, "gatherNodeParts");
  var yA = {
    ForStatement(t) {
      let e = t.get("init");
      if (e.isVar()) {
        let {
          scope: s
        } = t;
        (s.getFunctionParent() || s.getProgramParent()).registerBinding("var", e);
      }
    },
    Declaration(t) {
      if (t.isBlockScoped() || t.isImportDeclaration() || t.isExportDeclaration()) return;
      (t.scope.getFunctionParent() || t.scope.getProgramParent()).registerDeclaration(t);
    },
    ImportDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    TSImportEqualsDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    ReferencedIdentifier(t, e) {
      bne.isTSQualifiedName(t.parent) && t.parent.right === t.node || t.parentPath.isTSImportEqualsDeclaration() || e.references.push(t);
    },
    ForXStatement(t, e) {
      let s = t.get("left");
      if (s.isPattern() || s.isIdentifier())
        e.constantViolations.push(t);
      else if (s.isVar()) {
        let {
          scope: r
        } = t;
        (r.getFunctionParent() || r.getProgramParent()).registerBinding("var", s);
      }
    },
    ExportDeclaration: {
      exit(t) {
        let {
          node: e,
          scope: s
        } = t;
        if (Pne(e)) return;
        let r = e.declaration;
        if (UNt(r) || VNt(r)) {
          let i = r.id;
          if (!i) return;
          let a = s.getBinding(i.name);
          a?.reference(t);
        } else if (skt(r))
          for (let i of r.declarations)
            for (let a of Object.keys(xne(i))) {
              let o = s.getBinding(a);
              o?.reference(t);
            }
      }
    },
    LabeledStatement(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    AssignmentExpression(t, e) {
      e.assignments.push(t);
    },
    UpdateExpression(t, e) {
      e.constantViolations.push(t);
    },
    UnaryExpression(t, e) {
      t.node.operator === "delete" && e.constantViolations.push(t);
    },
    BlockScoped(t) {
      let e = t.scope;
      if (e.path === t && (e = e.parent), e.getBlockParent().registerDeclaration(t), t.isClassDeclaration() && t.node.id) {
        let i = t.node.id.name;
        t.scope.bindings[i] = t.scope.parent.getBinding(i);
      }
    },
    CatchClause(t) {
      t.scope.registerBinding("let", t);
    },
    Function(t) {
      let e = t.get("params");
      for (let s of e)
        t.scope.registerBinding("param", s);
      t.isFunctionExpression() && t.node.id && !t.node.id[pne] && t.scope.registerBinding("local", t.get("id"), t);
    },
    ClassExpression(t) {
      t.node.id && !t.node.id[pne] && t.scope.registerBinding("local", t.get("id"), t);
    },
    TSTypeAnnotation(t) {
      t.skip();
    }
  }, ykt = 0, Lo = class t {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.uid = void 0, this.path = void 0, this.block = void 0, this.inited = void 0, this.labels = 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;
      let {
        node: s
      } = e, r = cne.scope.get(s);
      if (r?.path === e)
        return r;
      cne.scope.set(s, this), this.uid = ykt++, this.block = s, this.path = e, this.labels = /* @__PURE__ */ new Map(), this.inited = !1;
    }
    get parent() {
      var e;
      let s, r = this.path;
      do {
        var i;
        let a = r.key === "key" || r.listKey === "decorators";
        r = r.parentPath, a && r.isMethod() && (r = r.parentPath), (i = r) != null && i.isScope() && (s = r);
      } while (r && !s);
      return (e = s) == null ? void 0 : e.scope;
    }
    generateDeclaredUidIdentifier(e) {
      let s = this.generateUidIdentifier(e);
      return this.push({
        id: s
      }), fne(s);
    }
    generateUidIdentifier(e) {
      return mf(this.generateUid(e));
    }
    generateUid(e = "temp") {
      e = nkt(e).replace(/^_+/, "").replace(/\d+$/g, "");
      let s, r = 1;
      do
        s = `_${e}`, r > 1 && (s += r), r++;
      while (this.hasLabel(s) || this.hasBinding(s) || this.hasGlobal(s) || this.hasReference(s));
      let i = this.getProgramParent();
      return i.references[s] = !0, i.uids[s] = !0, s;
    }
    generateUidBasedOnNode(e, s) {
      let r = [];
      Nr(e, r);
      let i = r.join("$");
      return i = i.replace(/^_/, "") || s || "ref", this.generateUid(i.slice(0, 20));
    }
    generateUidIdentifierBasedOnNode(e, s) {
      return mf(this.generateUidBasedOnNode(e, s));
    }
    isStatic(e) {
      if (mne(e) || ZNt(e) || gne(e))
        return !0;
      if (df(e)) {
        let s = this.getBinding(e.name);
        return s ? s.constant : this.hasBinding(e.name);
      }
      return !1;
    }
    maybeGenerateMemoised(e, s) {
      if (this.isStatic(e))
        return null;
      {
        let r = this.generateUidIdentifierBasedOnNode(e);
        return s ? r : (this.push({
          id: r
        }), fne(r));
      }
    }
    checkBlockScopedCollisions(e, s, r, i) {
      if (s === "param" || e.kind === "local") return;
      if (s === "let" || e.kind === "let" || e.kind === "const" || e.kind === "module" || e.kind === "param" && s === "const")
        throw this.path.hub.buildError(i, `Duplicate declaration "${r}"`, TypeError);
    }
    rename(e, s) {
      let r = this.getBinding(e);
      r && (s || (s = this.generateUidIdentifier(e).name), new ONt.default(r, e, s).rename(arguments[2]));
    }
    dump() {
      let e = "-".repeat(60);
      console.log(e);
      let s = this;
      do {
        console.log("#", s.block.type);
        for (let r of Object.keys(s.bindings)) {
          let i = s.bindings[r];
          console.log(" -", r, {
            constant: i.constant,
            references: i.references,
            violations: i.constantViolations.length,
            kind: i.kind
          });
        }
      } while (s = s.parent);
      console.log(e);
    }
    hasLabel(e) {
      return !!this.getLabel(e);
    }
    getLabel(e) {
      return this.labels.get(e);
    }
    registerLabel(e) {
      this.labels.set(e.node.label.name, e);
    }
    registerDeclaration(e) {
      if (e.isLabeledStatement())
        this.registerLabel(e);
      else if (e.isFunctionDeclaration())
        this.registerBinding("hoisted", e.get("id"), e);
      else if (e.isVariableDeclaration()) {
        let s = e.get("declarations"), {
          kind: r
        } = e.node;
        for (let i of s)
          this.registerBinding(r === "using" || r === "await using" ? "const" : r, i);
      } else if (e.isClassDeclaration()) {
        if (e.node.declare) return;
        this.registerBinding("let", e);
      } else if (e.isImportDeclaration()) {
        let s = e.node.importKind === "type" || e.node.importKind === "typeof", r = e.get("specifiers");
        for (let i of r) {
          let a = s || i.isImportSpecifier() && (i.node.importKind === "type" || i.node.importKind === "typeof");
          this.registerBinding(a ? "unknown" : "module", i);
        }
      } else if (e.isExportDeclaration()) {
        let s = e.get("declaration");
        (s.isClassDeclaration() || s.isFunctionDeclaration() || s.isVariableDeclaration()) && this.registerDeclaration(s);
      } else
        this.registerBinding("unknown", e);
    }
    buildUndefinedNode() {
      return dkt();
    }
    registerConstantViolation(e) {
      let s = e.getAssignmentIdentifiers();
      for (let i of Object.keys(s)) {
        var r;
        (r = this.getBinding(i)) == null || r.reassign(e);
      }
    }
    registerBinding(e, s, r = s) {
      if (!e) throw new ReferenceError("no `kind`");
      if (s.isVariableDeclaration()) {
        let o = s.get("declarations");
        for (let l of o)
          this.registerBinding(e, l);
        return;
      }
      let i = this.getProgramParent(), a = s.getOuterBindingIdentifiers(!0);
      for (let o of Object.keys(a)) {
        i.references[o] = !0;
        for (let l of a[o]) {
          let u = this.getOwnBinding(o);
          if (u) {
            if (u.identifier === l) continue;
            this.checkBlockScopedCollisions(u, e, o, l);
          }
          u ? u.reassign(r) : this.bindings[o] = new LNt.default({
            identifier: l,
            scope: this,
            path: r,
            kind: e
          });
        }
      }
    }
    addGlobal(e) {
      this.globals[e.name] = e;
    }
    hasUid(e) {
      let s = this;
      do
        if (s.uids[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasGlobal(e) {
      let s = this;
      do
        if (s.globals[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasReference(e) {
      return !!this.getProgramParent().references[e];
    }
    isPure(e, s) {
      if (df(e)) {
        let o = this.getBinding(e.name);
        return o ? s ? o.constant : !0 : !1;
      } else {
        if (mne(e) || pkt(e) || gne(e) || hkt(e))
          return !0;
        if (RNt(e)) {
          var r;
          return e.superClass && !this.isPure(e.superClass, s) || ((r = e.decorators) == null ? void 0 : r.length) > 0 ? !1 : this.isPure(e.
          body, s);
        } else if (qNt(e)) {
          for (let o of e.body)
            if (!this.isPure(o, s)) return !1;
          return !0;
        } else {
          if (jNt(e))
            return this.isPure(e.left, s) && this.isPure(e.right, s);
          if (Sne(e) || ukt(e)) {
            for (let o of e.elements)
              if (o !== null && !this.isPure(o, s)) return !1;
            return !0;
          } else if (XNt(e) || lkt(e)) {
            for (let o of e.properties)
              if (!this.isPure(o, s)) return !1;
            return !0;
          } else if (HNt(e)) {
            var i;
            return !(e.computed && !this.isPure(e.key, s) || ((i = e.decorators) == null ? void 0 : i.length) > 0);
          } else if (zNt(e)) {
            var a;
            return !(e.computed && !this.isPure(e.key, s) || ((a = e.decorators) == null ? void 0 : a.length) > 0 || (ckt(e) || e.static) &&
            e.value !== null && !this.isPure(e.value, s));
          } else {
            if (tkt(e))
              return this.isPure(e.argument, s);
            if (Ene(e)) {
              for (let o of e.expressions)
                if (!this.isPure(o, s)) return !1;
              return !0;
            } else return ekt(e) ? yne(e.tag, "String.raw") && !this.hasBinding("String", {
              noGlobals: !0
            }) && this.isPure(e.quasi, s) : $Nt(e) ? !e.computed && df(e.object) && e.object.name === "Symbol" && df(e.property) && e.property.
            name !== "for" && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) : dne(e) ? yne(e.callee, "Symbol.for") && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) && e.arguments.length === 1 && bne.isStringLiteral(e.arguments[0]) : GNt(e);
          }
        }
      }
    }
    setData(e, s) {
      return this.data[e] = s;
    }
    getData(e) {
      let s = this;
      do {
        let r = s.data[e];
        if (r != null) return r;
      } while (s = s.parent);
    }
    removeData(e) {
      let s = this;
      do
        s.data[e] != null && (s.data[e] = null);
      while (s = s.parent);
    }
    init() {
      this.inited || (this.inited = !0, this.crawl());
    }
    crawl() {
      let e = 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);
      let s = this;
      do {
        if (s.crawling) return;
        if (s.path.isProgram())
          break;
      } while (s = s.parent);
      let r = s, i = {
        references: [],
        constantViolations: [],
        assignments: []
      };
      if (this.crawling = !0, e.type !== "Program" && (0, MNt.isExplodedVisitor)(yA)) {
        for (let o of yA.enter)
          o.call(i, e, i);
        let a = yA[e.type];
        if (a)
          for (let o of a.enter)
            o.call(i, e, i);
      }
      e.traverse(yA, i), this.crawling = !1;
      for (let a of i.assignments) {
        let o = a.getAssignmentIdentifiers();
        for (let l of Object.keys(o))
          a.scope.getBinding(l) || r.addGlobal(o[l]);
        a.scope.registerConstantViolation(a);
      }
      for (let a of i.references) {
        let o = a.scope.getBinding(a.node.name);
        o ? o.reference(a) : r.addGlobal(a.node);
      }
      for (let a of i.constantViolations)
        a.scope.registerConstantViolation(a);
    }
    push(e) {
      let s = this.path;
      s.isPattern() ? s = this.getPatternParent().path : !s.isBlockStatement() && !s.isProgram() && (s = this.getBlockParent().path), s.isSwitchStatement() &&
      (s = (this.getFunctionParent() || this.getProgramParent()).path);
      let {
        init: r,
        unique: i,
        kind: a = "var",
        id: o
      } = e;
      if (!r && !i && (a === "var" || a === "let") && s.isFunction() && !s.node.name && dne(s.parent, {
        callee: s.node
      }) && s.parent.arguments.length <= s.node.params.length && df(o)) {
        s.pushContainer("params", o), s.scope.registerBinding("param", s.get("params")[s.node.params.length - 1]);
        return;
      }
      (s.isLoop() || s.isCatchClause() || s.isFunction()) && (s.ensureBlock(), s = s.get("body"));
      let l = e._blockHoist == null ? 2 : e._blockHoist, u = `declaration:${a}:${l}`, c = !i && s.getData(u);
      if (!c) {
        let f = akt(a, []);
        f._blockHoist = l, [c] = s.unshiftContainer("body", [f]), i || s.setData(u, c);
      }
      let p = okt(o, r), h = c.node.declarations.push(p);
      s.scope.registerBinding(a, c.get("declarations")[h - 1]);
    }
    getProgramParent() {
      let e = this;
      do
        if (e.path.isProgram())
          return e;
      while (e = e.parent);
      throw new Error("Couldn't find a Program");
    }
    getFunctionParent() {
      let e = this;
      do
        if (e.path.isFunctionParent())
          return e;
      while (e = e.parent);
      return null;
    }
    getBlockParent() {
      let e = this;
      do
        if (e.path.isBlockParent())
          return e;
      while (e = e.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getPatternParent() {
      let e = this;
      do
        if (!e.path.isPattern())
          return e.getBlockParent();
      while (e = e.parent.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getAllBindings() {
      let e = /* @__PURE__ */ Object.create(null), s = this;
      do {
        for (let r of Object.keys(s.bindings))
          r in e || (e[r] = s.bindings[r]);
        s = s.parent;
      } while (s);
      return e;
    }
    bindingIdentifierEquals(e, s) {
      return this.getBindingIdentifier(e) === s;
    }
    getBinding(e) {
      let s = this, r;
      do {
        let a = s.getOwnBinding(e);
        if (a) {
          var i;
          if (!((i = r) != null && i.isPattern() && a.kind !== "param" && a.kind !== "local"))
            return a;
        } else if (!a && e === "arguments" && s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
        r = s.path;
      } while (s = s.parent);
    }
    getOwnBinding(e) {
      return this.bindings[e];
    }
    getBindingIdentifier(e) {
      var s;
      return (s = this.getBinding(e)) == null ? void 0 : s.identifier;
    }
    getOwnBindingIdentifier(e) {
      let s = this.bindings[e];
      return s?.identifier;
    }
    hasOwnBinding(e) {
      return !!this.getOwnBinding(e);
    }
    hasBinding(e, s) {
      if (!e) return !1;
      let r = this;
      do
        if (r.hasOwnBinding(e))
          return !0;
      while (r = r.parent);
      let i, a;
      return typeof s == "object" ? (i = s.noGlobals, a = s.noUids) : typeof s == "boolean" && (i = s), !!(!a && this.hasUid(e) || !i && t.globals.
      includes(e) || !i && t.contextVariables.includes(e));
    }
    parentHasBinding(e, s) {
      var r;
      return (r = this.parent) == null ? void 0 : r.hasBinding(e, s);
    }
    moveBindingTo(e, s) {
      let r = this.getBinding(e);
      r && (r.scope.removeOwnBinding(e), r.scope = s, s.bindings[e] = r);
    }
    removeOwnBinding(e) {
      delete this.bindings[e];
    }
    removeBinding(e) {
      var s;
      (s = this.getBinding(e)) == null || s.scope.removeOwnBinding(e);
      let r = this;
      do
        r.uids[e] && (r.uids[e] = !1);
      while (r = r.parent);
    }
    hoistVariables(e = (s) => this.push({
      id: s
    })) {
      this.crawl();
      let s = /* @__PURE__ */ new Set();
      for (let i of Object.keys(this.bindings)) {
        let a = this.bindings[i];
        if (!a) continue;
        let {
          path: o
        } = a;
        if (!o.isVariableDeclarator()) continue;
        let {
          parent: l,
          parentPath: u
        } = o;
        if (l.kind !== "var" || s.has(l)) continue;
        s.add(o.parent);
        let c, p = [];
        for (let h of l.declarations) {
          var r;
          (r = c) != null || (c = h.id), h.init && p.push(FNt("=", h.id, h.init));
          let f = Object.keys(xne(h, !1, !0, !0));
          for (let d of f)
            e(mf(d), h.init != null);
        }
        if (u.parentPath.isFor({
          left: l
        }))
          u.replaceWith(c);
        else if (p.length === 0)
          u.remove();
        else {
          let h = p.length === 1 ? p[0] : mkt(p);
          u.parentPath.isForStatement({
            init: l
          }) ? u.replaceWith(h) : u.replaceWith(rkt(h));
        }
      }
    }
  };
  gA.default = Lo;
  Lo.globals = Object.keys(BNt.builtin);
  Lo.contextVariables = ["arguments", "undefined", "Infinity", "NaN"];
  Lo.prototype._renameFromMap = /* @__PURE__ */ n(function(e, s, r, i) {
    e[s] && (e[r] = i, e[s] = null);
  }, "_renameFromMap"), Lo.prototype.traverse = function(t, e, s) {
    (0, _Nt.default)(t, e, this, s, this.path);
  }, Lo.prototype._generateUid = /* @__PURE__ */ n(function(e, s) {
    let r = e;
    return s > 1 && (r += s), `_${r}`;
  }, "_generateUid"), Lo.prototype.toArray = /* @__PURE__ */ n(function(e, s, r) {
    if (df(e)) {
      let o = this.getBinding(e.name);
      if (o != null && o.constant && o.path.isGenericType("Array"))
        return e;
    }
    if (Sne(e))
      return e;
    if (df(e, {
      name: "arguments"
    }))
      return hne(mF(mF(mF(mf("Array"), mf("prototype")), mf("slice")), mf("call")), [e]);
    let i, a = [e];
    return s === !0 ? i = "toConsumableArray" : typeof s == "number" ? (a.push(ikt(s)), i = "slicedToArray") : i = "toArray", r && (a.unshift(
    this.path.hub.addHelper(i)), i = "maybeArrayLike"), hne(this.path.hub.addHelper(i), a);
  }, "toArray"), Lo.prototype.getAllBindingsOfKind = /* @__PURE__ */ n(function(...e) {
    let s = /* @__PURE__ */ Object.create(null);
    for (let r of e) {
      let i = this;
      do {
        for (let a of Object.keys(i.bindings)) {
          let o = i.bindings[a];
          o.kind === r && (s[a] = o);
        }
        i = i.parent;
      } while (i);
    }
    return s;
  }, "getAllBindingsOfKind"), Object.defineProperties(Lo.prototype, {
    parentBlock: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.parent;
      }
    },
    hub: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.hub;
      }
    }
  });
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/source-map.js
var Ane = g((TA) => {
  "use strict";
  Object.defineProperty(TA, "__esModule", {
    value: !0
  });
  TA.default = void 0;
  var bp = fh(), gF = Oc(), TF = class {
    static {
      n(this, "SourceMap");
    }
    constructor(e, s) {
      var r;
      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;
      let i = this._map = new bp.GenMapping({
        sourceRoot: e.sourceRoot
      });
      if (this._sourceFileName = (r = e.sourceFileName) == null ? void 0 : r.replace(/\\/g, "/"), this._rawMappings = void 0, e.inputSourceMap) {
        this._inputMap = new gF.TraceMap(e.inputSourceMap);
        let o = this._inputMap.resolvedSources;
        if (o.length)
          for (let l = 0; l < o.length; l++) {
            var a;
            (0, bp.setSourceContent)(i, o[l], (a = this._inputMap.sourcesContent) == null ? void 0 : a[l]);
          }
      }
      if (typeof s == "string" && !e.inputSourceMap)
        (0, bp.setSourceContent)(i, this._sourceFileName, s);
      else if (typeof s == "object")
        for (let o of Object.keys(s))
          (0, bp.setSourceContent)(i, o.replace(/\\/g, "/"), s[o]);
    }
    get() {
      return (0, bp.toEncodedMap)(this._map);
    }
    getDecoded() {
      return (0, bp.toDecodedMap)(this._map);
    }
    getRawMappings() {
      return this._rawMappings || (this._rawMappings = (0, bp.allMappings)(this._map));
    }
    mark(e, s, r, i, a, o) {
      var l;
      this._rawMappings = void 0;
      let u;
      if (s != null)
        if (this._inputMap) {
          if (u = (0, gF.originalPositionFor)(this._inputMap, {
            line: s,
            column: r
          }), !u.name && a) {
            let c = (0, gF.originalPositionFor)(this._inputMap, a);
            c.name && (i = c.name);
          }
        } else
          u = {
            source: o?.replace(/\\/g, "/") || this._sourceFileName,
            line: s,
            column: r
          };
      (0, bp.maybeAddMapping)(this._map, {
        name: i,
        generated: e,
        source: (l = u) == null ? void 0 : l.source,
        original: u
      });
    }
  };
  TA.default = TF;
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/buffer.js
var vne = g((bA) => {
  "use strict";
  Object.defineProperty(bA, "__esModule", {
    value: !0
  });
  bA.default = void 0;
  var bF = class {
    static {
      n(this, "Buffer");
    }
    constructor(e, s) {
      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 = e, this._indentChar = s;
      for (let r = 0; r < 64; r++)
        this._fastIndentations.push(s.repeat(r));
      this._allocQueue();
    }
    _allocQueue() {
      let e = this._queue;
      for (let s = 0; s < 16; s++)
        e.push({
          char: 0,
          repeat: 1,
          line: void 0,
          column: void 0,
          identifierName: void 0,
          identifierNamePos: void 0,
          filename: ""
        });
    }
    _pushQueue(e, s, r, i, a) {
      let o = this._queueCursor;
      o === this._queue.length && this._allocQueue();
      let l = this._queue[o];
      l.char = e, l.repeat = s, l.line = r, l.column = i, 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();
      let e = this._map, s = {
        code: (this._buf + this._str).trimRight(),
        decodedMap: e?.getDecoded(),
        get __mergedMap() {
          return this.map;
        },
        get map() {
          let r = e ? e.get() : null;
          return s.map = r, r;
        },
        set map(r) {
          Object.defineProperty(s, "map", {
            value: r,
            writable: !0
          });
        },
        get rawMappings() {
          let r = e?.getRawMappings();
          return s.rawMappings = r, r;
        },
        set rawMappings(r) {
          Object.defineProperty(s, "rawMappings", {
            value: r,
            writable: !0
          });
        }
      };
      return s;
    }
    append(e, s) {
      this._flush(), this._append(e, this._sourcePosition, s);
    }
    appendChar(e) {
      this._flush(), this._appendChar(e, 1, this._sourcePosition);
    }
    queue(e) {
      if (e === 10)
        for (; this._queueCursor !== 0; ) {
          let r = this._queue[this._queueCursor - 1].char;
          if (r !== 32 && r !== 9)
            break;
          this._queueCursor--;
        }
      let s = this._sourcePosition;
      this._pushQueue(e, 1, s.line, s.column, s.filename);
    }
    queueIndentation(e) {
      e !== 0 && this._pushQueue(-1, e, void 0, void 0, void 0);
    }
    _flush() {
      let e = this._queueCursor, s = this._queue;
      for (let r = 0; r < e; r++) {
        let i = s[r];
        this._appendChar(i.char, i.repeat, i);
      }
      this._queueCursor = 0;
    }
    _appendChar(e, s, r) {
      if (this._last = e, e === -1) {
        let i = this._fastIndentations[s];
        i !== void 0 ? this._str += i : this._str += s > 1 ? this._indentChar.repeat(s) : this._indentChar;
      } else
        this._str += s > 1 ? String.fromCharCode(e).repeat(s) : String.fromCharCode(e);
      e !== 10 ? (this._mark(r.line, r.column, r.identifierName, r.identifierNamePos, r.filename), this._position.column += s) : (this._position.
      line++, this._position.column = 0), this._canMarkIdName && (r.identifierName = void 0, r.identifierNamePos = void 0);
    }
    _append(e, s, r) {
      let i = e.length, a = this._position;
      if (this._last = e.charCodeAt(i - 1), ++this._appendCount > 4096 ? (+this._str, this._buf += this._str, this._str = e, this._appendCount =
      0) : this._str += e, !r && !this._map) {
        a.column += i;
        return;
      }
      let {
        column: o,
        identifierName: l,
        identifierNamePos: u,
        filename: c
      } = s, p = s.line;
      (l != null || u != null) && this._canMarkIdName && (s.identifierName = void 0, s.identifierNamePos = void 0);
      let h = e.indexOf(`
`), f = 0;
      for (h !== 0 && this._mark(p, o, l, u, c); h !== -1; )
        a.line++, a.column = 0, f = h + 1, f < i && p !== void 0 && this._mark(++p, 0, null, null, c), h = e.indexOf(`
`, f);
      a.column += i - f;
    }
    _mark(e, s, r, i, a) {
      var o;
      (o = this._map) == null || o.mark(this._position, e, s, r, i, a);
    }
    removeTrailingNewline() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 10 && this._queueCursor--;
    }
    removeLastSemicolon() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 59 && this._queueCursor--;
    }
    getLastChar() {
      let e = this._queueCursor;
      return e !== 0 ? this._queue[e - 1].char : this._last;
    }
    getNewlineCount() {
      let e = this._queueCursor, s = 0;
      if (e === 0) return this._last === 10 ? 1 : 0;
      for (let r = e - 1; r >= 0 && this._queue[r].char === 10; r--)
        s++;
      return s === e && this._last === 10 ? s + 1 : s;
    }
    endsWithCharAndNewline() {
      let e = this._queue, s = this._queueCursor;
      if (s !== 0)
        return e[s - 1].char !== 10 ? void 0 : s > 1 ? e[s - 2].char : this._last;
    }
    hasContent() {
      return this._queueCursor !== 0 || !!this._last;
    }
    exactSource(e, s) {
      if (!this._map) {
        s();
        return;
      }
      this.source("start", e);
      let r = e.identifierName, i = this._sourcePosition;
      r && (this._canMarkIdName = !1, i.identifierName = r), s(), r && (this._canMarkIdName = !0, i.identifierName = void 0, i.identifierNamePos =
      void 0), this.source("end", e);
    }
    source(e, s) {
      this._map && this._normalizePosition(e, s, 0);
    }
    sourceWithOffset(e, s, r) {
      this._map && this._normalizePosition(e, s, r);
    }
    _normalizePosition(e, s, r) {
      let i = s[e], a = this._sourcePosition;
      i && (a.line = i.line, a.column = Math.max(i.column + r, 0), a.filename = s.filename);
    }
    getCurrentColumn() {
      let e = this._queue, s = this._queueCursor, r = -1, i = 0;
      for (let a = 0; a < s; a++) {
        let o = e[a];
        o.char === 10 && (r = i), i += o.repeat;
      }
      return r === -1 ? this._position.column + i : i - 1 - r;
    }
    getCurrentLine() {
      let e = 0, s = this._queue;
      for (let r = 0; r < this._queueCursor; r++)
        s[r].char === 10 && e++;
      return this._position.line + e;
    }
  };
  bA.default = bF;
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/node/whitespace.js
var kne = g((SA) => {
  "use strict";
  Object.defineProperty(SA, "__esModule", {
    value: !0
  });
  SA.nodes = void 0;
  var gkt = fe(), {
    FLIPPED_ALIAS_KEYS: Tkt,
    isArrayExpression: bkt,
    isAssignmentExpression: wne,
    isBinary: Ine,
    isBlockStatement: xkt,
    isCallExpression: Nne,
    isFunction: J0,
    isIdentifier: xA,
    isLiteral: Skt,
    isMemberExpression: xF,
    isObjectExpression: Pkt,
    isOptionalCallExpression: Ekt,
    isOptionalMemberExpression: Akt,
    isStringLiteral: vkt
  } = gkt;
  function Bm(t, e) {
    return t && (xF(t) || Akt(t) ? (Bm(t.object, e), t.computed && Bm(t.property, e)) : Ine(t) || wne(t) ? (Bm(t.left, e), Bm(t.right, e)) :
    Nne(t) || Ekt(t) ? (e.hasCall = !0, Bm(t.callee, e)) : J0(t) ? e.hasFunction = !0 : xA(t) && (e.hasHelper = e.hasHelper || t.callee && Uu(
    t.callee))), e;
  }
  n(Bm, "crawlInternal");
  function Cne(t) {
    return Bm(t, {
      hasCall: !1,
      hasFunction: !1,
      hasHelper: !1
    });
  }
  n(Cne, "crawl");
  function Uu(t) {
    return t ? xF(t) ? Uu(t.object) || Uu(t.property) : xA(t) ? t.name === "require" || t.name.charCodeAt(0) === 95 : Nne(t) ? Uu(t.callee) :
    Ine(t) || wne(t) ? xA(t.left) && Uu(t.left) || Uu(t.right) : !1 : !1;
  }
  n(Uu, "isHelper");
  function Ckt(t) {
    return Skt(t) || Pkt(t) || bkt(t) || xA(t) || xF(t);
  }
  n(Ckt, "isType");
  var yf = SA.nodes = {
    AssignmentExpression(t) {
      let e = Cne(t.right);
      if (e.hasCall && e.hasHelper || e.hasFunction)
        return e.hasFunction ? 3 : 2;
    },
    SwitchCase(t, e) {
      return (t.consequent.length || e.cases[0] === t ? 1 : 0) | (!t.consequent.length && e.cases[e.cases.length - 1] === t ? 2 : 0);
    },
    LogicalExpression(t) {
      if (J0(t.left) || J0(t.right))
        return 2;
    },
    Literal(t) {
      if (vkt(t) && t.value === "use strict")
        return 2;
    },
    CallExpression(t) {
      if (J0(t.callee) || Uu(t))
        return 3;
    },
    OptionalCallExpression(t) {
      if (J0(t.callee))
        return 3;
    },
    VariableDeclaration(t) {
      for (let e = 0; e < t.declarations.length; e++) {
        let s = t.declarations[e], r = Uu(s.id) && !Ckt(s.init);
        if (!r && s.init) {
          let i = Cne(s.init);
          r = Uu(s.init) && i.hasCall || i.hasFunction;
        }
        if (r)
          return 3;
      }
    },
    IfStatement(t) {
      if (xkt(t.consequent))
        return 3;
    }
  };
  yf.ObjectProperty = yf.ObjectTypeProperty = yf.ObjectMethod = function(t, e) {
    if (e.properties[0] === t)
      return 1;
  };
  yf.ObjectTypeCallProperty = function(t, e) {
    var s;
    if (e.callProperties[0] === t && !((s = e.properties) != null && s.length))
      return 1;
  };
  yf.ObjectTypeIndexer = function(t, e) {
    var s, r;
    if (e.indexers[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length))
      return 1;
  };
  yf.ObjectTypeInternalSlot = function(t, e) {
    var s, r, i;
    if (e.internalSlots[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length) && !((i = e.indexers) !=
    null && i.length))
      return 1;
  };
  [["Function", !0], ["Class", !0], ["Loop", !0], ["LabeledStatement", !0], ["SwitchStatement", !0], ["TryStatement", !0]].forEach(function([
  t, e]) {
    [t].concat(Tkt[t] || []).forEach(function(s) {
      let r = e ? 3 : 0;
      yf[s] = () => r;
    });
  });
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/node/parentheses.js
var jne = g((ws) => {
  "use strict";
  Object.defineProperty(ws, "__esModule", {
    value: !0
  });
  ws.AssignmentExpression = iDt;
  ws.Binary = Bne;
  ws.BinaryExpression = Qkt;
  ws.ClassExpression = tDt;
  ws.ArrowFunctionExpression = ws.ConditionalExpression = Fne;
  ws.DoExpression = Ukt;
  ws.FunctionExpression = sDt;
  ws.FunctionTypeAnnotation = jkt;
  ws.Identifier = aDt;
  ws.LogicalExpression = nDt;
  ws.NullableTypeAnnotation = Fkt;
  ws.ObjectExpression = qkt;
  ws.OptionalIndexedAccessType = Vkt;
  ws.OptionalCallExpression = ws.OptionalMemberExpression = rDt;
  ws.SequenceExpression = Zkt;
  ws.TSSatisfiesExpression = ws.TSAsExpression = Wkt;
  ws.TSConditionalType = $kt;
  ws.TSConstructorType = ws.TSFunctionType = Gkt;
  ws.TSInferType = Ykt;
  ws.TSInstantiationExpression = zkt;
  ws.TSIntersectionType = Jkt;
  ws.UnaryLike = ws.TSTypeAssertion = Mne;
  ws.TSTypeOperator = Xkt;
  ws.TSUnionType = Hkt;
  ws.IntersectionTypeAnnotation = ws.UnionTypeAnnotation = Kkt;
  ws.UpdateExpression = Rkt;
  ws.AwaitExpression = ws.YieldExpression = eDt;
  var wkt = fe(), Ja = xp(), {
    isArrayTypeAnnotation: Ikt,
    isBinaryExpression: Nkt,
    isCallExpression: kkt,
    isForOfStatement: Dkt,
    isIndexedAccessType: Okt,
    isMemberExpression: _ne,
    isObjectPattern: _kt,
    isOptionalMemberExpression: Lkt,
    isYieldExpression: Bkt,
    isStatement: Mkt
  } = wkt, Dne = /* @__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 One(t, e) {
    if (e === "BinaryExpression" || e === "LogicalExpression")
      return Dne.get(t.operator);
    if (e === "TSAsExpression" || e === "TSSatisfiesExpression")
      return Dne.get("in");
  }
  n(One, "getBinaryPrecedence");
  function SF(t) {
    return t === "TSAsExpression" || t === "TSSatisfiesExpression" || t === "TSTypeAssertion";
  }
  n(SF, "isTSTypeExpression");
  var PA = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "ClassDeclaration" || s === "ClassExpression") && e.superClass === t;
  }, "isClassExtendsClause"), EA = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "MemberExpression" || s === "OptionalMemberExpression") && e.object === t || (s === "CallExpression" || s === "OptionalCal\
lExpression" || s === "NewExpression") && e.callee === t || s === "TaggedTemplateExpression" && e.tag === t || s === "TSNonNullExpression";
  }, "hasPostfixPart");
  function Fkt(t, e) {
    return Ikt(e);
  }
  n(Fkt, "NullableTypeAnnotation");
  function jkt(t, e, s) {
    let r = e.type;
    return r === "UnionTypeAnnotation" || r === "IntersectionTypeAnnotation" || r === "ArrayTypeAnnotation" || !!(s & Ja.TokenContext.arrowFlowReturnType);
  }
  n(jkt, "FunctionTypeAnnotation");
  function Rkt(t, e) {
    return EA(t, e) || PA(t, e);
  }
  n(Rkt, "UpdateExpression");
  function Lne(t) {
    return !!(t & (Ja.TokenContext.expressionStatement | Ja.TokenContext.arrowBody));
  }
  n(Lne, "needsParenBeforeExpressionBrace");
  function qkt(t, e, s) {
    return Lne(s);
  }
  n(qkt, "ObjectExpression");
  function Ukt(t, e, s) {
    return !t.async && !!(s & Ja.TokenContext.expressionStatement);
  }
  n(Ukt, "DoExpression");
  function Bne(t, e) {
    let s = e.type;
    if (t.type === "BinaryExpression" && t.operator === "**" && s === "BinaryExpression" && e.operator === "**")
      return e.left === t;
    if (PA(t, e) || EA(t, e) || s === "UnaryExpression" || s === "SpreadElement" || s === "AwaitExpression")
      return !0;
    let r = One(e, s);
    if (r != null) {
      let i = One(t, t.type);
      if (r === i && s === "BinaryExpression" && e.right === t || r > i)
        return !0;
    }
  }
  n(Bne, "Binary");
  function Kkt(t, e) {
    let s = e.type;
    return s === "ArrayTypeAnnotation" || s === "NullableTypeAnnotation" || s === "IntersectionTypeAnnotation" || s === "UnionTypeAnnotation";
  }
  n(Kkt, "UnionTypeAnnotation");
  function Vkt(t, e) {
    return Okt(e) && e.objectType === t;
  }
  n(Vkt, "OptionalIndexedAccessType");
  function Wkt(t, e) {
    return (e.type === "AssignmentExpression" || e.type === "AssignmentPattern") && e.left === t || e.type === "BinaryExpression" && (e.operator ===
    "|" || e.operator === "&") && t === e.left ? !0 : Bne(t, e);
  }
  n(Wkt, "TSAsExpression");
  function $kt(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType" || s === "TSTypeOperator" || s ===
    "TSTypeParameter" || (s === "TSIntersectionType" || s === "TSUnionType") && e.types[0] === t || s === "TSConditionalType" && (e.checkType ===
    t || e.extendsType === t);
  }
  n($kt, "TSConditionalType");
  function Hkt(t, e) {
    let s = e.type;
    return s === "TSIntersectionType" || s === "TSTypeOperator" || s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t ||
    s === "TSOptionalType";
  }
  n(Hkt, "TSUnionType");
  function Jkt(t, e) {
    let s = e.type;
    return s === "TSTypeOperator" || s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType";
  }
  n(Jkt, "TSIntersectionType");
  function Ykt(t, e) {
    let s = e.type;
    return !!(s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType" || t.typeParameter.constraint &&
    (s === "TSIntersectionType" || s === "TSUnionType") && e.types[0] === t);
  }
  n(Ykt, "TSInferType");
  function Xkt(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSIndexedAccessType" && e.objectType === t || s === "TSOptionalType";
  }
  n(Xkt, "TSTypeOperator");
  function zkt(t, e) {
    let s = e.type;
    return (s === "CallExpression" || s === "OptionalCallExpression" || s === "NewExpression" || s === "TSInstantiationExpression") && !!e.typeParameters;
  }
  n(zkt, "TSInstantiationExpression");
  function Gkt(t, e) {
    let s = e.type;
    return s === "TSIntersectionType" || s === "TSUnionType" || s === "TSTypeOperator" || s === "TSOptionalType" || s === "TSArrayType" || s ===
    "TSIndexedAccessType" && e.objectType === t || s === "TSConditionalType" && (e.checkType === t || e.extendsType === t);
  }
  n(Gkt, "TSFunctionType");
  function Qkt(t, e, s, r) {
    return t.operator === "in" && r;
  }
  n(Qkt, "BinaryExpression");
  function Zkt(t, e) {
    let s = e.type;
    return s === "SequenceExpression" || s === "ParenthesizedExpression" || s === "MemberExpression" && e.property === t || s === "OptionalM\
emberExpression" && e.property === t || s === "TemplateLiteral" ? !1 : s === "ClassDeclaration" ? !0 : s === "ForOfStatement" ? e.right === t :
    s === "ExportDefaultDeclaration" ? !0 : !Mkt(e);
  }
  n(Zkt, "SequenceExpression");
  function eDt(t, e) {
    let s = e.type;
    return s === "BinaryExpression" || s === "LogicalExpression" || s === "UnaryExpression" || s === "SpreadElement" || EA(t, e) || s === "A\
waitExpression" && Bkt(t) || s === "ConditionalExpression" && t === e.test || PA(t, e) || SF(s);
  }
  n(eDt, "YieldExpression");
  function tDt(t, e, s) {
    return !!(s & (Ja.TokenContext.expressionStatement | Ja.TokenContext.exportDefault));
  }
  n(tDt, "ClassExpression");
  function Mne(t, e) {
    return EA(t, e) || Nkt(e) && e.operator === "**" && e.left === t || PA(t, e);
  }
  n(Mne, "UnaryLike");
  function sDt(t, e, s) {
    return !!(s & (Ja.TokenContext.expressionStatement | Ja.TokenContext.exportDefault));
  }
  n(sDt, "FunctionExpression");
  function Fne(t, e) {
    let s = e.type;
    return s === "UnaryExpression" || s === "SpreadElement" || s === "BinaryExpression" || s === "LogicalExpression" || s === "ConditionalEx\
pression" && e.test === t || s === "AwaitExpression" || SF(s) ? !0 : Mne(t, e);
  }
  n(Fne, "ConditionalExpression");
  function rDt(t, e) {
    return kkt(e) && e.callee === t || _ne(e) && e.object === t;
  }
  n(rDt, "OptionalMemberExpression");
  function iDt(t, e, s) {
    return Lne(s) && _kt(t.left) ? !0 : Fne(t, e);
  }
  n(iDt, "AssignmentExpression");
  function nDt(t, e) {
    let s = e.type;
    if (SF(s)) return !0;
    if (s !== "LogicalExpression") return !1;
    switch (t.operator) {
      case "||":
        return e.operator === "??" || e.operator === "&&";
      case "&&":
        return e.operator === "??";
      case "??":
        return e.operator !== "??";
    }
  }
  n(nDt, "LogicalExpression");
  function aDt(t, e, s, r, i) {
    var a;
    let o = e.type;
    if ((a = t.extra) != null && a.parenthesized && o === "AssignmentExpression" && e.left === t) {
      let l = e.right.type;
      if ((l === "FunctionExpression" || l === "ClassExpression") && e.right.id == null)
        return !0;
    }
    return i && i(t) !== t.name ? !1 : t.name === "let" ? (_ne(e, {
      object: t,
      computed: !0
    }) || Lkt(e, {
      object: t,
      computed: !0,
      optional: !1
    })) && s & (Ja.TokenContext.expressionStatement | Ja.TokenContext.forHead | Ja.TokenContext.forInHead) ? !0 : !!(s & Ja.TokenContext.forOfHead) :
    t.name === "async" && Dkt(e, {
      left: t,
      await: !1
    });
  }
  n(aDt, "Identifier");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/node/index.js
var xp = g((Ku) => {
  "use strict";
  Object.defineProperty(Ku, "__esModule", {
    value: !0
  });
  Ku.TokenContext = void 0;
  Ku.isLastChild = PDt;
  Ku.needsParens = SDt;
  Ku.needsWhitespace = EF;
  Ku.needsWhitespaceAfter = xDt;
  Ku.needsWhitespaceBefore = bDt;
  var oDt = kne(), lDt = jne(), uDt = fe(), {
    FLIPPED_ALIAS_KEYS: cDt,
    VISITOR_KEYS: pDt,
    isCallExpression: Rne,
    isDecorator: hDt,
    isExpressionStatement: fDt,
    isMemberExpression: dDt,
    isNewExpression: mDt,
    isParenthesizedExpression: yDt
  } = uDt, $Ys = Ku.TokenContext = {
    expressionStatement: 1,
    arrowBody: 2,
    exportDefault: 4,
    forHead: 8,
    forInHead: 16,
    forOfHead: 32,
    arrowFlowReturnType: 64
  };
  function qne(t) {
    let e = /* @__PURE__ */ new Map();
    function s(r, i) {
      let a = e.get(r);
      e.set(r, a ? function(o, l, u, c, p) {
        var h;
        return (h = a(o, l, u, c, p)) != null ? h : i(o, l, u, c, p);
      } : i);
    }
    n(s, "add");
    for (let r of Object.keys(t)) {
      let i = cDt[r];
      if (i)
        for (let a of i)
          s(a, t[r]);
      else
        s(r, t[r]);
    }
    return e;
  }
  n(qne, "expandAliases");
  var gDt = qne(lDt), TDt = qne(oDt.nodes);
  function Une(t) {
    return Rne(t) ? !0 : dDt(t) && Une(t.object);
  }
  n(Une, "isOrHasCallExpression");
  function EF(t, e, s) {
    var r;
    if (!t) return !1;
    fDt(t) && (t = t.expression);
    let i = (r = TDt.get(t.type)) == null ? void 0 : r(t, e);
    return typeof i == "number" ? (i & s) !== 0 : !1;
  }
  n(EF, "needsWhitespace");
  function bDt(t, e) {
    return EF(t, e, 1);
  }
  n(bDt, "needsWhitespaceBefore");
  function xDt(t, e) {
    return EF(t, e, 2);
  }
  n(xDt, "needsWhitespaceAfter");
  function SDt(t, e, s, r, i) {
    var a;
    return e ? mDt(e) && e.callee === t && Une(t) ? !0 : hDt(e) ? !PF(t) && !(Rne(t) && PF(t.callee)) && !yDt(t) : (a = gDt.get(t.type)) == null ?
    void 0 : a(t, e, s, r, i) : !1;
  }
  n(SDt, "needsParens");
  function PF(t) {
    switch (t.type) {
      case "Identifier":
        return !0;
      case "MemberExpression":
        return !t.computed && t.property.type === "Identifier" && PF(t.object);
      default:
        return !1;
    }
  }
  n(PF, "isDecoratorMemberExpression");
  function PDt(t, e) {
    let s = pDt[t.type];
    for (let r = s.length - 1; r >= 0; r--) {
      let i = t[s[r]];
      if (i === e)
        return !0;
      if (Array.isArray(i)) {
        let a = i.length - 1;
        for (; a >= 0 && i[a] === null; ) a--;
        return a >= 0 && i[a] === e;
      } else if (i)
        return !1;
    }
    return !1;
  }
  n(PDt, "isLastChild");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/token-map.js
var Kne = g((AA) => {
  "use strict";
  Object.defineProperty(AA, "__esModule", {
    value: !0
  });
  AA.TokenMap = void 0;
  var EDt = fe(), {
    traverseFast: ADt,
    VISITOR_KEYS: vDt
  } = EDt, AF = class {
    static {
      n(this, "TokenMap");
    }
    constructor(e, s, r) {
      this._tokens = void 0, this._source = void 0, this._nodesToTokenIndexes = /* @__PURE__ */ new Map(), this._nodesOccurrencesCountCache =
      /* @__PURE__ */ new Map(), this._tokensCache = /* @__PURE__ */ new Map(), this._tokens = s, this._source = r, ADt(e, (i) => {
        let a = this._getTokensIndexesOfNode(i);
        a.length > 0 && this._nodesToTokenIndexes.set(i, a);
      }), this._tokensCache = null;
    }
    has(e) {
      return this._nodesToTokenIndexes.has(e);
    }
    getIndexes(e) {
      return this._nodesToTokenIndexes.get(e);
    }
    find(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = 0; i < r.length; i++) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return o;
        }
      return null;
    }
    findLastIndex(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = r.length - 1; i >= 0; i--) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return a;
        }
      return -1;
    }
    findMatching(e, s, r = 0) {
      let i = this._nodesToTokenIndexes.get(e);
      if (i) {
        let a = 0, o = r;
        if (o > 1) {
          let l = this._nodesOccurrencesCountCache.get(e);
          l && l.test === s && l.count < o && (a = l.i + 1, r -= l.count + 1);
        }
        for (; a < i.length; a++) {
          let l = this._tokens[i[a]];
          if (this.matchesOriginal(l, s)) {
            if (r === 0)
              return o > 0 && this._nodesOccurrencesCountCache.set(e, {
                test: s,
                count: o,
                i: a
              }), l;
            r--;
          }
        }
      }
      return null;
    }
    matchesOriginal(e, s) {
      return e.end - e.start !== s.length ? !1 : e.value != null ? e.value === s : this._source.startsWith(s, e.start);
    }
    startMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[0]];
      return i.start !== e.start ? !1 : this.matchesOriginal(i, s);
    }
    endMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[r.length - 1]];
      return i.end !== e.end ? !1 : this.matchesOriginal(i, s);
    }
    _getTokensIndexesOfNode(e) {
      if (e.start == null || e.end == null) return [];
      let {
        first: s,
        last: r
      } = this._findTokensOfNode(e, 0, this._tokens.length - 1), i = s, a = CDt(e);
      (e.type === "ExportNamedDeclaration" || e.type === "ExportDefaultDeclaration") && e.declaration && e.declaration.type === "ClassDeclar\
ation" && a.next();
      let o = [];
      for (let l of a) {
        if (l == null || l.start == null || l.end == null) continue;
        let u = this._findTokensOfNode(l, i, r), c = u.first;
        for (let p = i; p < c; p++) o.push(p);
        i = u.last + 1;
      }
      for (let l = i; l <= r; l++) o.push(l);
      return o;
    }
    _findTokensOfNode(e, s, r) {
      let i = this._tokensCache.get(e);
      if (i) return i;
      let a = this._findFirstTokenOfNode(e.start, s, r), o = this._findLastTokenOfNode(e.end, a, r);
      return this._tokensCache.set(e, {
        first: a,
        last: o
      }), {
        first: a,
        last: o
      };
    }
    _findFirstTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].start)
          r = i - 1;
        else if (e > this._tokens[i].start)
          s = i + 1;
        else
          return i;
      }
      return s;
    }
    _findLastTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].end)
          r = i - 1;
        else if (e > this._tokens[i].end)
          s = i + 1;
        else
          return i;
      }
      return r;
    }
  };
  AA.TokenMap = AF;
  function* CDt(t) {
    if (t.type === "TemplateLiteral") {
      yield t.quasis[0];
      for (let s = 1; s < t.quasis.length; s++)
        yield t.expressions[s - 1], yield t.quasis[s];
      return;
    }
    let e = vDt[t.type];
    for (let s of e) {
      let r = t[s];
      r && (Array.isArray(r) ? yield* r : yield r);
    }
  }
  n(CDt, "childrenIterator");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/template-literals.js
var Vne = g((Mm) => {
  "use strict";
  Object.defineProperty(Mm, "__esModule", {
    value: !0
  });
  Mm.TaggedTemplateExpression = wDt;
  Mm.TemplateElement = IDt;
  Mm.TemplateLiteral = kDt;
  Mm._printTemplate = NDt;
  function wDt(t) {
    this.print(t.tag), this.print(t.typeParameters), this.print(t.quasi);
  }
  n(wDt, "TaggedTemplateExpression");
  function IDt() {
    throw new Error("TemplateElement printing is handled in TemplateLiteral");
  }
  n(IDt, "TemplateElement");
  function NDt(t, e) {
    let s = t.quasis, r = "`";
    for (let i = 0; i < s.length - 1; i++)
      if (r += s[i].value.raw, this.token(r + "${", !0), this.print(e[i]), r = "}", this.tokenMap) {
        let a = this.tokenMap.findMatching(t, "}", i);
        a && this._catchUpTo(a.loc.start);
      }
    r += s[s.length - 1].value.raw, this.token(r + "`", !0);
  }
  n(NDt, "_printTemplate");
  function kDt(t) {
    this._printTemplate(t, t.expressions);
  }
  n(kDt, "TemplateLiteral");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/expressions.js
var $ne = g((hr) => {
  "use strict";
  Object.defineProperty(hr, "__esModule", {
    value: !0
  });
  hr.LogicalExpression = hr.BinaryExpression = hr.AssignmentExpression = sOt;
  hr.AssignmentPattern = tOt;
  hr.AwaitExpression = GDt;
  hr.BindExpression = rOt;
  hr.CallExpression = XDt;
  hr.ConditionalExpression = qDt;
  hr.Decorator = HDt;
  hr.DoExpression = FDt;
  hr.EmptyStatement = ZDt;
  hr.ExpressionStatement = eOt;
  hr.Import = zDt;
  hr.MemberExpression = iOt;
  hr.MetaProperty = nOt;
  hr.ModuleExpression = lOt;
  hr.NewExpression = UDt;
  hr.OptionalCallExpression = YDt;
  hr.OptionalMemberExpression = JDt;
  hr.ParenthesizedExpression = jDt;
  hr.PrivateName = aOt;
  hr.SequenceExpression = KDt;
  hr.Super = WDt;
  hr.ThisExpression = VDt;
  hr.UnaryExpression = MDt;
  hr.UpdateExpression = RDt;
  hr.V8IntrinsicIdentifier = oOt;
  hr.YieldExpression = QDt;
  hr._shouldPrintDecoratorsBeforeExport = $Dt;
  var DDt = fe(), ODt = xp(), {
    isCallExpression: _Dt,
    isLiteral: Wne,
    isMemberExpression: vF,
    isNewExpression: LDt,
    isPattern: BDt
  } = DDt;
  function MDt(t) {
    let {
      operator: e
    } = t;
    e === "void" || e === "delete" || e === "typeof" || e === "throw" ? (this.word(e), this.space()) : this.token(e), this.print(t.argument);
  }
  n(MDt, "UnaryExpression");
  function FDt(t) {
    t.async && (this.word("async", !0), this.space()), this.word("do"), this.space(), this.print(t.body);
  }
  n(FDt, "DoExpression");
  function jDt(t) {
    this.tokenChar(40);
    let e = this.enterDelimited();
    this.print(t.expression), e(), this.rightParens(t);
  }
  n(jDt, "ParenthesizedExpression");
  function RDt(t) {
    t.prefix ? (this.token(t.operator), this.print(t.argument)) : (this.print(t.argument, !0), this.token(t.operator));
  }
  n(RDt, "UpdateExpression");
  function qDt(t) {
    this.print(t.test), this.space(), this.tokenChar(63), this.space(), this.print(t.consequent), this.space(), this.tokenChar(58), this.space(),
    this.print(t.alternate);
  }
  n(qDt, "ConditionalExpression");
  function UDt(t, e) {
    if (this.word("new"), this.space(), this.print(t.callee), this.format.minified && t.arguments.length === 0 && !t.optional && !_Dt(e, {
      callee: t
    }) && !vF(e) && !LDt(e) || (this.print(t.typeArguments), this.print(t.typeParameters), t.optional && this.token("?."), t.arguments.length ===
    0 && this.tokenMap && !this.tokenMap.endMatches(t, ")")))
      return;
    this.tokenChar(40);
    let s = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), s(), this.rightParens(t);
  }
  n(UDt, "NewExpression");
  function KDt(t) {
    this.printList(t.expressions);
  }
  n(KDt, "SequenceExpression");
  function VDt() {
    this.word("this");
  }
  n(VDt, "ThisExpression");
  function WDt() {
    this.word("super");
  }
  n(WDt, "Super");
  function $Dt(t) {
    return typeof this.format.decoratorsBeforeExport == "boolean" ? this.format.decoratorsBeforeExport : typeof t.start == "number" && t.start ===
    t.declaration.start;
  }
  n($Dt, "_shouldPrintDecoratorsBeforeExport");
  function HDt(t) {
    this.tokenChar(64), this.print(t.expression), this.newline();
  }
  n(HDt, "Decorator");
  function JDt(t) {
    let {
      computed: e
    } = t, {
      optional: s,
      property: r
    } = t;
    if (this.print(t.object), !e && vF(r))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    Wne(r) && typeof r.value == "number" && (e = !0), s && this.token("?."), e ? (this.tokenChar(91), this.print(r), this.tokenChar(93)) : (s ||
    this.tokenChar(46), this.print(r));
  }
  n(JDt, "OptionalMemberExpression");
  function YDt(t) {
    this.print(t.callee), this.print(t.typeParameters), t.optional && this.token("?."), this.print(t.typeArguments), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments), e(), this.rightParens(t);
  }
  n(YDt, "OptionalCallExpression");
  function XDt(t) {
    this.print(t.callee), this.print(t.typeArguments), this.print(t.typeParameters), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), e(), this.rightParens(t);
  }
  n(XDt, "CallExpression");
  function zDt() {
    this.word("import");
  }
  n(zDt, "Import");
  function GDt(t) {
    this.word("await"), t.argument && (this.space(), this.printTerminatorless(t.argument));
  }
  n(GDt, "AwaitExpression");
  function QDt(t) {
    this.word("yield", !0), t.delegate ? (this.tokenChar(42), t.argument && (this.space(), this.print(t.argument))) : t.argument && (this.space(),
    this.printTerminatorless(t.argument));
  }
  n(QDt, "YieldExpression");
  function ZDt() {
    this.semicolon(!0);
  }
  n(ZDt, "EmptyStatement");
  function eOt(t) {
    this.tokenContext |= ODt.TokenContext.expressionStatement, this.print(t.expression), this.semicolon();
  }
  n(eOt, "ExpressionStatement");
  function tOt(t) {
    this.print(t.left), (t.left.type === "Identifier" || BDt(t.left)) && (t.left.optional && this.tokenChar(63), this.print(t.left.typeAnnotation)),
    this.space(), this.tokenChar(61), this.space(), this.print(t.right);
  }
  n(tOt, "AssignmentPattern");
  function sOt(t) {
    this.print(t.left), this.space(), t.operator === "in" || t.operator === "instanceof" ? this.word(t.operator) : (this.token(t.operator), this.
    _endsWithDiv = t.operator === "/"), this.space(), this.print(t.right);
  }
  n(sOt, "AssignmentExpression");
  function rOt(t) {
    this.print(t.object), this.token("::"), this.print(t.callee);
  }
  n(rOt, "BindExpression");
  function iOt(t) {
    if (this.print(t.object), !t.computed && vF(t.property))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    let e = t.computed;
    if (Wne(t.property) && typeof t.property.value == "number" && (e = !0), e) {
      let s = this.enterDelimited();
      this.tokenChar(91), this.print(t.property), this.tokenChar(93), s();
    } else
      this.tokenChar(46), this.print(t.property);
  }
  n(iOt, "MemberExpression");
  function nOt(t) {
    this.print(t.meta), this.tokenChar(46), this.print(t.property);
  }
  n(nOt, "MetaProperty");
  function aOt(t) {
    this.tokenChar(35), this.print(t.id);
  }
  n(aOt, "PrivateName");
  function oOt(t) {
    this.tokenChar(37), this.word(t.name);
  }
  n(oOt, "V8IntrinsicIdentifier");
  function lOt(t) {
    this.word("module", !0), this.space(), this.tokenChar(123), this.indent();
    let {
      body: e
    } = t;
    (e.body.length || e.directives.length) && this.newline(), this.print(e), this.dedent(), this.rightBrace(t);
  }
  n(lOt, "ModuleExpression");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/statements.js
var Xne = g((Gr) => {
  "use strict";
  Object.defineProperty(Gr, "__esModule", {
    value: !0
  });
  Gr.BreakStatement = TOt;
  Gr.CatchClause = AOt;
  Gr.ContinueStatement = bOt;
  Gr.DebuggerStatement = wOt;
  Gr.DoWhileStatement = gOt;
  Gr.ForOfStatement = Gr.ForInStatement = void 0;
  Gr.ForStatement = mOt;
  Gr.IfStatement = dOt;
  Gr.LabeledStatement = POt;
  Gr.ReturnStatement = xOt;
  Gr.SwitchCase = COt;
  Gr.SwitchStatement = vOt;
  Gr.ThrowStatement = SOt;
  Gr.TryStatement = EOt;
  Gr.VariableDeclaration = IOt;
  Gr.VariableDeclarator = NOt;
  Gr.WhileStatement = yOt;
  Gr.WithStatement = fOt;
  var uOt = fe(), CF = xp(), {
    isFor: Hne,
    isForStatement: cOt,
    isIfStatement: pOt,
    isStatement: hOt
  } = uOt;
  function fOt(t) {
    this.word("with"), this.space(), this.tokenChar(40), this.print(t.object), this.tokenChar(41), this.printBlock(t);
  }
  n(fOt, "WithStatement");
  function dOt(t) {
    this.word("if"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.space();
    let e = t.alternate && pOt(Jne(t.consequent));
    e && (this.tokenChar(123), this.newline(), this.indent()), this.printAndIndentOnComments(t.consequent), e && (this.dedent(), this.newline(),
    this.tokenChar(125)), t.alternate && (this.endsWith(125) && this.space(), this.word("else"), this.space(), this.printAndIndentOnComments(
    t.alternate));
  }
  n(dOt, "IfStatement");
  function Jne(t) {
    let {
      body: e
    } = t;
    return hOt(e) === !1 ? t : Jne(e);
  }
  n(Jne, "getLastStatement");
  function mOt(t) {
    this.word("for"), this.space(), this.tokenChar(40);
    {
      let e = this.enterForStatementInit();
      this.tokenContext |= CF.TokenContext.forHead, this.print(t.init), e();
    }
    this.tokenChar(59), t.test && (this.space(), this.print(t.test)), this.token(";", !1, 1), t.update && (this.space(), this.print(t.update)),
    this.tokenChar(41), this.printBlock(t);
  }
  n(mOt, "ForStatement");
  function yOt(t) {
    this.word("while"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.printBlock(t);
  }
  n(yOt, "WhileStatement");
  function Yne(t) {
    this.word("for"), this.space();
    let e = t.type === "ForOfStatement";
    e && t.await && (this.word("await"), this.space()), this.noIndentInnerCommentsHere(), this.tokenChar(40);
    {
      let s = e ? null : this.enterForStatementInit();
      this.tokenContext |= e ? CF.TokenContext.forOfHead : CF.TokenContext.forInHead, this.print(t.left), s?.();
    }
    this.space(), this.word(e ? "of" : "in"), this.space(), this.print(t.right), this.tokenChar(41), this.printBlock(t);
  }
  n(Yne, "ForXStatement");
  var eXs = Gr.ForInStatement = Yne, tXs = Gr.ForOfStatement = Yne;
  function gOt(t) {
    this.word("do"), this.space(), this.print(t.body), this.space(), this.word("while"), this.space(), this.tokenChar(40), this.print(t.test),
    this.tokenChar(41), this.semicolon();
  }
  n(gOt, "DoWhileStatement");
  function vA(t, e) {
    e && (t.space(), t.printTerminatorless(e)), t.semicolon();
  }
  n(vA, "printStatementAfterKeyword");
  function TOt(t) {
    this.word("break"), vA(this, t.label);
  }
  n(TOt, "BreakStatement");
  function bOt(t) {
    this.word("continue"), vA(this, t.label);
  }
  n(bOt, "ContinueStatement");
  function xOt(t) {
    this.word("return"), vA(this, t.argument);
  }
  n(xOt, "ReturnStatement");
  function SOt(t) {
    this.word("throw"), vA(this, t.argument);
  }
  n(SOt, "ThrowStatement");
  function POt(t) {
    this.print(t.label), this.tokenChar(58), this.space(), this.print(t.body);
  }
  n(POt, "LabeledStatement");
  function EOt(t) {
    this.word("try"), this.space(), this.print(t.block), this.space(), t.handlers ? this.print(t.handlers[0]) : this.print(t.handler), t.finalizer &&
    (this.space(), this.word("finally"), this.space(), this.print(t.finalizer));
  }
  n(EOt, "TryStatement");
  function AOt(t) {
    this.word("catch"), this.space(), t.param && (this.tokenChar(40), this.print(t.param), this.print(t.param.typeAnnotation), this.tokenChar(
    41), this.space()), this.print(t.body);
  }
  n(AOt, "CatchClause");
  function vOt(t) {
    this.word("switch"), this.space(), this.tokenChar(40), this.print(t.discriminant), this.tokenChar(41), this.space(), this.tokenChar(123),
    this.printSequence(t.cases, !0, void 0, /* @__PURE__ */ n(function(s, r) {
      if (!s && t.cases[t.cases.length - 1] === r) return -1;
    }, "addNewlines")), this.rightBrace(t);
  }
  n(vOt, "SwitchStatement");
  function COt(t) {
    t.test ? (this.word("case"), this.space(), this.print(t.test), this.tokenChar(58)) : (this.word("default"), this.tokenChar(58)), t.consequent.
    length && (this.newline(), this.printSequence(t.consequent, !0));
  }
  n(COt, "SwitchCase");
  function wOt() {
    this.word("debugger"), this.semicolon();
  }
  n(wOt, "DebuggerStatement");
  function IOt(t, e) {
    t.declare && (this.word("declare"), this.space());
    let {
      kind: s
    } = t;
    s === "await using" ? (this.word("await"), this.space(), this.word("using", !0)) : this.word(s, s === "using"), this.space();
    let r = !1;
    if (!Hne(e))
      for (let i of t.declarations)
        i.init && (r = !0);
    if (this.printList(t.declarations, void 0, void 0, t.declarations.length > 1, r ? function(i) {
      this.token(",", !1, i), this.newline();
    } : void 0), Hne(e)) {
      if (cOt(e)) {
        if (e.init === t) return;
      } else if (e.left === t) return;
    }
    this.semicolon();
  }
  n(IOt, "VariableDeclaration");
  function NOt(t) {
    this.print(t.id), t.definite && this.tokenChar(33), this.print(t.id.typeAnnotation), t.init && (this.space(), this.tokenChar(61), this.space(),
    this.print(t.init));
  }
  n(NOt, "VariableDeclarator");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/classes.js
var zne = g((Ya) => {
  "use strict";
  Object.defineProperty(Ya, "__esModule", {
    value: !0
  });
  Ya.ClassAccessorProperty = FOt;
  Ya.ClassBody = LOt;
  Ya.ClassExpression = Ya.ClassDeclaration = _Ot;
  Ya.ClassMethod = ROt;
  Ya.ClassPrivateMethod = qOt;
  Ya.ClassPrivateProperty = jOt;
  Ya.ClassProperty = MOt;
  Ya.StaticBlock = KOt;
  Ya._classMethodHead = UOt;
  var kOt = fe(), {
    isExportDefaultDeclaration: DOt,
    isExportNamedDeclaration: OOt
  } = kOt;
  function _Ot(t, e) {
    (!(DOt(e) || OOt(e)) || !this._shouldPrintDecoratorsBeforeExport(e)) && this.printJoin(t.decorators), t.declare && (this.word("declare"),
    this.space()), t.abstract && (this.word("abstract"), this.space()), this.word("class"), t.id && (this.space(), this.print(t.id)), this.print(
    t.typeParameters), t.superClass && (this.space(), this.word("extends"), this.space(), this.print(t.superClass), this.print(t.superTypeParameters)),
    t.implements && (this.space(), this.word("implements"), this.space(), this.printList(t.implements)), this.space(), this.print(t.body);
  }
  n(_Ot, "ClassDeclaration");
  function LOt(t) {
    if (this.tokenChar(123), t.body.length === 0)
      this.tokenChar(125);
    else {
      this.newline();
      let e = BOt(this, t);
      e?.(-1);
      let s = this.enterDelimited();
      this.printJoin(t.body, !0, !0, e, !0), s(), this.endsWith(10) || this.newline(), this.rightBrace(t);
    }
  }
  n(LOt, "ClassBody");
  function BOt(t, e) {
    if (!t.tokenMap || e.start == null || e.end == null)
      return null;
    let s = t.tokenMap.getIndexes(e);
    if (!s) return null;
    let r = 1, i = 0, a = 0, o = /* @__PURE__ */ n(() => {
      for (; a < e.body.length && e.body[a].start == null; )
        a++;
    }, "advanceNextLocIndex");
    return o(), (l) => {
      a <= l && (a = l + 1, o());
      let u = a === e.body.length ? e.end : e.body[a].start, c;
      for (; r < s.length && t.tokenMap.matchesOriginal(c = t._tokens[s[r]], ";") && c.start < u; )
        t.token(";", void 0, i++), r++;
    };
  }
  n(BOt, "classBodyEmptySemicolonsPrinter");
  function MOt(t) {
    if (this.printJoin(t.decorators), !t.static && !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), t.computed ? (this.tokenChar(91), this.print(t.key), this.tokenChar(93)) : (this._variance(t), this.
    print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(),
    this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(MOt, "ClassProperty");
  function FOt(t) {
    var e;
    this.printJoin(t.decorators);
    let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
    s && this.catchUp(s), this.tsPrintClassMemberModifiers(t), this.word("accessor", !0), this.space(), t.computed ? (this.tokenChar(91), this.
    print(t.key), this.tokenChar(93)) : (this._variance(t), this.print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(
    33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(FOt, "ClassAccessorProperty");
  function jOt(t) {
    this.printJoin(t.decorators), this.tsPrintClassMemberModifiers(t), this.print(t.key), t.optional && this.tokenChar(63), t.definite && this.
    tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(jOt, "ClassPrivateProperty");
  function ROt(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(ROt, "ClassMethod");
  function qOt(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(qOt, "ClassPrivateMethod");
  function UOt(t) {
    if (this.printJoin(t.decorators), !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), this._methodHead(t);
  }
  n(UOt, "_classMethodHead");
  function KOt(t) {
    this.word("static"), this.space(), this.tokenChar(123), t.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(
    t.body, !0), this.rightBrace(t));
  }
  n(KOt, "StaticBlock");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/methods.js
var Gne = g((Xa) => {
  "use strict";
  Object.defineProperty(Xa, "__esModule", {
    value: !0
  });
  Xa.ArrowFunctionExpression = ZOt;
  Xa.FunctionDeclaration = Xa.FunctionExpression = QOt;
  Xa._functionHead = GOt;
  Xa._methodHead = XOt;
  Xa._param = YOt;
  Xa._parameters = JOt;
  Xa._params = HOt;
  Xa._predicate = zOt;
  Xa._shouldPrintArrowParamsParens = e2t;
  var VOt = fe(), WOt = xp(), {
    isIdentifier: $Ot
  } = VOt;
  function HOt(t, e, s) {
    this.print(t.typeParameters);
    let r = t2t.call(this, e, s);
    r && this.sourceIdentifierName(r.name, r.pos), this.tokenChar(40), this._parameters(t.params, ")");
    let i = t.type === "ArrowFunctionExpression";
    this.print(t.returnType, i), this._noLineTerminator = i;
  }
  n(HOt, "_params");
  function JOt(t, e) {
    let s = this.enterDelimited(), r = this.shouldPrintTrailingComma(e), i = t.length;
    for (let a = 0; a < i; a++)
      this._param(t[a]), (r || a < i - 1) && (this.token(",", null, a), this.space());
    this.token(e), s();
  }
  n(JOt, "_parameters");
  function YOt(t) {
    this.printJoin(t.decorators), this.print(t), t.optional && this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(YOt, "_param");
  function XOt(t) {
    let e = t.kind, s = t.key;
    (e === "get" || e === "set") && (this.word(e), this.space()), t.async && (this.word("async", !0), this.space()), (e === "method" || e ===
    "init") && t.generator && this.tokenChar(42), t.computed ? (this.tokenChar(91), this.print(s), this.tokenChar(93)) : this.print(s), t.optional &&
    this.tokenChar(63), this._params(t, t.computed && t.key.type !== "StringLiteral" ? void 0 : t.key, void 0);
  }
  n(XOt, "_methodHead");
  function zOt(t, e) {
    t.predicate && (t.returnType || this.tokenChar(58), this.space(), this.print(t.predicate, e));
  }
  n(zOt, "_predicate");
  function GOt(t, e) {
    t.async && (this.word("async"), this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.space()), this.word("function"), t.generator &&
    (this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.tokenChar(42)), this.space(), t.id && this.print(t.id), this._params(
    t, t.id, e), t.type !== "TSDeclareFunction" && this._predicate(t);
  }
  n(GOt, "_functionHead");
  function QOt(t, e) {
    this._functionHead(t, e), this.space(), this.print(t.body);
  }
  n(QOt, "FunctionExpression");
  function ZOt(t, e) {
    t.async && (this.word("async", !0), this.space()), this._shouldPrintArrowParamsParens(t) ? this._params(t, void 0, e) : this.print(t.params[0],
    !0), this._predicate(t, !0), this.space(), this.printInnerComments(), this.token("=>"), this.space(), this.tokenContext |= WOt.TokenContext.
    arrowBody, this.print(t.body);
  }
  n(ZOt, "ArrowFunctionExpression");
  function e2t(t) {
    var e, s;
    if (t.params.length !== 1 || t.typeParameters || t.returnType || t.predicate)
      return !0;
    let r = t.params[0];
    if (!$Ot(r) || r.typeAnnotation || r.optional || (e = r.leadingComments) != null && e.length || (s = r.trailingComments) != null && s.length)
      return !0;
    if (this.tokenMap) {
      if (t.loc == null || this.tokenMap.findMatching(t, "(") !== null) return !0;
      let i = this.tokenMap.findMatching(t, "=>");
      return i?.loc == null ? !0 : i.loc.start.line !== t.loc.start.line;
    }
    return !!this.format.retainLines;
  }
  n(e2t, "_shouldPrintArrowParamsParens");
  function t2t(t, e) {
    let s = t;
    if (!s && e) {
      let u = e.type;
      u === "VariableDeclarator" ? s = e.id : u === "AssignmentExpression" || u === "AssignmentPattern" ? s = e.left : u === "ObjectProperty" ||
      u === "ClassProperty" ? (!e.computed || e.key.type === "StringLiteral") && (s = e.key) : (u === "ClassPrivateProperty" || u === "Class\
AccessorProperty") && (s = e.key);
    }
    if (!s) return;
    let r;
    if (s.type === "Identifier") {
      var i, a;
      r = {
        pos: (i = s.loc) == null ? void 0 : i.start,
        name: ((a = s.loc) == null ? void 0 : a.identifierName) || s.name
      };
    } else if (s.type === "PrivateName") {
      var o;
      r = {
        pos: (o = s.loc) == null ? void 0 : o.start,
        name: "#" + s.id.name
      };
    } else if (s.type === "StringLiteral") {
      var l;
      r = {
        pos: (l = s.loc) == null ? void 0 : l.start,
        name: s.value
      };
    }
    return r;
  }
  n(t2t, "_getFuncIdName");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/modules.js
var wF = g((Bn) => {
  "use strict";
  Object.defineProperty(Bn, "__esModule", {
    value: !0
  });
  Bn.ExportAllDeclaration = m2t;
  Bn.ExportDefaultDeclaration = g2t;
  Bn.ExportDefaultSpecifier = p2t;
  Bn.ExportNamedDeclaration = y2t;
  Bn.ExportNamespaceSpecifier = f2t;
  Bn.ExportSpecifier = h2t;
  Bn.ImportAttribute = b2t;
  Bn.ImportDeclaration = T2t;
  Bn.ImportDefaultSpecifier = c2t;
  Bn.ImportExpression = S2t;
  Bn.ImportNamespaceSpecifier = x2t;
  Bn.ImportSpecifier = u2t;
  Bn._printAttributes = d2t;
  var s2t = fe(), r2t = xp(), {
    isClassDeclaration: i2t,
    isExportDefaultSpecifier: n2t,
    isExportNamespaceSpecifier: a2t,
    isImportDefaultSpecifier: o2t,
    isImportNamespaceSpecifier: l2t,
    isStatement: Zne
  } = s2t;
  function u2t(t) {
    (t.importKind === "type" || t.importKind === "typeof") && (this.word(t.importKind), this.space()), this.print(t.imported), t.local && t.
    local.name !== t.imported.name && (this.space(), this.word("as"), this.space(), this.print(t.local));
  }
  n(u2t, "ImportSpecifier");
  function c2t(t) {
    this.print(t.local);
  }
  n(c2t, "ImportDefaultSpecifier");
  function p2t(t) {
    this.print(t.exported);
  }
  n(p2t, "ExportDefaultSpecifier");
  function h2t(t) {
    t.exportKind === "type" && (this.word("type"), this.space()), this.print(t.local), t.exported && t.local.name !== t.exported.name && (this.
    space(), this.word("as"), this.space(), this.print(t.exported));
  }
  n(h2t, "ExportSpecifier");
  function f2t(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.exported);
  }
  n(f2t, "ExportNamespaceSpecifier");
  var Qne = !1;
  function d2t(t, e) {
    let {
      importAttributesKeyword: s
    } = this.format, {
      attributes: r,
      assertions: i
    } = t;
    r && !s && !Qne && (Qne = !0, console.warn('You are using import attributes, without specifying the desired output syntax.\nPlease specif\
y 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'));
    let a = s === "assert" || !s && i;
    if (this.word(a ? "assert" : "with"), this.space(), !a && s !== "with") {
      this.printList(r || i);
      return;
    }
    let o = e ? 1 : 0;
    this.token("{", null, o), this.space(), this.printList(r || i, this.shouldPrintTrailingComma("}")), this.space(), this.token("}", null, o);
  }
  n(d2t, "_printAttributes");
  function m2t(t) {
    var e, s;
    this.word("export"), this.space(), t.exportKind === "type" && (this.word("type"), this.space()), this.tokenChar(42), this.space(), this.
    word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0),
    this.space(), this._printAttributes(t, !1)) : this.print(t.source), this.semicolon();
  }
  n(m2t, "ExportAllDeclaration");
  function eae(t, e) {
    i2t(e.declaration) && t._shouldPrintDecoratorsBeforeExport(e) && t.printJoin(e.declaration.decorators);
  }
  n(eae, "maybePrintDecoratorsBeforeExport");
  function y2t(t) {
    if (eae(this, t), this.word("export"), this.space(), t.declaration) {
      let r = t.declaration;
      this.print(r), Zne(r) || this.semicolon();
    } else {
      t.exportKind === "type" && (this.word("type"), this.space());
      let r = t.specifiers.slice(0), i = !1;
      for (; ; ) {
        let o = r[0];
        if (n2t(o) || a2t(o))
          i = !0, this.print(r.shift()), r.length && (this.tokenChar(44), this.space());
        else
          break;
      }
      let a = !1;
      if ((r.length || !r.length && !i) && (a = !0, this.tokenChar(123), r.length && (this.space(), this.printList(r, this.shouldPrintTrailingComma(
      "}")), this.space()), this.tokenChar(125)), t.source) {
        var e, s;
        this.space(), this.word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.
        print(t.source, !0), this.space(), this._printAttributes(t, a)) : this.print(t.source);
      }
      this.semicolon();
    }
  }
  n(y2t, "ExportNamedDeclaration");
  function g2t(t) {
    eae(this, t), this.word("export"), this.noIndentInnerCommentsHere(), this.space(), this.word("default"), this.space(), this.tokenContext |=
    r2t.TokenContext.exportDefault;
    let e = t.declaration;
    this.print(e), Zne(e) || this.semicolon();
  }
  n(g2t, "ExportDefaultDeclaration");
  function T2t(t) {
    var e, s;
    this.word("import"), this.space();
    let r = t.importKind === "type" || t.importKind === "typeof";
    r ? (this.noIndentInnerCommentsHere(), this.word(t.importKind), this.space()) : t.module ? (this.noIndentInnerCommentsHere(), this.word(
    "module"), this.space()) : t.phase && (this.noIndentInnerCommentsHere(), this.word(t.phase), this.space());
    let i = t.specifiers.slice(0), a = !!i.length;
    for (; a; ) {
      let l = i[0];
      if (o2t(l) || l2t(l))
        this.print(i.shift()), i.length && (this.tokenChar(44), this.space());
      else
        break;
    }
    let o = !1;
    i.length ? (o = !0, this.tokenChar(123), this.space(), this.printList(i, this.shouldPrintTrailingComma("}")), this.space(), this.tokenChar(
    125)) : r && !a && (o = !0, this.tokenChar(123), this.tokenChar(125)), (a || r) && (this.space(), this.word("from"), this.space()), (e =
    t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0), this.space(), this._printAttributes(
    t, o)) : this.print(t.source), this.semicolon();
  }
  n(T2t, "ImportDeclaration");
  function b2t(t) {
    this.print(t.key), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(b2t, "ImportAttribute");
  function x2t(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.local);
  }
  n(x2t, "ImportNamespaceSpecifier");
  function S2t(t) {
    this.word("import"), t.phase && (this.tokenChar(46), this.word(t.phase)), this.tokenChar(40), this.print(t.source), t.options != null &&
    (this.tokenChar(44), this.space(), this.print(t.options)), this.tokenChar(41);
  }
  n(S2t, "ImportExpression");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/types.js
var NF = g((Mr) => {
  "use strict";
  Object.defineProperty(Mr, "__esModule", {
    value: !0
  });
  Mr.ArgumentPlaceholder = C2t;
  Mr.ArrayPattern = Mr.ArrayExpression = D2t;
  Mr.BigIntLiteral = R2t;
  Mr.BooleanLiteral = B2t;
  Mr.Identifier = v2t;
  Mr.NullLiteral = M2t;
  Mr.NumericLiteral = F2t;
  Mr.ObjectPattern = Mr.ObjectExpression = I2t;
  Mr.ObjectMethod = N2t;
  Mr.ObjectProperty = k2t;
  Mr.PipelineBareFunction = K2t;
  Mr.PipelinePrimaryTopicReference = V2t;
  Mr.PipelineTopicExpression = U2t;
  Mr.RecordExpression = O2t;
  Mr.RegExpLiteral = L2t;
  Mr.SpreadElement = Mr.RestElement = w2t;
  Mr.StringLiteral = j2t;
  Mr.TopicReference = q2t;
  Mr.TupleExpression = _2t;
  Mr._getRawIdentifier = A2t;
  var P2t = fe(), rae = Td(), {
    isAssignmentPattern: E2t,
    isIdentifier: IF
  } = P2t, tae = null, CA = "";
  function A2t(t) {
    if (t === tae) return CA;
    tae = t;
    let {
      name: e
    } = t, s = this.tokenMap.find(t, (r) => r.value === e);
    return s ? (CA = this._originalCode.slice(s.start, s.end), CA) : CA = t.name;
  }
  n(A2t, "_getRawIdentifier");
  function v2t(t) {
    var e;
    this.sourceIdentifierName(((e = t.loc) == null ? void 0 : e.identifierName) || t.name), this.word(this.tokenMap ? this._getRawIdentifier(
    t) : t.name);
  }
  n(v2t, "Identifier");
  function C2t() {
    this.tokenChar(63);
  }
  n(C2t, "ArgumentPlaceholder");
  function w2t(t) {
    this.token("..."), this.print(t.argument);
  }
  n(w2t, "RestElement");
  function I2t(t) {
    let e = t.properties;
    if (this.tokenChar(123), e.length) {
      let s = this.enterDelimited();
      this.space(), this.printList(e, this.shouldPrintTrailingComma("}"), !0, !0), this.space(), s();
    }
    this.sourceWithOffset("end", t.loc, -1), this.tokenChar(125);
  }
  n(I2t, "ObjectExpression");
  function N2t(t) {
    this.printJoin(t.decorators), this._methodHead(t), this.space(), this.print(t.body);
  }
  n(N2t, "ObjectMethod");
  function k2t(t) {
    if (this.printJoin(t.decorators), t.computed)
      this.tokenChar(91), this.print(t.key), this.tokenChar(93);
    else {
      if (E2t(t.value) && IF(t.key) && t.key.name === t.value.left.name) {
        this.print(t.value);
        return;
      }
      if (this.print(t.key), t.shorthand && IF(t.key) && IF(t.value) && t.key.name === t.value.name)
        return;
    }
    this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(k2t, "ObjectProperty");
  function D2t(t) {
    let e = t.elements, s = e.length;
    this.tokenChar(91);
    let r = this.enterDelimited();
    for (let i = 0; i < e.length; i++) {
      let a = e[i];
      a ? (i > 0 && this.space(), this.print(a), (i < s - 1 || this.shouldPrintTrailingComma("]")) && this.token(",", !1, i)) : this.token("\
,", !1, i);
    }
    r(), this.tokenChar(93);
  }
  n(D2t, "ArrayExpression");
  function O2t(t) {
    let e = t.properties, s, r;
    if (this.format.recordAndTupleSyntaxType === "bar")
      s = "{|", r = "|}";
    else {
      if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null)
        throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)}\
 received).`);
      s = "#{", r = "}";
    }
    this.token(s), e.length && (this.space(), this.printList(e, this.shouldPrintTrailingComma(r), !0, !0), this.space()), this.token(r);
  }
  n(O2t, "RecordExpression");
  function _2t(t) {
    let e = t.elements, s = e.length, r, i;
    if (this.format.recordAndTupleSyntaxType === "bar")
      r = "[|", i = "|]";
    else if (this.format.recordAndTupleSyntaxType === "hash")
      r = "#[", i = "]";
    else
      throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
    this.token(r);
    for (let a = 0; a < e.length; a++) {
      let o = e[a];
      o && (a > 0 && this.space(), this.print(o), (a < s - 1 || this.shouldPrintTrailingComma(i)) && this.token(",", !1, a));
    }
    this.token(i);
  }
  n(_2t, "TupleExpression");
  function L2t(t) {
    this.word(`/${t.pattern}/${t.flags}`);
  }
  n(L2t, "RegExpLiteral");
  function B2t(t) {
    this.word(t.value ? "true" : "false");
  }
  n(B2t, "BooleanLiteral");
  function M2t() {
    this.word("null");
  }
  n(M2t, "NullLiteral");
  function F2t(t) {
    let e = this.getPossibleRaw(t), s = this.format.jsescOption, r = t.value, i = r + "";
    s.numbers ? this.number(rae(r, s), r) : e == null ? this.number(i, r) : this.format.minified ? this.number(e.length < i.length ? e : i, r) :
    this.number(e, r);
  }
  n(F2t, "NumericLiteral");
  function j2t(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let s = rae(t.value, this.format.jsescOption);
    this.token(s);
  }
  n(j2t, "StringLiteral");
  function R2t(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.word(e);
      return;
    }
    this.word(t.value + "n");
  }
  n(R2t, "BigIntLiteral");
  var sae = /* @__PURE__ */ new Set(["^^", "@@", "^", "%", "#"]);
  function q2t() {
    let {
      topicToken: t
    } = this.format;
    if (sae.has(t))
      this.token(t);
    else {
      let e = JSON.stringify(t), s = Array.from(sae, (r) => JSON.stringify(r));
      throw new Error(`The "topicToken" generator option must be one of ${s.join(", ")} (${e} received instead).`);
    }
  }
  n(q2t, "TopicReference");
  function U2t(t) {
    this.print(t.expression);
  }
  n(U2t, "PipelineTopicExpression");
  function K2t(t) {
    this.print(t.callee);
  }
  n(K2t, "PipelineBareFunction");
  function V2t() {
    this.tokenChar(35);
  }
  n(V2t, "PipelinePrimaryTopicReference");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/flow.js
var nae = g((at) => {
  "use strict";
  Object.defineProperty(at, "__esModule", {
    value: !0
  });
  at.AnyTypeAnnotation = Y2t;
  at.ArrayTypeAnnotation = X2t;
  at.BooleanLiteralTypeAnnotation = G2t;
  at.BooleanTypeAnnotation = z2t;
  at.DeclareClass = Z2t;
  at.DeclareExportAllDeclaration = c_t;
  at.DeclareExportDeclaration = u_t;
  at.DeclareFunction = e_t;
  at.DeclareInterface = r_t;
  at.DeclareModule = i_t;
  at.DeclareModuleExports = n_t;
  at.DeclareOpaqueType = o_t;
  at.DeclareTypeAlias = a_t;
  at.DeclareVariable = l_t;
  at.DeclaredPredicate = s_t;
  at.EmptyTypeAnnotation = O_t;
  at.EnumBooleanBody = h_t;
  at.EnumBooleanMember = g_t;
  at.EnumDeclaration = p_t;
  at.EnumDefaultedMember = y_t;
  at.EnumNumberBody = f_t;
  at.EnumNumberMember = T_t;
  at.EnumStringBody = d_t;
  at.EnumStringMember = b_t;
  at.EnumSymbolBody = m_t;
  at.ExistsTypeAnnotation = S_t;
  at.FunctionTypeAnnotation = P_t;
  at.FunctionTypeParam = E_t;
  at.IndexedAccessType = rLt;
  at.InferredPredicate = t_t;
  at.InterfaceDeclaration = w_t;
  at.GenericTypeAnnotation = at.ClassImplements = at.InterfaceExtends = A_t;
  at.InterfaceTypeAnnotation = N_t;
  at.IntersectionTypeAnnotation = k_t;
  at.MixedTypeAnnotation = D_t;
  at.NullLiteralTypeAnnotation = Q2t;
  at.NullableTypeAnnotation = __t;
  Object.defineProperty(at, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return iae.NumericLiteral;
    }, "get")
  });
  at.NumberTypeAnnotation = L_t;
  at.ObjectTypeAnnotation = W_t;
  at.ObjectTypeCallProperty = H_t;
  at.ObjectTypeIndexer = J_t;
  at.ObjectTypeInternalSlot = $_t;
  at.ObjectTypeProperty = Y_t;
  at.ObjectTypeSpreadProperty = X_t;
  at.OpaqueType = V_t;
  at.OptionalIndexedAccessType = iLt;
  at.QualifiedTypeIdentifier = z_t;
  Object.defineProperty(at, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return iae.StringLiteral;
    }, "get")
  });
  at.StringTypeAnnotation = B_t;
  at.SymbolTypeAnnotation = G_t;
  at.ThisTypeAnnotation = M_t;
  at.TupleTypeAnnotation = F_t;
  at.TypeAlias = R_t;
  at.TypeAnnotation = q_t;
  at.TypeCastExpression = eLt;
  at.TypeParameter = K_t;
  at.TypeParameterDeclaration = at.TypeParameterInstantiation = U_t;
  at.TypeofTypeAnnotation = j_t;
  at.UnionTypeAnnotation = Z_t;
  at.Variance = tLt;
  at.VoidTypeAnnotation = sLt;
  at._interfaceish = v_t;
  at._variance = C_t;
  var W2t = fe(), $2t = wF(), H2t = xp(), iae = NF(), {
    isDeclareExportDeclaration: wA,
    isStatement: J2t
  } = W2t;
  function Y2t() {
    this.word("any");
  }
  n(Y2t, "AnyTypeAnnotation");
  function X2t(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(X2t, "ArrayTypeAnnotation");
  function z2t() {
    this.word("boolean");
  }
  n(z2t, "BooleanTypeAnnotation");
  function G2t(t) {
    this.word(t.value ? "true" : "false");
  }
  n(G2t, "BooleanLiteralTypeAnnotation");
  function Q2t() {
    this.word("null");
  }
  n(Q2t, "NullLiteralTypeAnnotation");
  function Z2t(t, e) {
    wA(e) || (this.word("declare"), this.space()), this.word("class"), this.space(), this._interfaceish(t);
  }
  n(Z2t, "DeclareClass");
  function e_t(t, e) {
    wA(e) || (this.word("declare"), this.space()), this.word("function"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation.typeAnnotation),
    t.predicate && (this.space(), this.print(t.predicate)), this.semicolon();
  }
  n(e_t, "DeclareFunction");
  function t_t() {
    this.tokenChar(37), this.word("checks");
  }
  n(t_t, "InferredPredicate");
  function s_t(t) {
    this.tokenChar(37), this.word("checks"), this.tokenChar(40), this.print(t.value), this.tokenChar(41);
  }
  n(s_t, "DeclaredPredicate");
  function r_t(t) {
    this.word("declare"), this.space(), this.InterfaceDeclaration(t);
  }
  n(r_t, "DeclareInterface");
  function i_t(t) {
    this.word("declare"), this.space(), this.word("module"), this.space(), this.print(t.id), this.space(), this.print(t.body);
  }
  n(i_t, "DeclareModule");
  function n_t(t) {
    this.word("declare"), this.space(), this.word("module"), this.tokenChar(46), this.word("exports"), this.print(t.typeAnnotation);
  }
  n(n_t, "DeclareModuleExports");
  function a_t(t) {
    this.word("declare"), this.space(), this.TypeAlias(t);
  }
  n(a_t, "DeclareTypeAlias");
  function o_t(t, e) {
    wA(e) || (this.word("declare"), this.space()), this.OpaqueType(t);
  }
  n(o_t, "DeclareOpaqueType");
  function l_t(t, e) {
    wA(e) || (this.word("declare"), this.space()), this.word("var"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation), this.semicolon();
  }
  n(l_t, "DeclareVariable");
  function u_t(t) {
    this.word("declare"), this.space(), this.word("export"), this.space(), t.default && (this.word("default"), this.space()), x_t.call(this,
    t);
  }
  n(u_t, "DeclareExportDeclaration");
  function c_t(t) {
    this.word("declare"), this.space(), $2t.ExportAllDeclaration.call(this, t);
  }
  n(c_t, "DeclareExportAllDeclaration");
  function p_t(t) {
    let {
      id: e,
      body: s
    } = t;
    this.word("enum"), this.space(), this.print(e), this.print(s);
  }
  n(p_t, "EnumDeclaration");
  function IA(t, e, s) {
    s && (t.space(), t.word("of"), t.space(), t.word(e)), t.space();
  }
  n(IA, "enumExplicitType");
  function NA(t, e) {
    let {
      members: s
    } = e;
    t.token("{"), t.indent(), t.newline();
    for (let r of s)
      t.print(r), t.newline();
    e.hasUnknownMembers && (t.token("..."), t.newline()), t.dedent(), t.token("}");
  }
  n(NA, "enumBody");
  function h_t(t) {
    let {
      explicitType: e
    } = t;
    IA(this, "boolean", e), NA(this, t);
  }
  n(h_t, "EnumBooleanBody");
  function f_t(t) {
    let {
      explicitType: e
    } = t;
    IA(this, "number", e), NA(this, t);
  }
  n(f_t, "EnumNumberBody");
  function d_t(t) {
    let {
      explicitType: e
    } = t;
    IA(this, "string", e), NA(this, t);
  }
  n(d_t, "EnumStringBody");
  function m_t(t) {
    IA(this, "symbol", !0), NA(this, t);
  }
  n(m_t, "EnumSymbolBody");
  function y_t(t) {
    let {
      id: e
    } = t;
    this.print(e), this.tokenChar(44);
  }
  n(y_t, "EnumDefaultedMember");
  function kF(t, e) {
    t.print(e.id), t.space(), t.token("="), t.space(), t.print(e.init), t.token(",");
  }
  n(kF, "enumInitializedMember");
  function g_t(t) {
    kF(this, t);
  }
  n(g_t, "EnumBooleanMember");
  function T_t(t) {
    kF(this, t);
  }
  n(T_t, "EnumNumberMember");
  function b_t(t) {
    kF(this, t);
  }
  n(b_t, "EnumStringMember");
  function x_t(t) {
    if (t.declaration) {
      let e = t.declaration;
      this.print(e), J2t(e) || this.semicolon();
    } else
      this.tokenChar(123), t.specifiers.length && (this.space(), this.printList(t.specifiers), this.space()), this.tokenChar(125), t.source &&
      (this.space(), this.word("from"), this.space(), this.print(t.source)), this.semicolon();
  }
  n(x_t, "FlowExportDeclaration");
  function S_t() {
    this.tokenChar(42);
  }
  n(S_t, "ExistsTypeAnnotation");
  function P_t(t, e) {
    this.print(t.typeParameters), this.tokenChar(40), t.this && (this.word("this"), this.tokenChar(58), this.space(), this.print(t.this.typeAnnotation),
    (t.params.length || t.rest) && (this.tokenChar(44), this.space())), this.printList(t.params), t.rest && (t.params.length && (this.tokenChar(
    44), this.space()), this.token("..."), this.print(t.rest)), this.tokenChar(41);
    let s = e?.type;
    s != null && (s === "ObjectTypeCallProperty" || s === "ObjectTypeInternalSlot" || s === "DeclareFunction" || s === "ObjectTypeProperty" &&
    e.method) ? this.tokenChar(58) : (this.space(), this.token("=>")), this.space(), this.print(t.returnType);
  }
  n(P_t, "FunctionTypeAnnotation");
  function E_t(t) {
    this.print(t.name), t.optional && this.tokenChar(63), t.name && (this.tokenChar(58), this.space()), this.print(t.typeAnnotation);
  }
  n(E_t, "FunctionTypeParam");
  function A_t(t) {
    this.print(t.id), this.print(t.typeParameters, !0);
  }
  n(A_t, "InterfaceExtends");
  function v_t(t) {
    var e;
    if (this.print(t.id), this.print(t.typeParameters), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(),
    this.printList(t.extends)), t.type === "DeclareClass") {
      var s, r;
      (s = t.mixins) != null && s.length && (this.space(), this.word("mixins"), this.space(), this.printList(t.mixins)), (r = t.implements) !=
      null && r.length && (this.space(), this.word("implements"), this.space(), this.printList(t.implements));
    }
    this.space(), this.print(t.body);
  }
  n(v_t, "_interfaceish");
  function C_t(t) {
    var e;
    let s = (e = t.variance) == null ? void 0 : e.kind;
    s != null && (s === "plus" ? this.tokenChar(43) : s === "minus" && this.tokenChar(45));
  }
  n(C_t, "_variance");
  function w_t(t) {
    this.word("interface"), this.space(), this._interfaceish(t);
  }
  n(w_t, "InterfaceDeclaration");
  function I_t(t) {
    this.space(), this.token("&", !1, t), this.space();
  }
  n(I_t, "andSeparator");
  function N_t(t) {
    var e;
    this.word("interface"), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(), this.printList(t.extends)),
    this.space(), this.print(t.body);
  }
  n(N_t, "InterfaceTypeAnnotation");
  function k_t(t) {
    this.printJoin(t.types, void 0, void 0, I_t);
  }
  n(k_t, "IntersectionTypeAnnotation");
  function D_t() {
    this.word("mixed");
  }
  n(D_t, "MixedTypeAnnotation");
  function O_t() {
    this.word("empty");
  }
  n(O_t, "EmptyTypeAnnotation");
  function __t(t) {
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(__t, "NullableTypeAnnotation");
  function L_t() {
    this.word("number");
  }
  n(L_t, "NumberTypeAnnotation");
  function B_t() {
    this.word("string");
  }
  n(B_t, "StringTypeAnnotation");
  function M_t() {
    this.word("this");
  }
  n(M_t, "ThisTypeAnnotation");
  function F_t(t) {
    this.tokenChar(91), this.printList(t.types), this.tokenChar(93);
  }
  n(F_t, "TupleTypeAnnotation");
  function j_t(t) {
    this.word("typeof"), this.space(), this.print(t.argument);
  }
  n(j_t, "TypeofTypeAnnotation");
  function R_t(t) {
    this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), this.space(), this.tokenChar(61), this.space(), this.print(
    t.right), this.semicolon();
  }
  n(R_t, "TypeAlias");
  function q_t(t, e) {
    this.tokenChar(58), this.space(), e.type === "ArrowFunctionExpression" ? this.tokenContext |= H2t.TokenContext.arrowFlowReturnType : t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(q_t, "TypeAnnotation");
  function U_t(t) {
    this.tokenChar(60), this.printList(t.params), this.tokenChar(62);
  }
  n(U_t, "TypeParameterInstantiation");
  function K_t(t) {
    this._variance(t), this.word(t.name), t.bound && this.print(t.bound), t.default && (this.space(), this.tokenChar(61), this.space(), this.
    print(t.default));
  }
  n(K_t, "TypeParameter");
  function V_t(t) {
    this.word("opaque"), this.space(), this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), t.supertype && (this.
    tokenChar(58), this.space(), this.print(t.supertype)), t.impltype && (this.space(), this.tokenChar(61), this.space(), this.print(t.impltype)),
    this.semicolon();
  }
  n(V_t, "OpaqueType");
  function W_t(t) {
    t.exact ? this.token("{|") : this.tokenChar(123);
    let e = [...t.properties, ...t.callProperties || [], ...t.indexers || [], ...t.internalSlots || []];
    e.length && (this.newline(), this.space(), this.printJoin(e, !0, !0, void 0, void 0, /* @__PURE__ */ n(function(r) {
      if (r && !e[0]) return 1;
    }, "addNewlines"), () => {
      (e.length !== 1 || t.inexact) && (this.tokenChar(44), this.space());
    }), this.space()), t.inexact && (this.indent(), this.token("..."), e.length && this.newline(), this.dedent()), t.exact ? this.token("|}") :
    this.tokenChar(125);
  }
  n(W_t, "ObjectTypeAnnotation");
  function $_t(t) {
    t.static && (this.word("static"), this.space()), this.tokenChar(91), this.tokenChar(91), this.print(t.id), this.tokenChar(93), this.tokenChar(
    93), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58), this.space()), this.print(t.value);
  }
  n($_t, "ObjectTypeInternalSlot");
  function H_t(t) {
    t.static && (this.word("static"), this.space()), this.print(t.value);
  }
  n(H_t, "ObjectTypeCallProperty");
  function J_t(t) {
    t.static && (this.word("static"), this.space()), this._variance(t), this.tokenChar(91), t.id && (this.print(t.id), this.tokenChar(58), this.
    space()), this.print(t.key), this.tokenChar(93), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(J_t, "ObjectTypeIndexer");
  function Y_t(t) {
    t.proto && (this.word("proto"), this.space()), t.static && (this.word("static"), this.space()), (t.kind === "get" || t.kind === "set") &&
    (this.word(t.kind), this.space()), this._variance(t), this.print(t.key), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58),
    this.space()), this.print(t.value);
  }
  n(Y_t, "ObjectTypeProperty");
  function X_t(t) {
    this.token("..."), this.print(t.argument);
  }
  n(X_t, "ObjectTypeSpreadProperty");
  function z_t(t) {
    this.print(t.qualification), this.tokenChar(46), this.print(t.id);
  }
  n(z_t, "QualifiedTypeIdentifier");
  function G_t() {
    this.word("symbol");
  }
  n(G_t, "SymbolTypeAnnotation");
  function Q_t(t) {
    this.space(), this.token("|", !1, t), this.space();
  }
  n(Q_t, "orSeparator");
  function Z_t(t) {
    this.printJoin(t.types, void 0, void 0, Q_t);
  }
  n(Z_t, "UnionTypeAnnotation");
  function eLt(t) {
    this.tokenChar(40), this.print(t.expression), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(eLt, "TypeCastExpression");
  function tLt(t) {
    t.kind === "plus" ? this.tokenChar(43) : this.tokenChar(45);
  }
  n(tLt, "Variance");
  function sLt() {
    this.word("void");
  }
  n(sLt, "VoidTypeAnnotation");
  function rLt(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(rLt, "IndexedAccessType");
  function iLt(t) {
    this.print(t.objectType), t.optional && this.token("?."), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(iLt, "OptionalIndexedAccessType");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/base.js
var aae = g((Vu) => {
  "use strict";
  Object.defineProperty(Vu, "__esModule", {
    value: !0
  });
  Vu.BlockStatement = oLt;
  Vu.Directive = lLt;
  Vu.DirectiveLiteral = pLt;
  Vu.File = nLt;
  Vu.InterpreterDirective = hLt;
  Vu.Placeholder = fLt;
  Vu.Program = aLt;
  function nLt(t) {
    t.program && this.print(t.program.interpreter), this.print(t.program);
  }
  n(nLt, "File");
  function aLt(t) {
    var e;
    this.noIndentInnerCommentsHere(), this.printInnerComments();
    let s = (e = t.directives) == null ? void 0 : e.length;
    if (s) {
      var r;
      let i = t.body.length ? 2 : 1;
      this.printSequence(t.directives, void 0, i), (r = t.directives[s - 1].trailingComments) != null && r.length || this.newline(i);
    }
    this.printSequence(t.body);
  }
  n(aLt, "Program");
  function oLt(t) {
    var e;
    this.tokenChar(123);
    let s = this.enterDelimited(), r = (e = t.directives) == null ? void 0 : e.length;
    if (r) {
      var i;
      let a = t.body.length ? 2 : 1;
      this.printSequence(t.directives, !0, a), (i = t.directives[r - 1].trailingComments) != null && i.length || this.newline(a);
    }
    this.printSequence(t.body, !0), s(), this.rightBrace(t);
  }
  n(oLt, "BlockStatement");
  function lLt(t) {
    this.print(t.value), this.semicolon();
  }
  n(lLt, "Directive");
  var uLt = /(?:^|[^\\])(?:\\\\)*'/, cLt = /(?:^|[^\\])(?:\\\\)*"/;
  function pLt(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let {
      value: s
    } = t;
    if (!cLt.test(s))
      this.token(`"${s}"`);
    else if (!uLt.test(s))
      this.token(`'${s}'`);
    else
      throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.");
  }
  n(pLt, "DirectiveLiteral");
  function hLt(t) {
    this.token(`#!${t.value}`), this.newline(1, !0);
  }
  n(hLt, "InterpreterDirective");
  function fLt(t) {
    this.token("%%"), this.print(t.name), this.token("%%"), t.expectedNode === "Statement" && this.semicolon();
  }
  n(fLt, "Placeholder");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/jsx.js
var oae = g((zi) => {
  "use strict";
  Object.defineProperty(zi, "__esModule", {
    value: !0
  });
  zi.JSXAttribute = dLt;
  zi.JSXClosingElement = vLt;
  zi.JSXClosingFragment = NLt;
  zi.JSXElement = PLt;
  zi.JSXEmptyExpression = CLt;
  zi.JSXExpressionContainer = bLt;
  zi.JSXFragment = wLt;
  zi.JSXIdentifier = mLt;
  zi.JSXMemberExpression = gLt;
  zi.JSXNamespacedName = yLt;
  zi.JSXOpeningElement = ALt;
  zi.JSXOpeningFragment = ILt;
  zi.JSXSpreadAttribute = TLt;
  zi.JSXSpreadChild = xLt;
  zi.JSXText = SLt;
  function dLt(t) {
    this.print(t.name), t.value && (this.tokenChar(61), this.print(t.value));
  }
  n(dLt, "JSXAttribute");
  function mLt(t) {
    this.word(t.name);
  }
  n(mLt, "JSXIdentifier");
  function yLt(t) {
    this.print(t.namespace), this.tokenChar(58), this.print(t.name);
  }
  n(yLt, "JSXNamespacedName");
  function gLt(t) {
    this.print(t.object), this.tokenChar(46), this.print(t.property);
  }
  n(gLt, "JSXMemberExpression");
  function TLt(t) {
    this.tokenChar(123), this.token("..."), this.print(t.argument), this.rightBrace(t);
  }
  n(TLt, "JSXSpreadAttribute");
  function bLt(t) {
    this.tokenChar(123), this.print(t.expression), this.rightBrace(t);
  }
  n(bLt, "JSXExpressionContainer");
  function xLt(t) {
    this.tokenChar(123), this.token("..."), this.print(t.expression), this.rightBrace(t);
  }
  n(xLt, "JSXSpreadChild");
  function SLt(t) {
    let e = this.getPossibleRaw(t);
    e !== void 0 ? this.token(e, !0) : this.token(t.value, !0);
  }
  n(SLt, "JSXText");
  function PLt(t) {
    let e = t.openingElement;
    if (this.print(e), !e.selfClosing) {
      this.indent();
      for (let s of t.children)
        this.print(s);
      this.dedent(), this.print(t.closingElement);
    }
  }
  n(PLt, "JSXElement");
  function ELt() {
    this.space();
  }
  n(ELt, "spaceSeparator");
  function ALt(t) {
    this.tokenChar(60), this.print(t.name), t.typeArguments && this.print(t.typeArguments), this.print(t.typeParameters), t.attributes.length >
    0 && (this.space(), this.printJoin(t.attributes, void 0, void 0, ELt)), t.selfClosing && (this.space(), this.tokenChar(47)), this.tokenChar(
    62);
  }
  n(ALt, "JSXOpeningElement");
  function vLt(t) {
    this.tokenChar(60), this.tokenChar(47), this.print(t.name), this.tokenChar(62);
  }
  n(vLt, "JSXClosingElement");
  function CLt() {
    this.printInnerComments();
  }
  n(CLt, "JSXEmptyExpression");
  function wLt(t) {
    this.print(t.openingFragment), this.indent();
    for (let e of t.children)
      this.print(e);
    this.dedent(), this.print(t.closingFragment);
  }
  n(wLt, "JSXFragment");
  function ILt() {
    this.tokenChar(60), this.tokenChar(62);
  }
  n(ILt, "JSXOpeningFragment");
  function NLt() {
    this.token("</"), this.tokenChar(62);
  }
  n(NLt, "JSXClosingFragment");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/typescript.js
var hae = g((Ge) => {
  "use strict";
  Object.defineProperty(Ge, "__esModule", {
    value: !0
  });
  Ge.TSAnyKeyword = VLt;
  Ge.TSArrayType = cBt;
  Ge.TSSatisfiesExpression = Ge.TSAsExpression = NBt;
  Ge.TSBigIntKeyword = WLt;
  Ge.TSBooleanKeyword = YLt;
  Ge.TSCallSignatureDeclaration = FLt;
  Ge.TSInterfaceHeritage = Ge.TSClassImplements = vBt;
  Ge.TSConditionalType = gBt;
  Ge.TSConstructSignatureDeclaration = jLt;
  Ge.TSConstructorType = iBt;
  Ge.TSDeclareFunction = LLt;
  Ge.TSDeclareMethod = BLt;
  Ge.TSEnumBody = pae;
  Ge.TSEnumDeclaration = OBt;
  Ge.TSEnumMember = _Bt;
  Ge.TSExportAssignment = qBt;
  Ge.TSExternalModuleReference = jBt;
  Ge.TSFunctionType = rBt;
  Ge.TSImportEqualsDeclaration = FBt;
  Ge.TSImportType = MBt;
  Ge.TSIndexSignature = KLt;
  Ge.TSIndexedAccessType = SBt;
  Ge.TSInferType = TBt;
  Ge.TSInstantiationExpression = DBt;
  Ge.TSInterfaceBody = wBt;
  Ge.TSInterfaceDeclaration = CBt;
  Ge.TSIntersectionType = yBt;
  Ge.TSIntrinsicKeyword = tBt;
  Ge.TSLiteralType = ABt;
  Ge.TSMappedType = PBt;
  Ge.TSMethodSignature = ULt;
  Ge.TSModuleBlock = BBt;
  Ge.TSModuleDeclaration = LBt;
  Ge.TSNamedTupleMember = dBt;
  Ge.TSNamespaceExportDeclaration = UBt;
  Ge.TSNeverKeyword = eBt;
  Ge.TSNonNullExpression = RBt;
  Ge.TSNullKeyword = ZLt;
  Ge.TSNumberKeyword = HLt;
  Ge.TSObjectKeyword = JLt;
  Ge.TSOptionalType = hBt;
  Ge.TSParameterProperty = _Lt;
  Ge.TSParenthesizedType = bBt;
  Ge.TSPropertySignature = RLt;
  Ge.TSQualifiedName = MLt;
  Ge.TSRestType = fBt;
  Ge.TSStringKeyword = XLt;
  Ge.TSSymbolKeyword = zLt;
  Ge.TSTemplateLiteralType = EBt;
  Ge.TSThisType = sBt;
  Ge.TSTupleType = pBt;
  Ge.TSTypeAliasDeclaration = IBt;
  Ge.TSTypeAnnotation = kLt;
  Ge.TSTypeAssertion = kBt;
  Ge.TSTypeLiteral = uBt;
  Ge.TSTypeOperator = xBt;
  Ge.TSTypeParameter = OLt;
  Ge.TSTypeParameterDeclaration = Ge.TSTypeParameterInstantiation = DLt;
  Ge.TSTypePredicate = oBt;
  Ge.TSTypeQuery = lBt;
  Ge.TSTypeReference = aBt;
  Ge.TSUndefinedKeyword = QLt;
  Ge.TSUnionType = mBt;
  Ge.TSUnknownKeyword = $Lt;
  Ge.TSVoidKeyword = GLt;
  Ge.tsPrintClassMemberModifiers = VBt;
  Ge.tsPrintFunctionOrConstructorType = nBt;
  Ge.tsPrintPropertyOrMethodName = qLt;
  Ge.tsPrintSignatureDeclarationBase = KBt;
  function kLt(t, e) {
    this.token((e.type === "TSFunctionType" || e.type === "TSConstructorType") && e.typeAnnotation === t ? "=>" : ":"), this.space(), t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(kLt, "TSTypeAnnotation");
  function DLt(t, e) {
    this.tokenChar(60);
    let s = e.type === "ArrowFunctionExpression" && t.params.length === 1;
    this.tokenMap && t.start != null && t.end != null && (s && (s = !!this.tokenMap.find(t, (r) => this.tokenMap.matchesOriginal(r, ","))), s ||
    (s = this.shouldPrintTrailingComma(">"))), this.printList(t.params, s), this.tokenChar(62);
  }
  n(DLt, "TSTypeParameterInstantiation");
  function OLt(t) {
    t.in && (this.word("in"), this.space()), t.out && (this.word("out"), this.space()), this.word(t.name), t.constraint && (this.space(), this.
    word("extends"), this.space(), this.print(t.constraint)), t.default && (this.space(), this.tokenChar(61), this.space(), this.print(t.default));
  }
  n(OLt, "TSTypeParameter");
  function _Lt(t) {
    t.accessibility && (this.word(t.accessibility), this.space()), t.readonly && (this.word("readonly"), this.space()), this._param(t.parameter);
  }
  n(_Lt, "TSParameterProperty");
  function LLt(t, e) {
    t.declare && (this.word("declare"), this.space()), this._functionHead(t, e), this.semicolon();
  }
  n(LLt, "TSDeclareFunction");
  function BLt(t) {
    this._classMethodHead(t), this.semicolon();
  }
  n(BLt, "TSDeclareMethod");
  function MLt(t) {
    this.print(t.left), this.tokenChar(46), this.print(t.right);
  }
  n(MLt, "TSQualifiedName");
  function FLt(t) {
    this.tsPrintSignatureDeclarationBase(t), Y0(this, t);
  }
  n(FLt, "TSCallSignatureDeclaration");
  function Y0(t, e) {
    if (!t.tokenMap || !e.start || !e.end) {
      t.semicolon();
      return;
    }
    t.tokenMap.endMatches(e, ",") ? t.token(",") : t.tokenMap.endMatches(e, ";") && t.semicolon();
  }
  n(Y0, "maybePrintTrailingCommaOrSemicolon");
  function jLt(t) {
    this.word("new"), this.space(), this.tsPrintSignatureDeclarationBase(t), Y0(this, t);
  }
  n(jLt, "TSConstructSignatureDeclaration");
  function RLt(t) {
    let {
      readonly: e
    } = t;
    e && (this.word("readonly"), this.space()), this.tsPrintPropertyOrMethodName(t), this.print(t.typeAnnotation), Y0(this, t);
  }
  n(RLt, "TSPropertySignature");
  function qLt(t) {
    t.computed && this.tokenChar(91), this.print(t.key), t.computed && this.tokenChar(93), t.optional && this.tokenChar(63);
  }
  n(qLt, "tsPrintPropertyOrMethodName");
  function ULt(t) {
    let {
      kind: e
    } = t;
    (e === "set" || e === "get") && (this.word(e), this.space()), this.tsPrintPropertyOrMethodName(t), this.tsPrintSignatureDeclarationBase(
    t), Y0(this, t);
  }
  n(ULt, "TSMethodSignature");
  function KLt(t) {
    let {
      readonly: e,
      static: s
    } = t;
    s && (this.word("static"), this.space()), e && (this.word("readonly"), this.space()), this.tokenChar(91), this._parameters(t.parameters,
    "]"), this.print(t.typeAnnotation), Y0(this, t);
  }
  n(KLt, "TSIndexSignature");
  function VLt() {
    this.word("any");
  }
  n(VLt, "TSAnyKeyword");
  function WLt() {
    this.word("bigint");
  }
  n(WLt, "TSBigIntKeyword");
  function $Lt() {
    this.word("unknown");
  }
  n($Lt, "TSUnknownKeyword");
  function HLt() {
    this.word("number");
  }
  n(HLt, "TSNumberKeyword");
  function JLt() {
    this.word("object");
  }
  n(JLt, "TSObjectKeyword");
  function YLt() {
    this.word("boolean");
  }
  n(YLt, "TSBooleanKeyword");
  function XLt() {
    this.word("string");
  }
  n(XLt, "TSStringKeyword");
  function zLt() {
    this.word("symbol");
  }
  n(zLt, "TSSymbolKeyword");
  function GLt() {
    this.word("void");
  }
  n(GLt, "TSVoidKeyword");
  function QLt() {
    this.word("undefined");
  }
  n(QLt, "TSUndefinedKeyword");
  function ZLt() {
    this.word("null");
  }
  n(ZLt, "TSNullKeyword");
  function eBt() {
    this.word("never");
  }
  n(eBt, "TSNeverKeyword");
  function tBt() {
    this.word("intrinsic");
  }
  n(tBt, "TSIntrinsicKeyword");
  function sBt() {
    this.word("this");
  }
  n(sBt, "TSThisType");
  function rBt(t) {
    this.tsPrintFunctionOrConstructorType(t);
  }
  n(rBt, "TSFunctionType");
  function iBt(t) {
    t.abstract && (this.word("abstract"), this.space()), this.word("new"), this.space(), this.tsPrintFunctionOrConstructorType(t);
  }
  n(iBt, "TSConstructorType");
  function nBt(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")"), this.space();
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(nBt, "tsPrintFunctionOrConstructorType");
  function aBt(t) {
    let e = t.typeParameters;
    this.print(t.typeName, !!e), this.print(e);
  }
  n(aBt, "TSTypeReference");
  function oBt(t) {
    t.asserts && (this.word("asserts"), this.space()), this.print(t.parameterName), t.typeAnnotation && (this.space(), this.word("is"), this.
    space(), this.print(t.typeAnnotation.typeAnnotation));
  }
  n(oBt, "TSTypePredicate");
  function lBt(t) {
    this.word("typeof"), this.space(), this.print(t.exprName);
    let e = t.typeParameters;
    e && this.print(e);
  }
  n(lBt, "TSTypeQuery");
  function uBt(t) {
    kA(this, t, () => this.printJoin(t.members, !0, !0));
  }
  n(uBt, "TSTypeLiteral");
  function cBt(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(cBt, "TSArrayType");
  function pBt(t) {
    this.tokenChar(91), this.printList(t.elementTypes, this.shouldPrintTrailingComma("]")), this.tokenChar(93);
  }
  n(pBt, "TSTupleType");
  function hBt(t) {
    this.print(t.typeAnnotation), this.tokenChar(63);
  }
  n(hBt, "TSOptionalType");
  function fBt(t) {
    this.token("..."), this.print(t.typeAnnotation);
  }
  n(fBt, "TSRestType");
  function dBt(t) {
    this.print(t.label), t.optional && this.tokenChar(63), this.tokenChar(58), this.space(), this.print(t.elementType);
  }
  n(dBt, "TSNamedTupleMember");
  function mBt(t) {
    cae(this, t, "|");
  }
  n(mBt, "TSUnionType");
  function yBt(t) {
    cae(this, t, "&");
  }
  n(yBt, "TSIntersectionType");
  function cae(t, e, s) {
    var r;
    let i = 0;
    (r = t.tokenMap) != null && r.startMatches(e, s) && (i = 1, t.token(s)), t.printJoin(e.types, void 0, void 0, function(a) {
      this.space(), this.token(s, null, a + i), this.space();
    });
  }
  n(cae, "tsPrintUnionOrIntersectionType");
  function gBt(t) {
    this.print(t.checkType), this.space(), this.word("extends"), this.space(), this.print(t.extendsType), this.space(), this.tokenChar(63), this.
    space(), this.print(t.trueType), this.space(), this.tokenChar(58), this.space(), this.print(t.falseType);
  }
  n(gBt, "TSConditionalType");
  function TBt(t) {
    this.word("infer"), this.print(t.typeParameter);
  }
  n(TBt, "TSInferType");
  function bBt(t) {
    this.tokenChar(40), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(bBt, "TSParenthesizedType");
  function xBt(t) {
    this.word(t.operator), this.space(), this.print(t.typeAnnotation);
  }
  n(xBt, "TSTypeOperator");
  function SBt(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(SBt, "TSIndexedAccessType");
  function PBt(t) {
    let {
      nameType: e,
      optional: s,
      readonly: r,
      typeAnnotation: i
    } = t;
    this.tokenChar(123);
    let a = this.enterDelimited();
    this.space(), r && (lae(this, r), this.word("readonly"), this.space()), this.tokenChar(91), this.word(t.typeParameter.name), this.space(),
    this.word("in"), this.space(), this.print(t.typeParameter.constraint), e && (this.space(), this.word("as"), this.space(), this.print(e)),
    this.tokenChar(93), s && (lae(this, s), this.tokenChar(63)), i && (this.tokenChar(58), this.space(), this.print(i)), this.space(), a(), this.
    tokenChar(125);
  }
  n(PBt, "TSMappedType");
  function lae(t, e) {
    e !== !0 && t.token(e);
  }
  n(lae, "tokenIfPlusMinus");
  function EBt(t) {
    this._printTemplate(t, t.types);
  }
  n(EBt, "TSTemplateLiteralType");
  function ABt(t) {
    this.print(t.literal);
  }
  n(ABt, "TSLiteralType");
  function vBt(t) {
    this.print(t.expression), this.print(t.typeArguments);
  }
  n(vBt, "TSClassImplements");
  function CBt(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      extends: i,
      body: a
    } = t;
    e && (this.word("declare"), this.space()), this.word("interface"), this.space(), this.print(s), this.print(r), i != null && i.length && (this.
    space(), this.word("extends"), this.space(), this.printList(i)), this.space(), this.print(a);
  }
  n(CBt, "TSInterfaceDeclaration");
  function wBt(t) {
    kA(this, t, () => this.printJoin(t.body, !0, !0));
  }
  n(wBt, "TSInterfaceBody");
  function IBt(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      typeAnnotation: i
    } = t;
    e && (this.word("declare"), this.space()), this.word("type"), this.space(), this.print(s), this.print(r), this.space(), this.tokenChar(61),
    this.space(), this.print(i), this.semicolon();
  }
  n(IBt, "TSTypeAliasDeclaration");
  function NBt(t) {
    let {
      type: e,
      expression: s,
      typeAnnotation: r
    } = t;
    this.print(s, !0), this.space(), this.word(e === "TSAsExpression" ? "as" : "satisfies"), this.space(), this.print(r);
  }
  n(NBt, "TSTypeExpression");
  function kBt(t) {
    let {
      typeAnnotation: e,
      expression: s
    } = t;
    this.tokenChar(60), this.print(e), this.tokenChar(62), this.space(), this.print(s);
  }
  n(kBt, "TSTypeAssertion");
  function DBt(t) {
    this.print(t.expression), this.print(t.typeParameters);
  }
  n(DBt, "TSInstantiationExpression");
  function OBt(t) {
    let {
      declare: e,
      const: s,
      id: r
    } = t;
    e && (this.word("declare"), this.space()), s && (this.word("const"), this.space()), this.word("enum"), this.space(), this.print(r), this.
    space(), pae.call(this, t);
  }
  n(OBt, "TSEnumDeclaration");
  function pae(t) {
    kA(this, t, () => {
      var e;
      return this.printList(t.members, (e = this.shouldPrintTrailingComma("}")) != null ? e : !0, !0, !0);
    });
  }
  n(pae, "TSEnumBody");
  function _Bt(t) {
    let {
      id: e,
      initializer: s
    } = t;
    this.print(e), s && (this.space(), this.tokenChar(61), this.space(), this.print(s));
  }
  n(_Bt, "TSEnumMember");
  function LBt(t) {
    let {
      declare: e,
      id: s,
      kind: r
    } = t;
    e && (this.word("declare"), this.space());
    {
      if (t.global || (this.word(r ?? (s.type === "Identifier" ? "namespace" : "module")), this.space()), this.print(s), !t.body) {
        this.semicolon();
        return;
      }
      let i = t.body;
      for (; i.type === "TSModuleDeclaration"; )
        this.tokenChar(46), this.print(i.id), i = i.body;
      this.space(), this.print(i);
    }
  }
  n(LBt, "TSModuleDeclaration");
  function BBt(t) {
    kA(this, t, () => this.printSequence(t.body, !0));
  }
  n(BBt, "TSModuleBlock");
  function MBt(t) {
    let {
      argument: e,
      qualifier: s,
      options: r
    } = t;
    this.word("import"), this.tokenChar(40), this.print(e), r && (this.tokenChar(44), this.print(r)), this.tokenChar(41), s && (this.tokenChar(
    46), this.print(s));
    let i = t.typeParameters;
    i && this.print(i);
  }
  n(MBt, "TSImportType");
  function FBt(t) {
    let {
      id: e,
      moduleReference: s
    } = t;
    t.isExport && (this.word("export"), this.space()), this.word("import"), this.space(), this.print(e), this.space(), this.tokenChar(61), this.
    space(), this.print(s), this.semicolon();
  }
  n(FBt, "TSImportEqualsDeclaration");
  function jBt(t) {
    this.token("require("), this.print(t.expression), this.tokenChar(41);
  }
  n(jBt, "TSExternalModuleReference");
  function RBt(t) {
    this.print(t.expression), this.tokenChar(33);
  }
  n(RBt, "TSNonNullExpression");
  function qBt(t) {
    this.word("export"), this.space(), this.tokenChar(61), this.space(), this.print(t.expression), this.semicolon();
  }
  n(qBt, "TSExportAssignment");
  function UBt(t) {
    this.word("export"), this.space(), this.word("as"), this.space(), this.word("namespace"), this.space(), this.print(t.id), this.semicolon();
  }
  n(UBt, "TSNamespaceExportDeclaration");
  function KBt(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")");
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(KBt, "tsPrintSignatureDeclarationBase");
  function VBt(t) {
    let e = t.type === "ClassPrivateProperty", s = t.type === "ClassAccessorProperty" || t.type === "ClassProperty";
    uae(this, t, [s && t.declare && "declare", !e && t.accessibility]), t.static && (this.word("static"), this.space()), uae(this, t, [!e &&
    t.override && "override", !e && t.abstract && "abstract", (s || e) && t.readonly && "readonly"]);
  }
  n(VBt, "tsPrintClassMemberModifiers");
  function kA(t, e, s) {
    t.token("{");
    let r = t.enterDelimited();
    s(), r(), t.rightBrace(e);
  }
  n(kA, "printBraced");
  function uae(t, e, s) {
    var r;
    let i = /* @__PURE__ */ new Set();
    for (let a of s)
      a && i.add(a);
    (r = t.tokenMap) == null || r.find(e, (a) => {
      if (i.has(a.value))
        return t.token(a.value), t.space(), i.delete(a.value), i.size === 0;
    });
    for (let a of i)
      t.word(a), t.space();
  }
  n(uae, "printModifiersList");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/index.js
var fae = g((Bs) => {
  "use strict";
  Object.defineProperty(Bs, "__esModule", {
    value: !0
  });
  var DF = Vne();
  Object.keys(DF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === DF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return DF[t];
      }, "get")
    });
  });
  var OF = $ne();
  Object.keys(OF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === OF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return OF[t];
      }, "get")
    });
  });
  var _F = Xne();
  Object.keys(_F).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === _F[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return _F[t];
      }, "get")
    });
  });
  var LF = zne();
  Object.keys(LF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === LF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return LF[t];
      }, "get")
    });
  });
  var BF = Gne();
  Object.keys(BF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === BF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return BF[t];
      }, "get")
    });
  });
  var MF = wF();
  Object.keys(MF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === MF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return MF[t];
      }, "get")
    });
  });
  var FF = NF();
  Object.keys(FF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === FF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return FF[t];
      }, "get")
    });
  });
  var jF = nae();
  Object.keys(jF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === jF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return jF[t];
      }, "get")
    });
  });
  var RF = aae();
  Object.keys(RF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === RF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return RF[t];
      }, "get")
    });
  });
  var qF = oae();
  Object.keys(qF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === qF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return qF[t];
      }, "get")
    });
  });
  var UF = hae();
  Object.keys(UF).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Bs && Bs[t] === UF[t] || Object.defineProperty(Bs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return UF[t];
      }, "get")
    });
  });
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/generators/deprecated.js
var dae = g((KF) => {
  "use strict";
  Object.defineProperty(KF, "__esModule", {
    value: !0
  });
  KF.addDeprecatedGenerators = WBt;
  function WBt(t) {
    {
      let e = {
        Noop() {
        },
        TSExpressionWithTypeArguments(s) {
          this.print(s.expression), this.print(s.typeParameters);
        },
        DecimalLiteral(s) {
          let r = this.getPossibleRaw(s);
          if (!this.format.minified && r !== void 0) {
            this.word(r);
            return;
          }
          this.word(s.value + "m");
        }
      };
      Object.assign(t.prototype, e);
    }
  }
  n(WBt, "addDeprecatedGenerators");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/printer.js
var Tae = g((DA) => {
  "use strict";
  Object.defineProperty(DA, "__esModule", {
    value: !0
  });
  DA.default = void 0;
  var $Bt = vne(), yae = xp(), HBt = fe(), JBt = Kne(), YBt = fae(), XBt = dae(), {
    isExpression: zBt,
    isFunction: GBt,
    isStatement: QBt,
    isClassBody: ZBt,
    isTSInterfaceBody: eMt,
    isTSEnumMember: tMt
  } = HBt, sMt = /e/i, rMt = /\.0+$/, gae = /[\n\r\u2028\u2029]/, iMt = /[\n\r\u2028\u2029]|\*\//;
  function mae(t) {
    return t.type === "CommentLine" || gae.test(t.value);
  }
  n(mae, "commentIsNewline");
  var {
    needsParens: nMt
  } = yae, X0 = class {
    static {
      n(this, "Printer");
    }
    constructor(e, s, r, i) {
      this.inForStatementInit = !1, this.tokenContext = 0, this._tokens = null, this._originalCode = null, this._currentNode = null, this._indent =
      0, this._indentRepeat = 0, this._insideAux = !1, this._noLineTerminator = !1, this._noLineTerminatorAfterNode = null, this._printAuxAfterOnNextUserNode =
      !1, this._printedComments = /* @__PURE__ */ new Set(), this._endsWithInteger = !1, this._endsWithWord = !1, this._endsWithDiv = !1, this.
      _lastCommentLine = 0, this._endsWithInnerRaw = !1, this._indentInnerComments = !0, this.tokenMap = null, this._boundGetRawIdentifier =
      this._getRawIdentifier.bind(this), this._printSemicolonBeforeNextNode = -1, this._printSemicolonBeforeNextToken = -1, this.format = e,
      this._tokens = r, this._originalCode = i, this._indentRepeat = e.indent.style.length, this._inputMap = s?._inputMap, this._buf = new $Bt.
      default(s, e.indent.style[0]);
    }
    enterForStatementInit() {
      return this.inForStatementInit ? () => {
      } : (this.inForStatementInit = !0, () => {
        this.inForStatementInit = !1;
      });
    }
    enterDelimited() {
      let e = this.inForStatementInit, s = this._noLineTerminatorAfterNode;
      return e === !1 && s === null ? () => {
      } : (this.inForStatementInit = !1, this._noLineTerminatorAfterNode = null, () => {
        this.inForStatementInit = e, this._noLineTerminatorAfterNode = s;
      });
    }
    generate(e) {
      return this.format.preserveFormat && (this.tokenMap = new JBt.TokenMap(e, this._tokens, this._originalCode)), this.print(e), this._maybeAddAuxComment(),
      this._buf.get();
    }
    indent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent++;
    }
    dedent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent--;
    }
    semicolon(e = !1) {
      if (this._maybeAddAuxComment(), e) {
        this._appendChar(59), this._noLineTerminator = !1;
        return;
      }
      if (this.tokenMap) {
        let s = this._currentNode;
        if (s.start != null && s.end != null) {
          if (!this.tokenMap.endMatches(s, ";")) {
            this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();
            return;
          }
          let r = this.tokenMap.getIndexes(this._currentNode);
          this._catchUpTo(this._tokens[r[r.length - 1]].loc.start);
        }
      }
      this._queue(59), this._noLineTerminator = !1;
    }
    rightBrace(e) {
      this.format.minified && this._buf.removeLastSemicolon(), this.sourceWithOffset("end", e.loc, -1), this.tokenChar(125);
    }
    rightParens(e) {
      this.sourceWithOffset("end", e.loc, -1), this.tokenChar(41);
    }
    space(e = !1) {
      let {
        format: s
      } = this;
      if (!(s.compact || s.preserveFormat)) {
        if (e)
          this._space();
        else if (this._buf.hasContent()) {
          let r = this.getLastChar();
          r !== 32 && r !== 10 && this._space();
        }
      }
    }
    word(e, s = !1) {
      this.tokenContext = 0, this._maybePrintInnerComments(e), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e), (this.
      _endsWithWord || this._endsWithDiv && e.charCodeAt(0) === 47) && this._space(), this._append(e, !1), this._endsWithWord = !0, this._noLineTerminator =
      s;
    }
    number(e, s) {
      function r(i) {
        if (i.length > 2 && i.charCodeAt(0) === 48) {
          let a = i.charCodeAt(1);
          return a === 98 || a === 111 || a === 120;
        }
        return !1;
      }
      n(r, "isNonDecimalLiteral"), this.word(e), this._endsWithInteger = Number.isInteger(s) && !r(e) && !sMt.test(e) && !rMt.test(e) && e.charCodeAt(
      e.length - 1) !== 46;
    }
    token(e, s = !1, r = 0) {
      this.tokenContext = 0, this._maybePrintInnerComments(e, r), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e,
      r);
      let i = this.getLastChar(), a = e.charCodeAt(0);
      (i === 33 && (e === "--" || a === 61) || a === 43 && i === 43 || a === 45 && i === 45 || a === 46 && this._endsWithInteger) && this._space(),
      this._append(e, s), this._noLineTerminator = !1;
    }
    tokenChar(e) {
      this.tokenContext = 0;
      let s = String.fromCharCode(e);
      this._maybePrintInnerComments(s), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(s);
      let r = this.getLastChar();
      (e === 43 && r === 43 || e === 45 && r === 45 || e === 46 && this._endsWithInteger) && this._space(), this._appendChar(e), this._noLineTerminator =
      !1;
    }
    newline(e = 1, s) {
      if (!(e <= 0)) {
        if (!s) {
          if (this.format.retainLines || this.format.compact) return;
          if (this.format.concise) {
            this.space();
            return;
          }
        }
        e > 2 && (e = 2), e -= this._buf.getNewlineCount();
        for (let r = 0; r < e; r++)
          this._newline();
      }
    }
    endsWith(e) {
      return this.getLastChar() === e;
    }
    getLastChar() {
      return this._buf.getLastChar();
    }
    endsWithCharAndNewline() {
      return this._buf.endsWithCharAndNewline();
    }
    removeTrailingNewline() {
      this._buf.removeTrailingNewline();
    }
    exactSource(e, s) {
      if (!e) {
        s();
        return;
      }
      this._catchUp("start", e), this._buf.exactSource(e, s);
    }
    source(e, s) {
      s && (this._catchUp(e, s), this._buf.source(e, s));
    }
    sourceWithOffset(e, s, r) {
      !s || this.format.preserveFormat || (this._catchUp(e, s), this._buf.sourceWithOffset(e, s, r));
    }
    sourceIdentifierName(e, s) {
      if (!this._buf._canMarkIdName) return;
      let r = this._buf._sourcePosition;
      r.identifierNamePos = s, r.identifierName = e;
    }
    _space() {
      this._queue(32);
    }
    _newline() {
      this._queue(10);
    }
    _catchUpToCurrentToken(e, s = 0) {
      let r = this.tokenMap.findMatching(this._currentNode, e, s);
      r && this._catchUpTo(r.loc.start), this._printSemicolonBeforeNextToken !== -1 && this._printSemicolonBeforeNextToken === this._buf.getCurrentLine() &&
      (this._buf.appendChar(59), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1), this._printSemicolonBeforeNextToken =
      -1, this._printSemicolonBeforeNextNode = -1;
    }
    _append(e, s) {
      this._maybeIndent(e.charCodeAt(0)), this._buf.append(e, s), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _appendChar(e) {
      this._maybeIndent(e), this._buf.appendChar(e), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _queue(e) {
      this._maybeIndent(e), this._buf.queue(e), this._endsWithWord = !1, this._endsWithInteger = !1;
    }
    _maybeIndent(e) {
      this._indent && e !== 10 && this.endsWith(10) && this._buf.queueIndentation(this._getIndent());
    }
    _shouldIndent(e) {
      if (this._indent && e !== 10 && this.endsWith(10))
        return !0;
    }
    catchUp(e) {
      if (!this.format.retainLines) return;
      let s = e - this._buf.getCurrentLine();
      for (let r = 0; r < s; r++)
        this._newline();
    }
    _catchUp(e, s) {
      let {
        format: r
      } = this;
      if (!r.preserveFormat) {
        r.retainLines && s != null && s[e] && this.catchUp(s[e].line);
        return;
      }
      let i = s?.[e];
      i != null && this._catchUpTo(i);
    }
    _catchUpTo({
      line: e,
      column: s,
      index: r
    }) {
      let i = e - this._buf.getCurrentLine();
      if (i > 0 && this._noLineTerminator)
        return;
      for (let o = 0; o < i; o++)
        this._newline();
      let a = i > 0 ? s : s - this._buf.getCurrentColumn();
      if (a > 0) {
        let o = this._originalCode ? this._originalCode.slice(r - a, r).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu,
        " ") : " ".repeat(a);
        this._append(o, !1);
      }
    }
    _getIndent() {
      return this._indentRepeat * this._indent;
    }
    printTerminatorless(e) {
      this._noLineTerminator = !0, this.print(e);
    }
    print(e, s, r) {
      var i, a, o;
      if (!e) return;
      this._endsWithInnerRaw = !1;
      let l = e.type, u = this.format, c = u.concise;
      e._compact && (u.concise = !0);
      let p = this[l];
      if (p === void 0)
        throw new ReferenceError(`unknown node of type ${JSON.stringify(l)} with constructor ${JSON.stringify(e.constructor.name)}`);
      let h = this._currentNode;
      this._currentNode = e, this.tokenMap && (this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode);
      let f = this._insideAux;
      this._insideAux = e.loc == null, this._maybeAddAuxComment(this._insideAux && !f);
      let d = (i = e.extra) == null ? void 0 : i.parenthesized, m = d && u.preserveFormat || d && u.retainFunctionParens && l === "FunctionE\
xpression" || nMt(e, h, this.tokenContext, this.inForStatementInit, u.preserveFormat ? this._boundGetRawIdentifier : void 0);
      if (!m && d && (a = e.leadingComments) != null && a.length && e.leadingComments[0].type === "CommentBlock")
        switch (h?.type) {
          case "ExpressionStatement":
          case "VariableDeclarator":
          case "AssignmentExpression":
          case "ReturnStatement":
            break;
          case "CallExpression":
          case "OptionalCallExpression":
          case "NewExpression":
            if (h.callee !== e) break;
          default:
            m = !0;
        }
      let y = !1;
      !m && this._noLineTerminator && ((o = e.leadingComments) != null && o.some(mae) || this.format.retainLines && e.loc && e.loc.start.line >
      this._buf.getCurrentLine()) && (m = !0, y = !0);
      let T, b;
      if (!m && (s || (s = h && this._noLineTerminatorAfterNode === h && yae.isLastChild(h, e)), s)) {
        var E;
        (E = e.trailingComments) != null && E.some(mae) ? zBt(e) && (m = !0) : (T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode =
        e);
      }
      m && (this.tokenChar(40), y && this.indent(), this._endsWithInnerRaw = !1, this.inForStatementInit && (b = !0, this.inForStatementInit =
      !1), T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode = null), this._lastCommentLine = 0, this._printLeadingComments(
      e, h);
      let V = l === "Program" || l === "File" ? null : e.loc;
      this.exactSource(V, p.bind(this, e, h)), m ? (this._printTrailingComments(e, h), y && (this.dedent(), this.newline()), this.tokenChar(
      41), this._noLineTerminator = s, b && (this.inForStatementInit = !0)) : s && !this._noLineTerminator ? (this._noLineTerminator = !0, this.
      _printTrailingComments(e, h)) : this._printTrailingComments(e, h, r), this._currentNode = h, u.concise = c, this._insideAux = f, T !==
      void 0 && (this._noLineTerminatorAfterNode = T), this._endsWithInnerRaw = !1;
    }
    _maybeAddAuxComment(e) {
      e && this._printAuxBeforeComment(), this._insideAux || this._printAuxAfterComment();
    }
    _printAuxBeforeComment() {
      if (this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !0;
      let e = this.format.auxiliaryCommentBefore;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    _printAuxAfterComment() {
      if (!this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !1;
      let e = this.format.auxiliaryCommentAfter;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    getPossibleRaw(e) {
      let s = e.extra;
      if (s?.raw != null && s.rawValue != null && e.value === s.rawValue)
        return s.raw;
    }
    printJoin(e, s, r, i, a, o, l, u) {
      if (!(e != null && e.length)) return;
      if (r == null && this.format.retainLines) {
        var c;
        let y = (c = e[0].loc) == null ? void 0 : c.start.line;
        y != null && y !== this._buf.getCurrentLine() && (r = !0);
      }
      r && this.indent();
      let p = {
        addNewlines: o,
        nextNodeStartLine: 0
      }, h = i?.bind(this), f = e.length;
      for (let y = 0; y < f; y++) {
        let T = e[y];
        if (T && (s && this._printNewline(y === 0, p), this.print(T, void 0, u || 0), l?.(T, y), h != null && (y < f - 1 ? h(y, !1) : a && h(
        y, !0)), s)) {
          var d;
          if ((d = T.trailingComments) != null && d.length || (this._lastCommentLine = 0), y + 1 === f)
            this.newline(1);
          else {
            var m;
            let b = e[y + 1];
            p.nextNodeStartLine = ((m = b.loc) == null ? void 0 : m.start.line) || 0, this._printNewline(!0, p);
          }
        }
      }
      r && this.dedent();
    }
    printAndIndentOnComments(e) {
      let s = e.leadingComments && e.leadingComments.length > 0;
      s && this.indent(), this.print(e), s && this.dedent();
    }
    printBlock(e) {
      let s = e.body;
      s.type !== "EmptyStatement" && this.space(), this.print(s);
    }
    _printTrailingComments(e, s, r) {
      let {
        innerComments: i,
        trailingComments: a
      } = e;
      i != null && i.length && this._printComments(2, i, e, s, r), a != null && a.length && this._printComments(2, a, e, s, r);
    }
    _printLeadingComments(e, s) {
      let r = e.leadingComments;
      r != null && r.length && this._printComments(0, r, e, s);
    }
    _maybePrintInnerComments(e, s) {
      if (this._endsWithInnerRaw) {
        var r;
        this.printInnerComments((r = this.tokenMap) == null ? void 0 : r.findMatching(this._currentNode, e, s));
      }
      this._endsWithInnerRaw = !0, this._indentInnerComments = !0;
    }
    printInnerComments(e) {
      let s = this._currentNode, r = s.innerComments;
      if (!(r != null && r.length)) return;
      let i = this.endsWith(32), a = this._indentInnerComments, o = this._printedComments.size;
      a && this.indent(), this._printComments(1, r, s, void 0, void 0, e), i && o !== this._printedComments.size && this.space(), a && this.
      dedent();
    }
    noIndentInnerCommentsHere() {
      this._indentInnerComments = !1;
    }
    printSequence(e, s, r, i) {
      this.printJoin(e, !0, s ?? !1, void 0, void 0, i, void 0, r);
    }
    printList(e, s, r, i, a, o) {
      this.printJoin(e, r, i, a ?? aMt, s, void 0, o);
    }
    shouldPrintTrailingComma(e) {
      if (!this.tokenMap) return null;
      let s = this.tokenMap.findLastIndex(this._currentNode, (r) => this.tokenMap.matchesOriginal(r, e));
      return s <= 0 ? null : this.tokenMap.matchesOriginal(this._tokens[s - 1], ",");
    }
    _printNewline(e, s) {
      let r = this.format;
      if (r.retainLines || r.compact) return;
      if (r.concise) {
        this.space();
        return;
      }
      if (!e)
        return;
      let i = s.nextNodeStartLine, a = this._lastCommentLine;
      if (i > 0 && a > 0) {
        let o = i - a;
        if (o >= 0) {
          this.newline(o || 1);
          return;
        }
      }
      this._buf.hasContent() && this.newline(1);
    }
    _shouldPrintComment(e, s) {
      if (e.ignore || this._printedComments.has(e)) return 0;
      if (this._noLineTerminator && iMt.test(e.value))
        return 2;
      if (s && this.tokenMap) {
        let r = this.tokenMap.find(this._currentNode, (i) => i.value === e.value);
        if (r && r.start > s.start)
          return 2;
      }
      return this._printedComments.add(e), this.format.shouldPrintComment(e.value) ? 1 : 0;
    }
    _printComment(e, s) {
      let r = this._noLineTerminator, i = e.type === "CommentBlock", a = i && s !== 1 && !this._noLineTerminator;
      a && this._buf.hasContent() && s !== 2 && this.newline(1);
      let o = this.getLastChar();
      o !== 91 && o !== 123 && o !== 40 && this.space();
      let l;
      if (i) {
        if (l = `/*${e.value}*/`, this.format.indent.adjustMultilineComment) {
          var u;
          let c = (u = e.loc) == null ? void 0 : u.start.column;
          if (c) {
            let p = new RegExp("\\n\\s{1," + c + "}", "g");
            l = l.replace(p, `
`);
          }
          if (this.format.concise)
            l = l.replace(/\n(?!$)/g, `
`);
          else {
            let p = this.format.retainLines ? 0 : this._buf.getCurrentColumn();
            (this._shouldIndent(47) || this.format.retainLines) && (p += this._getIndent()), l = l.replace(/\n(?!$)/g, `
${" ".repeat(p)}`);
          }
        }
      } else r ? l = `/*${e.value}*/` : l = `//${e.value}`;
      if (this._endsWithDiv && this._space(), this.tokenMap) {
        let {
          _printSemicolonBeforeNextToken: c,
          _printSemicolonBeforeNextNode: p
        } = this;
        this._printSemicolonBeforeNextToken = -1, this._printSemicolonBeforeNextNode = -1, this.source("start", e.loc), this._append(l, i), this.
        _printSemicolonBeforeNextNode = p, this._printSemicolonBeforeNextToken = c;
      } else
        this.source("start", e.loc), this._append(l, i);
      !i && !r && this.newline(1, !0), a && s !== 3 && this.newline(1);
    }
    _printComments(e, s, r, i, a = 0, o) {
      let l = r.loc, u = s.length, c = !!l, p = c ? l.start.line : 0, h = c ? l.end.line : 0, f = 0, d = 0, m = this._noLineTerminator ? function() {
      } : this.newline.bind(this);
      for (let y = 0; y < u; y++) {
        let T = s[y], b = this._shouldPrintComment(T, o);
        if (b === 2) {
          c = !1;
          break;
        }
        if (c && T.loc && b === 1) {
          let E = T.loc.start.line, V = T.loc.end.line;
          if (e === 0) {
            let W = 0;
            y === 0 ? this._buf.hasContent() && (T.type === "CommentLine" || E !== V) && (W = d = 1) : W = E - f, f = V, m(W), this._printComment(
            T, 1), y + 1 === u && (m(Math.max(p - f, d)), f = p);
          } else if (e === 1) {
            let W = E - (y === 0 ? p : f);
            f = V, m(W), this._printComment(T, 1), y + 1 === u && (m(Math.min(1, h - f)), f = h);
          } else {
            let W = E - (y === 0 ? h - a : f);
            f = V, m(W), this._printComment(T, 1);
          }
        } else {
          if (c = !1, b !== 1)
            continue;
          if (u === 1) {
            let E = T.loc ? T.loc.start.line === T.loc.end.line : !gae.test(T.value), V = E && !QBt(r) && !ZBt(i) && !eMt(i) && !tMt(r);
            e === 0 ? this._printComment(T, V && r.type !== "ObjectExpression" || E && GBt(i, {
              body: r
            }) ? 1 : 0) : V && e === 2 ? this._printComment(T, 1) : this._printComment(T, 0);
          } else e === 1 && !(r.type === "ObjectExpression" && r.properties.length > 1) && r.type !== "ClassBody" && r.type !== "TSInterface\
Body" ? this._printComment(T, y === 0 ? 2 : y === u - 1 ? 3 : 0) : this._printComment(T, 0);
        }
      }
      e === 2 && c && f && (this._lastCommentLine = f);
    }
  };
  Object.assign(X0.prototype, YBt);
  (0, XBt.addDeprecatedGenerators)(X0);
  var AXs = DA.default = X0;
  function aMt(t, e) {
    this.token(",", !1, t), e || this.space();
  }
  n(aMt, "commaSeparator");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/generator/lib/index.js
var Pae = g((OA) => {
  "use strict";
  Object.defineProperty(OA, "__esModule", {
    value: !0
  });
  OA.default = oMt;
  var bae = Ane(), xae = Tae();
  function Sae(t, e, s) {
    if (e.experimental_preserveFormat) {
      if (typeof t != "string")
        throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string");
      if (!e.retainLines)
        throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`");
      if (e.compact && e.compact !== "auto")
        throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option");
      if (e.minified)
        throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option");
      if (e.jsescOption)
        throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option");
      if (!Array.isArray(s.tokens))
        throw new Error("`experimental_preserveFormat` requires the AST to have attatched the token of the input code. Make sure to enable t\
he `tokens: true` parser option.");
    }
    let r = {
      auxiliaryCommentBefore: e.auxiliaryCommentBefore,
      auxiliaryCommentAfter: e.auxiliaryCommentAfter,
      shouldPrintComment: e.shouldPrintComment,
      preserveFormat: e.experimental_preserveFormat,
      retainLines: e.retainLines,
      retainFunctionParens: e.retainFunctionParens,
      comments: e.comments == null || e.comments,
      compact: e.compact,
      minified: e.minified,
      concise: e.concise,
      indent: {
        adjustMultilineComment: !0,
        style: "  "
      },
      jsescOption: Object.assign({
        quotes: "double",
        wrap: !0,
        minimal: !1
      }, e.jsescOption),
      topicToken: e.topicToken,
      importAttributesKeyword: e.importAttributesKeyword
    };
    {
      var i;
      r.decoratorsBeforeExport = e.decoratorsBeforeExport, r.jsescOption.json = e.jsonCompatibleStrings, r.recordAndTupleSyntaxType = (i = e.
      recordAndTupleSyntaxType) != null ? i : "hash";
    }
    r.minified ? (r.compact = !0, r.shouldPrintComment = r.shouldPrintComment || (() => r.comments)) : r.shouldPrintComment = r.shouldPrintComment ||
    ((u) => r.comments || u.includes("@license") || u.includes("@preserve")), r.compact === "auto" && (r.compact = typeof t == "string" && t.
    length > 5e5, r.compact && console.error(`[BABEL] Note: The code generator has deoptimised the styling of ${e.filename} as it exceeds th\
e max of 500KB.`)), (r.compact || r.preserveFormat) && (r.indent.adjustMultilineComment = !1);
    let {
      auxiliaryCommentBefore: a,
      auxiliaryCommentAfter: o,
      shouldPrintComment: l
    } = r;
    return a && !l(a) && (r.auxiliaryCommentBefore = void 0), o && !l(o) && (r.auxiliaryCommentAfter = void 0), r;
  }
  n(Sae, "normalizeOptions");
  OA.CodeGenerator = class {
    static {
      n(this, "CodeGenerator");
    }
    constructor(e, s = {}, r) {
      this._ast = void 0, this._format = void 0, this._map = void 0, this._ast = e, this._format = Sae(r, s, e), this._map = s.sourceMaps ? new bae.
      default(s, r) : null;
    }
    generate() {
      return new xae.default(this._format, this._map).generate(this._ast);
    }
  };
  function oMt(t, e = {}, s) {
    let r = Sae(s, e, t), i = e.sourceMaps ? new bae.default(e, s) : null;
    return new xae.default(r, i, t.tokens, typeof s == "string" ? s : null).generate(t);
  }
  n(oMt, "generate");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/ancestry.js
var Eae = g((za) => {
  "use strict";
  Object.defineProperty(za, "__esModule", {
    value: !0
  });
  za.find = pMt;
  za.findParent = cMt;
  za.getAncestry = yMt;
  za.getDeepestCommonAncestorFrom = mMt;
  za.getEarliestCommonAncestorFrom = dMt;
  za.getFunctionParent = hMt;
  za.getStatementParent = fMt;
  za.inType = bMt;
  za.isAncestor = gMt;
  za.isDescendant = TMt;
  var lMt = fe(), {
    VISITOR_KEYS: uMt
  } = lMt;
  function cMt(t) {
    let e = this;
    for (; e = e.parentPath; )
      if (t(e)) return e;
    return null;
  }
  n(cMt, "findParent");
  function pMt(t) {
    let e = this;
    do
      if (t(e)) return e;
    while (e = e.parentPath);
    return null;
  }
  n(pMt, "find");
  function hMt() {
    return this.findParent((t) => t.isFunction());
  }
  n(hMt, "getFunctionParent");
  function fMt() {
    let t = this;
    do {
      if (!t.parentPath || Array.isArray(t.container) && t.isStatement())
        break;
      t = t.parentPath;
    } while (t);
    if (t && (t.isProgram() || t.isFile()))
      throw new Error("File/Program node, we can't possibly find a statement parent to this");
    return t;
  }
  n(fMt, "getStatementParent");
  function dMt(t) {
    return this.getDeepestCommonAncestorFrom(t, function(e, s, r) {
      let i, a = uMt[e.type];
      for (let o of r) {
        let l = o[s + 1];
        if (!i) {
          i = l;
          continue;
        }
        if (l.listKey && i.listKey === l.listKey && l.key < i.key) {
          i = l;
          continue;
        }
        let u = a.indexOf(i.parentKey), c = a.indexOf(l.parentKey);
        u > c && (i = l);
      }
      return i;
    });
  }
  n(dMt, "getEarliestCommonAncestorFrom");
  function mMt(t, e) {
    if (!t.length)
      return this;
    if (t.length === 1)
      return t[0];
    let s = 1 / 0, r, i, a = t.map((l) => {
      let u = [];
      do
        u.unshift(l);
      while ((l = l.parentPath) && l !== this);
      return u.length < s && (s = u.length), u;
    }), o = a[0];
    e: for (let l = 0; l < s; l++) {
      let u = o[l];
      for (let c of a)
        if (c[l] !== u)
          break e;
      r = l, i = u;
    }
    if (i)
      return e ? e(i, r, a) : i;
    throw new Error("Couldn't find intersection");
  }
  n(mMt, "getDeepestCommonAncestorFrom");
  function yMt() {
    let t = this, e = [];
    do
      e.push(t);
    while (t = t.parentPath);
    return e;
  }
  n(yMt, "getAncestry");
  function gMt(t) {
    return t.isDescendant(this);
  }
  n(gMt, "isAncestor");
  function TMt(t) {
    return !!this.findParent((e) => e === t);
  }
  n(TMt, "isDescendant");
  function bMt(...t) {
    let e = this;
    for (; e; ) {
      for (let s of t)
        if (e.node.type === s) return !0;
      e = e.parentPath;
    }
    return !1;
  }
  n(bMt, "inType");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/inference/util.js
var WF = g((VF) => {
  "use strict";
  Object.defineProperty(VF, "__esModule", {
    value: !0
  });
  VF.createUnionType = AMt;
  var xMt = fe(), {
    createFlowUnionType: Aae,
    createTSUnionType: vae,
    createUnionTypeAnnotation: SMt,
    isFlowType: PMt,
    isTSType: EMt
  } = xMt;
  function AMt(t) {
    {
      if (t.every((e) => PMt(e)))
        return Aae ? Aae(t) : SMt(t);
      if (t.every((e) => EMt(e)) && vae)
        return vae(t);
    }
  }
  n(AMt, "createUnionType");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js
var kae = g(($F) => {
  "use strict";
  Object.defineProperty($F, "__esModule", {
    value: !0
  });
  $F.default = NMt;
  var vMt = fe(), wae = WF(), {
    BOOLEAN_NUMBER_BINARY_OPERATORS: CMt,
    createTypeAnnotationBasedOnTypeof: wMt,
    numberTypeAnnotation: Iae,
    voidTypeAnnotation: IMt
  } = vMt;
  function NMt(t) {
    if (!this.isReferenced()) return;
    let e = this.scope.getBinding(t.name);
    if (e)
      return e.identifier.typeAnnotation ? e.identifier.typeAnnotation : kMt(e, this, t.name);
    if (t.name === "undefined")
      return IMt();
    if (t.name === "NaN" || t.name === "Infinity")
      return Iae();
    t.name;
  }
  n(NMt, "_default");
  function kMt(t, e, s) {
    let r = [], i = [], a = Cae(t, e, i), o = Nae(t, e, s);
    if (o) {
      let l = Cae(t, o.ifStatement);
      a = a.filter((u) => !l.includes(u)), r.push(o.typeAnnotation);
    }
    if (a.length) {
      a.push(...i);
      for (let l of a)
        r.push(l.getTypeAnnotation());
    }
    if (r.length)
      return (0, wae.createUnionType)(r);
  }
  n(kMt, "getTypeAnnotationBindingConstantViolations");
  function Cae(t, e, s) {
    let r = t.constantViolations.slice();
    return r.unshift(t.path), r.filter((i) => {
      i = i.resolve();
      let a = i._guessExecutionStatusRelativeTo(e);
      return s && a === "unknown" && s.push(i), a === "before";
    });
  }
  n(Cae, "getConstantViolationsBefore");
  function DMt(t, e) {
    let s = e.node.operator, r = e.get("right").resolve(), i = e.get("left").resolve(), a;
    if (i.isIdentifier({
      name: t
    }) ? a = r : r.isIdentifier({
      name: t
    }) && (a = i), a)
      return s === "===" ? a.getTypeAnnotation() : CMt.includes(s) ? Iae() : void 0;
    if (s !== "===" && s !== "==") return;
    let o, l;
    if (i.isUnaryExpression({
      operator: "typeof"
    }) ? (o = i, l = r) : r.isUnaryExpression({
      operator: "typeof"
    }) && (o = r, l = i), !o || !o.get("argument").isIdentifier({
      name: t
    }) || (l = l.resolve(), !l.isLiteral())) return;
    let u = l.node.value;
    if (typeof u == "string")
      return wMt(u);
  }
  n(DMt, "inferAnnotationFromBinaryExpression");
  function OMt(t, e, s) {
    let r;
    for (; r = e.parentPath; ) {
      if (r.isIfStatement() || r.isConditionalExpression())
        return e.key === "test" ? void 0 : r;
      if (r.isFunction() && r.parentPath.scope.getBinding(s) !== t)
        return;
      e = r;
    }
  }
  n(OMt, "getParentConditionalPath");
  function Nae(t, e, s) {
    let r = OMt(t, e, s);
    if (!r) return;
    let a = [r.get("test")], o = [];
    for (let l = 0; l < a.length; l++) {
      let u = a[l];
      if (u.isLogicalExpression())
        u.node.operator === "&&" && (a.push(u.get("left")), a.push(u.get("right")));
      else if (u.isBinaryExpression()) {
        let c = DMt(s, u);
        c && o.push(c);
      }
    }
    return o.length ? {
      typeAnnotation: (0, wae.createUnionType)(o),
      ifStatement: r
    } : Nae(t, r, s);
  }
  n(Nae, "getConditionalAnnotation");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/inference/inferers.js
var jae = g((sr) => {
  "use strict";
  Object.defineProperty(sr, "__esModule", {
    value: !0
  });
  sr.ArrayExpression = Bae;
  sr.AssignmentExpression = tFt;
  sr.BinaryExpression = zMt;
  sr.BooleanLiteral = nFt;
  sr.CallExpression = dFt;
  sr.ConditionalExpression = QMt;
  sr.ClassDeclaration = sr.ClassExpression = sr.FunctionDeclaration = sr.ArrowFunctionExpression = sr.FunctionExpression = uFt;
  Object.defineProperty(sr, "Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return LMt.default;
    }, "get")
  });
  sr.LogicalExpression = GMt;
  sr.NewExpression = JMt;
  sr.NullLiteral = aFt;
  sr.NumericLiteral = iFt;
  sr.ObjectExpression = lFt;
  sr.ParenthesizedExpression = eFt;
  sr.RegExpLiteral = oFt;
  sr.RestElement = Mae;
  sr.SequenceExpression = ZMt;
  sr.StringLiteral = rFt;
  sr.TSAsExpression = Lae;
  sr.TSNonNullExpression = HMt;
  sr.TaggedTemplateExpression = mFt;
  sr.TemplateLiteral = YMt;
  sr.TypeCastExpression = _ae;
  sr.UnaryExpression = XMt;
  sr.UpdateExpression = sFt;
  sr.VariableDeclarator = $Mt;
  var _Mt = fe(), LMt = kae(), Oae = WF(), {
    BOOLEAN_BINARY_OPERATORS: BMt,
    BOOLEAN_UNARY_OPERATORS: MMt,
    NUMBER_BINARY_OPERATORS: FMt,
    NUMBER_UNARY_OPERATORS: jMt,
    STRING_UNARY_OPERATORS: RMt,
    anyTypeAnnotation: Dae,
    arrayTypeAnnotation: HF,
    booleanTypeAnnotation: JF,
    buildMatchMemberExpression: _A,
    genericTypeAnnotation: Sp,
    identifier: gf,
    nullLiteralTypeAnnotation: qMt,
    numberTypeAnnotation: Fm,
    stringTypeAnnotation: Tf,
    tupleTypeAnnotation: UMt,
    unionTypeAnnotation: KMt,
    voidTypeAnnotation: VMt,
    isIdentifier: WMt
  } = _Mt;
  function $Mt() {
    if (this.get("id").isIdentifier())
      return this.get("init").getTypeAnnotation();
  }
  n($Mt, "VariableDeclarator");
  function _ae(t) {
    return t.typeAnnotation;
  }
  n(_ae, "TypeCastExpression");
  _ae.validParent = !0;
  function Lae(t) {
    return t.typeAnnotation;
  }
  n(Lae, "TSAsExpression");
  Lae.validParent = !0;
  function HMt() {
    return this.get("expression").getTypeAnnotation();
  }
  n(HMt, "TSNonNullExpression");
  function JMt(t) {
    if (t.callee.type === "Identifier")
      return Sp(t.callee);
  }
  n(JMt, "NewExpression");
  function YMt() {
    return Tf();
  }
  n(YMt, "TemplateLiteral");
  function XMt(t) {
    let e = t.operator;
    if (e === "void")
      return VMt();
    if (jMt.includes(e))
      return Fm();
    if (RMt.includes(e))
      return Tf();
    if (MMt.includes(e))
      return JF();
  }
  n(XMt, "UnaryExpression");
  function zMt(t) {
    let e = t.operator;
    if (FMt.includes(e))
      return Fm();
    if (BMt.includes(e))
      return JF();
    if (e === "+") {
      let s = this.get("right"), r = this.get("left");
      return r.isBaseType("number") && s.isBaseType("number") ? Fm() : r.isBaseType("string") || s.isBaseType("string") ? Tf() : KMt([Tf(), Fm()]);
    }
  }
  n(zMt, "BinaryExpression");
  function GMt() {
    let t = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()];
    return (0, Oae.createUnionType)(t);
  }
  n(GMt, "LogicalExpression");
  function QMt() {
    let t = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()];
    return (0, Oae.createUnionType)(t);
  }
  n(QMt, "ConditionalExpression");
  function ZMt() {
    return this.get("expressions").pop().getTypeAnnotation();
  }
  n(ZMt, "SequenceExpression");
  function eFt() {
    return this.get("expression").getTypeAnnotation();
  }
  n(eFt, "ParenthesizedExpression");
  function tFt() {
    return this.get("right").getTypeAnnotation();
  }
  n(tFt, "AssignmentExpression");
  function sFt(t) {
    let e = t.operator;
    if (e === "++" || e === "--")
      return Fm();
  }
  n(sFt, "UpdateExpression");
  function rFt() {
    return Tf();
  }
  n(rFt, "StringLiteral");
  function iFt() {
    return Fm();
  }
  n(iFt, "NumericLiteral");
  function nFt() {
    return JF();
  }
  n(nFt, "BooleanLiteral");
  function aFt() {
    return qMt();
  }
  n(aFt, "NullLiteral");
  function oFt() {
    return Sp(gf("RegExp"));
  }
  n(oFt, "RegExpLiteral");
  function lFt() {
    return Sp(gf("Object"));
  }
  n(lFt, "ObjectExpression");
  function Bae() {
    return Sp(gf("Array"));
  }
  n(Bae, "ArrayExpression");
  function Mae() {
    return Bae();
  }
  n(Mae, "RestElement");
  Mae.validParent = !0;
  function uFt() {
    return Sp(gf("Function"));
  }
  n(uFt, "Func");
  var cFt = _A("Array.from"), pFt = _A("Object.keys"), hFt = _A("Object.values"), fFt = _A("Object.entries");
  function dFt() {
    let {
      callee: t
    } = this.node;
    return pFt(t) ? HF(Tf()) : cFt(t) || hFt(t) || WMt(t, {
      name: "Array"
    }) ? HF(Dae()) : fFt(t) ? HF(UMt([Tf(), Dae()])) : Fae(this.get("callee"));
  }
  n(dFt, "CallExpression");
  function mFt() {
    return Fae(this.get("tag"));
  }
  n(mFt, "TaggedTemplateExpression");
  function Fae(t) {
    if (t = t.resolve(), t.isFunction()) {
      let {
        node: e
      } = t;
      if (e.async)
        return e.generator ? Sp(gf("AsyncIterator")) : Sp(gf("Promise"));
      if (e.generator)
        return Sp(gf("Iterator"));
      if (t.node.returnType)
        return t.node.returnType;
    }
  }
  n(Fae, "resolveCall");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/inference/index.js
var Vae = g((Pp) => {
  "use strict";
  Object.defineProperty(Pp, "__esModule", {
    value: !0
  });
  Pp._getTypeAnnotation = Kae;
  Pp.baseTypeStrictlyMatches = FFt;
  Pp.couldBeBaseType = MFt;
  Pp.getTypeAnnotation = LFt;
  Pp.isBaseType = BFt;
  Pp.isGenericType = jFt;
  var Rae = jae(), yFt = fe(), {
    anyTypeAnnotation: Uae,
    isAnyTypeAnnotation: LA,
    isArrayTypeAnnotation: gFt,
    isBooleanTypeAnnotation: TFt,
    isEmptyTypeAnnotation: bFt,
    isFlowBaseAnnotation: xFt,
    isGenericTypeAnnotation: SFt,
    isIdentifier: qae,
    isMixedTypeAnnotation: PFt,
    isNumberTypeAnnotation: EFt,
    isStringTypeAnnotation: AFt,
    isTSArrayType: vFt,
    isTSTypeAnnotation: CFt,
    isTSTypeReference: wFt,
    isTupleTypeAnnotation: IFt,
    isTypeAnnotation: NFt,
    isUnionTypeAnnotation: kFt,
    isVoidTypeAnnotation: DFt,
    stringTypeAnnotation: OFt,
    voidTypeAnnotation: _Ft
  } = yFt;
  function LFt() {
    let t = this.getData("typeAnnotation");
    return t != null || (t = Kae.call(this) || Uae(), (NFt(t) || CFt(t)) && (t = t.typeAnnotation), this.setData("typeAnnotation", t)), t;
  }
  n(LFt, "getTypeAnnotation");
  var YF = /* @__PURE__ */ new WeakSet();
  function Kae() {
    let t = this.node;
    if (!t)
      if (this.key === "init" && this.parentPath.isVariableDeclarator()) {
        let s = this.parentPath.parentPath, r = s.parentPath;
        return s.key === "left" && r.isForInStatement() ? OFt() : s.key === "left" && r.isForOfStatement() ? Uae() : _Ft();
      } else
        return;
    if (t.typeAnnotation)
      return t.typeAnnotation;
    if (!YF.has(t)) {
      YF.add(t);
      try {
        var e;
        let s = Rae[t.type];
        if (s)
          return s.call(this, t);
        if (s = Rae[this.parentPath.type], (e = s) != null && e.validParent)
          return this.parentPath.getTypeAnnotation();
      } finally {
        YF.delete(t);
      }
    }
  }
  n(Kae, "_getTypeAnnotation");
  function BFt(t, e) {
    return XF(t, this.getTypeAnnotation(), e);
  }
  n(BFt, "isBaseType");
  function XF(t, e, s) {
    if (t === "string")
      return AFt(e);
    if (t === "number")
      return EFt(e);
    if (t === "boolean")
      return TFt(e);
    if (t === "any")
      return LA(e);
    if (t === "mixed")
      return PFt(e);
    if (t === "empty")
      return bFt(e);
    if (t === "void")
      return DFt(e);
    if (s)
      return !1;
    throw new Error(`Unknown base type ${t}`);
  }
  n(XF, "_isBaseType");
  function MFt(t) {
    let e = this.getTypeAnnotation();
    if (LA(e)) return !0;
    if (kFt(e)) {
      for (let s of e.types)
        if (LA(s) || XF(t, s, !0))
          return !0;
      return !1;
    } else
      return XF(t, e, !0);
  }
  n(MFt, "couldBeBaseType");
  function FFt(t) {
    let e = this.getTypeAnnotation(), s = t.getTypeAnnotation();
    return !LA(e) && xFt(e) ? s.type === e.type : !1;
  }
  n(FFt, "baseTypeStrictlyMatches");
  function jFt(t) {
    let e = this.getTypeAnnotation();
    return t === "Array" && (vFt(e) || gFt(e) || IFt(e)) ? !0 : SFt(e) && qae(e.id, {
      name: t
    }) || wFt(e) && qae(e.typeName, {
      name: t
    });
  }
  n(jFt, "isGenericType");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js
var Wae = g((BA) => {
  "use strict";
  Object.defineProperty(BA, "__esModule", {
    value: !0
  });
  BA.hooks = void 0;
  var qXs = BA.hooks = [function(t, e) {
    if (t.key === "test" && (e.isWhile() || e.isSwitchCase()) || t.key === "declaration" && e.isExportDeclaration() || t.key === "body" && e.
    isLabeledStatement() || t.listKey === "declarations" && e.isVariableDeclaration() && e.node.declarations.length === 1 || t.key === "expr\
ession" && e.isExpressionStatement())
      return e.remove(), !0;
  }, function(t, e) {
    if (e.isSequenceExpression() && e.node.expressions.length === 1)
      return e.replaceWith(e.node.expressions[0]), !0;
  }, function(t, e) {
    if (e.isBinary())
      return t.key === "left" ? e.replaceWith(e.node.right) : e.replaceWith(e.node.left), !0;
  }, function(t, e) {
    if (e.isIfStatement() && t.key === "consequent" || t.key === "body" && (e.isLoop() || e.isArrowFunctionExpression()))
      return t.replaceWith({
        type: "BlockStatement",
        body: []
      }), !0;
  }];
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/removal.js
var MA = g((Ep) => {
  "use strict";
  Object.defineProperty(Ep, "__esModule", {
    value: !0
  });
  Ep._assertUnremoved = Xae;
  Ep._callRemovalHooks = Jae;
  Ep._markRemoved = zF;
  Ep._remove = Yae;
  Ep._removeFromScope = Hae;
  Ep.remove = HFt;
  var RFt = Wae(), qFt = ff(), UFt = GF(), $ae = Ap(), KFt = fe(), VFt = FA(), WFt = xl(), {
    getBindingIdentifiers: $Ft
  } = KFt;
  function HFt() {
    var t;
    if (Xae.call(this), WFt.resync.call(this), Jae.call(this)) {
      zF.call(this);
      return;
    }
    (t = this.opts) != null && t.noScope || Hae.call(this), this.shareCommentsWithSiblings(), Yae.call(this), zF.call(this);
  }
  n(HFt, "remove");
  function Hae() {
    let t = $Ft(this.node, !1, !1, !0);
    Object.keys(t).forEach((e) => this.scope.removeBinding(e));
  }
  n(Hae, "_removeFromScope");
  function Jae() {
    if (this.parentPath) {
      for (let t of RFt.hooks)
        if (t(this, this.parentPath)) return !0;
    }
  }
  n(Jae, "_callRemovalHooks");
  function Yae() {
    Array.isArray(this.container) ? (this.container.splice(this.key, 1), VFt.updateSiblingKeys.call(this, this.key, -1)) : UFt._replaceWith.
    call(this, null);
  }
  n(Yae, "_remove");
  function zF() {
    this._traverseFlags |= $ae.SHOULD_SKIP | $ae.REMOVED, this.parent && (0, qFt.getCachedPaths)(this.hub, this.parent).delete(this.node), this.
    node = null;
  }
  n(zF, "_markRemoved");
  function Xae() {
    if (this.removed)
      throw this.buildCodeFrameError("NodePath has been removed so is read-only.");
  }
  n(Xae, "_assertUnremoved");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/lib/hoister.js
var Gae = g((jA) => {
  "use strict";
  Object.defineProperty(jA, "__esModule", {
    value: !0
  });
  jA.default = void 0;
  var zae = fe(), JFt = zae, {
    react: YFt
  } = zae, {
    cloneNode: XFt,
    jsxExpressionContainer: zFt,
    variableDeclaration: GFt,
    variableDeclarator: QFt
  } = JFt, ZFt = {
    ReferencedIdentifier(t, e) {
      if (t.isJSXIdentifier() && YFt.isCompatTag(t.node.name) && !t.parentPath.isJSXMemberExpression())
        return;
      if (t.node.name === "this") {
        let r = t.scope;
        do
          if (r.path.isFunction() && !r.path.isArrowFunctionExpression())
            break;
        while (r = r.parent);
        r && e.breakOnScopePaths.push(r.path);
      }
      let s = t.scope.getBinding(t.node.name);
      if (s) {
        for (let r of s.constantViolations)
          if (r.scope !== s.path.scope) {
            e.mutableBinding = !0, t.stop();
            return;
          }
        s === e.scope.getBinding(t.node.name) && (e.bindings[t.node.name] = s);
      }
    }
  }, QF = class {
    static {
      n(this, "PathHoister");
    }
    constructor(e, s) {
      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 = s, this.path = e, this.attachAfter = !1;
    }
    isCompatibleScope(e) {
      for (let s of Object.keys(this.bindings)) {
        let r = this.bindings[s];
        if (!e.bindingIdentifierEquals(s, r.identifier))
          return !1;
      }
      return !0;
    }
    getCompatibleScopes() {
      let e = this.path.scope;
      do {
        if (this.isCompatibleScope(e))
          this.scopes.push(e);
        else
          break;
        if (this.breakOnScopePaths.includes(e.path))
          break;
      } while (e = e.parent);
    }
    getAttachmentPath() {
      let e = this._getAttachmentPath();
      if (!e) return;
      let s = e.scope;
      if (s.path === e && (s = e.scope.parent), s.path.isProgram() || s.path.isFunction())
        for (let r of Object.keys(this.bindings)) {
          if (!s.hasOwnBinding(r)) continue;
          let i = this.bindings[r];
          if (i.kind === "param" || i.path.parentKey === "params")
            continue;
          if (this.getAttachmentParentForPath(i.path).key >= e.key) {
            this.attachAfter = !0, e = i.path;
            for (let o of i.constantViolations)
              this.getAttachmentParentForPath(o).key > e.key && (e = o);
          }
        }
      return e;
    }
    _getAttachmentPath() {
      let s = this.scopes.pop();
      if (s) {
        if (s.path.isFunction())
          if (this.hasOwnParamBindings(s)) {
            if (this.scope === s) return;
            let r = s.path.get("body").get("body");
            for (let i = 0; i < r.length; i++)
              if (!r[i].node._blockHoist)
                return r[i];
          } else
            return this.getNextScopeAttachmentParent();
        else if (s.path.isProgram())
          return this.getNextScopeAttachmentParent();
      }
    }
    getNextScopeAttachmentParent() {
      let e = this.scopes.pop();
      if (e) return this.getAttachmentParentForPath(e.path);
    }
    getAttachmentParentForPath(e) {
      do
        if (!e.parentPath || Array.isArray(e.container) && e.isStatement())
          return e;
      while (e = e.parentPath);
    }
    hasOwnParamBindings(e) {
      for (let s of Object.keys(this.bindings)) {
        if (!e.hasOwnBinding(s)) continue;
        let r = this.bindings[s];
        if (r.kind === "param" && r.constant) return !0;
      }
      return !1;
    }
    run() {
      if (this.path.traverse(ZFt, this), this.mutableBinding) return;
      this.getCompatibleScopes();
      let e = this.getAttachmentPath();
      if (!e || e.getFunctionParent() === this.path.getFunctionParent()) return;
      let s = e.scope.generateUidIdentifier("ref"), r = QFt(s, this.path.node), i = this.attachAfter ? "insertAfter" : "insertBefore", [a] = e[i](
      [e.isVariableDeclarator() ? r : GFt("var", [r])]), o = this.path.parentPath;
      return o.isJSXElement() && this.path.container === o.node.children && (s = zFt(s)), this.path.replaceWith(XFt(s)), e.isVariableDeclarator() ?
      a.get("init") : a.get("declarations.0.init");
    }
  };
  jA.default = QF;
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/modification.js
var FA = g((Ga) => {
  "use strict";
  Object.defineProperty(Ga, "__esModule", {
    value: !0
  });
  Ga._containerInsert = r3;
  Ga._containerInsertAfter = eoe;
  Ga._containerInsertBefore = i3;
  Ga._verifyNodeList = z0;
  Ga.insertAfter = y3t;
  Ga.insertBefore = d3t;
  Ga.pushContainer = T3t;
  Ga.unshiftContainer = g3t;
  Ga.updateSiblingKeys = roe;
  var e3t = ff(), s3 = Ap(), ZF = xl(), RA = MA(), t3t = fe(), s3t = Gae(), {
    arrowFunctionExpression: r3t,
    assertExpression: i3t,
    assignmentExpression: n3t,
    blockStatement: Qae,
    callExpression: a3t,
    cloneNode: e3,
    expressionStatement: t3,
    isAssignmentExpression: o3t,
    isCallExpression: l3t,
    isExportNamedDeclaration: Zae,
    isExpression: u3t,
    isIdentifier: c3t,
    isSequenceExpression: p3t,
    isSuper: h3t,
    thisExpression: f3t
  } = t3t;
  function d3t(t) {
    RA._assertUnremoved.call(this);
    let e = z0.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || Zae(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertBefore(e);
    if (this.isNodeType("Expression") && !this.isJSXElement() || s.isForStatement() && this.key === "init")
      return this.node && e.push(this.node), this.replaceExpressionWithStatements(e);
    if (Array.isArray(this.container))
      return i3.call(this, e);
    if (this.isStatementOrBlock()) {
      let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
      return this.replaceWith(Qae(a ? [i] : [])), this.unshiftContainer("body", e);
    } 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?");
  }
  n(d3t, "insertBefore");
  function r3(t, e) {
    roe.call(this, t, e.length);
    let s = [];
    this.container.splice(t, 0, ...e);
    for (let a = 0; a < e.length; a++) {
      var r;
      let o = t + a, l = this.getSibling(o);
      s.push(l), (r = this.context) != null && r.queue && ZF.pushContext.call(l, this.context);
    }
    let i = ZF._getQueueContexts.call(this);
    for (let a of s) {
      ZF.setScope.call(a), a.debug("Inserted.");
      for (let o of i)
        o.maybeQueue(a, !0);
    }
    return s;
  }
  n(r3, "_containerInsert");
  function i3(t) {
    return r3.call(this, this.key, t);
  }
  n(i3, "_containerInsertBefore");
  function eoe(t) {
    return r3.call(this, this.key + 1, t);
  }
  n(eoe, "_containerInsertAfter");
  var toe = /* @__PURE__ */ n((t) => t[t.length - 1], "last");
  function soe(t) {
    return p3t(t.parent) && (toe(t.parent.expressions) !== t.node || soe(t.parentPath));
  }
  n(soe, "isHiddenInSequenceExpression");
  function m3t(t, e) {
    if (!o3t(t) || !c3t(t.left))
      return !1;
    let s = e.getBlockParent();
    return s.hasOwnBinding(t.left.name) && s.getOwnBinding(t.left.name).constantViolations.length <= 1;
  }
  n(m3t, "isAlmostConstantAssignment");
  function y3t(t) {
    if (RA._assertUnremoved.call(this), this.isSequenceExpression())
      return toe(this.get("expressions")).insertAfter(t);
    let e = z0.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || Zae(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertAfter(e.map((i) => u3t(i) ? t3(i) : i));
    if (this.isNodeType("Expression") && !this.isJSXElement() && !s.isJSXElement() || s.isForStatement() && this.key === "init") {
      let i = this;
      if (i.node) {
        let a = i.node, {
          scope: o
        } = this;
        if (o.path.isPattern())
          return i3t(a), i.replaceWith(a3t(r3t([], a), [])), i.get("callee.body").insertAfter(e), [i];
        if (soe(i))
          e.unshift(a);
        else if (l3t(a) && h3t(a.callee))
          e.unshift(a), e.push(f3t());
        else if (m3t(a, o))
          e.unshift(a), e.push(e3(a.left));
        else if (o.isPure(a, !0))
          e.push(a);
        else {
          s.isMethod({
            computed: !0,
            key: a
          }) && (o = o.parent);
          let l = o.generateDeclaredUidIdentifier();
          e.unshift(t3(n3t("=", e3(l), a))), e.push(t3(e3(l)));
        }
      }
      return this.replaceExpressionWithStatements(e);
    } else {
      if (Array.isArray(this.container))
        return eoe.call(this, e);
      if (this.isStatementOrBlock()) {
        let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
        return this.replaceWith(Qae(a ? [i] : [])), this.pushContainer("body", e);
      } 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?");
    }
  }
  n(y3t, "insertAfter");
  function roe(t, e) {
    if (!this.parent) return;
    let s = (0, e3t.getCachedPaths)(this.hub, this.parent) || [];
    for (let [, r] of s)
      typeof r.key == "number" && r.container === this.container && r.key >= t && (r.key += e);
  }
  n(roe, "updateSiblingKeys");
  function z0(t) {
    if (!t)
      return [];
    Array.isArray(t) || (t = [t]);
    for (let e = 0; e < t.length; e++) {
      let s = t[e], r;
      if (s ? typeof s != "object" ? r = "contains a non-object node" : s.type ? s instanceof s3.default && (r = "has a NodePath when it exp\
ected a raw object") : r = "without a type" : r = "has falsy node", r) {
        let i = Array.isArray(s) ? "array" : typeof s;
        throw new Error(`Node list ${r} with the index of ${e} and type of ${i}`);
      }
    }
    return t;
  }
  n(z0, "_verifyNodeList");
  function g3t(t, e) {
    RA._assertUnremoved.call(this), e = z0.call(this, e);
    let s = s3.default.get({
      parentPath: this,
      parent: this.node,
      container: this.node[t],
      listKey: t,
      key: 0
    }).setContext(this.context);
    return i3.call(s, e);
  }
  n(g3t, "unshiftContainer");
  function T3t(t, e) {
    RA._assertUnremoved.call(this);
    let s = z0.call(this, e), r = this.node[t];
    return s3.default.get({
      parentPath: this,
      parent: this.node,
      container: r,
      listKey: t,
      key: r.length
    }).setContext(this.context).replaceWithMultiple(s);
  }
  n(T3t, "pushContainer");
  Ga.hoist = /* @__PURE__ */ n(function(e = this.scope) {
    return new s3t.default(this, e).run();
  }, "hoist");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/parser/lib/index.js
var Loe = g((nT) => {
  "use strict";
  Object.defineProperty(nT, "__esModule", {
    value: !0
  });
  function b3t(t, e) {
    if (t == null) return {};
    var s = {};
    for (var r in t) if ({}.hasOwnProperty.call(t, r)) {
      if (e.includes(r)) continue;
      s[r] = t[r];
    }
    return s;
  }
  n(b3t, "_objectWithoutPropertiesLoose");
  var Pl = class {
    static {
      n(this, "Position");
    }
    constructor(e, s, r) {
      this.line = void 0, this.column = void 0, this.index = void 0, this.line = e, this.column = s, this.index = r;
    }
  }, Km = class {
    static {
      n(this, "SourceLocation");
    }
    constructor(e, s) {
      this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = e, this.end = s;
    }
  };
  function Fn(t, e) {
    let {
      line: s,
      column: r,
      index: i
    } = t;
    return new Pl(s, r + e, i + e);
  }
  n(Fn, "createPositionWithColumnOffset");
  var ioe = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED", x3t = {
    ImportMetaOutsideModule: {
      message: `import.meta may appear only with 'sourceType: "module"'`,
      code: ioe
    },
    ImportOutsideModule: {
      message: `'import' and 'export' may appear only with 'sourceType: "module"'`,
      code: ioe
    }
  }, noe = {
    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"
  }, KA = /* @__PURE__ */ n((t) => t.type === "UpdateExpression" ? noe.UpdateExpression[`${t.prefix}`] : noe[t.type], "toNodeDescription"), S3t = {
    AccessorIsGenerator: /* @__PURE__ */ n(({
      kind: t
    }) => `A ${t}ter cannot be a generator.`, "AccessorIsGenerator"),
    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: /* @__PURE__ */ n(({
      kind: t
    }) => `Missing initializer in ${t} declaration.`, "DeclarationMissingInitializer"),
    DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(deco\
rator)(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 s\
ame 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: /* @__PURE__ */ n(({
      exportName: t
    }) => `\`${t}\` has already been exported. Exported identifiers must be unique.`, "DuplicateExport"),
    DuplicateProto: "Redefinition of __proto__ property.",
    DuplicateRegExpFlags: "Duplicate regular expression flag.",
    DynamicImportPhaseRequiresImportExpressions: /* @__PURE__ */ n(({
      phase: t
    }) => `'import.${t}(...)' can only be parsed when using the 'createImportExpressions' option.`, "DynamicImportPhaseRequiresImportExpress\
ions"),
    ElementAfterRest: "Rest element must be last element.",
    EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
    ExportBindingIsString: /* @__PURE__ */ n(({
      localName: t,
      exportName: e
    }) => `A string literal cannot be used as an exported binding without \`from\`.
- Did you mean \`export { '${t}' as '${e}' } from 'some-module'\`?`, "ExportBindingIsString"),
    ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
    ForInOfLoopInitializer: /* @__PURE__ */ n(({
      type: t
    }) => `'${t === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, "ForInOfLoopInitialize\
r"),
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Unsyntactic ${t === "BreakStatement" ? "break" : "continue"}.`, "IllegalBreakContinue"),
    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: /* @__PURE__ */ n(({
      importName: t
    }) => `A string literal cannot be used as an imported binding.
- Did you mean \`import { "${t}" as foo }\`?`, "ImportBindingIsString"),
    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: /* @__PURE__ */ n(({
      radix: t
    }) => `Expected number in radix ${t}.`, "InvalidDigit"),
    InvalidEscapeSequence: "Bad character escape sequence.",
    InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
    InvalidEscapedReservedWord: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Escape sequence in keyword ${t}.`, "InvalidEscapedReservedWord"),
    InvalidIdentifier: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Invalid identifier ${t}.`, "InvalidIdentifier"),
    InvalidLhs: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid left-hand side in ${KA(t)}.`, "InvalidLhs"),
    InvalidLhsBinding: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Binding invalid left-hand side in ${KA(t)}.`, "InvalidLhsBinding"),
    InvalidLhsOptionalChaining: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid optional chaining in the left-hand side of ${KA(t)}.`, "InvalidLhsOptionalChaining"),
    InvalidNumber: "Invalid number.",
    InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
    InvalidOrUnexpectedToken: /* @__PURE__ */ n(({
      unexpected: t
    }) => `Unexpected character '${t}'.`, "InvalidOrUnexpectedToken"),
    InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
    InvalidPrivateFieldResolution: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private name #${t} is not defined.`, "InvalidPrivateFieldResolution"),
    InvalidPropertyBindingPattern: "Binding member expression.",
    InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
    InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
    LabelRedeclaration: /* @__PURE__ */ n(({
      labelName: t
    }) => `Label '${t}' is already declared.`, "LabelRedeclaration"),
    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: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling the parser plugin: ${t.map((e) => JSON.stringify(e)).join(", ")}.`, "MissingPlugin"),
    MissingOneOfPlugins: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${t.map((e) => JSON.stringify(e)).join(", ")}.`,
    "MissingOneOfPlugins"),
    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: /* @__PURE__ */ n(({
      key: t
    }) => `Duplicate key "${t}" is not allowed in module attributes.`, "ModuleAttributesWithDuplicateKeys"),
    ModuleExportNameHasLoneSurrogate: /* @__PURE__ */ n(({
      surrogateCharCode: t
    }) => `An export name cannot include a lone surrogate, found '\\u${t.toString(16)}'.`, "ModuleExportNameHasLoneSurrogate"),
    ModuleExportUndefined: /* @__PURE__ */ n(({
      localName: t
    }) => `Export '${t}' is not defined.`, "ModuleExportUndefined"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private names are only allowed in property accesses (\`obj.#${t}\`) or in \`in\` expressions (\`#${t} in obj\`).`, "PrivateInExpe\
ctedIn"),
    PrivateNameRedeclaration: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Duplicate private name #${t}.`, "PrivateNameRedeclaration"),
    RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 're\
cordAndTuple' 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 th\
e '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 sta\
tement.",
    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 n\
ot 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 'reco\
rdAndTuple' 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: /* @__PURE__ */ n(({
      keyword: t
    }) => `Unexpected keyword '${t}'.`, "UnexpectedKeyword"),
    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: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Unexpected reserved word '${t}'.`, "UnexpectedReservedWord"),
    UnexpectedSuper: "'super' is only allowed in object methods and classes.",
    UnexpectedToken: /* @__PURE__ */ n(({
      expected: t,
      unexpected: e
    }) => `Unexpected token${e ? ` '${e}'.` : ""}${t ? `, expected "${t}"` : ""}`, "UnexpectedToken"),
    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: /* @__PURE__ */ n(({
      target: t,
      onlyValidPropertyName: e
    }) => `The only valid meta property for ${t} is ${t}.${e}.`, "UnsupportedMetaProperty"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Identifier '${t}' has already been declared.`, "VarRedeclaration"),
    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."
  }, P3t = {
    StrictDelete: "Deleting local variable in strict mode.",
    StrictEvalArguments: /* @__PURE__ */ n(({
      referenceName: t
    }) => `Assigning to '${t}' in strict mode.`, "StrictEvalArguments"),
    StrictEvalArgumentsBinding: /* @__PURE__ */ n(({
      bindingName: t
    }) => `Binding '${t}' in strict mode.`, "StrictEvalArgumentsBinding"),
    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."
  }, E3t = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]), A3t = Object.
  assign({
    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" opt\
ion.',
    PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
    PipeTopicUnconfiguredToken: /* @__PURE__ */ n(({
      token: t
    }) => `Invalid topic token ${t}. In order to use ${t} as a topic reference, the pipelineOperator plugin must be configured with { "propo\
sal": "hack", "topicToken": "${t}" }.`, "PipeTopicUnconfiguredToken"),
    PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
    PipeUnparenthesizedBody: /* @__PURE__ */ n(({
      type: t
    }) => `Hack-style pipe body cannot be an unparenthesized ${KA({
      type: t
    })}; please wrap it in parentheses.`, "PipeUnparenthesizedBody")
  }, {
    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 "sma\
rt" option.'
  }), v3t = ["message"];
  function aoe(t, e, s) {
    Object.defineProperty(t, e, {
      enumerable: !1,
      configurable: !0,
      value: s
    });
  }
  n(aoe, "defineHidden");
  function C3t({
    toMessage: t,
    code: e,
    reasonCode: s,
    syntaxPlugin: r
  }) {
    let i = s === "MissingPlugin" || s === "MissingOneOfPlugins";
    {
      let a = {
        AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter",
        AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters",
        ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumRefer\
ence",
        SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter",
        SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter",
        SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType"
      };
      a[s] && (s = a[s]);
    }
    return /* @__PURE__ */ n(function a(o, l) {
      let u = new SyntaxError();
      return u.code = e, u.reasonCode = s, u.loc = o, u.pos = o.index, u.syntaxPlugin = r, i && (u.missingPlugin = l.missingPlugin), aoe(u, "\
clone", /* @__PURE__ */ n(function(p = {}) {
        var h;
        let {
          line: f,
          column: d,
          index: m
        } = (h = p.loc) != null ? h : o;
        return a(new Pl(f, d, m), Object.assign({}, l, p.details));
      }, "clone")), aoe(u, "details", l), Object.defineProperty(u, "message", {
        configurable: !0,
        get() {
          let c = `${t(l)} (${o.line}:${o.column})`;
          return this.message = c, c;
        },
        set(c) {
          Object.defineProperty(this, "message", {
            value: c,
            writable: !0
          });
        }
      }), u;
    }, "constructor");
  }
  n(C3t, "toParseErrorConstructor");
  function Ju(t, e) {
    if (Array.isArray(t))
      return (r) => Ju(r, t[0]);
    let s = {};
    for (let r of Object.keys(t)) {
      let i = t[r], a = typeof i == "string" ? {
        message: /* @__PURE__ */ n(() => i, "message")
      } : typeof i == "function" ? {
        message: i
      } : i, {
        message: o
      } = a, l = b3t(a, v3t), u = typeof o == "string" ? () => o : o;
      s[r] = C3t(Object.assign({
        code: "BABEL_PARSER_SYNTAX_ERROR",
        reasonCode: r,
        toMessage: u
      }, e ? {
        syntaxPlugin: e
      } : {}, l));
    }
    return s;
  }
  n(Ju, "ParseErrorEnum");
  var te = Object.assign({}, Ju(x3t), Ju(S3t), Ju(P3t), Ju`pipelineOperator`(A3t));
  function w3t() {
    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
    };
  }
  n(w3t, "createDefaultOptions");
  function I3t(t) {
    let e = w3t();
    if (t == null)
      return e;
    if (t.annexB != null && t.annexB !== !1)
      throw new Error("The `annexB` option can only be set to `false`.");
    for (let s of Object.keys(e))
      t[s] != null && (e[s] = t[s]);
    if (e.startLine === 1)
      t.startIndex == null && e.startColumn > 0 ? e.startIndex = e.startColumn : t.startColumn == null && e.startIndex > 0 && (e.startColumn =
      e.startIndex);
    else if ((t.startColumn == null || t.startIndex == null) && t.startIndex != null)
      throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
    return e;
  }
  n(I3t, "getOptions");
  var {
    defineProperty: N3t
  } = Object, ooe = /* @__PURE__ */ n((t, e) => {
    t && N3t(t, e, {
      enumerable: !1,
      value: t[e]
    });
  }, "toUnenumerable");
  function G0(t) {
    return ooe(t.loc.start, "index"), ooe(t.loc.end, "index"), t;
  }
  n(G0, "toESTreeLocation");
  var k3t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "ESTreeParserMixin");
    }
    parse() {
      let s = G0(super.parse());
      return this.optionFlags & 128 && (s.tokens = s.tokens.map(G0)), s;
    }
    parseRegExpLiteral({
      pattern: s,
      flags: r
    }) {
      let i = null;
      try {
        i = new RegExp(s, r);
      } catch {
      }
      let a = this.estreeParseLiteral(i);
      return a.regex = {
        pattern: s,
        flags: r
      }, a;
    }
    parseBigIntLiteral(s) {
      let r;
      try {
        r = BigInt(s);
      } catch {
        r = null;
      }
      let i = this.estreeParseLiteral(r);
      return i.bigint = String(i.value || s), i;
    }
    parseDecimalLiteral(s) {
      let i = this.estreeParseLiteral(null);
      return i.decimal = String(i.value || s), i;
    }
    estreeParseLiteral(s) {
      return this.parseLiteral(s, "Literal");
    }
    parseStringLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNumericLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNullLiteral() {
      return this.estreeParseLiteral(null);
    }
    parseBooleanLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    directiveToStmt(s) {
      let r = s.value;
      delete s.value, r.type = "Literal", r.raw = r.extra.raw, r.value = r.extra.expressionValue;
      let i = s;
      return i.type = "ExpressionStatement", i.expression = r, i.directive = r.extra.rawValue, delete r.extra, i;
    }
    initFunction(s, r) {
      super.initFunction(s, r), s.expression = !1;
    }
    checkDeclaration(s) {
      s != null && this.isObjectProperty(s) ? this.checkDeclaration(s.value) : super.checkDeclaration(s);
    }
    getObjectOrClassMethodParams(s) {
      return s.value.params;
    }
    isValidDirective(s) {
      var r;
      return s.type === "ExpressionStatement" && s.expression.type === "Literal" && typeof s.expression.value == "string" && !((r = s.expression.
      extra) != null && r.parenthesized);
    }
    parseBlockBody(s, r, i, a, o) {
      super.parseBlockBody(s, r, i, a, o);
      let l = s.directives.map((u) => this.directiveToStmt(u));
      s.body = l.concat(s.body), delete s.directives;
    }
    parsePrivateName() {
      let s = super.parsePrivateName();
      return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(s) : s;
    }
    convertPrivateNameToPrivateIdentifier(s) {
      let r = super.getPrivateNameSV(s);
      return s = s, delete s.id, s.name = r, s.type = "PrivateIdentifier", s;
    }
    isPrivateName(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.type === "PrivateIdentifier" : super.isPrivateName(s);
    }
    getPrivateNameSV(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.name : super.getPrivateNameSV(s);
    }
    parseLiteral(s, r) {
      let i = super.parseLiteral(s, r);
      return i.raw = i.extra.raw, delete i.extra, i;
    }
    parseFunctionBody(s, r, i = !1) {
      super.parseFunctionBody(s, r, i), s.expression = s.body.type !== "BlockStatement";
    }
    parseMethod(s, r, i, a, o, l, u = !1) {
      let c = this.startNode();
      c.kind = s.kind, c = super.parseMethod(c, r, i, a, o, l, u), c.type = "FunctionExpression", delete c.kind, s.value = c;
      let {
        typeParameters: p
      } = s;
      return p && (delete s.typeParameters, c.typeParameters = p, this.resetStartLocationFromNode(c, p)), l === "ClassPrivateMethod" && (s.computed =
      !1), this.finishNode(s, "MethodDefinition");
    }
    nameIsConstructor(s) {
      return s.type === "Literal" ? s.value === "constructor" : super.nameIsConstructor(s);
    }
    parseClassProperty(...s) {
      let r = super.parseClassProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition"), r;
    }
    parseClassPrivateProperty(...s) {
      let r = super.parseClassPrivateProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition", r.computed = !1), r;
    }
    parseObjectMethod(s, r, i, a, o) {
      let l = super.parseObjectMethod(s, r, i, a, o);
      return l && (l.type = "Property", l.kind === "method" && (l.kind = "init"), l.shorthand = !1), l;
    }
    parseObjectProperty(s, r, i, a) {
      let o = super.parseObjectProperty(s, r, i, a);
      return o && (o.kind = "init", o.type = "Property"), o;
    }
    isValidLVal(s, r, i) {
      return s === "Property" ? "value" : super.isValidLVal(s, r, i);
    }
    isAssignable(s, r) {
      return s != null && this.isObjectProperty(s) ? this.isAssignable(s.value, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      if (s != null && this.isObjectProperty(s)) {
        let {
          key: i,
          value: a
        } = s;
        this.isPrivateName(i) && this.classScope.usePrivateName(this.getPrivateNameSV(i), i.loc.start), this.toAssignable(a, r);
      } else
        super.toAssignable(s, r);
    }
    toAssignableObjectExpressionProp(s, r, i) {
      s.type === "Property" && (s.kind === "get" || s.kind === "set") ? this.raise(te.PatternHasAccessor, s.key) : s.type === "Property" && s.
      method ? this.raise(te.PatternHasMethod, s.key) : super.toAssignableObjectExpressionProp(s, r, i);
    }
    finishCallExpression(s, r) {
      let i = super.finishCallExpression(s, r);
      if (i.callee.type === "Import") {
        var a, o;
        i.type = "ImportExpression", i.source = i.arguments[0], i.options = (a = i.arguments[1]) != null ? a : null, i.attributes = (o = i.arguments[1]) !=
        null ? o : null, delete i.arguments, delete i.callee;
      }
      return i;
    }
    toReferencedArguments(s) {
      s.type !== "ImportExpression" && super.toReferencedArguments(s);
    }
    parseExport(s, r) {
      let i = this.state.lastTokStartLoc, a = super.parseExport(s, r);
      switch (a.type) {
        case "ExportAllDeclaration":
          a.exported = null;
          break;
        case "ExportNamedDeclaration":
          a.specifiers.length === 1 && a.specifiers[0].type === "ExportNamespaceSpecifier" && (a.type = "ExportAllDeclaration", a.exported =
          a.specifiers[0].exported, delete a.specifiers);
        case "ExportDefaultDeclaration":
          {
            var o;
            let {
              declaration: l
            } = a;
            l?.type === "ClassDeclaration" && ((o = l.decorators) == null ? void 0 : o.length) > 0 && l.start === a.start && this.resetStartLocation(
            a, i);
          }
          break;
      }
      return a;
    }
    parseSubscript(s, r, i, a) {
      let o = super.parseSubscript(s, r, i, a);
      if (a.optionalChainMember) {
        if ((o.type === "OptionalMemberExpression" || o.type === "OptionalCallExpression") && (o.type = o.type.substring(8)), a.stop) {
          let l = this.startNodeAtNode(o);
          return l.expression = o, this.finishNode(l, "ChainExpression");
        }
      } else (o.type === "MemberExpression" || o.type === "CallExpression") && (o.optional = !1);
      return o;
    }
    isOptionalMemberExpression(s) {
      return s.type === "ChainExpression" ? s.expression.type === "MemberExpression" : super.isOptionalMemberExpression(s);
    }
    hasPropertyAsPrivateName(s) {
      return s.type === "ChainExpression" && (s = s.expression), super.hasPropertyAsPrivateName(s);
    }
    isObjectProperty(s) {
      return s.type === "Property" && s.kind === "init" && !s.method;
    }
    isObjectMethod(s) {
      return s.type === "Property" && (s.method || s.kind === "get" || s.kind === "set");
    }
    finishNodeAt(s, r, i) {
      return G0(super.finishNodeAt(s, r, i));
    }
    resetStartLocation(s, r) {
      super.resetStartLocation(s, r), G0(s);
    }
    resetEndLocation(s, r = this.state.lastTokEndLoc) {
      super.resetEndLocation(s, r), G0(s);
    }
  }, "estree"), Sf = class {
    static {
      n(this, "TokContext");
    }
    constructor(e, s) {
      this.token = void 0, this.preserveSpace = void 0, this.token = e, this.preserveSpace = !!s;
    }
  }, rr = {
    brace: new Sf("{"),
    j_oTag: new Sf("<tag"),
    j_cTag: new Sf("</tag"),
    j_expr: new Sf("<tag>...</tag>", !0)
  };
  rr.template = new Sf("`", !0);
  var hs = !0, We = !0, n3 = !0, Q0 = !0, vp = !0, D3t = !0, $A = class {
    static {
      n(this, "ExportedTokenType");
    }
    constructor(e, s = {}) {
      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 = e, this.keyword = s.keyword,
      this.beforeExpr = !!s.beforeExpr, this.startsExpr = !!s.startsExpr, this.rightAssociative = !!s.rightAssociative, this.isLoop = !!s.isLoop,
      this.isAssign = !!s.isAssign, this.prefix = !!s.prefix, this.postfix = !!s.postfix, this.binop = s.binop != null ? s.binop : null, this.
      updateContext = null;
    }
  }, k3 = /* @__PURE__ */ new Map();
  function Ms(t, e = {}) {
    e.keyword = t;
    let s = Nt(t, e);
    return k3.set(t, s), s;
  }
  n(Ms, "createKeyword");
  function Mn(t, e) {
    return Nt(t, {
      beforeExpr: hs,
      binop: e
    });
  }
  n(Mn, "createBinop");
  var tT = -1, $u = [], D3 = [], O3 = [], _3 = [], L3 = [], B3 = [];
  function Nt(t, e = {}) {
    var s, r, i, a;
    return ++tT, D3.push(t), O3.push((s = e.binop) != null ? s : -1), _3.push((r = e.beforeExpr) != null ? r : !1), L3.push((i = e.startsExpr) !=
    null ? i : !1), B3.push((a = e.prefix) != null ? a : !1), $u.push(new $A(t, e)), tT;
  }
  n(Nt, "createToken");
  function ps(t, e = {}) {
    var s, r, i, a;
    return ++tT, k3.set(t, tT), D3.push(t), O3.push((s = e.binop) != null ? s : -1), _3.push((r = e.beforeExpr) != null ? r : !1), L3.push((i =
    e.startsExpr) != null ? i : !1), B3.push((a = e.prefix) != null ? a : !1), $u.push(new $A("name", e)), tT;
  }
  n(ps, "createKeywordLike");
  var O3t = {
    bracketL: Nt("[", {
      beforeExpr: hs,
      startsExpr: We
    }),
    bracketHashL: Nt("#[", {
      beforeExpr: hs,
      startsExpr: We
    }),
    bracketBarL: Nt("[|", {
      beforeExpr: hs,
      startsExpr: We
    }),
    bracketR: Nt("]"),
    bracketBarR: Nt("|]"),
    braceL: Nt("{", {
      beforeExpr: hs,
      startsExpr: We
    }),
    braceBarL: Nt("{|", {
      beforeExpr: hs,
      startsExpr: We
    }),
    braceHashL: Nt("#{", {
      beforeExpr: hs,
      startsExpr: We
    }),
    braceR: Nt("}"),
    braceBarR: Nt("|}"),
    parenL: Nt("(", {
      beforeExpr: hs,
      startsExpr: We
    }),
    parenR: Nt(")"),
    comma: Nt(",", {
      beforeExpr: hs
    }),
    semi: Nt(";", {
      beforeExpr: hs
    }),
    colon: Nt(":", {
      beforeExpr: hs
    }),
    doubleColon: Nt("::", {
      beforeExpr: hs
    }),
    dot: Nt("."),
    question: Nt("?", {
      beforeExpr: hs
    }),
    questionDot: Nt("?."),
    arrow: Nt("=>", {
      beforeExpr: hs
    }),
    template: Nt("template"),
    ellipsis: Nt("...", {
      beforeExpr: hs
    }),
    backQuote: Nt("`", {
      startsExpr: We
    }),
    dollarBraceL: Nt("${", {
      beforeExpr: hs,
      startsExpr: We
    }),
    templateTail: Nt("...`", {
      startsExpr: We
    }),
    templateNonTail: Nt("...${", {
      beforeExpr: hs,
      startsExpr: We
    }),
    at: Nt("@"),
    hash: Nt("#", {
      startsExpr: We
    }),
    interpreterDirective: Nt("#!..."),
    eq: Nt("=", {
      beforeExpr: hs,
      isAssign: Q0
    }),
    assign: Nt("_=", {
      beforeExpr: hs,
      isAssign: Q0
    }),
    slashAssign: Nt("_=", {
      beforeExpr: hs,
      isAssign: Q0
    }),
    xorAssign: Nt("_=", {
      beforeExpr: hs,
      isAssign: Q0
    }),
    moduloAssign: Nt("_=", {
      beforeExpr: hs,
      isAssign: Q0
    }),
    incDec: Nt("++/--", {
      prefix: vp,
      postfix: D3t,
      startsExpr: We
    }),
    bang: Nt("!", {
      beforeExpr: hs,
      prefix: vp,
      startsExpr: We
    }),
    tilde: Nt("~", {
      beforeExpr: hs,
      prefix: vp,
      startsExpr: We
    }),
    doubleCaret: Nt("^^", {
      startsExpr: We
    }),
    doubleAt: Nt("@@", {
      startsExpr: We
    }),
    pipeline: Mn("|>", 0),
    nullishCoalescing: Mn("??", 1),
    logicalOR: Mn("||", 1),
    logicalAND: Mn("&&", 2),
    bitwiseOR: Mn("|", 3),
    bitwiseXOR: Mn("^", 4),
    bitwiseAND: Mn("&", 5),
    equality: Mn("==/!=/===/!==", 6),
    lt: Mn("</>/<=/>=", 7),
    gt: Mn("</>/<=/>=", 7),
    relational: Mn("</>/<=/>=", 7),
    bitShift: Mn("<</>>/>>>", 8),
    bitShiftL: Mn("<</>>/>>>", 8),
    bitShiftR: Mn("<</>>/>>>", 8),
    plusMin: Nt("+/-", {
      beforeExpr: hs,
      binop: 9,
      prefix: vp,
      startsExpr: We
    }),
    modulo: Nt("%", {
      binop: 10,
      startsExpr: We
    }),
    star: Nt("*", {
      binop: 10
    }),
    slash: Mn("/", 10),
    exponent: Nt("**", {
      beforeExpr: hs,
      binop: 11,
      rightAssociative: !0
    }),
    _in: Ms("in", {
      beforeExpr: hs,
      binop: 7
    }),
    _instanceof: Ms("instanceof", {
      beforeExpr: hs,
      binop: 7
    }),
    _break: Ms("break"),
    _case: Ms("case", {
      beforeExpr: hs
    }),
    _catch: Ms("catch"),
    _continue: Ms("continue"),
    _debugger: Ms("debugger"),
    _default: Ms("default", {
      beforeExpr: hs
    }),
    _else: Ms("else", {
      beforeExpr: hs
    }),
    _finally: Ms("finally"),
    _function: Ms("function", {
      startsExpr: We
    }),
    _if: Ms("if"),
    _return: Ms("return", {
      beforeExpr: hs
    }),
    _switch: Ms("switch"),
    _throw: Ms("throw", {
      beforeExpr: hs,
      prefix: vp,
      startsExpr: We
    }),
    _try: Ms("try"),
    _var: Ms("var"),
    _const: Ms("const"),
    _with: Ms("with"),
    _new: Ms("new", {
      beforeExpr: hs,
      startsExpr: We
    }),
    _this: Ms("this", {
      startsExpr: We
    }),
    _super: Ms("super", {
      startsExpr: We
    }),
    _class: Ms("class", {
      startsExpr: We
    }),
    _extends: Ms("extends", {
      beforeExpr: hs
    }),
    _export: Ms("export"),
    _import: Ms("import", {
      startsExpr: We
    }),
    _null: Ms("null", {
      startsExpr: We
    }),
    _true: Ms("true", {
      startsExpr: We
    }),
    _false: Ms("false", {
      startsExpr: We
    }),
    _typeof: Ms("typeof", {
      beforeExpr: hs,
      prefix: vp,
      startsExpr: We
    }),
    _void: Ms("void", {
      beforeExpr: hs,
      prefix: vp,
      startsExpr: We
    }),
    _delete: Ms("delete", {
      beforeExpr: hs,
      prefix: vp,
      startsExpr: We
    }),
    _do: Ms("do", {
      isLoop: n3,
      beforeExpr: hs
    }),
    _for: Ms("for", {
      isLoop: n3
    }),
    _while: Ms("while", {
      isLoop: n3
    }),
    _as: ps("as", {
      startsExpr: We
    }),
    _assert: ps("assert", {
      startsExpr: We
    }),
    _async: ps("async", {
      startsExpr: We
    }),
    _await: ps("await", {
      startsExpr: We
    }),
    _defer: ps("defer", {
      startsExpr: We
    }),
    _from: ps("from", {
      startsExpr: We
    }),
    _get: ps("get", {
      startsExpr: We
    }),
    _let: ps("let", {
      startsExpr: We
    }),
    _meta: ps("meta", {
      startsExpr: We
    }),
    _of: ps("of", {
      startsExpr: We
    }),
    _sent: ps("sent", {
      startsExpr: We
    }),
    _set: ps("set", {
      startsExpr: We
    }),
    _source: ps("source", {
      startsExpr: We
    }),
    _static: ps("static", {
      startsExpr: We
    }),
    _using: ps("using", {
      startsExpr: We
    }),
    _yield: ps("yield", {
      startsExpr: We
    }),
    _asserts: ps("asserts", {
      startsExpr: We
    }),
    _checks: ps("checks", {
      startsExpr: We
    }),
    _exports: ps("exports", {
      startsExpr: We
    }),
    _global: ps("global", {
      startsExpr: We
    }),
    _implements: ps("implements", {
      startsExpr: We
    }),
    _intrinsic: ps("intrinsic", {
      startsExpr: We
    }),
    _infer: ps("infer", {
      startsExpr: We
    }),
    _is: ps("is", {
      startsExpr: We
    }),
    _mixins: ps("mixins", {
      startsExpr: We
    }),
    _proto: ps("proto", {
      startsExpr: We
    }),
    _require: ps("require", {
      startsExpr: We
    }),
    _satisfies: ps("satisfies", {
      startsExpr: We
    }),
    _keyof: ps("keyof", {
      startsExpr: We
    }),
    _readonly: ps("readonly", {
      startsExpr: We
    }),
    _unique: ps("unique", {
      startsExpr: We
    }),
    _abstract: ps("abstract", {
      startsExpr: We
    }),
    _declare: ps("declare", {
      startsExpr: We
    }),
    _enum: ps("enum", {
      startsExpr: We
    }),
    _module: ps("module", {
      startsExpr: We
    }),
    _namespace: ps("namespace", {
      startsExpr: We
    }),
    _interface: ps("interface", {
      startsExpr: We
    }),
    _type: ps("type", {
      startsExpr: We
    }),
    _opaque: ps("opaque", {
      startsExpr: We
    }),
    name: Nt("name", {
      startsExpr: We
    }),
    placeholder: Nt("%%", {
      startsExpr: !0
    }),
    string: Nt("string", {
      startsExpr: We
    }),
    num: Nt("num", {
      startsExpr: We
    }),
    bigint: Nt("bigint", {
      startsExpr: We
    }),
    decimal: Nt("decimal", {
      startsExpr: We
    }),
    regexp: Nt("regexp", {
      startsExpr: We
    }),
    privateName: Nt("#name", {
      startsExpr: We
    }),
    eof: Nt("eof"),
    jsxName: Nt("jsxName"),
    jsxText: Nt("jsxText", {
      beforeExpr: !0
    }),
    jsxTagStart: Nt("jsxTagStart", {
      startsExpr: !0
    }),
    jsxTagEnd: Nt("jsxTagEnd")
  };
  function ir(t) {
    return t >= 93 && t <= 133;
  }
  n(ir, "tokenIsIdentifier");
  function _3t(t) {
    return t <= 92;
  }
  n(_3t, "tokenKeywordOrIdentifierIsKeyword");
  function Mo(t) {
    return t >= 58 && t <= 133;
  }
  n(Mo, "tokenIsKeywordOrIdentifier");
  function boe(t) {
    return t >= 58 && t <= 137;
  }
  n(boe, "tokenIsLiteralPropertyName");
  function L3t(t) {
    return _3[t];
  }
  n(L3t, "tokenComesBeforeExpression");
  function c3(t) {
    return L3[t];
  }
  n(c3, "tokenCanStartExpression");
  function B3t(t) {
    return t >= 29 && t <= 33;
  }
  n(B3t, "tokenIsAssignment");
  function loe(t) {
    return t >= 129 && t <= 131;
  }
  n(loe, "tokenIsFlowInterfaceOrTypeOrOpaque");
  function M3t(t) {
    return t >= 90 && t <= 92;
  }
  n(M3t, "tokenIsLoop");
  function M3(t) {
    return t >= 58 && t <= 92;
  }
  n(M3, "tokenIsKeyword");
  function F3t(t) {
    return t >= 39 && t <= 59;
  }
  n(F3t, "tokenIsOperator");
  function j3t(t) {
    return t === 34;
  }
  n(j3t, "tokenIsPostfix");
  function R3t(t) {
    return B3[t];
  }
  n(R3t, "tokenIsPrefix");
  function q3t(t) {
    return t >= 121 && t <= 123;
  }
  n(q3t, "tokenIsTSTypeOperator");
  function U3t(t) {
    return t >= 124 && t <= 130;
  }
  n(U3t, "tokenIsTSDeclarationStart");
  function wp(t) {
    return D3[t];
  }
  n(wp, "tokenLabelName");
  function VA(t) {
    return O3[t];
  }
  n(VA, "tokenOperatorPrecedence");
  function K3t(t) {
    return t === 57;
  }
  n(K3t, "tokenIsRightAssociative");
  function HA(t) {
    return t >= 24 && t <= 25;
  }
  n(HA, "tokenIsTemplate");
  function Wu(t) {
    return $u[t];
  }
  n(Wu, "getExportedToken");
  $u[8].updateContext = (t) => {
    t.pop();
  }, $u[5].updateContext = $u[7].updateContext = $u[23].updateContext = (t) => {
    t.push(rr.brace);
  }, $u[22].updateContext = (t) => {
    t[t.length - 1] === rr.template ? t.pop() : t.push(rr.template);
  }, $u[143].updateContext = (t) => {
    t.push(rr.j_expr, rr.j_oTag);
  };
  var F3 = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993\
-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\
\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\
\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\
\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\
\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01\
-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
  xoe = "\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE\
-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\
\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\
\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\
\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65", V3t = new RegExp("[" + F3 + "]"), W3t = new RegExp("[" + F3 + xoe + "]");
  F3 = xoe = null;
  var Soe = [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], $3t = [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 p3(t, e) {
    let s = 65536;
    for (let r = 0, i = e.length; r < i; r += 2) {
      if (s += e[r], s > t) return !1;
      if (s += e[r + 1], s >= t) return !0;
    }
    return !1;
  }
  n(p3, "isInAstralSet");
  function Hu(t) {
    return t < 65 ? t === 36 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && V3t.test(String.fromCharCode(t)) :
    p3(t, Soe);
  }
  n(Hu, "isIdentifierStart");
  function Rm(t) {
    return t < 48 ? t === 36 : t < 58 ? !0 : t < 65 ? !1 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && W3t.test(
    String.fromCharCode(t)) : p3(t, Soe) || p3(t, $3t);
  }
  n(Rm, "isIdentifierChar");
  var j3 = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "swit\
ch", "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"]
  }, H3t = new Set(j3.keyword), J3t = new Set(j3.strict), Y3t = new Set(j3.strictBind);
  function Poe(t, e) {
    return e && t === "await" || t === "enum";
  }
  n(Poe, "isReservedWord");
  function Eoe(t, e) {
    return Poe(t, e) || J3t.has(t);
  }
  n(Eoe, "isStrictReservedWord");
  function Aoe(t) {
    return Y3t.has(t);
  }
  n(Aoe, "isStrictBindOnlyReservedWord");
  function voe(t, e) {
    return Eoe(t, e) || Aoe(t);
  }
  n(voe, "isStrictBindReservedWord");
  function X3t(t) {
    return H3t.has(t);
  }
  n(X3t, "isKeyword");
  function z3t(t, e, s) {
    return t === 64 && e === 64 && Hu(s);
  }
  n(z3t, "isIteratorStart");
  var G3t = /* @__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", "protecte\
d", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
  function Q3t(t) {
    return G3t.has(t);
  }
  n(Q3t, "canBeReservedWord");
  var sT = class {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = e;
    }
  }, rT = class {
    static {
      n(this, "ScopeHandler");
    }
    constructor(e, s) {
      this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = e,
      this.inModule = s;
    }
    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() {
      let e = this.currentThisScopeFlags();
      return (e & 64) > 0 && (e & 2) === 0;
    }
    get inStaticBlock() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 128)
          return !0;
        if (s & 451)
          return !1;
      }
    }
    get inNonArrowFunction() {
      return (this.currentThisScopeFlags() & 2) > 0;
    }
    get treatFunctionsAsVar() {
      return this.treatFunctionsAsVarInScope(this.currentScope());
    }
    createScope(e) {
      return new sT(e);
    }
    enter(e) {
      this.scopeStack.push(this.createScope(e));
    }
    exit() {
      return this.scopeStack.pop().flags;
    }
    treatFunctionsAsVarInScope(e) {
      return !!(e.flags & 130 || !this.parser.inModule && e.flags & 1);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 8 || s & 16) {
        this.checkRedeclarationInScope(i, e, s, r);
        let a = i.names.get(e) || 0;
        s & 16 ? a = a | 4 : (i.firstLexicalName || (i.firstLexicalName = e), a = a | 2), i.names.set(e, a), s & 8 && this.maybeExportDefined(
        i, e);
      } else if (s & 4)
        for (let a = this.scopeStack.length - 1; a >= 0 && (i = this.scopeStack[a], this.checkRedeclarationInScope(i, e, s, r), i.names.set(
        e, (i.names.get(e) || 0) | 1), this.maybeExportDefined(i, e), !(i.flags & 387)); --a)
          ;
      this.parser.inModule && i.flags & 1 && this.undefinedExports.delete(e);
    }
    maybeExportDefined(e, s) {
      this.parser.inModule && e.flags & 1 && this.undefinedExports.delete(s);
    }
    checkRedeclarationInScope(e, s, r, i) {
      this.isRedeclaredInScope(e, s, r) && this.parser.raise(te.VarRedeclaration, i, {
        identifierName: s
      });
    }
    isRedeclaredInScope(e, s, r) {
      if (!(r & 1)) return !1;
      if (r & 8)
        return e.names.has(s);
      let i = e.names.get(s);
      return r & 16 ? (i & 2) > 0 || !this.treatFunctionsAsVarInScope(e) && (i & 1) > 0 : (i & 2) > 0 && !(e.flags & 8 && e.firstLexicalName ===
      s) || !this.treatFunctionsAsVarInScope(e) && (i & 4) > 0;
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      this.scopeStack[0].names.has(s) || this.undefinedExports.set(s, e.loc.start);
    }
    currentScope() {
      return this.scopeStack[this.scopeStack.length - 1];
    }
    currentVarScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 387)
          return s;
      }
    }
    currentThisScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 451 && !(s & 4))
          return s;
      }
    }
  }, h3 = class extends sT {
    static {
      n(this, "FlowScope");
    }
    constructor(...e) {
      super(...e), this.declareFunctions = /* @__PURE__ */ new Set();
    }
  }, f3 = class extends rT {
    static {
      n(this, "FlowScopeHandler");
    }
    createScope(e) {
      return new h3(e);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 2048) {
        this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e), i.declareFunctions.add(e);
        return;
      }
      super.declareName(e, s, r);
    }
    isRedeclaredInScope(e, s, r) {
      if (super.isRedeclaredInScope(e, s, r)) return !0;
      if (r & 2048 && !e.declareFunctions.has(s)) {
        let i = e.names.get(s);
        return (i & 4) > 0 || (i & 2) > 0;
      }
      return !1;
    }
    checkLocalExport(e) {
      this.scopeStack[0].declareFunctions.has(e.name) || super.checkLocalExport(e);
    }
  }, d3 = class {
    static {
      n(this, "BaseParser");
    }
    constructor() {
      this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
    }
    sourceToOffsetPos(e) {
      return e + this.startIndex;
    }
    offsetToSourcePos(e) {
      return e - this.startIndex;
    }
    hasPlugin(e) {
      if (typeof e == "string")
        return this.plugins.has(e);
      {
        let [s, r] = e;
        if (!this.hasPlugin(s))
          return !1;
        let i = this.plugins.get(s);
        for (let a of Object.keys(r))
          if (i?.[a] !== r[a])
            return !1;
        return !0;
      }
    }
    getPluginOption(e, s) {
      var r;
      return (r = this.plugins.get(e)) == null ? void 0 : r[s];
    }
  };
  function Coe(t, e) {
    t.trailingComments === void 0 ? t.trailingComments = e : t.trailingComments.unshift(...e);
  }
  n(Coe, "setTrailingComments");
  function Z3t(t, e) {
    t.leadingComments === void 0 ? t.leadingComments = e : t.leadingComments.unshift(...e);
  }
  n(Z3t, "setLeadingComments");
  function iT(t, e) {
    t.innerComments === void 0 ? t.innerComments = e : t.innerComments.unshift(...e);
  }
  n(iT, "setInnerComments");
  function bf(t, e, s) {
    let r = null, i = e.length;
    for (; r === null && i > 0; )
      r = e[--i];
    r === null || r.start > s.start ? iT(t, s.comments) : Coe(r, s.comments);
  }
  n(bf, "adjustInnerComments");
  var m3 = class extends d3 {
    static {
      n(this, "CommentsParser");
    }
    addComment(e) {
      this.filename && (e.loc.filename = this.filename);
      let {
        commentsLen: s
      } = this.state;
      this.comments.length !== s && (this.comments.length = s), this.comments.push(e), this.state.commentsLen++;
    }
    processComment(e) {
      let {
        commentStack: s
      } = this.state, r = s.length;
      if (r === 0) return;
      let i = r - 1, a = s[i];
      a.start === e.end && (a.leadingNode = e, i--);
      let {
        start: o
      } = e;
      for (; i >= 0; i--) {
        let l = s[i], u = l.end;
        if (u > o)
          l.containingNode = e, this.finalizeComment(l), s.splice(i, 1);
        else {
          u === o && (l.trailingNode = e);
          break;
        }
      }
    }
    finalizeComment(e) {
      let {
        comments: s
      } = e;
      if (e.leadingNode !== null || e.trailingNode !== null)
        e.leadingNode !== null && Coe(e.leadingNode, s), e.trailingNode !== null && Z3t(e.trailingNode, s);
      else {
        let {
          containingNode: r,
          start: i
        } = e;
        if (this.input.charCodeAt(this.offsetToSourcePos(i) - 1) === 44)
          switch (r.type) {
            case "ObjectExpression":
            case "ObjectPattern":
            case "RecordExpression":
              bf(r, r.properties, e);
              break;
            case "CallExpression":
            case "OptionalCallExpression":
              bf(r, r.arguments, e);
              break;
            case "FunctionDeclaration":
            case "FunctionExpression":
            case "ArrowFunctionExpression":
            case "ObjectMethod":
            case "ClassMethod":
            case "ClassPrivateMethod":
              bf(r, r.params, e);
              break;
            case "ArrayExpression":
            case "ArrayPattern":
            case "TupleExpression":
              bf(r, r.elements, e);
              break;
            case "ExportNamedDeclaration":
            case "ImportDeclaration":
              bf(r, r.specifiers, e);
              break;
            case "TSEnumDeclaration":
              bf(r, r.members, e);
              break;
            case "TSEnumBody":
              bf(r, r.members, e);
              break;
            default:
              iT(r, s);
          }
        else
          iT(r, s);
      }
    }
    finalizeRemainingComments() {
      let {
        commentStack: e
      } = this.state;
      for (let s = e.length - 1; s >= 0; s--)
        this.finalizeComment(e[s]);
      this.state.commentStack = [];
    }
    resetPreviousNodeTrailingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      if (r === 0) return;
      let i = s[r - 1];
      i.leadingNode === e && (i.leadingNode = null);
    }
    resetPreviousIdentifierLeadingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      r !== 0 && (s[r - 1].trailingNode === e ? s[r - 1].trailingNode = null : r >= 2 && s[r - 2].trailingNode === e && (s[r - 2].trailingNode =
      null));
    }
    takeSurroundingComments(e, s, r) {
      let {
        commentStack: i
      } = this.state, a = i.length;
      if (a === 0) return;
      let o = a - 1;
      for (; o >= 0; o--) {
        let l = i[o], u = l.end;
        if (l.start === r)
          l.leadingNode = e;
        else if (u === s)
          l.trailingNode = e;
        else if (u < s)
          break;
      }
    }
  }, e4t = /\r\n|[\r\n\u2028\u2029]/, qA = new RegExp(e4t.source, "g");
  function qm(t) {
    switch (t) {
      case 10:
      case 13:
      case 8232:
      case 8233:
        return !0;
      default:
        return !1;
    }
  }
  n(qm, "isNewLine");
  function uoe(t, e, s) {
    for (let r = e; r < s; r++)
      if (qm(t.charCodeAt(r)))
        return !0;
    return !1;
  }
  n(uoe, "hasNewLine");
  var a3 = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, o3 = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;
  function t4t(t) {
    switch (t) {
      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;
    }
  }
  n(t4t, "isWhitespace");
  var y3 = class t {
    static {
      n(this, "State");
    }
    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 = [rr.brace], this.firstInvalidTemplateEscapePos = null,
      this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
    }
    get strict() {
      return (this.flags & 1) > 0;
    }
    set strict(e) {
      e ? this.flags |= 1 : this.flags &= -2;
    }
    init({
      strictMode: e,
      sourceType: s,
      startIndex: r,
      startLine: i,
      startColumn: a
    }) {
      this.strict = e === !1 ? !1 : e === !0 ? !0 : s === "module", this.startIndex = r, this.curLine = i, this.lineStart = -a, this.startLoc =
      this.endLoc = new Pl(i, a, r);
    }
    get maybeInArrowParameters() {
      return (this.flags & 2) > 0;
    }
    set maybeInArrowParameters(e) {
      e ? this.flags |= 2 : this.flags &= -3;
    }
    get inType() {
      return (this.flags & 4) > 0;
    }
    set inType(e) {
      e ? this.flags |= 4 : this.flags &= -5;
    }
    get noAnonFunctionType() {
      return (this.flags & 8) > 0;
    }
    set noAnonFunctionType(e) {
      e ? this.flags |= 8 : this.flags &= -9;
    }
    get hasFlowComment() {
      return (this.flags & 16) > 0;
    }
    set hasFlowComment(e) {
      e ? this.flags |= 16 : this.flags &= -17;
    }
    get isAmbientContext() {
      return (this.flags & 32) > 0;
    }
    set isAmbientContext(e) {
      e ? this.flags |= 32 : this.flags &= -33;
    }
    get inAbstractClass() {
      return (this.flags & 64) > 0;
    }
    set inAbstractClass(e) {
      e ? this.flags |= 64 : this.flags &= -65;
    }
    get inDisallowConditionalTypesContext() {
      return (this.flags & 128) > 0;
    }
    set inDisallowConditionalTypesContext(e) {
      e ? this.flags |= 128 : this.flags &= -129;
    }
    get soloAwait() {
      return (this.flags & 256) > 0;
    }
    set soloAwait(e) {
      e ? this.flags |= 256 : this.flags &= -257;
    }
    get inFSharpPipelineDirectBody() {
      return (this.flags & 512) > 0;
    }
    set inFSharpPipelineDirectBody(e) {
      e ? this.flags |= 512 : this.flags &= -513;
    }
    get canStartJSXElement() {
      return (this.flags & 1024) > 0;
    }
    set canStartJSXElement(e) {
      e ? this.flags |= 1024 : this.flags &= -1025;
    }
    get containsEsc() {
      return (this.flags & 2048) > 0;
    }
    set containsEsc(e) {
      e ? this.flags |= 2048 : this.flags &= -2049;
    }
    get hasTopLevelAwait() {
      return (this.flags & 4096) > 0;
    }
    set hasTopLevelAwait(e) {
      e ? this.flags |= 4096 : this.flags &= -4097;
    }
    curPosition() {
      return new Pl(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex);
    }
    clone() {
      let e = new t();
      return e.flags = this.flags, e.startIndex = this.startIndex, e.curLine = this.curLine, e.lineStart = this.lineStart, e.startLoc = this.
      startLoc, e.endLoc = this.endLoc, e.errors = this.errors.slice(), e.potentialArrowAt = this.potentialArrowAt, e.noArrowAt = this.noArrowAt.
      slice(), e.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), e.topicContext = this.topicContext, e.labels = this.labels.
      slice(), e.commentsLen = this.commentsLen, e.commentStack = this.commentStack.slice(), e.pos = this.pos, e.type = this.type, e.value =
      this.value, e.start = this.start, e.end = this.end, e.lastTokEndLoc = this.lastTokEndLoc, e.lastTokStartLoc = this.lastTokStartLoc, e.
      context = this.context.slice(), e.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, e.strictErrors = this.strictErrors,
      e.tokensLength = this.tokensLength, e;
    }
  }, s4t = /* @__PURE__ */ n(function(e) {
    return e >= 48 && e <= 57;
  }, "isDigit"), coe = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, UA = {
    bin: /* @__PURE__ */ n((t) => t === 48 || t === 49, "bin"),
    oct: /* @__PURE__ */ n((t) => t >= 48 && t <= 55, "oct"),
    dec: /* @__PURE__ */ n((t) => t >= 48 && t <= 57, "dec"),
    hex: /* @__PURE__ */ n((t) => t >= 48 && t <= 57 || t >= 65 && t <= 70 || t >= 97 && t <= 102, "hex")
  };
  function poe(t, e, s, r, i, a) {
    let o = s, l = r, u = i, c = "", p = null, h = s, {
      length: f
    } = e;
    for (; ; ) {
      if (s >= f) {
        a.unterminated(o, l, u), c += e.slice(h, s);
        break;
      }
      let d = e.charCodeAt(s);
      if (r4t(t, d, e, s)) {
        c += e.slice(h, s);
        break;
      }
      if (d === 92) {
        c += e.slice(h, s);
        let m = i4t(e, s, r, i, t === "template", a);
        m.ch === null && !p ? p = {
          pos: s,
          lineStart: r,
          curLine: i
        } : c += m.ch, {
          pos: s,
          lineStart: r,
          curLine: i
        } = m, h = s;
      } else d === 8232 || d === 8233 ? (++s, ++i, r = s) : d === 10 || d === 13 ? t === "template" ? (c += e.slice(h, s) + `
`, ++s, d === 13 && e.charCodeAt(s) === 10 && ++s, ++i, h = r = s) : a.unterminated(o, l, u) : ++s;
    }
    return {
      pos: s,
      str: c,
      firstInvalidLoc: p,
      lineStart: r,
      curLine: i,
      containsInvalid: !!p
    };
  }
  n(poe, "readStringContents");
  function r4t(t, e, s, r) {
    return t === "template" ? e === 96 || e === 36 && s.charCodeAt(r + 1) === 123 : e === (t === "double" ? 34 : 39);
  }
  n(r4t, "isStringEnd");
  function i4t(t, e, s, r, i, a) {
    let o = !i;
    e++;
    let l = /* @__PURE__ */ n((c) => ({
      pos: e,
      ch: c,
      lineStart: s,
      curLine: r
    }), "res"), u = t.charCodeAt(e++);
    switch (u) {
      case 110:
        return l(`
`);
      case 114:
        return l("\r");
      case 120: {
        let c;
        return {
          code: c,
          pos: e
        } = g3(t, e, s, r, 2, !1, o, a), l(c === null ? null : String.fromCharCode(c));
      }
      case 117: {
        let c;
        return {
          code: c,
          pos: e
        } = Ioe(t, e, s, r, o, a), l(c === null ? null : String.fromCodePoint(c));
      }
      case 116:
        return l("	");
      case 98:
        return l("\b");
      case 118:
        return l("\v");
      case 102:
        return l("\f");
      case 13:
        t.charCodeAt(e) === 10 && ++e;
      case 10:
        s = e, ++r;
      case 8232:
      case 8233:
        return l("");
      case 56:
      case 57:
        if (i)
          return l(null);
        a.strictNumericEscape(e - 1, s, r);
      default:
        if (u >= 48 && u <= 55) {
          let c = e - 1, h = /^[0-7]+/.exec(t.slice(c, e + 2))[0], f = parseInt(h, 8);
          f > 255 && (h = h.slice(0, -1), f = parseInt(h, 8)), e += h.length - 1;
          let d = t.charCodeAt(e);
          if (h !== "0" || d === 56 || d === 57) {
            if (i)
              return l(null);
            a.strictNumericEscape(c, s, r);
          }
          return l(String.fromCharCode(f));
        }
        return l(String.fromCharCode(u));
    }
  }
  n(i4t, "readEscapedChar");
  function g3(t, e, s, r, i, a, o, l) {
    let u = e, c;
    return {
      n: c,
      pos: e
    } = woe(t, e, s, r, 16, i, a, !1, l, !o), c === null && (o ? l.invalidEscapeSequence(u, s, r) : e = u - 1), {
      code: c,
      pos: e
    };
  }
  n(g3, "readHexChar");
  function woe(t, e, s, r, i, a, o, l, u, c) {
    let p = e, h = i === 16 ? coe.hex : coe.decBinOct, f = i === 16 ? UA.hex : i === 10 ? UA.dec : i === 8 ? UA.oct : UA.bin, d = !1, m = 0;
    for (let y = 0, T = a ?? 1 / 0; y < T; ++y) {
      let b = t.charCodeAt(e), E;
      if (b === 95 && l !== "bail") {
        let V = t.charCodeAt(e - 1), W = t.charCodeAt(e + 1);
        if (l) {
          if (Number.isNaN(W) || !f(W) || h.has(V) || h.has(W)) {
            if (c) return {
              n: null,
              pos: e
            };
            u.unexpectedNumericSeparator(e, s, r);
          }
        } else {
          if (c) return {
            n: null,
            pos: e
          };
          u.numericSeparatorInEscapeSequence(e, s, r);
        }
        ++e;
        continue;
      }
      if (b >= 97 ? E = b - 97 + 10 : b >= 65 ? E = b - 65 + 10 : s4t(b) ? E = b - 48 : E = 1 / 0, E >= i) {
        if (E <= 9 && c)
          return {
            n: null,
            pos: e
          };
        if (E <= 9 && u.invalidDigit(e, s, r, i))
          E = 0;
        else if (o)
          E = 0, d = !0;
        else
          break;
      }
      ++e, m = m * i + E;
    }
    return e === p || a != null && e - p !== a || d ? {
      n: null,
      pos: e
    } : {
      n: m,
      pos: e
    };
  }
  n(woe, "readInt");
  function Ioe(t, e, s, r, i, a) {
    let o = t.charCodeAt(e), l;
    if (o === 123) {
      if (++e, {
        code: l,
        pos: e
      } = g3(t, e, s, r, t.indexOf("}", e) - e, !0, i, a), ++e, l !== null && l > 1114111)
        if (i)
          a.invalidCodePoint(e, s, r);
        else
          return {
            code: null,
            pos: e
          };
    } else
      ({
        code: l,
        pos: e
      } = g3(t, e, s, r, 4, !1, i, a));
    return {
      code: l,
      pos: e
    };
  }
  n(Ioe, "readCodePoint");
  function Z0(t, e, s) {
    return new Pl(s, t - e, t);
  }
  n(Z0, "buildPosition");
  var n4t = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]), Sl = class {
    static {
      n(this, "Token");
    }
    constructor(e) {
      let s = e.startIndex || 0;
      this.type = e.type, this.value = e.value, this.start = s + e.start, this.end = s + e.end, this.loc = new Km(e.startLoc, e.endLoc);
    }
  }, T3 = class extends m3 {
    static {
      n(this, "Tokenizer");
    }
    constructor(e, s) {
      super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
        invalidDigit: /* @__PURE__ */ n((r, i, a, o) => this.optionFlags & 1024 ? (this.raise(te.InvalidDigit, Z0(r, i, a), {
          radix: o
        }), !0) : !1, "invalidDigit"),
        numericSeparatorInEscapeSequence: this.errorBuilder(te.NumericSeparatorInEscapeSequence),
        unexpectedNumericSeparator: this.errorBuilder(te.UnexpectedNumericSeparator)
      }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
        invalidEscapeSequence: this.errorBuilder(te.InvalidEscapeSequence),
        invalidCodePoint: this.errorBuilder(te.InvalidCodePoint)
      }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: /* @__PURE__ */ n((r, i, a) => {
          this.recordStrictModeErrors(te.StrictNumericEscape, Z0(r, i, a));
        }, "strictNumericEscape"),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(te.UnterminatedString, Z0(r - 1, i, a));
        }, "unterminated")
      }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: this.errorBuilder(te.StrictNumericEscape),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(te.UnterminatedTemplate, Z0(r, i, a));
        }, "unterminated")
      }), this.state = new y3(), this.state.init(e), this.input = s, this.length = s.length, this.comments = [], this.isLookahead = !1;
    }
    pushToken(e) {
      this.tokens.length = this.state.tokensLength, this.tokens.push(e), ++this.state.tokensLength;
    }
    next() {
      this.checkKeywordEscapes(), this.optionFlags & 128 && this.pushToken(new Sl(this.state)), this.state.lastTokEndLoc = this.state.endLoc,
      this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
    }
    eat(e) {
      return this.match(e) ? (this.next(), !0) : !1;
    }
    match(e) {
      return this.state.type === e;
    }
    createLookaheadState(e) {
      return {
        pos: e.pos,
        value: null,
        type: e.type,
        start: e.start,
        end: e.end,
        context: [this.curContext()],
        inType: e.inType,
        startLoc: e.startLoc,
        lastTokEndLoc: e.lastTokEndLoc,
        curLine: e.curLine,
        lineStart: e.lineStart,
        curPosition: e.curPosition
      };
    }
    lookahead() {
      let e = this.state;
      this.state = this.createLookaheadState(e), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
      let s = this.state;
      return this.state = e, s;
    }
    nextTokenStart() {
      return this.nextTokenStartSince(this.state.pos);
    }
    nextTokenStartSince(e) {
      return a3.lastIndex = e, a3.test(this.input) ? a3.lastIndex : e;
    }
    lookaheadCharCode() {
      return this.input.charCodeAt(this.nextTokenStart());
    }
    nextTokenInLineStart() {
      return this.nextTokenInLineStartSince(this.state.pos);
    }
    nextTokenInLineStartSince(e) {
      return o3.lastIndex = e, o3.test(this.input) ? o3.lastIndex : e;
    }
    lookaheadInLineCharCode() {
      return this.input.charCodeAt(this.nextTokenInLineStart());
    }
    codePointAtPos(e) {
      let s = this.input.charCodeAt(e);
      if ((s & 64512) === 55296 && ++e < this.input.length) {
        let r = this.input.charCodeAt(e);
        (r & 64512) === 56320 && (s = 65536 + ((s & 1023) << 10) + (r & 1023));
      }
      return s;
    }
    setStrict(e) {
      this.state.strict = e, e && (this.state.strictErrors.forEach(([s, r]) => this.raise(s, r)), 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(e) {
      let s;
      this.isLookahead || (s = this.state.curPosition());
      let r = this.state.pos, i = this.input.indexOf(e, r + 2);
      if (i === -1)
        throw this.raise(te.UnterminatedComment, this.state.curPosition());
      for (this.state.pos = i + e.length, qA.lastIndex = r + 2; qA.test(this.input) && qA.lastIndex <= i; )
        ++this.state.curLine, this.state.lineStart = qA.lastIndex;
      if (this.isLookahead) return;
      let a = {
        type: "CommentBlock",
        value: this.input.slice(r + 2, i),
        start: this.sourceToOffsetPos(r),
        end: this.sourceToOffsetPos(i + e.length),
        loc: new Km(s, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(a), a;
    }
    skipLineComment(e) {
      let s = this.state.pos, r;
      this.isLookahead || (r = this.state.curPosition());
      let i = this.input.charCodeAt(this.state.pos += e);
      if (this.state.pos < this.length)
        for (; !qm(i) && ++this.state.pos < this.length; )
          i = this.input.charCodeAt(this.state.pos);
      if (this.isLookahead) return;
      let a = this.state.pos, l = {
        type: "CommentLine",
        value: this.input.slice(s + e, a),
        start: this.sourceToOffsetPos(s),
        end: this.sourceToOffsetPos(a),
        loc: new Km(r, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(l), l;
    }
    skipSpace() {
      let e = this.state.pos, s = this.optionFlags & 2048 ? [] : null;
      e: for (; this.state.pos < this.length; ) {
        let r = this.input.charCodeAt(this.state.pos);
        switch (r) {
          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: {
                let i = this.skipBlockComment("*/");
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              case 47: {
                let i = this.skipLineComment(2);
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (t4t(r))
              ++this.state.pos;
            else if (r === 45 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 45 && this.input.charCodeAt(i + 2) === 62 && (e === 0 || this.state.lineStart > e)) {
                let a = this.skipLineComment(3);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else if (r === 60 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 33 && this.input.charCodeAt(i + 2) === 45 && this.input.charCodeAt(i + 3) === 45) {
                let a = this.skipLineComment(4);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else
              break e;
        }
      }
      if (s?.length > 0) {
        let r = this.state.pos, i = {
          start: this.sourceToOffsetPos(e),
          end: this.sourceToOffsetPos(r),
          comments: s,
          leadingNode: null,
          trailingNode: null,
          containingNode: null
        };
        this.state.commentStack.push(i);
      }
    }
    finishToken(e, s) {
      this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
      let r = this.state.type;
      this.state.type = e, this.state.value = s, this.isLookahead || this.updateContext(r);
    }
    replaceToken(e) {
      this.state.type = e, this.updateContext();
    }
    readToken_numberSign() {
      if (this.state.pos === 0 && this.readToken_interpreter())
        return;
      let e = this.state.pos + 1, s = this.codePointAtPos(e);
      if (s >= 48 && s <= 57)
        throw this.raise(te.UnexpectedDigitAfterHash, this.state.curPosition());
      if (s === 123 || s === 91 && this.hasPlugin("recordAndTuple")) {
        if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
          throw this.raise(s === 123 ? te.RecordExpressionHashIncorrectStartSyntaxType : te.TupleExpressionHashIncorrectStartSyntaxType, this.
          state.curPosition());
        this.state.pos += 2, s === 123 ? this.finishToken(7) : this.finishToken(1);
      } else Hu(s) ? (++this.state.pos, this.finishToken(139, this.readWord1(s))) : s === 92 ? (++this.state.pos, this.finishToken(139, this.
      readWord1())) : this.finishOp(27, 1);
    }
    readToken_dot() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      if (e >= 48 && e <= 57) {
        this.readNumber(!0);
        return;
      }
      e === 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 e = this.input.charCodeAt(this.state.pos + 1);
      if (e !== 33) return !1;
      let s = this.state.pos;
      for (this.state.pos += 1; !qm(e) && ++this.state.pos < this.length; )
        e = this.input.charCodeAt(this.state.pos);
      let r = this.input.slice(s + 2, this.state.pos);
      return this.finishToken(28, r), !0;
    }
    readToken_mult_modulo(e) {
      let s = e === 42 ? 55 : 54, r = 1, i = this.input.charCodeAt(this.state.pos + 1);
      e === 42 && i === 42 && (r++, i = this.input.charCodeAt(this.state.pos + 2), s = 57), i === 61 && !this.state.inType && (r++, s = e ===
      37 ? 33 : 30), this.finishOp(s, r);
    }
    readToken_pipe_amp(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(e === 124 ? 41 : 42, 2);
        return;
      }
      if (e === 124) {
        if (s === 62) {
          this.finishOp(39, 2);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 125) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(te.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(9);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 93) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(te.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(4);
          return;
        }
      }
      if (s === 61) {
        this.finishOp(30, 2);
        return;
      }
      this.finishOp(e === 124 ? 43 : 45, 1);
    }
    readToken_caret() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      e === 61 && !this.state.inType ? this.finishOp(32, 2) : e === 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(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.finishOp(34, 2);
        return;
      }
      s === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
    }
    readToken_lt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 60) {
        if (this.input.charCodeAt(e + 2) === 61) {
          this.finishOp(30, 3);
          return;
        }
        this.finishOp(51, 2);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(47, 1);
    }
    readToken_gt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 62) {
        let r = this.input.charCodeAt(e + 2) === 62 ? 3 : 2;
        if (this.input.charCodeAt(e + r) === 61) {
          this.finishOp(30, r + 1);
          return;
        }
        this.finishOp(52, r);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(48, 1);
    }
    readToken_eq_excl(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === 61) {
        this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
        return;
      }
      if (e === 61 && s === 62) {
        this.state.pos += 2, this.finishToken(19);
        return;
      }
      this.finishOp(e === 61 ? 29 : 35, 1);
    }
    readToken_question() {
      let e = this.input.charCodeAt(this.state.pos + 1), s = this.input.charCodeAt(this.state.pos + 2);
      e === 63 ? s === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : e === 46 && !(s >= 48 && s <= 57) ? (this.state.pos += 2, this.finishToken(
      18)) : (++this.state.pos, this.finishToken(17));
    }
    getTokenFromCode(e) {
      switch (e) {
        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(te.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(te.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: {
          let s = this.input.charCodeAt(this.state.pos + 1);
          if (s === 120 || s === 88) {
            this.readRadixNumber(16);
            return;
          }
          if (s === 111 || s === 79) {
            this.readRadixNumber(8);
            return;
          }
          if (s === 98 || s === 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(e);
          return;
        case 47:
          this.readToken_slash();
          return;
        case 37:
        case 42:
          this.readToken_mult_modulo(e);
          return;
        case 124:
        case 38:
          this.readToken_pipe_amp(e);
          return;
        case 94:
          this.readToken_caret();
          return;
        case 43:
        case 45:
          this.readToken_plus_min(e);
          return;
        case 60:
          this.readToken_lt();
          return;
        case 62:
          this.readToken_gt();
          return;
        case 61:
        case 33:
          this.readToken_eq_excl(e);
          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 (Hu(e)) {
            this.readWord(e);
            return;
          }
      }
      throw this.raise(te.InvalidOrUnexpectedToken, this.state.curPosition(), {
        unexpected: String.fromCodePoint(e)
      });
    }
    finishOp(e, s) {
      let r = this.input.slice(this.state.pos, this.state.pos + s);
      this.state.pos += s, this.finishToken(e, r);
    }
    readRegexp() {
      let e = this.state.startLoc, s = this.state.start + 1, r, i, {
        pos: a
      } = this.state;
      for (; ; ++a) {
        if (a >= this.length)
          throw this.raise(te.UnterminatedRegExp, Fn(e, 1));
        let c = this.input.charCodeAt(a);
        if (qm(c))
          throw this.raise(te.UnterminatedRegExp, Fn(e, 1));
        if (r)
          r = !1;
        else {
          if (c === 91)
            i = !0;
          else if (c === 93 && i)
            i = !1;
          else if (c === 47 && !i)
            break;
          r = c === 92;
        }
      }
      let o = this.input.slice(s, a);
      ++a;
      let l = "", u = /* @__PURE__ */ n(() => Fn(e, a + 2 - s), "nextPos");
      for (; a < this.length; ) {
        let c = this.codePointAtPos(a), p = String.fromCharCode(c);
        if (n4t.has(c))
          c === 118 ? l.includes("u") && this.raise(te.IncompatibleRegExpUVFlags, u()) : c === 117 && l.includes("v") && this.raise(te.IncompatibleRegExpUVFlags,
          u()), l.includes(p) && this.raise(te.DuplicateRegExpFlags, u());
        else if (Rm(c) || c === 92)
          this.raise(te.MalformedRegExpFlags, u());
        else
          break;
        ++a, l += p;
      }
      this.state.pos = a, this.finishToken(138, {
        pattern: o,
        flags: l
      });
    }
    readInt(e, s, r = !1, i = !0) {
      let {
        n: a,
        pos: o
      } = woe(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, s, r, i, this.errorHandlers_readInt, !1);
      return this.state.pos = o, a;
    }
    readRadixNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1;
      this.state.pos += 2;
      let a = this.readInt(e);
      a == null && this.raise(te.InvalidDigit, Fn(r, 2), {
        radix: e
      });
      let o = this.input.charCodeAt(this.state.pos);
      if (o === 110)
        ++this.state.pos, i = !0;
      else if (o === 109)
        throw this.raise(te.InvalidDecimal, r);
      if (Hu(this.codePointAtPos(this.state.pos)))
        throw this.raise(te.NumberIdentifier, this.state.curPosition());
      if (i) {
        let l = this.input.slice(s, this.state.pos).replace(/[_n]/g, "");
        this.finishToken(136, l);
        return;
      }
      this.finishToken(135, a);
    }
    readNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1, a = !1, o = !1, l = !1;
      !e && this.readInt(10) === null && this.raise(te.InvalidNumber, this.state.curPosition());
      let u = this.state.pos - s >= 2 && this.input.charCodeAt(s) === 48;
      if (u) {
        let d = this.input.slice(s, this.state.pos);
        if (this.recordStrictModeErrors(te.StrictOctalLiteral, r), !this.state.strict) {
          let m = d.indexOf("_");
          m > 0 && this.raise(te.ZeroDigitNumericSeparator, Fn(r, m));
        }
        l = u && !/[89]/.test(d);
      }
      let c = this.input.charCodeAt(this.state.pos);
      if (c === 46 && !l && (++this.state.pos, this.readInt(10), i = !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(
      te.InvalidOrMissingExponent, r), i = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((i || u) && this.raise(te.InvalidBigIntLiteral,
      r), ++this.state.pos, a = !0), c === 109) {
        this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(te.InvalidDecimal, r), ++this.state.pos;
        var p = !0;
      }
      if (Hu(this.codePointAtPos(this.state.pos)))
        throw this.raise(te.NumberIdentifier, this.state.curPosition());
      let h = this.input.slice(s, this.state.pos).replace(/[_mn]/g, "");
      if (a) {
        this.finishToken(136, h);
        return;
      }
      if (p) {
        this.finishToken(137, h);
        return;
      }
      let f = l ? parseInt(h, 8) : parseFloat(h);
      this.finishToken(135, f);
    }
    readCodePoint(e) {
      let {
        code: s,
        pos: r
      } = Ioe(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, this.errorHandlers_readCodePoint);
      return this.state.pos = r, s;
    }
    readString(e) {
      let {
        str: s,
        pos: r,
        curLine: i,
        lineStart: a
      } = poe(e === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
      this.state.pos = r + 1, this.state.lineStart = a, this.state.curLine = i, this.finishToken(134, s);
    }
    readTemplateContinuation() {
      this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
    }
    readTemplateToken() {
      let e = this.input[this.state.pos], {
        str: s,
        firstInvalidLoc: r,
        pos: i,
        curLine: a,
        lineStart: o
      } = poe("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
      this.state.pos = i + 1, this.state.lineStart = o, this.state.curLine = a, r && (this.state.firstInvalidTemplateEscapePos = new Pl(r.curLine,
      r.pos - r.lineStart, this.sourceToOffsetPos(r.pos))), this.input.codePointAt(i) === 96 ? this.finishToken(24, r ? null : e + s + "`") :
      (this.state.pos++, this.finishToken(25, r ? null : e + s + "${"));
    }
    recordStrictModeErrors(e, s) {
      let r = s.index;
      this.state.strict && !this.state.strictErrors.has(r) ? this.raise(e, s) : this.state.strictErrors.set(r, [e, s]);
    }
    readWord1(e) {
      this.state.containsEsc = !1;
      let s = "", r = this.state.pos, i = this.state.pos;
      for (e !== void 0 && (this.state.pos += e <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
        let a = this.codePointAtPos(this.state.pos);
        if (Rm(a))
          this.state.pos += a <= 65535 ? 1 : 2;
        else if (a === 92) {
          this.state.containsEsc = !0, s += this.input.slice(i, this.state.pos);
          let o = this.state.curPosition(), l = this.state.pos === r ? Hu : Rm;
          if (this.input.charCodeAt(++this.state.pos) !== 117) {
            this.raise(te.MissingUnicodeEscape, this.state.curPosition()), i = this.state.pos - 1;
            continue;
          }
          ++this.state.pos;
          let u = this.readCodePoint(!0);
          u !== null && (l(u) || this.raise(te.EscapedCharNotAnIdentifier, o), s += String.fromCodePoint(u)), i = this.state.pos;
        } else
          break;
      }
      return s + this.input.slice(i, this.state.pos);
    }
    readWord(e) {
      let s = this.readWord1(e), r = k3.get(s);
      r !== void 0 ? this.finishToken(r, wp(r)) : this.finishToken(132, s);
    }
    checkKeywordEscapes() {
      let {
        type: e
      } = this.state;
      M3(e) && this.state.containsEsc && this.raise(te.InvalidEscapedReservedWord, this.state.startLoc, {
        reservedWord: wp(e)
      });
    }
    raise(e, s, r = {}) {
      let i = s instanceof Pl ? s : s.loc.start, a = e(i, r);
      if (!(this.optionFlags & 1024)) throw a;
      return this.isLookahead || this.state.errors.push(a), a;
    }
    raiseOverwrite(e, s, r = {}) {
      let i = s instanceof Pl ? s : s.loc.start, a = i.index, o = this.state.errors;
      for (let l = o.length - 1; l >= 0; l--) {
        let u = o[l];
        if (u.loc.index === a)
          return o[l] = e(i, r);
        if (u.loc.index < a) break;
      }
      return this.raise(e, s, r);
    }
    updateContext(e) {
    }
    unexpected(e, s) {
      throw this.raise(te.UnexpectedToken, e ?? this.state.startLoc, {
        expected: s ? wp(s) : null
      });
    }
    expectPlugin(e, s) {
      if (this.hasPlugin(e))
        return !0;
      throw this.raise(te.MissingPlugin, s ?? this.state.startLoc, {
        missingPlugin: [e]
      });
    }
    expectOnePlugin(e) {
      if (!e.some((s) => this.hasPlugin(s)))
        throw this.raise(te.MissingOneOfPlugins, this.state.startLoc, {
          missingPlugin: e
        });
    }
    errorBuilder(e) {
      return (s, r, i) => {
        this.raise(e, Z0(s, r, i));
      };
    }
  }, b3 = class {
    static {
      n(this, "ClassScope");
    }
    constructor() {
      this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
    }
  }, x3 = class {
    static {
      n(this, "ClassScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = e;
    }
    current() {
      return this.stack[this.stack.length - 1];
    }
    enter() {
      this.stack.push(new b3());
    }
    exit() {
      let e = this.stack.pop(), s = this.current();
      for (let [r, i] of Array.from(e.undefinedPrivateNames))
        s ? s.undefinedPrivateNames.has(r) || s.undefinedPrivateNames.set(r, i) : this.parser.raise(te.InvalidPrivateFieldResolution, i, {
          identifierName: r
        });
    }
    declarePrivateName(e, s, r) {
      let {
        privateNames: i,
        loneAccessors: a,
        undefinedPrivateNames: o
      } = this.current(), l = i.has(e);
      if (s & 3) {
        let u = l && a.get(e);
        if (u) {
          let c = u & 4, p = s & 4, h = u & 3, f = s & 3;
          l = h === f || c !== p, l || a.delete(e);
        } else l || a.set(e, s);
      }
      l && this.parser.raise(te.PrivateNameRedeclaration, r, {
        identifierName: e
      }), i.add(e), o.delete(e);
    }
    usePrivateName(e, s) {
      let r;
      for (r of this.stack)
        if (r.privateNames.has(e)) return;
      r ? r.undefinedPrivateNames.set(e, s) : this.parser.raise(te.InvalidPrivateFieldResolution, s, {
        identifierName: e
      });
    }
  }, Vm = class {
    static {
      n(this, "ExpressionScope");
    }
    constructor(e = 0) {
      this.type = e;
    }
    canBeArrowParameterDeclaration() {
      return this.type === 2 || this.type === 1;
    }
    isCertainlyParameterDeclaration() {
      return this.type === 3;
    }
  }, JA = class extends Vm {
    static {
      n(this, "ArrowHeadParsingScope");
    }
    constructor(e) {
      super(e), this.declarationErrors = /* @__PURE__ */ new Map();
    }
    recordDeclarationError(e, s) {
      let r = s.index;
      this.declarationErrors.set(r, [e, s]);
    }
    clearDeclarationError(e) {
      this.declarationErrors.delete(e);
    }
    iterateErrors(e) {
      this.declarationErrors.forEach(e);
    }
  }, S3 = class {
    static {
      n(this, "ExpressionScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [new Vm()], this.parser = e;
    }
    enter(e) {
      this.stack.push(e);
    }
    exit() {
      this.stack.pop();
    }
    recordParameterInitializerError(e, s) {
      let r = s.loc.start, {
        stack: i
      } = this, a = i.length - 1, o = i[a];
      for (; !o.isCertainlyParameterDeclaration(); ) {
        if (o.canBeArrowParameterDeclaration())
          o.recordDeclarationError(e, r);
        else
          return;
        o = i[--a];
      }
      this.parser.raise(e, r);
    }
    recordArrowParameterBindingError(e, s) {
      let {
        stack: r
      } = this, i = r[r.length - 1], a = s.loc.start;
      if (i.isCertainlyParameterDeclaration())
        this.parser.raise(e, a);
      else if (i.canBeArrowParameterDeclaration())
        i.recordDeclarationError(e, a);
      else
        return;
    }
    recordAsyncArrowParametersError(e) {
      let {
        stack: s
      } = this, r = s.length - 1, i = s[r];
      for (; i.canBeArrowParameterDeclaration(); )
        i.type === 2 && i.recordDeclarationError(te.AwaitBindingIdentifier, e), i = s[--r];
    }
    validateAsPattern() {
      let {
        stack: e
      } = this, s = e[e.length - 1];
      s.canBeArrowParameterDeclaration() && s.iterateErrors(([r, i]) => {
        this.parser.raise(r, i);
        let a = e.length - 2, o = e[a];
        for (; o.canBeArrowParameterDeclaration(); )
          o.clearDeclarationError(i.index), o = e[--a];
      });
    }
  };
  function a4t() {
    return new Vm(3);
  }
  n(a4t, "newParameterDeclarationScope");
  function o4t() {
    return new JA(1);
  }
  n(o4t, "newArrowHeadScope");
  function l4t() {
    return new JA(2);
  }
  n(l4t, "newAsyncArrowScope");
  function Noe() {
    return new Vm();
  }
  n(Noe, "newExpressionScope");
  var P3 = class {
    static {
      n(this, "ProductionParameterHandler");
    }
    constructor() {
      this.stacks = [];
    }
    enter(e) {
      this.stacks.push(e);
    }
    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 WA(t, e) {
    return (t ? 2 : 0) | (e ? 1 : 0);
  }
  n(WA, "functionFlags");
  var E3 = class extends T3 {
    static {
      n(this, "UtilParser");
    }
    addExtra(e, s, r, i = !0) {
      if (!e) return;
      let {
        extra: a
      } = e;
      a == null && (a = {}, e.extra = a), i ? a[s] = r : Object.defineProperty(a, s, {
        enumerable: i,
        value: r
      });
    }
    isContextual(e) {
      return this.state.type === e && !this.state.containsEsc;
    }
    isUnparsedContextual(e, s) {
      let r = e + s.length;
      if (this.input.slice(e, r) === s) {
        let i = this.input.charCodeAt(r);
        return !(Rm(i) || (i & 64512) === 55296);
      }
      return !1;
    }
    isLookaheadContextual(e) {
      let s = this.nextTokenStart();
      return this.isUnparsedContextual(s, e);
    }
    eatContextual(e) {
      return this.isContextual(e) ? (this.next(), !0) : !1;
    }
    expectContextual(e, s) {
      if (!this.eatContextual(e)) {
        if (s != null)
          throw this.raise(s, this.state.startLoc);
        this.unexpected(null, e);
      }
    }
    canInsertSemicolon() {
      return this.match(140) || this.match(8) || this.hasPrecedingLineBreak();
    }
    hasPrecedingLineBreak() {
      return uoe(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start);
    }
    hasFollowingLineBreak() {
      return uoe(this.input, this.state.end, this.nextTokenStart());
    }
    isLineTerminator() {
      return this.eat(13) || this.canInsertSemicolon();
    }
    semicolon(e = !0) {
      (e ? this.isLineTerminator() : this.eat(13)) || this.raise(te.MissingSemicolon, this.state.lastTokEndLoc);
    }
    expect(e, s) {
      this.eat(e) || this.unexpected(s, e);
    }
    tryParse(e, s = this.state.clone()) {
      let r = {
        node: null
      };
      try {
        let i = e((a = null) => {
          throw r.node = a, r;
        });
        if (this.state.errors.length > s.errors.length) {
          let a = this.state;
          return this.state = s, this.state.tokensLength = a.tokensLength, {
            node: i,
            error: a.errors[s.errors.length],
            thrown: !1,
            aborted: !1,
            failState: a
          };
        }
        return {
          node: i,
          error: null,
          thrown: !1,
          aborted: !1,
          failState: null
        };
      } catch (i) {
        let a = this.state;
        if (this.state = s, i instanceof SyntaxError)
          return {
            node: null,
            error: i,
            thrown: !0,
            aborted: !1,
            failState: a
          };
        if (i === r)
          return {
            node: r.node,
            error: null,
            thrown: !1,
            aborted: !0,
            failState: a
          };
        throw i;
      }
    }
    checkExpressionErrors(e, s) {
      if (!e) return !1;
      let {
        shorthandAssignLoc: r,
        doubleProtoLoc: i,
        privateKeyLoc: a,
        optionalParametersLoc: o
      } = e, l = !!r || !!i || !!o || !!a;
      if (!s)
        return l;
      r != null && this.raise(te.InvalidCoverInitializedName, r), i != null && this.raise(te.DuplicateProto, i), a != null && this.raise(te.
      UnexpectedPrivateField, a), o != null && this.unexpected(o);
    }
    isLiteralPropertyName() {
      return boe(this.state.type);
    }
    isPrivateName(e) {
      return e.type === "PrivateName";
    }
    getPrivateNameSV(e) {
      return e.id.name;
    }
    hasPropertyAsPrivateName(e) {
      return (e.type === "MemberExpression" || e.type === "OptionalMemberExpression") && this.isPrivateName(e.property);
    }
    isObjectProperty(e) {
      return e.type === "ObjectProperty";
    }
    isObjectMethod(e) {
      return e.type === "ObjectMethod";
    }
    initializeScopes(e = this.options.sourceType === "module") {
      let s = this.state.labels;
      this.state.labels = [];
      let r = this.exportedIdentifiers;
      this.exportedIdentifiers = /* @__PURE__ */ new Set();
      let i = this.inModule;
      this.inModule = e;
      let a = this.scope, o = this.getScopeHandler();
      this.scope = new o(this, e);
      let l = this.prodParam;
      this.prodParam = new P3();
      let u = this.classScope;
      this.classScope = new x3(this);
      let c = this.expressionScope;
      return this.expressionScope = new S3(this), () => {
        this.state.labels = s, this.exportedIdentifiers = r, this.inModule = i, this.scope = a, this.prodParam = l, this.classScope = u, this.
        expressionScope = c;
      };
    }
    enterInitialScopes() {
      let e = 0;
      this.inModule && (e |= 2), this.scope.enter(1), this.prodParam.enter(e);
    }
    checkDestructuringPrivate(e) {
      let {
        privateKeyLoc: s
      } = e;
      s !== null && this.expectPlugin("destructuringPrivate", s);
    }
  }, Um = class {
    static {
      n(this, "ExpressionErrors");
    }
    constructor() {
      this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
    }
  }, Wm = class {
    static {
      n(this, "Node");
    }
    constructor(e, s, r) {
      this.type = "", this.start = s, this.end = 0, this.loc = new Km(r), e?.optionFlags & 64 && (this.range = [s, 0]), e != null && e.filename &&
      (this.loc.filename = e.filename);
    }
  }, R3 = Wm.prototype;
  R3.__clone = function() {
    let t = new Wm(void 0, this.start, this.loc.start), e = Object.keys(this);
    for (let s = 0, r = e.length; s < r; s++) {
      let i = e[s];
      i !== "leadingComments" && i !== "trailingComments" && i !== "innerComments" && (t[i] = this[i]);
    }
    return t;
  };
  function u4t(t) {
    return Yu(t);
  }
  n(u4t, "clonePlaceholder");
  function Yu(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o,
      name: l
    } = t, u = Object.create(R3);
    return u.type = e, u.start = s, u.end = r, u.loc = i, u.range = a, u.extra = o, u.name = l, e === "Placeholder" && (u.expectedNode = t.expectedNode),
    u;
  }
  n(Yu, "cloneIdentifier");
  function c4t(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o
    } = t;
    if (e === "Placeholder")
      return u4t(t);
    let l = Object.create(R3);
    return l.type = e, l.start = s, l.end = r, l.loc = i, l.range = a, t.raw !== void 0 ? l.raw = t.raw : l.extra = o, l.value = t.value, l;
  }
  n(c4t, "cloneStringLiteral");
  var A3 = class extends E3 {
    static {
      n(this, "NodeUtils");
    }
    startNode() {
      let e = this.state.startLoc;
      return new Wm(this, e.index, e);
    }
    startNodeAt(e) {
      return new Wm(this, e.index, e);
    }
    startNodeAtNode(e) {
      return this.startNodeAt(e.loc.start);
    }
    finishNode(e, s) {
      return this.finishNodeAt(e, s, this.state.lastTokEndLoc);
    }
    finishNodeAt(e, s, r) {
      return e.type = s, e.end = r.index, e.loc.end = r, this.optionFlags & 64 && (e.range[1] = r.index), this.optionFlags & 2048 && this.processComment(
      e), e;
    }
    resetStartLocation(e, s) {
      e.start = s.index, e.loc.start = s, this.optionFlags & 64 && (e.range[0] = s.index);
    }
    resetEndLocation(e, s = this.state.lastTokEndLoc) {
      e.end = s.index, e.loc.end = s, this.optionFlags & 64 && (e.range[1] = s.index);
    }
    resetStartLocationFromNode(e, s) {
      this.resetStartLocation(e, s.loc.start);
    }
  }, p4t = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "sta\
tic", "string", "true", "typeof", "void"]), Ft = Ju`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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Cannot overwrite reserved type ${t}.`, "AssignReservedType"),
    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: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Boolean enum members need to be initialized. Use either \`${t} = true,\` or \`${t} = false,\` in enum \`${e}\`.`, "EnumBooleanMem\
berNotInitialized"),
    EnumDuplicateMemberName: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Enum member names need to be unique, but the name \`${t}\` has already been used before in enum \`${e}\`.`, "EnumDuplicateMemberN\
ame"),
    EnumInconsistentMemberValues: /* @__PURE__ */ n(({
      enumName: t
    }) => `Enum \`${t}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, num\
bers, or strings) for all member initializers.`, "EnumInconsistentMemberValues"),
    EnumInvalidExplicitType: /* @__PURE__ */ n(({
      invalidEnumType: t,
      enumName: e
    }) => `Enum type \`${t}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${e}\`.`, "EnumInvalidEx\
plicitType"),
    EnumInvalidExplicitTypeUnknownSupplied: /* @__PURE__ */ n(({
      enumName: t
    }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`, "EnumInvalidEx\
plicitTypeUnknownSupplied"),
    EnumInvalidMemberInitializerPrimaryType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      explicitType: s
    }) => `Enum \`${t}\` has type \`${s}\`, so the initializer of \`${e}\` needs to be a ${s} literal.`, "EnumInvalidMemberInitializerPrimar\
yType"),
    EnumInvalidMemberInitializerSymbolType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Symbol enum members cannot be initialized. Use \`${e},\` in enum \`${t}\`.`, "EnumInvalidMemberInitializerSymbolType"),
    EnumInvalidMemberInitializerUnknownType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `The enum member initializer for \`${e}\` needs to be a literal (either a boolean, number, or string) in enum \`${t}\`.`, "EnumInv\
alidMemberInitializerUnknownType"),
    EnumInvalidMemberName: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      suggestion: s
    }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${e}\`, consider using \`${s}\`, in enum \`${t}\
\`.`, "EnumInvalidMemberName"),
    EnumNumberMemberNotInitialized: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Number enum members need to be initialized, e.g. \`${e} = 1\` in enum \`${t}\`.`, "EnumNumberMemberNotInitialized"),
    EnumStringMemberInconsistentlyInitialized: /* @__PURE__ */ n(({
      enumName: t
    }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${t}\`.`, "EnumStringMemb\
erInconsistentlyInitialized"),
    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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Unexpected reserved type ${t}.`, "UnexpectedReservedType"),
    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: /* @__PURE__ */ n(({
      unsupportedExportKind: t,
      suggestion: e
    }) => `\`declare export ${t}\` is not supported. Use \`${e}\` instead.`, "UnsupportedDeclareExportKind"),
    UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
    UnterminatedFlowComment: "Unterminated flow-comment."
  });
  function h4t(t) {
    return t.type === "DeclareExportAllDeclaration" || t.type === "DeclareExportDeclaration" && (!t.declaration || t.declaration.type !== "T\
ypeAlias" && t.declaration.type !== "InterfaceDeclaration");
  }
  n(h4t, "isEsModuleType");
  function hoe(t) {
    return t.importKind === "type" || t.importKind === "typeof";
  }
  n(hoe, "hasTypeImportKind");
  var f4t = {
    const: "declare export var",
    let: "declare export var",
    type: "export type",
    interface: "export interface"
  };
  function d4t(t, e) {
    let s = [], r = [];
    for (let i = 0; i < t.length; i++)
      (e(t[i], i, t) ? s : r).push(t[i]);
    return [s, r];
  }
  n(d4t, "partition");
  var m4t = /\*?\s*@((?:no)?flow)\b/, y4t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "FlowParserMixin");
    }
    constructor(...s) {
      super(...s), this.flowPragma = void 0;
    }
    getScopeHandler() {
      return f3;
    }
    shouldParseTypes() {
      return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
    }
    finishToken(s, r) {
      s !== 134 && s !== 13 && s !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(s, r);
    }
    addComment(s) {
      if (this.flowPragma === void 0) {
        let r = m4t.exec(s.value);
        if (r) if (r[1] === "flow")
          this.flowPragma = "flow";
        else if (r[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
      }
      super.addComment(s);
    }
    flowParseTypeInitialiser(s) {
      let r = this.state.inType;
      this.state.inType = !0, this.expect(s || 14);
      let i = this.flowParseType();
      return this.state.inType = r, i;
    }
    flowParsePredicate() {
      let s = this.startNode(), r = this.state.startLoc;
      return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > r.index + 1 && this.raise(Ft.UnexpectedSpaceBetweenModuloChecks,
      r), this.eat(10) ? (s.value = super.parseExpression(), this.expect(11), this.finishNode(s, "DeclaredPredicate")) : this.finishNode(s, "\
InferredPredicate");
    }
    flowParseTypeAndPredicateInitialiser() {
      let s = this.state.inType;
      this.state.inType = !0, this.expect(14);
      let r = null, i = null;
      return this.match(54) ? (this.state.inType = s, i = this.flowParsePredicate()) : (r = this.flowParseType(), this.state.inType = s, this.
      match(54) && (i = this.flowParsePredicate())), [r, i];
    }
    flowParseDeclareClass(s) {
      return this.next(), this.flowParseInterfaceish(s, !0), this.finishNode(s, "DeclareClass");
    }
    flowParseDeclareFunction(s) {
      this.next();
      let r = s.id = this.parseIdentifier(), i = this.startNode(), a = this.startNode();
      this.match(47) ? i.typeParameters = this.flowParseTypeParameterDeclaration() : i.typeParameters = null, this.expect(10);
      let o = this.flowParseFunctionTypeParams();
      return i.params = o.params, i.rest = o.rest, i.this = o._this, this.expect(11), [i.returnType, s.predicate] = this.flowParseTypeAndPredicateInitialiser(),
      a.typeAnnotation = this.finishNode(i, "FunctionTypeAnnotation"), r.typeAnnotation = this.finishNode(a, "TypeAnnotation"), this.resetEndLocation(
      r), this.semicolon(), this.scope.declareName(s.id.name, 2048, s.id.loc.start), this.finishNode(s, "DeclareFunction");
    }
    flowParseDeclare(s, r) {
      if (this.match(80))
        return this.flowParseDeclareClass(s);
      if (this.match(68))
        return this.flowParseDeclareFunction(s);
      if (this.match(74))
        return this.flowParseDeclareVariable(s);
      if (this.eatContextual(127))
        return this.match(16) ? this.flowParseDeclareModuleExports(s) : (r && this.raise(Ft.NestedDeclareModule, this.state.lastTokStartLoc),
        this.flowParseDeclareModule(s));
      if (this.isContextual(130))
        return this.flowParseDeclareTypeAlias(s);
      if (this.isContextual(131))
        return this.flowParseDeclareOpaqueType(s);
      if (this.isContextual(129))
        return this.flowParseDeclareInterface(s);
      if (this.match(82))
        return this.flowParseDeclareExportDeclaration(s, r);
      this.unexpected();
    }
    flowParseDeclareVariable(s) {
      return this.next(), s.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(s.id.name, 5, s.id.loc.start), this.semicolon(),
      this.finishNode(s, "DeclareVariable");
    }
    flowParseDeclareModule(s) {
      this.scope.enter(0), this.match(134) ? s.id = super.parseExprAtom() : s.id = this.parseIdentifier();
      let r = s.body = this.startNode(), i = r.body = [];
      for (this.expect(5); !this.match(8); ) {
        let l = this.startNode();
        this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(Ft.InvalidNonTypeImportInDeclareModule, this.
        state.lastTokStartLoc), super.parseImport(l)) : (this.expectContextual(125, Ft.UnsupportedStatementInDeclareModule), l = this.flowParseDeclare(
        l, !0)), i.push(l);
      }
      this.scope.exit(), this.expect(8), this.finishNode(r, "BlockStatement");
      let a = null, o = !1;
      return i.forEach((l) => {
        h4t(l) ? (a === "CommonJS" && this.raise(Ft.AmbiguousDeclareModuleKind, l), a = "ES") : l.type === "DeclareModuleExports" && (o && this.
        raise(Ft.DuplicateDeclareModuleExports, l), a === "ES" && this.raise(Ft.AmbiguousDeclareModuleKind, l), a = "CommonJS", o = !0);
      }), s.kind = a || "CommonJS", this.finishNode(s, "DeclareModule");
    }
    flowParseDeclareExportDeclaration(s, r) {
      if (this.expect(82), this.eat(65))
        return this.match(68) || this.match(80) ? s.declaration = this.flowParseDeclare(this.startNode()) : (s.declaration = this.flowParseType(),
        this.semicolon()), s.default = !0, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !r) {
        let i = this.state.value;
        throw this.raise(Ft.UnsupportedDeclareExportKind, this.state.startLoc, {
          unsupportedExportKind: i,
          suggestion: f4t[i]
        });
      }
      if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
        return s.declaration = this.flowParseDeclare(this.startNode()), s.default = !1, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
        return s = this.parseExport(s, null), s.type === "ExportNamedDeclaration" && (s.type = "ExportDeclaration", s.default = !1, delete s.
        exportKind), s.type = "Declare" + s.type, s;
      this.unexpected();
    }
    flowParseDeclareModuleExports(s) {
      return this.next(), this.expectContextual(111), s.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(s,
      "DeclareModuleExports");
    }
    flowParseDeclareTypeAlias(s) {
      this.next();
      let r = this.flowParseTypeAlias(s);
      return r.type = "DeclareTypeAlias", r;
    }
    flowParseDeclareOpaqueType(s) {
      this.next();
      let r = this.flowParseOpaqueType(s, !0);
      return r.type = "DeclareOpaqueType", r;
    }
    flowParseDeclareInterface(s) {
      return this.next(), this.flowParseInterfaceish(s, !1), this.finishNode(s, "DeclareInterface");
    }
    flowParseInterfaceish(s, r) {
      if (s.id = this.flowParseRestrictedIdentifier(!r, !0), this.scope.declareName(s.id.name, r ? 17 : 8201, s.id.loc.start), this.match(47) ?
      s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (!r && this.eat(12));
      if (r) {
        if (s.implements = [], s.mixins = [], this.eatContextual(117))
          do
            s.mixins.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
        if (this.eatContextual(113))
          do
            s.implements.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
      }
      s.body = this.flowParseObjectType({
        allowStatic: r,
        allowExact: !1,
        allowSpread: !1,
        allowProto: r,
        allowInexact: !1
      });
    }
    flowParseInterfaceExtends() {
      let s = this.startNode();
      return s.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? s.typeParameters = this.flowParseTypeParameterInstantiation() :
      s.typeParameters = null, this.finishNode(s, "InterfaceExtends");
    }
    flowParseInterface(s) {
      return this.flowParseInterfaceish(s, !1), this.finishNode(s, "InterfaceDeclaration");
    }
    checkNotUnderscore(s) {
      s === "_" && this.raise(Ft.UnexpectedReservedUnderscore, this.state.startLoc);
    }
    checkReservedType(s, r, i) {
      p4t.has(s) && this.raise(i ? Ft.AssignReservedType : Ft.UnexpectedReservedType, r, {
        reservedType: s
      });
    }
    flowParseRestrictedIdentifier(s, r) {
      return this.checkReservedType(this.state.value, this.state.startLoc, r), this.parseIdentifier(s);
    }
    flowParseTypeAlias(s) {
      return s.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.start), this.match(47) ? s.
      typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.right = this.flowParseTypeInitialiser(29), this.
      semicolon(), this.finishNode(s, "TypeAlias");
    }
    flowParseOpaqueType(s, r) {
      return this.expectContextual(130), s.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.
      start), this.match(47) ? s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.supertype = null, this.
      match(14) && (s.supertype = this.flowParseTypeInitialiser(14)), s.impltype = null, r || (s.impltype = this.flowParseTypeInitialiser(29)),
      this.semicolon(), this.finishNode(s, "OpaqueType");
    }
    flowParseTypeParameter(s = !1) {
      let r = this.state.startLoc, i = this.startNode(), a = this.flowParseVariance(), o = this.flowParseTypeAnnotatableIdentifier();
      return i.name = o.name, i.variance = a, i.bound = o.typeAnnotation, this.match(29) ? (this.eat(29), i.default = this.flowParseType()) :
      s && this.raise(Ft.MissingTypeParamDefault, r), this.finishNode(i, "TypeParameter");
    }
    flowParseTypeParameterDeclaration() {
      let s = this.state.inType, r = this.startNode();
      r.params = [], this.state.inType = !0, this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = !1;
      do {
        let a = this.flowParseTypeParameter(i);
        r.params.push(a), a.default && (i = !0), this.match(48) || this.expect(12);
      } while (!this.match(48));
      return this.expect(48), this.state.inType = s, this.finishNode(r, "TypeParameterDeclaration");
    }
    flowInTopLevelContext(s) {
      if (this.curContext() !== rr.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    flowParseTypeParameterInstantiationInExpression() {
      if (this.reScan_lt() === 47)
        return this.flowParseTypeParameterInstantiation();
    }
    flowParseTypeParameterInstantiation() {
      let s = this.startNode(), r = this.state.inType;
      return this.state.inType = !0, s.params = [], this.flowInTopLevelContext(() => {
        this.expect(47);
        let i = this.state.noAnonFunctionType;
        for (this.state.noAnonFunctionType = !1; !this.match(48); )
          s.params.push(this.flowParseType()), this.match(48) || this.expect(12);
        this.state.noAnonFunctionType = i;
      }), this.state.inType = r, !this.state.inType && this.curContext() === rr.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(
      s, "TypeParameterInstantiation");
    }
    flowParseTypeParameterInstantiationCallOrNew() {
      if (this.reScan_lt() !== 47) return;
      let s = this.startNode(), r = this.state.inType;
      for (s.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
        s.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
      return this.expect(48), this.state.inType = r, this.finishNode(s, "TypeParameterInstantiation");
    }
    flowParseInterfaceType() {
      let s = this.startNode();
      if (this.expectContextual(129), s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      return s.body = this.flowParseObjectType({
        allowStatic: !1,
        allowExact: !1,
        allowSpread: !1,
        allowProto: !1,
        allowInexact: !1
      }), this.finishNode(s, "InterfaceTypeAnnotation");
    }
    flowParseObjectPropertyKey() {
      return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(!0);
    }
    flowParseObjectTypeIndexer(s, r, i) {
      return s.static = r, this.lookahead().type === 14 ? (s.id = this.flowParseObjectPropertyKey(), s.key = this.flowParseTypeInitialiser()) :
      (s.id = null, s.key = this.flowParseType()), this.expect(3), s.value = this.flowParseTypeInitialiser(), s.variance = i, this.finishNode(
      s, "ObjectTypeIndexer");
    }
    flowParseObjectTypeInternalSlot(s, r) {
      return s.static = r, s.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (s.method =
      !0, s.optional = !1, s.value = this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start))) : (s.method = !1, this.eat(17) && (s.
      optional = !0), s.value = this.flowParseTypeInitialiser()), this.finishNode(s, "ObjectTypeInternalSlot");
    }
    flowParseObjectTypeMethodish(s) {
      for (s.params = [], s.rest = null, s.typeParameters = null, s.this = null, this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()),
      this.expect(10), this.match(78) && (s.this = this.flowParseFunctionTypeParam(!0), s.this.name = null, this.match(11) || this.expect(12)); !this.
      match(11) && !this.match(21); )
        s.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (s.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), s.returnType = this.flowParseTypeInitialiser(),
      this.finishNode(s, "FunctionTypeAnnotation");
    }
    flowParseObjectTypeCallProperty(s, r) {
      let i = this.startNode();
      return s.static = r, s.value = this.flowParseObjectTypeMethodish(i), this.finishNode(s, "ObjectTypeCallProperty");
    }
    flowParseObjectType({
      allowStatic: s,
      allowExact: r,
      allowSpread: i,
      allowProto: a,
      allowInexact: o
    }) {
      let l = this.state.inType;
      this.state.inType = !0;
      let u = this.startNode();
      u.callProperties = [], u.properties = [], u.indexers = [], u.internalSlots = [];
      let c, p, h = !1;
      for (r && this.match(6) ? (this.expect(6), c = 9, p = !0) : (this.expect(5), c = 8, p = !1), u.exact = p; !this.match(c); ) {
        let d = !1, m = null, y = null, T = this.startNode();
        if (a && this.isContextual(118)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), m = this.state.startLoc, s = !1);
        }
        if (s && this.isContextual(106)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), d = !0);
        }
        let b = this.flowParseVariance();
        if (this.eat(0))
          m != null && this.unexpected(m), this.eat(0) ? (b && this.unexpected(b.loc.start), u.internalSlots.push(this.flowParseObjectTypeInternalSlot(
          T, d))) : u.indexers.push(this.flowParseObjectTypeIndexer(T, d, b));
        else if (this.match(10) || this.match(47))
          m != null && this.unexpected(m), b && this.unexpected(b.loc.start), u.callProperties.push(this.flowParseObjectTypeCallProperty(T, d));
        else {
          let E = "init";
          if (this.isContextual(99) || this.isContextual(104)) {
            let W = this.lookahead();
            boe(W.type) && (E = this.state.value, this.next());
          }
          let V = this.flowParseObjectTypeProperty(T, d, m, b, E, i, o ?? !p);
          V === null ? (h = !0, y = this.state.lastTokStartLoc) : u.properties.push(V);
        }
        this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(Ft.UnexpectedExplicitInexactInObject, y);
      }
      this.expect(c), i && (u.inexact = h);
      let f = this.finishNode(u, "ObjectTypeAnnotation");
      return this.state.inType = l, f;
    }
    flowParseObjectTypeProperty(s, r, i, a, o, l, u) {
      if (this.eat(21))
        return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (l ? u || this.raise(Ft.InexactInsideExact, this.state.lastTokStartLoc) :
        this.raise(Ft.InexactInsideNonObject, this.state.lastTokStartLoc), a && this.raise(Ft.InexactVariance, a), null) : (l || this.raise(
        Ft.UnexpectedSpreadType, this.state.lastTokStartLoc), i != null && this.unexpected(i), a && this.raise(Ft.SpreadVariance, a), s.argument =
        this.flowParseType(), this.finishNode(s, "ObjectTypeSpreadProperty"));
      {
        s.key = this.flowParseObjectPropertyKey(), s.static = r, s.proto = i != null, s.kind = o;
        let c = !1;
        return this.match(47) || this.match(10) ? (s.method = !0, i != null && this.unexpected(i), a && this.unexpected(a.loc.start), s.value =
        this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start)), (o === "get" || o === "set") && this.flowCheckGetterSetterParams(s),
        !l && s.key.name === "constructor" && s.value.this && this.raise(Ft.ThisParamBannedInConstructor, s.value.this)) : (o !== "init" && this.
        unexpected(), s.method = !1, this.eat(17) && (c = !0), s.value = this.flowParseTypeInitialiser(), s.variance = a), s.optional = c, this.
        finishNode(s, "ObjectTypeProperty");
      }
    }
    flowCheckGetterSetterParams(s) {
      let r = s.kind === "get" ? 0 : 1, i = s.value.params.length + (s.value.rest ? 1 : 0);
      s.value.this && this.raise(s.kind === "get" ? Ft.GetterMayNotHaveThisParam : Ft.SetterMayNotHaveThisParam, s.value.this), i !== r && this.
      raise(s.kind === "get" ? te.BadGetterArity : te.BadSetterArity, s), s.kind === "set" && s.value.rest && this.raise(te.BadSetterRestParameter,
      s);
    }
    flowObjectTypeSemicolon() {
      !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
    }
    flowParseQualifiedTypeIdentifier(s, r) {
      var i;
      (i = s) != null || (s = this.state.startLoc);
      let a = r || this.flowParseRestrictedIdentifier(!0);
      for (; this.eat(16); ) {
        let o = this.startNodeAt(s);
        o.qualification = a, o.id = this.flowParseRestrictedIdentifier(!0), a = this.finishNode(o, "QualifiedTypeIdentifier");
      }
      return a;
    }
    flowParseGenericType(s, r) {
      let i = this.startNodeAt(s);
      return i.typeParameters = null, i.id = this.flowParseQualifiedTypeIdentifier(s, r), this.match(47) && (i.typeParameters = this.flowParseTypeParameterInstantiation()),
      this.finishNode(i, "GenericTypeAnnotation");
    }
    flowParseTypeofType() {
      let s = this.startNode();
      return this.expect(87), s.argument = this.flowParsePrimaryType(), this.finishNode(s, "TypeofTypeAnnotation");
    }
    flowParseTupleType() {
      let s = this.startNode();
      for (s.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (s.types.push(this.flowParseType()), !this.match(
      3)); )
        this.expect(12);
      return this.expect(3), this.finishNode(s, "TupleTypeAnnotation");
    }
    flowParseFunctionTypeParam(s) {
      let r = null, i = !1, a = null, o = this.startNode(), l = this.lookahead(), u = this.state.type === 78;
      return l.type === 14 || l.type === 17 ? (u && !s && this.raise(Ft.ThisParamMustBeFirst, o), r = this.parseIdentifier(u), this.eat(17) &&
      (i = !0, u && this.raise(Ft.ThisParamMayNotBeOptional, o)), a = this.flowParseTypeInitialiser()) : a = this.flowParseType(), o.name = r,
      o.optional = i, o.typeAnnotation = a, this.finishNode(o, "FunctionTypeParam");
    }
    reinterpretTypeAsFunctionTypeParam(s) {
      let r = this.startNodeAt(s.loc.start);
      return r.name = null, r.optional = !1, r.typeAnnotation = s, this.finishNode(r, "FunctionTypeParam");
    }
    flowParseFunctionTypeParams(s = []) {
      let r = null, i = null;
      for (this.match(78) && (i = this.flowParseFunctionTypeParam(!0), i.name = null, this.match(11) || this.expect(12)); !this.match(11) &&
      !this.match(21); )
        s.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (r = this.flowParseFunctionTypeParam(!1)), {
        params: s,
        rest: r,
        _this: i
      };
    }
    flowIdentToTypeAnnotation(s, r, i) {
      switch (i.name) {
        case "any":
          return this.finishNode(r, "AnyTypeAnnotation");
        case "bool":
        case "boolean":
          return this.finishNode(r, "BooleanTypeAnnotation");
        case "mixed":
          return this.finishNode(r, "MixedTypeAnnotation");
        case "empty":
          return this.finishNode(r, "EmptyTypeAnnotation");
        case "number":
          return this.finishNode(r, "NumberTypeAnnotation");
        case "string":
          return this.finishNode(r, "StringTypeAnnotation");
        case "symbol":
          return this.finishNode(r, "SymbolTypeAnnotation");
        default:
          return this.checkNotUnderscore(i.name), this.flowParseGenericType(s, i);
      }
    }
    flowParsePrimaryType() {
      let s = this.state.startLoc, r = this.startNode(), i, a, o = !1, l = 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, a = this.flowParseTupleType(), this.state.noAnonFunctionType = l, a;
        case 47: {
          let u = this.startNode();
          return u.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), i = this.flowParseFunctionTypeParams(), u.params =
          i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), this.finishNode(
          u, "FunctionTypeAnnotation");
        }
        case 10: {
          let u = this.startNode();
          if (this.next(), !this.match(11) && !this.match(21))
            if (ir(this.state.type) || this.match(78)) {
              let c = this.lookahead().type;
              o = c !== 17 && c !== 14;
            } else
              o = !0;
          if (o) {
            if (this.state.noAnonFunctionType = !1, a = this.flowParseType(), this.state.noAnonFunctionType = l, this.state.noAnonFunctionType ||
            !(this.match(12) || this.match(11) && this.lookahead().type === 19))
              return this.expect(11), a;
            this.eat(12);
          }
          return a ? i = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]) : i = this.flowParseFunctionTypeParams(),
          u.params = i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), u.typeParameters =
          null, this.finishNode(u, "FunctionTypeAnnotation");
        }
        case 134:
          return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
        case 85:
        case 86:
          return r.value = this.match(85), this.next(), this.finishNode(r, "BooleanLiteralTypeAnnotation");
        case 53:
          if (this.state.value === "-") {
            if (this.next(), this.match(135))
              return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", r);
            if (this.match(136))
              return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", r);
            throw this.raise(Ft.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(r, "VoidTypeAnnotation");
        case 84:
          return this.next(), this.finishNode(r, "NullLiteralTypeAnnotation");
        case 78:
          return this.next(), this.finishNode(r, "ThisTypeAnnotation");
        case 55:
          return this.next(), this.finishNode(r, "ExistsTypeAnnotation");
        case 87:
          return this.flowParseTypeofType();
        default:
          if (M3(this.state.type)) {
            let u = wp(this.state.type);
            return this.next(), super.createIdentifier(r, u);
          } else if (ir(this.state.type))
            return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(s, r, this.parseIdentifier());
      }
      this.unexpected();
    }
    flowParsePostfixType() {
      let s = this.state.startLoc, r = this.flowParsePrimaryType(), i = !1;
      for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
        let a = this.startNodeAt(s), o = this.eat(18);
        i = i || o, this.expect(0), !o && this.match(3) ? (a.elementType = r, this.next(), r = this.finishNode(a, "ArrayTypeAnnotation")) : (a.
        objectType = r, a.indexType = this.flowParseType(), this.expect(3), i ? (a.optional = o, r = this.finishNode(a, "OptionalIndexedAcce\
ssType")) : r = this.finishNode(a, "IndexedAccessType"));
      }
      return r;
    }
    flowParsePrefixType() {
      let s = this.startNode();
      return this.eat(17) ? (s.typeAnnotation = this.flowParsePrefixType(), this.finishNode(s, "NullableTypeAnnotation")) : this.flowParsePostfixType();
    }
    flowParseAnonFunctionWithoutParens() {
      let s = this.flowParsePrefixType();
      if (!this.state.noAnonFunctionType && this.eat(19)) {
        let r = this.startNodeAt(s.loc.start);
        return r.params = [this.reinterpretTypeAsFunctionTypeParam(s)], r.rest = null, r.this = null, r.returnType = this.flowParseType(), r.
        typeParameters = null, this.finishNode(r, "FunctionTypeAnnotation");
      }
      return s;
    }
    flowParseIntersectionType() {
      let s = this.startNode();
      this.eat(45);
      let r = this.flowParseAnonFunctionWithoutParens();
      for (s.types = [r]; this.eat(45); )
        s.types.push(this.flowParseAnonFunctionWithoutParens());
      return s.types.length === 1 ? r : this.finishNode(s, "IntersectionTypeAnnotation");
    }
    flowParseUnionType() {
      let s = this.startNode();
      this.eat(43);
      let r = this.flowParseIntersectionType();
      for (s.types = [r]; this.eat(43); )
        s.types.push(this.flowParseIntersectionType());
      return s.types.length === 1 ? r : this.finishNode(s, "UnionTypeAnnotation");
    }
    flowParseType() {
      let s = this.state.inType;
      this.state.inType = !0;
      let r = this.flowParseUnionType();
      return this.state.inType = s, r;
    }
    flowParseTypeOrImplicitInstantiation() {
      if (this.state.type === 132 && this.state.value === "_") {
        let s = this.state.startLoc, r = this.parseIdentifier();
        return this.flowParseGenericType(s, r);
      } else
        return this.flowParseType();
    }
    flowParseTypeAnnotation() {
      let s = this.startNode();
      return s.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(s, "TypeAnnotation");
    }
    flowParseTypeAnnotatableIdentifier(s) {
      let r = s ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
      return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r)), r;
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    flowParseVariance() {
      let s = null;
      return this.match(53) ? (s = this.startNode(), this.state.value === "+" ? s.kind = "plus" : s.kind = "minus", this.next(), this.finishNode(
      s, "Variance")) : s;
    }
    parseFunctionBody(s, r, i = !1) {
      if (r) {
        this.forwardNoArrowParamsConversionAt(s, () => super.parseFunctionBody(s, !0, i));
        return;
      }
      super.parseFunctionBody(s, !1, i);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      if (this.match(14)) {
        let a = this.startNode();
        [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.returnType = a.typeAnnotation ? this.finishNode(a, "\
TypeAnnotation") : null;
      }
      return super.parseFunctionBodyAndFinish(s, r, i);
    }
    parseStatementLike(s) {
      if (this.state.strict && this.isContextual(129)) {
        let i = this.lookahead();
        if (Mo(i.type)) {
          let a = this.startNode();
          return this.next(), this.flowParseInterface(a);
        }
      } else if (this.isContextual(126)) {
        let i = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(i);
      }
      let r = super.parseStatementLike(s);
      return this.flowPragma === void 0 && !this.isValidDirective(r) && (this.flowPragma = null), r;
    }
    parseExpressionStatement(s, r, i) {
      if (r.type === "Identifier") {
        if (r.name === "declare") {
          if (this.match(80) || ir(this.state.type) || this.match(68) || this.match(74) || this.match(82))
            return this.flowParseDeclare(s);
        } else if (ir(this.state.type)) {
          if (r.name === "interface")
            return this.flowParseInterface(s);
          if (r.name === "type")
            return this.flowParseTypeAlias(s);
          if (r.name === "opaque")
            return this.flowParseOpaqueType(s, !1);
        }
      }
      return super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      let {
        type: s
      } = this.state;
      return s === 126 || loe(s) ? !this.state.containsEsc : super.shouldParseExportDeclaration();
    }
    isExportDefaultSpecifier() {
      let {
        type: s
      } = this.state;
      return s === 126 || loe(s) ? this.state.containsEsc : super.isExportDefaultSpecifier();
    }
    parseExportDefaultExpression() {
      if (this.isContextual(126)) {
        let s = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(s);
      }
      return super.parseExportDefaultExpression();
    }
    parseConditional(s, r, i) {
      if (!this.match(17)) return s;
      if (this.state.maybeInArrowParameters) {
        let f = this.lookaheadCharCode();
        if (f === 44 || f === 61 || f === 58 || f === 41)
          return this.setOptionalParametersError(i), s;
      }
      this.expect(17);
      let a = this.state.clone(), o = this.state.noArrowAt, l = this.startNodeAt(r), {
        consequent: u,
        failed: c
      } = this.tryParseConditionalConsequent(), [p, h] = this.getArrowLikeExpressions(u);
      if (c || h.length > 0) {
        let f = [...o];
        if (h.length > 0) {
          this.state = a, this.state.noArrowAt = f;
          for (let d = 0; d < h.length; d++)
            f.push(h[d].start);
          ({
            consequent: u,
            failed: c
          } = this.tryParseConditionalConsequent()), [p, h] = this.getArrowLikeExpressions(u);
        }
        c && p.length > 1 && this.raise(Ft.AmbiguousConditionalArrow, a.startLoc), c && p.length === 1 && (this.state = a, f.push(p[0].start),
        this.state.noArrowAt = f, {
          consequent: u,
          failed: c
        } = this.tryParseConditionalConsequent());
      }
      return this.getArrowLikeExpressions(u, !0), this.state.noArrowAt = o, this.expect(14), l.test = s, l.consequent = u, l.alternate = this.
      forwardNoArrowParamsConversionAt(l, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(l, "ConditionalExpression");
    }
    tryParseConditionalConsequent() {
      this.state.noArrowParamsConversionAt.push(this.state.start);
      let s = this.parseMaybeAssignAllowIn(), r = !this.match(14);
      return this.state.noArrowParamsConversionAt.pop(), {
        consequent: s,
        failed: r
      };
    }
    getArrowLikeExpressions(s, r) {
      let i = [s], a = [];
      for (; i.length !== 0; ) {
        let o = i.pop();
        o.type === "ArrowFunctionExpression" && o.body.type !== "BlockStatement" ? (o.typeParameters || !o.returnType ? this.finishArrowValidation(
        o) : a.push(o), i.push(o.body)) : o.type === "ConditionalExpression" && (i.push(o.consequent), i.push(o.alternate));
      }
      return r ? (a.forEach((o) => this.finishArrowValidation(o)), [a, []]) : d4t(a, (o) => o.params.every((l) => this.isAssignable(l, !0)));
    }
    finishArrowValidation(s) {
      var r;
      this.toAssignableList(s.params, (r = s.extra) == null ? void 0 : r.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(s, !1,
      !0), this.scope.exit();
    }
    forwardNoArrowParamsConversionAt(s, r) {
      let i;
      return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? (this.state.noArrowParamsConversionAt.push(this.
      state.start), i = r(), this.state.noArrowParamsConversionAt.pop()) : i = r(), i;
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = i, a.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(a, "TypeCastExpression");
      }
      return i;
    }
    assertModuleNodeAllowed(s) {
      s.type === "ImportDeclaration" && (s.importKind === "type" || s.importKind === "typeof") || s.type === "ExportNamedDeclaration" && s.exportKind ===
      "type" || s.type === "ExportAllDeclaration" && s.exportKind === "type" || super.assertModuleNodeAllowed(s);
    }
    parseExportDeclaration(s) {
      if (this.isContextual(130)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.match(5) ? (s.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(s), null) : this.flowParseTypeAlias(
        r);
      } else if (this.isContextual(131)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseOpaqueType(r, !1);
      } else if (this.isContextual(129)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseInterface(r);
      } else if (this.isContextual(126)) {
        s.exportKind = "value";
        let r = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(r);
      } else
        return super.parseExportDeclaration(s);
    }
    eatExportStar(s) {
      return super.eatExportStar(s) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (s.exportKind = "type", this.next(), this.
      next(), !0) : !1;
    }
    maybeParseExportNamespaceSpecifier(s) {
      let {
        startLoc: r
      } = this.state, i = super.maybeParseExportNamespaceSpecifier(s);
      return i && s.exportKind === "type" && this.unexpected(r), i;
    }
    parseClassId(s, r, i) {
      super.parseClassId(s, r, i), this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration());
    }
    parseClassMember(s, r, i) {
      let {
        startLoc: a
      } = this.state;
      if (this.isContextual(125)) {
        if (super.parseClassMemberFromModifier(s, r))
          return;
        r.declare = !0;
      }
      super.parseClassMember(s, r, i), r.declare && (r.type !== "ClassProperty" && r.type !== "ClassPrivateProperty" && r.type !== "Property\
Definition" ? this.raise(Ft.DeclareClassElement, a) : r.value && this.raise(Ft.DeclareClassFieldInitializer, r.value));
    }
    isIterator(s) {
      return s === "iterator" || s === "asyncIterator";
    }
    readIterator() {
      let s = super.readWord1(), r = "@@" + s;
      (!this.isIterator(s) || !this.state.inType) && this.raise(te.InvalidIdentifier, this.state.curPosition(), {
        identifierName: r
      }), this.finishToken(132, r);
    }
    getTokenFromCode(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      s === 123 && r === 124 ? this.finishOp(6, 2) : this.state.inType && (s === 62 || s === 60) ? this.finishOp(s === 62 ? 48 : 47, 1) : this.
      state.inType && s === 63 ? r === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : z3t(s, r, this.input.charCodeAt(this.state.pos + 2)) ?
      (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(s);
    }
    isAssignable(s, r) {
      return s.type === "TypeCastExpression" ? this.isAssignable(s.expression, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      !r && s.type === "AssignmentExpression" && s.left.type === "TypeCastExpression" && (s.left = this.typeCastToParameter(s.left)), super.
      toAssignable(s, r);
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    toReferencedList(s, r) {
      for (let a = 0; a < s.length; a++) {
        var i;
        let o = s[a];
        o && o.type === "TypeCastExpression" && !((i = o.extra) != null && i.parenthesized) && (s.length > 1 || !r) && this.raise(Ft.TypeCastInPattern,
        o.typeAnnotation);
      }
      return s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return r && !this.state.maybeInArrowParameters && this.toReferencedList(o.elements), o;
    }
    isValidLVal(s, r, i) {
      return s === "TypeCastExpression" || super.isValidLVal(s, r, i);
    }
    parseClassProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(14) || super.isClassProperty();
    }
    isNonstaticConstructor(s) {
      return !this.match(14) && super.isNonstaticConstructor(s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      if (r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassMethod(s, r, i, a, o, l), r.params && o) {
        let u = r.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(Ft.ThisParamBannedInConstructor, r);
      } else if (r.type === "MethodDefinition" && o && r.value.params) {
        let u = r.value.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(Ft.ThisParamBannedInConstructor, r);
      }
    }
    pushClassPrivateMethod(s, r, i, a) {
      r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassPrivateMethod(s, r, i, a);
    }
    parseClassSuper(s) {
      if (super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression()),
      this.isContextual(113)) {
        this.next();
        let r = s.implements = [];
        do {
          let i = this.startNode();
          i.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? i.typeParameters = this.flowParseTypeParameterInstantiation() : i.
          typeParameters = null, r.push(this.finishNode(i, "ClassImplements"));
        } while (this.eat(12));
      }
    }
    checkGetterSetterParams(s) {
      super.checkGetterSetterParams(s);
      let r = this.getObjectOrClassMethodParams(s);
      if (r.length > 0) {
        let i = r[0];
        this.isThisParam(i) && s.kind === "get" ? this.raise(Ft.GetterMayNotHaveThisParam, i) : this.isThisParam(i) && this.raise(Ft.SetterMayNotHaveThisParam,
        i);
      }
    }
    parsePropertyNamePrefixOperator(s) {
      s.variance = this.flowParseVariance();
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      s.variance && this.unexpected(s.variance.loc.start), delete s.variance;
      let c;
      this.match(47) && !l && (c = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
      let p = super.parseObjPropValue(s, r, i, a, o, l, u);
      return c && ((p.value || p).typeParameters = c), p;
    }
    parseFunctionParamType(s) {
      return this.eat(17) && (s.type !== "Identifier" && this.raise(Ft.PatternIsOptional, s), this.isThisParam(s) && this.raise(Ft.ThisParamMayNotBeOptional,
      s), s.optional = !0), this.match(14) ? s.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(s) && this.raise(Ft.ThisParamAnnotationRequired,
      s), this.match(29) && this.isThisParam(s) && this.raise(Ft.ThisParamNoDefault, s), this.resetEndLocation(s), s;
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(Ft.TypeBeforeInitializer,
      i.typeAnnotation), i;
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(Ft.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    parseImportSpecifierLocal(s, r, i) {
      r.local = hoe(s) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), s.specifiers.push(this.finishImportSpecifier(r,
      i));
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        if (!s) return !0;
        let r = this.lookaheadCharCode();
        return r === 123 || r === 42;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      if (super.applyImportPhase(s, r, i, a), r) {
        if (!i && this.match(65))
          return;
        s.exportKind = i === "type" ? i : "value";
      } else
        i === "type" && this.match(55) && this.unexpected(), s.importKind = i === "type" || i === "typeof" ? i : "value";
    }
    parseImportSpecifier(s, r, i, a, o) {
      let l = s.imported, u = null;
      l.type === "Identifier" && (l.name === "type" ? u = "type" : l.name === "typeof" && (u = "typeof"));
      let c = !1;
      if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
        let h = this.parseIdentifier(!0);
        u !== null && !Mo(this.state.type) ? (s.imported = h, s.importKind = u, s.local = Yu(h)) : (s.imported = l, s.importKind = null, s.local =
        this.parseIdentifier());
      } else {
        if (u !== null && Mo(this.state.type))
          s.imported = this.parseIdentifier(!0), s.importKind = u;
        else {
          if (r)
            throw this.raise(te.ImportBindingIsString, s, {
              importName: l.value
            });
          s.imported = l, s.importKind = null;
        }
        this.eatContextual(93) ? s.local = this.parseIdentifier() : (c = !0, s.local = Yu(s.imported));
      }
      let p = hoe(s);
      return i && p && this.raise(Ft.ImportTypeShorthandOnlyInPureImport, s), (i || p) && this.checkReservedType(s.local.name, s.local.loc.start,
      !0), c && !i && !p && this.checkReservedWord(s.local.name, s.loc.start, !0, !0), this.finishImportSpecifier(s, "ImportSpecifier");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 78:
          return this.parseIdentifier(!0);
        default:
          return super.parseBindingAtom();
      }
    }
    parseFunctionParams(s, r) {
      let i = s.kind;
      i !== "get" && i !== "set" && this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(
      s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), this.match(14) && (s.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      if (this.match(14)) {
        let i = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0, s.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = i;
      }
      return super.parseAsyncArrowFromCallExpression(s, r);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    parseMaybeAssign(s, r) {
      var i;
      let a = null, o;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (a = this.state.clone(), o = this.tryParse(() => super.parseMaybeAssign(s, r), a), !o.error) return o.node;
        let {
          context: c
        } = this.state, p = c[c.length - 1];
        (p === rr.j_oTag || p === rr.j_expr) && c.pop();
      }
      if ((i = o) != null && i.error || this.match(47)) {
        var l, u;
        a = a || this.state.clone();
        let c, p = this.tryParse((f) => {
          var d;
          c = this.flowParseTypeParameterDeclaration();
          let m = this.forwardNoArrowParamsConversionAt(c, () => {
            let T = super.parseMaybeAssign(s, r);
            return this.resetStartLocationFromNode(T, c), T;
          });
          (d = m.extra) != null && d.parenthesized && f();
          let y = this.maybeUnwrapTypeCastExpression(m);
          return y.type !== "ArrowFunctionExpression" && f(), y.typeParameters = c, this.resetStartLocationFromNode(y, c), m;
        }, a), h = null;
        if (p.node && this.maybeUnwrapTypeCastExpression(p.node).type === "ArrowFunctionExpression") {
          if (!p.error && !p.aborted)
            return p.node.async && this.raise(Ft.UnexpectedTypeParameterBeforeAsyncArrowFunction, c), p.node;
          h = p.node;
        }
        if ((l = o) != null && l.node)
          return this.state = o.failState, o.node;
        if (h)
          return this.state = p.failState, h;
        throw (u = o) != null && u.thrown ? o.error : p.thrown ? p.error : this.raise(Ft.UnexpectedTokenAfterTypeParameter, c);
      }
      return super.parseMaybeAssign(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse(() => {
          let i = this.state.noAnonFunctionType;
          this.state.noAnonFunctionType = !0;
          let a = this.startNode();
          return [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = i, this.canInsertSemicolon() &&
          this.unexpected(), this.match(19) || this.unexpected(), a;
        });
        if (r.thrown) return null;
        r.error && (this.state = r.failState), s.returnType = r.node.typeAnnotation ? this.finishNode(r.node, "TypeAnnotation") : null;
      }
      return super.parseArrow(s);
    }
    shouldParseArrow(s) {
      return this.match(14) || super.shouldParseArrow(s);
    }
    setArrowFunctionParameters(s, r) {
      this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? s.params = r : super.setArrowFunctionParameters(s, r);
    }
    checkParams(s, r, i, a = !0) {
      if (!(i && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)))) {
        for (let o = 0; o < s.params.length; o++)
          this.isThisParam(s.params[o]) && o > 0 && this.raise(Ft.ThisParamMustBeFirst, s.params[o]);
        super.checkParams(s, r, i, a);
      }
    }
    parseParenAndDistinguishExpression(s) {
      return super.parseParenAndDistinguishExpression(s && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)));
    }
    parseSubscripts(s, r, i) {
      if (s.type === "Identifier" && s.name === "async" && this.state.noArrowAt.includes(r.index)) {
        this.next();
        let a = this.startNodeAt(r);
        a.callee = s, a.arguments = super.parseCallExpressionArguments(11), s = this.finishNode(a, "CallExpression");
      } else if (s.type === "Identifier" && s.name === "async" && this.match(47)) {
        let a = this.state.clone(), o = this.tryParse((u) => this.parseAsyncArrowWithTypeParameters(r) || u(), a);
        if (!o.error && !o.aborted) return o.node;
        let l = this.tryParse(() => super.parseSubscripts(s, r, i), a);
        if (l.node && !l.error) return l.node;
        if (o.node)
          return this.state = o.failState, o.node;
        if (l.node)
          return this.state = l.failState, l.node;
        throw o.error || l.error;
      }
      return super.parseSubscripts(s, r, i);
    }
    parseSubscript(s, r, i, a) {
      if (this.match(18) && this.isLookaheadToken_lt()) {
        if (a.optionalChainMember = !0, i)
          return a.stop = !0, s;
        this.next();
        let o = this.startNodeAt(r);
        return o.callee = s, o.typeArguments = this.flowParseTypeParameterInstantiationInExpression(), this.expect(10), o.arguments = this.parseCallExpressionArguments(
        11), o.optional = !0, this.finishCallExpression(o, !0);
      } else if (!i && this.shouldParseTypes() && (this.match(47) || this.match(51))) {
        let o = this.startNodeAt(r);
        o.callee = s;
        let l = this.tryParse(() => (o.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), o.arguments = super.
        parseCallExpressionArguments(11), a.optionalChainMember && (o.optional = !1), this.finishCallExpression(o, a.optionalChainMember)));
        if (l.node)
          return l.error && (this.state = l.failState), l.node;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      super.parseNewCallee(s);
      let r = null;
      this.shouldParseTypes() && this.match(47) && (r = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), s.typeArguments =
      r;
    }
    parseAsyncArrowWithTypeParameters(s) {
      let r = this.startNodeAt(s);
      if (this.parseFunctionParams(r, !1), !!this.parseArrow(r))
        return super.parseArrowExpression(r, void 0, !0);
    }
    readToken_mult_modulo(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 42 && r === 47 && this.state.hasFlowComment) {
        this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
        return;
      }
      super.readToken_mult_modulo(s);
    }
    readToken_pipe_amp(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 124 && r === 125) {
        this.finishOp(9, 2);
        return;
      }
      super.readToken_pipe_amp(s);
    }
    parseTopLevel(s, r) {
      let i = super.parseTopLevel(s, r);
      return this.state.hasFlowComment && this.raise(Ft.UnterminatedFlowComment, this.state.curPosition()), i;
    }
    skipBlockComment() {
      if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
        if (this.state.hasFlowComment)
          throw this.raise(Ft.NestedFlowComment, this.state.startLoc);
        this.hasFlowCommentCompletion();
        let s = this.skipFlowComment();
        s && (this.state.pos += s, this.state.hasFlowComment = !0);
        return;
      }
      return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
    }
    skipFlowComment() {
      let {
        pos: s
      } = this.state, r = 2;
      for (; [32, 9].includes(this.input.charCodeAt(s + r)); )
        r++;
      let i = this.input.charCodeAt(r + s), a = this.input.charCodeAt(r + s + 1);
      return i === 58 && a === 58 ? r + 2 : this.input.slice(r + s, r + s + 12) === "flow-include" ? r + 12 : i === 58 && a !== 58 ? r : !1;
    }
    hasFlowCommentCompletion() {
      if (this.input.indexOf("*/", this.state.pos) === -1)
        throw this.raise(te.UnterminatedComment, this.state.curPosition());
    }
    flowEnumErrorBooleanMemberNotInitialized(s, {
      enumName: r,
      memberName: i
    }) {
      this.raise(Ft.EnumBooleanMemberNotInitialized, s, {
        memberName: i,
        enumName: r
      });
    }
    flowEnumErrorInvalidMemberInitializer(s, r) {
      return this.raise(r.explicitType ? r.explicitType === "symbol" ? Ft.EnumInvalidMemberInitializerSymbolType : Ft.EnumInvalidMemberInitializerPrimaryType :
      Ft.EnumInvalidMemberInitializerUnknownType, s, r);
    }
    flowEnumErrorNumberMemberNotInitialized(s, r) {
      this.raise(Ft.EnumNumberMemberNotInitialized, s, r);
    }
    flowEnumErrorStringMemberInconsistentlyInitialized(s, r) {
      this.raise(Ft.EnumStringMemberInconsistentlyInitialized, s, r);
    }
    flowEnumMemberInit() {
      let s = this.state.startLoc, r = /* @__PURE__ */ n(() => this.match(12) || this.match(8), "endOfInit");
      switch (this.state.type) {
        case 135: {
          let i = this.parseNumericLiteral(this.state.value);
          return r() ? {
            type: "number",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 134: {
          let i = this.parseStringLiteral(this.state.value);
          return r() ? {
            type: "string",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 85:
        case 86: {
          let i = this.parseBooleanLiteral(this.match(85));
          return r() ? {
            type: "boolean",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        default:
          return {
            type: "invalid",
            loc: s
          };
      }
    }
    flowEnumMemberRaw() {
      let s = this.state.startLoc, r = this.parseIdentifier(!0), i = this.eat(29) ? this.flowEnumMemberInit() : {
        type: "none",
        loc: s
      };
      return {
        id: r,
        init: i
      };
    }
    flowEnumCheckExplicitTypeMismatch(s, r, i) {
      let {
        explicitType: a
      } = r;
      a !== null && a !== i && this.flowEnumErrorInvalidMemberInitializer(s, r);
    }
    flowEnumMembers({
      enumName: s,
      explicitType: r
    }) {
      let i = /* @__PURE__ */ new Set(), a = {
        booleanMembers: [],
        numberMembers: [],
        stringMembers: [],
        defaultedMembers: []
      }, o = !1;
      for (; !this.match(8); ) {
        if (this.eat(21)) {
          o = !0;
          break;
        }
        let l = this.startNode(), {
          id: u,
          init: c
        } = this.flowEnumMemberRaw(), p = u.name;
        if (p === "")
          continue;
        /^[a-z]/.test(p) && this.raise(Ft.EnumInvalidMemberName, u, {
          memberName: p,
          suggestion: p[0].toUpperCase() + p.slice(1),
          enumName: s
        }), i.has(p) && this.raise(Ft.EnumDuplicateMemberName, u, {
          memberName: p,
          enumName: s
        }), i.add(p);
        let h = {
          enumName: s,
          explicitType: r,
          memberName: p
        };
        switch (l.id = u, c.type) {
          case "boolean": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "boolean"), l.init = c.value, a.booleanMembers.push(this.finishNode(l, "EnumBoo\
leanMember"));
            break;
          }
          case "number": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "number"), l.init = c.value, a.numberMembers.push(this.finishNode(l, "EnumNumbe\
rMember"));
            break;
          }
          case "string": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "string"), l.init = c.value, a.stringMembers.push(this.finishNode(l, "EnumStrin\
gMember"));
            break;
          }
          case "invalid":
            throw this.flowEnumErrorInvalidMemberInitializer(c.loc, h);
          case "none":
            switch (r) {
              case "boolean":
                this.flowEnumErrorBooleanMemberNotInitialized(c.loc, h);
                break;
              case "number":
                this.flowEnumErrorNumberMemberNotInitialized(c.loc, h);
                break;
              default:
                a.defaultedMembers.push(this.finishNode(l, "EnumDefaultedMember"));
            }
        }
        this.match(8) || this.expect(12);
      }
      return {
        members: a,
        hasUnknownMembers: o
      };
    }
    flowEnumStringMembers(s, r, {
      enumName: i
    }) {
      if (s.length === 0)
        return r;
      if (r.length === 0)
        return s;
      if (r.length > s.length) {
        for (let a of s)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return r;
      } else {
        for (let a of r)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return s;
      }
    }
    flowEnumParseExplicitType({
      enumName: s
    }) {
      if (!this.eatContextual(102)) return null;
      if (!ir(this.state.type))
        throw this.raise(Ft.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
          enumName: s
        });
      let {
        value: r
      } = this.state;
      return this.next(), r !== "boolean" && r !== "number" && r !== "string" && r !== "symbol" && this.raise(Ft.EnumInvalidExplicitType, this.
      state.startLoc, {
        enumName: s,
        invalidEnumType: r
      }), r;
    }
    flowEnumBody(s, r) {
      let i = r.name, a = r.loc.start, o = this.flowEnumParseExplicitType({
        enumName: i
      });
      this.expect(5);
      let {
        members: l,
        hasUnknownMembers: u
      } = this.flowEnumMembers({
        enumName: i,
        explicitType: o
      });
      switch (s.hasUnknownMembers = u, o) {
        case "boolean":
          return s.explicitType = !0, s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
        case "number":
          return s.explicitType = !0, s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
        case "string":
          return s.explicitType = !0, s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
            enumName: i
          }), this.expect(8), this.finishNode(s, "EnumStringBody");
        case "symbol":
          return s.members = l.defaultedMembers, this.expect(8), this.finishNode(s, "EnumSymbolBody");
        default: {
          let c = /* @__PURE__ */ n(() => (s.members = [], this.expect(8), this.finishNode(s, "EnumStringBody")), "empty");
          s.explicitType = !1;
          let p = l.booleanMembers.length, h = l.numberMembers.length, f = l.stringMembers.length, d = l.defaultedMembers.length;
          if (!p && !h && !f && !d)
            return c();
          if (!p && !h)
            return s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
              enumName: i
            }), this.expect(8), this.finishNode(s, "EnumStringBody");
          if (!h && !f && p >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorBooleanMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
          } else if (!p && !f && h >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorNumberMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
          } else
            return this.raise(Ft.EnumInconsistentMemberValues, a, {
              enumName: i
            }), c();
        }
      }
    }
    flowParseEnumDeclaration(s) {
      let r = this.parseIdentifier();
      return s.id = r, s.body = this.flowEnumBody(this.startNode(), r), this.finishNode(s, "EnumDeclaration");
    }
    jsxParseOpeningElementAfterName(s) {
      return this.shouldParseTypes() && (this.match(47) || this.match(51)) && (s.typeArguments = this.flowParseTypeParameterInstantiationInExpression()),
      super.jsxParseOpeningElementAfterName(s);
    }
    isLookaheadToken_lt() {
      let s = this.nextTokenStart();
      if (this.input.charCodeAt(s) === 60) {
        let r = this.input.charCodeAt(s + 1);
        return r !== 60 && r !== 61;
      }
      return !1;
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    maybeUnwrapTypeCastExpression(s) {
      return s.type === "TypeCastExpression" ? s.expression : s;
    }
  }, "flow"), g4t = {
    __proto__: null,
    quot: '"',
    amp: "&",
    apos: "'",
    lt: "<",
    gt: ">",
    nbsp: "\xA0",
    iexcl: "\xA1",
    cent: "\xA2",
    pound: "\xA3",
    curren: "\xA4",
    yen: "\xA5",
    brvbar: "\xA6",
    sect: "\xA7",
    uml: "\xA8",
    copy: "\xA9",
    ordf: "\xAA",
    laquo: "\xAB",
    not: "\xAC",
    shy: "\xAD",
    reg: "\xAE",
    macr: "\xAF",
    deg: "\xB0",
    plusmn: "\xB1",
    sup2: "\xB2",
    sup3: "\xB3",
    acute: "\xB4",
    micro: "\xB5",
    para: "\xB6",
    middot: "\xB7",
    cedil: "\xB8",
    sup1: "\xB9",
    ordm: "\xBA",
    raquo: "\xBB",
    frac14: "\xBC",
    frac12: "\xBD",
    frac34: "\xBE",
    iquest: "\xBF",
    Agrave: "\xC0",
    Aacute: "\xC1",
    Acirc: "\xC2",
    Atilde: "\xC3",
    Auml: "\xC4",
    Aring: "\xC5",
    AElig: "\xC6",
    Ccedil: "\xC7",
    Egrave: "\xC8",
    Eacute: "\xC9",
    Ecirc: "\xCA",
    Euml: "\xCB",
    Igrave: "\xCC",
    Iacute: "\xCD",
    Icirc: "\xCE",
    Iuml: "\xCF",
    ETH: "\xD0",
    Ntilde: "\xD1",
    Ograve: "\xD2",
    Oacute: "\xD3",
    Ocirc: "\xD4",
    Otilde: "\xD5",
    Ouml: "\xD6",
    times: "\xD7",
    Oslash: "\xD8",
    Ugrave: "\xD9",
    Uacute: "\xDA",
    Ucirc: "\xDB",
    Uuml: "\xDC",
    Yacute: "\xDD",
    THORN: "\xDE",
    szlig: "\xDF",
    agrave: "\xE0",
    aacute: "\xE1",
    acirc: "\xE2",
    atilde: "\xE3",
    auml: "\xE4",
    aring: "\xE5",
    aelig: "\xE6",
    ccedil: "\xE7",
    egrave: "\xE8",
    eacute: "\xE9",
    ecirc: "\xEA",
    euml: "\xEB",
    igrave: "\xEC",
    iacute: "\xED",
    icirc: "\xEE",
    iuml: "\xEF",
    eth: "\xF0",
    ntilde: "\xF1",
    ograve: "\xF2",
    oacute: "\xF3",
    ocirc: "\xF4",
    otilde: "\xF5",
    ouml: "\xF6",
    divide: "\xF7",
    oslash: "\xF8",
    ugrave: "\xF9",
    uacute: "\xFA",
    ucirc: "\xFB",
    uuml: "\xFC",
    yacute: "\xFD",
    thorn: "\xFE",
    yuml: "\xFF",
    OElig: "\u0152",
    oelig: "\u0153",
    Scaron: "\u0160",
    scaron: "\u0161",
    Yuml: "\u0178",
    fnof: "\u0192",
    circ: "\u02C6",
    tilde: "\u02DC",
    Alpha: "\u0391",
    Beta: "\u0392",
    Gamma: "\u0393",
    Delta: "\u0394",
    Epsilon: "\u0395",
    Zeta: "\u0396",
    Eta: "\u0397",
    Theta: "\u0398",
    Iota: "\u0399",
    Kappa: "\u039A",
    Lambda: "\u039B",
    Mu: "\u039C",
    Nu: "\u039D",
    Xi: "\u039E",
    Omicron: "\u039F",
    Pi: "\u03A0",
    Rho: "\u03A1",
    Sigma: "\u03A3",
    Tau: "\u03A4",
    Upsilon: "\u03A5",
    Phi: "\u03A6",
    Chi: "\u03A7",
    Psi: "\u03A8",
    Omega: "\u03A9",
    alpha: "\u03B1",
    beta: "\u03B2",
    gamma: "\u03B3",
    delta: "\u03B4",
    epsilon: "\u03B5",
    zeta: "\u03B6",
    eta: "\u03B7",
    theta: "\u03B8",
    iota: "\u03B9",
    kappa: "\u03BA",
    lambda: "\u03BB",
    mu: "\u03BC",
    nu: "\u03BD",
    xi: "\u03BE",
    omicron: "\u03BF",
    pi: "\u03C0",
    rho: "\u03C1",
    sigmaf: "\u03C2",
    sigma: "\u03C3",
    tau: "\u03C4",
    upsilon: "\u03C5",
    phi: "\u03C6",
    chi: "\u03C7",
    psi: "\u03C8",
    omega: "\u03C9",
    thetasym: "\u03D1",
    upsih: "\u03D2",
    piv: "\u03D6",
    ensp: "\u2002",
    emsp: "\u2003",
    thinsp: "\u2009",
    zwnj: "\u200C",
    zwj: "\u200D",
    lrm: "\u200E",
    rlm: "\u200F",
    ndash: "\u2013",
    mdash: "\u2014",
    lsquo: "\u2018",
    rsquo: "\u2019",
    sbquo: "\u201A",
    ldquo: "\u201C",
    rdquo: "\u201D",
    bdquo: "\u201E",
    dagger: "\u2020",
    Dagger: "\u2021",
    bull: "\u2022",
    hellip: "\u2026",
    permil: "\u2030",
    prime: "\u2032",
    Prime: "\u2033",
    lsaquo: "\u2039",
    rsaquo: "\u203A",
    oline: "\u203E",
    frasl: "\u2044",
    euro: "\u20AC",
    image: "\u2111",
    weierp: "\u2118",
    real: "\u211C",
    trade: "\u2122",
    alefsym: "\u2135",
    larr: "\u2190",
    uarr: "\u2191",
    rarr: "\u2192",
    darr: "\u2193",
    harr: "\u2194",
    crarr: "\u21B5",
    lArr: "\u21D0",
    uArr: "\u21D1",
    rArr: "\u21D2",
    dArr: "\u21D3",
    hArr: "\u21D4",
    forall: "\u2200",
    part: "\u2202",
    exist: "\u2203",
    empty: "\u2205",
    nabla: "\u2207",
    isin: "\u2208",
    notin: "\u2209",
    ni: "\u220B",
    prod: "\u220F",
    sum: "\u2211",
    minus: "\u2212",
    lowast: "\u2217",
    radic: "\u221A",
    prop: "\u221D",
    infin: "\u221E",
    ang: "\u2220",
    and: "\u2227",
    or: "\u2228",
    cap: "\u2229",
    cup: "\u222A",
    int: "\u222B",
    there4: "\u2234",
    sim: "\u223C",
    cong: "\u2245",
    asymp: "\u2248",
    ne: "\u2260",
    equiv: "\u2261",
    le: "\u2264",
    ge: "\u2265",
    sub: "\u2282",
    sup: "\u2283",
    nsub: "\u2284",
    sube: "\u2286",
    supe: "\u2287",
    oplus: "\u2295",
    otimes: "\u2297",
    perp: "\u22A5",
    sdot: "\u22C5",
    lceil: "\u2308",
    rceil: "\u2309",
    lfloor: "\u230A",
    rfloor: "\u230B",
    lang: "\u2329",
    rang: "\u232A",
    loz: "\u25CA",
    spades: "\u2660",
    clubs: "\u2663",
    hearts: "\u2665",
    diams: "\u2666"
  }, xf = Ju`jsx`({
    AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
    MissingClosingTagElement: /* @__PURE__ */ n(({
      openingTagName: t
    }) => `Expected corresponding JSX closing tag for <${t}>.`, "MissingClosingTagElement"),
    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: /* @__PURE__ */ n(({
      unexpected: t,
      HTMLEntity: e
    }) => `Unexpected token \`${t}\`. Did you mean \`${e}\` or \`{'${t}'}\`?`, "UnexpectedToken"),
    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 Cp(t) {
    return t ? t.type === "JSXOpeningFragment" || t.type === "JSXClosingFragment" : !1;
  }
  n(Cp, "isFragment");
  function jm(t) {
    if (t.type === "JSXIdentifier")
      return t.name;
    if (t.type === "JSXNamespacedName")
      return t.namespace.name + ":" + t.name.name;
    if (t.type === "JSXMemberExpression")
      return jm(t.object) + "." + jm(t.property);
    throw new Error("Node had unexpected type: " + t.type);
  }
  n(jm, "getQualifiedJSXName");
  var T4t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "JSXParserMixin");
    }
    jsxReadToken() {
      let s = "", r = this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(xf.UnterminatedJsxContent, this.state.startLoc);
        let i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 60:
          case 123:
            if (this.state.pos === this.state.start) {
              i === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(143)) : super.getTokenFromCode(i);
              return;
            }
            s += this.input.slice(r, this.state.pos), this.finishToken(142, s);
            return;
          case 38:
            s += this.input.slice(r, this.state.pos), s += this.jsxReadEntity(), r = this.state.pos;
            break;
          case 62:
          case 125:
          default:
            qm(i) ? (s += this.input.slice(r, this.state.pos), s += this.jsxReadNewLine(!0), r = this.state.pos) : ++this.state.pos;
        }
      }
    }
    jsxReadNewLine(s) {
      let r = this.input.charCodeAt(this.state.pos), i;
      return ++this.state.pos, r === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, i = s ? `
` : `\r
`) : i = String.fromCharCode(r), ++this.state.curLine, this.state.lineStart = this.state.pos, i;
    }
    jsxReadString(s) {
      let r = "", i = ++this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(te.UnterminatedString, this.state.startLoc);
        let a = this.input.charCodeAt(this.state.pos);
        if (a === s) break;
        a === 38 ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos) : qm(a) ? (r += this.input.slice(
        i, this.state.pos), r += this.jsxReadNewLine(!1), i = this.state.pos) : ++this.state.pos;
      }
      r += this.input.slice(i, this.state.pos++), this.finishToken(134, r);
    }
    jsxReadEntity() {
      let s = ++this.state.pos;
      if (this.codePointAtPos(this.state.pos) === 35) {
        ++this.state.pos;
        let r = 10;
        this.codePointAtPos(this.state.pos) === 120 && (r = 16, ++this.state.pos);
        let i = this.readInt(r, void 0, !1, "bail");
        if (i !== null && this.codePointAtPos(this.state.pos) === 59)
          return ++this.state.pos, String.fromCodePoint(i);
      } else {
        let r = 0, i = !1;
        for (; r++ < 10 && this.state.pos < this.length && !(i = this.codePointAtPos(this.state.pos) === 59); )
          ++this.state.pos;
        if (i) {
          let a = this.input.slice(s, this.state.pos), o = g4t[a];
          if (++this.state.pos, o)
            return o;
        }
      }
      return this.state.pos = s, "&";
    }
    jsxReadWord() {
      let s, r = this.state.pos;
      do
        s = this.input.charCodeAt(++this.state.pos);
      while (Rm(s) || s === 45);
      this.finishToken(141, this.input.slice(r, this.state.pos));
    }
    jsxParseIdentifier() {
      let s = this.startNode();
      return this.match(141) ? s.name = this.state.value : M3(this.state.type) ? s.name = wp(this.state.type) : this.unexpected(), this.next(),
      this.finishNode(s, "JSXIdentifier");
    }
    jsxParseNamespacedName() {
      let s = this.state.startLoc, r = this.jsxParseIdentifier();
      if (!this.eat(14)) return r;
      let i = this.startNodeAt(s);
      return i.namespace = r, i.name = this.jsxParseIdentifier(), this.finishNode(i, "JSXNamespacedName");
    }
    jsxParseElementName() {
      let s = this.state.startLoc, r = this.jsxParseNamespacedName();
      if (r.type === "JSXNamespacedName")
        return r;
      for (; this.eat(16); ) {
        let i = this.startNodeAt(s);
        i.object = r, i.property = this.jsxParseIdentifier(), r = this.finishNode(i, "JSXMemberExpression");
      }
      return r;
    }
    jsxParseAttributeValue() {
      let s;
      switch (this.state.type) {
        case 5:
          return s = this.startNode(), this.setContext(rr.brace), this.next(), s = this.jsxParseExpressionContainer(s, rr.j_oTag), s.expression.
          type === "JSXEmptyExpression" && this.raise(xf.AttributeIsEmpty, s), s;
        case 143:
        case 134:
          return this.parseExprAtom();
        default:
          throw this.raise(xf.UnsupportedJsxValue, this.state.startLoc);
      }
    }
    jsxParseEmptyExpression() {
      let s = this.startNodeAt(this.state.lastTokEndLoc);
      return this.finishNodeAt(s, "JSXEmptyExpression", this.state.startLoc);
    }
    jsxParseSpreadChild(s) {
      return this.next(), s.expression = this.parseExpression(), this.setContext(rr.j_expr), this.state.canStartJSXElement = !0, this.expect(
      8), this.finishNode(s, "JSXSpreadChild");
    }
    jsxParseExpressionContainer(s, r) {
      if (this.match(8))
        s.expression = this.jsxParseEmptyExpression();
      else {
        let i = this.parseExpression();
        s.expression = i;
      }
      return this.setContext(r), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXExpressionContainer");
    }
    jsxParseAttribute() {
      let s = this.startNode();
      return this.match(5) ? (this.setContext(rr.brace), this.next(), this.expect(21), s.argument = this.parseMaybeAssignAllowIn(), this.setContext(
      rr.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXSpreadAttribute")) : (s.name = this.jsxParseNamespacedName(),
      s.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(s, "JSXAttribute"));
    }
    jsxParseOpeningElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXOpeningFragment") : (r.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(
      r));
    }
    jsxParseOpeningElementAfterName(s) {
      let r = [];
      for (; !this.match(56) && !this.match(144); )
        r.push(this.jsxParseAttribute());
      return s.attributes = r, s.selfClosing = this.eat(56), this.expect(144), this.finishNode(s, "JSXOpeningElement");
    }
    jsxParseClosingElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXClosingFragment") : (r.name = this.jsxParseElementName(), this.expect(144), this.finishNode(
      r, "JSXClosingElement"));
    }
    jsxParseElementAt(s) {
      let r = this.startNodeAt(s), i = [], a = this.jsxParseOpeningElementAt(s), o = null;
      if (!a.selfClosing) {
        e: for (; ; )
          switch (this.state.type) {
            case 143:
              if (s = this.state.startLoc, this.next(), this.eat(56)) {
                o = this.jsxParseClosingElementAt(s);
                break e;
              }
              i.push(this.jsxParseElementAt(s));
              break;
            case 142:
              i.push(this.parseLiteral(this.state.value, "JSXText"));
              break;
            case 5: {
              let l = this.startNode();
              this.setContext(rr.brace), this.next(), this.match(21) ? i.push(this.jsxParseSpreadChild(l)) : i.push(this.jsxParseExpressionContainer(
              l, rr.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
        Cp(a) && !Cp(o) && o !== null ? this.raise(xf.MissingClosingTagFragment, o) : !Cp(a) && Cp(o) ? this.raise(xf.MissingClosingTagElement,
        o, {
          openingTagName: jm(a.name)
        }) : !Cp(a) && !Cp(o) && jm(o.name) !== jm(a.name) && this.raise(xf.MissingClosingTagElement, o, {
          openingTagName: jm(a.name)
        });
      }
      if (Cp(a) ? (r.openingFragment = a, r.closingFragment = o) : (r.openingElement = a, r.closingElement = o), r.children = i, this.match(
      47))
        throw this.raise(xf.UnwrappedAdjacentJSXElements, this.state.startLoc);
      return Cp(a) ? this.finishNode(r, "JSXFragment") : this.finishNode(r, "JSXElement");
    }
    jsxParseElement() {
      let s = this.state.startLoc;
      return this.next(), this.jsxParseElementAt(s);
    }
    setContext(s) {
      let {
        context: r
      } = this.state;
      r[r.length - 1] = s;
    }
    parseExprAtom(s) {
      return this.match(143) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(
      143), this.jsxParseElement()) : super.parseExprAtom(s);
    }
    skipSpace() {
      this.curContext().preserveSpace || super.skipSpace();
    }
    getTokenFromCode(s) {
      let r = this.curContext();
      if (r === rr.j_expr) {
        this.jsxReadToken();
        return;
      }
      if (r === rr.j_oTag || r === rr.j_cTag) {
        if (Hu(s)) {
          this.jsxReadWord();
          return;
        }
        if (s === 62) {
          ++this.state.pos, this.finishToken(144);
          return;
        }
        if ((s === 34 || s === 39) && r === rr.j_oTag) {
          this.jsxReadString(s);
          return;
        }
      }
      if (s === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
        ++this.state.pos, this.finishToken(143);
        return;
      }
      super.getTokenFromCode(s);
    }
    updateContext(s) {
      let {
        context: r,
        type: i
      } = this.state;
      if (i === 56 && s === 143)
        r.splice(-2, 2, rr.j_cTag), this.state.canStartJSXElement = !1;
      else if (i === 143)
        r.push(rr.j_oTag);
      else if (i === 144) {
        let a = r[r.length - 1];
        a === rr.j_oTag && s === 56 || a === rr.j_cTag ? (r.pop(), this.state.canStartJSXElement = r[r.length - 1] === rr.j_expr) : (this.setContext(
        rr.j_expr), this.state.canStartJSXElement = !0);
      } else
        this.state.canStartJSXElement = L3t(i);
    }
  }, "jsx"), v3 = class extends sT {
    static {
      n(this, "TypeScriptScope");
    }
    constructor(...e) {
      super(...e), this.tsNames = /* @__PURE__ */ new Map();
    }
  }, C3 = class extends rT {
    static {
      n(this, "TypeScriptScopeHandler");
    }
    constructor(...e) {
      super(...e), this.importsStack = [];
    }
    createScope(e) {
      return this.importsStack.push(/* @__PURE__ */ new Set()), new v3(e);
    }
    enter(e) {
      e === 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(e);
    }
    exit() {
      let e = super.exit();
      return e === 256 && this.importsStack.pop(), e;
    }
    hasImport(e, s) {
      let r = this.importsStack.length;
      if (this.importsStack[r - 1].has(e))
        return !0;
      if (!s && r > 1) {
        for (let i = 0; i < r - 1; i++)
          if (this.importsStack[i].has(e)) return !0;
      }
      return !1;
    }
    declareName(e, s, r) {
      if (s & 4096) {
        this.hasImport(e, !0) && this.parser.raise(te.VarRedeclaration, r, {
          identifierName: e
        }), this.importsStack[this.importsStack.length - 1].add(e);
        return;
      }
      let i = this.currentScope(), a = i.tsNames.get(e) || 0;
      if (s & 1024) {
        this.maybeExportDefined(i, e), i.tsNames.set(e, a | 16);
        return;
      }
      super.declareName(e, s, r), s & 2 && (s & 1 || (this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e)), a = a | 1),
      s & 256 && (a = a | 2), s & 512 && (a = a | 4), s & 128 && (a = a | 8), a && i.tsNames.set(e, a);
    }
    isRedeclaredInScope(e, s, r) {
      let i = e.tsNames.get(s);
      if ((i & 2) > 0) {
        if (r & 256) {
          let a = !!(r & 512), o = (i & 4) > 0;
          return a !== o;
        }
        return !0;
      }
      return r & 128 && (i & 8) > 0 ? e.names.get(s) & 2 ? !!(r & 1) : !1 : r & 2 && (i & 1) > 0 ? !0 : super.isRedeclaredInScope(e, s, r);
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      if (this.hasImport(s)) return;
      let r = this.scopeStack.length;
      for (let i = r - 1; i >= 0; i--) {
        let o = this.scopeStack[i].tsNames.get(s);
        if ((o & 1) > 0 || (o & 16) > 0)
          return;
      }
      super.checkLocalExport(e);
    }
  }, koe = /* @__PURE__ */ n((t) => t.type === "ParenthesizedExpression" ? koe(t.expression) : t, "unwrapParenthesizedExpression"), w3 = class extends A3 {
    static {
      n(this, "LValParser");
    }
    toAssignable(e, s = !1) {
      var r, i;
      let a;
      switch ((e.type === "ParenthesizedExpression" || (r = e.extra) != null && r.parenthesized) && (a = koe(e), s ? a.type === "Identifier" ?
      this.expressionScope.recordArrowParameterBindingError(te.InvalidParenthesizedAssignment, e) : a.type !== "MemberExpression" && !this.isOptionalMemberExpression(
      a) && this.raise(te.InvalidParenthesizedAssignment, e) : this.raise(te.InvalidParenthesizedAssignment, e)), e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          break;
        case "ObjectExpression":
          e.type = "ObjectPattern";
          for (let l = 0, u = e.properties.length, c = u - 1; l < u; l++) {
            var o;
            let p = e.properties[l], h = l === c;
            this.toAssignableObjectExpressionProp(p, h, s), h && p.type === "RestElement" && (o = e.extra) != null && o.trailingCommaLoc && this.
            raise(te.RestTrailingComma, e.extra.trailingCommaLoc);
          }
          break;
        case "ObjectProperty": {
          let {
            key: l,
            value: u
          } = e;
          this.isPrivateName(l) && this.classScope.usePrivateName(this.getPrivateNameSV(l), l.loc.start), this.toAssignable(u, s);
          break;
        }
        case "SpreadElement":
          throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignabl\
e's caller.");
        case "ArrayExpression":
          e.type = "ArrayPattern", this.toAssignableList(e.elements, (i = e.extra) == null ? void 0 : i.trailingCommaLoc, s);
          break;
        case "AssignmentExpression":
          e.operator !== "=" && this.raise(te.MissingEqInAssignment, e.left.loc.end), e.type = "AssignmentPattern", delete e.operator, this.
          toAssignable(e.left, s);
          break;
        case "ParenthesizedExpression":
          this.toAssignable(a, s);
          break;
      }
    }
    toAssignableObjectExpressionProp(e, s, r) {
      if (e.type === "ObjectMethod")
        this.raise(e.kind === "get" || e.kind === "set" ? te.PatternHasAccessor : te.PatternHasMethod, e.key);
      else if (e.type === "SpreadElement") {
        e.type = "RestElement";
        let i = e.argument;
        this.checkToRestConversion(i, !1), this.toAssignable(i, r), s || this.raise(te.RestTrailingComma, e);
      } else
        this.toAssignable(e, r);
    }
    toAssignableList(e, s, r) {
      let i = e.length - 1;
      for (let a = 0; a <= i; a++) {
        let o = e[a];
        if (o) {
          if (o.type === "SpreadElement") {
            o.type = "RestElement";
            let l = o.argument;
            this.checkToRestConversion(l, !0), this.toAssignable(l, r);
          } else
            this.toAssignable(o, r);
          o.type === "RestElement" && (a < i ? this.raise(te.RestTrailingComma, o) : s && this.raise(te.RestTrailingComma, s));
        }
      }
    }
    isAssignable(e, s) {
      switch (e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          return !0;
        case "ObjectExpression": {
          let r = e.properties.length - 1;
          return e.properties.every((i, a) => i.type !== "ObjectMethod" && (a === r || i.type !== "SpreadElement") && this.isAssignable(i));
        }
        case "ObjectProperty":
          return this.isAssignable(e.value);
        case "SpreadElement":
          return this.isAssignable(e.argument);
        case "ArrayExpression":
          return e.elements.every((r) => r === null || this.isAssignable(r));
        case "AssignmentExpression":
          return e.operator === "=";
        case "ParenthesizedExpression":
          return this.isAssignable(e.expression);
        case "MemberExpression":
        case "OptionalMemberExpression":
          return !s;
        default:
          return !1;
      }
    }
    toReferencedList(e, s) {
      return e;
    }
    toReferencedListDeep(e, s) {
      this.toReferencedList(e, s);
      for (let r of e)
        r?.type === "ArrayExpression" && this.toReferencedListDeep(r.elements);
    }
    parseSpread(e) {
      let s = this.startNode();
      return this.next(), s.argument = this.parseMaybeAssignAllowIn(e, void 0), this.finishNode(s, "SpreadElement");
    }
    parseRestBinding() {
      let e = this.startNode();
      return this.next(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 0: {
          let e = this.startNode();
          return this.next(), e.elements = this.parseBindingList(3, 93, 1), this.finishNode(e, "ArrayPattern");
        }
        case 5:
          return this.parseObjectLike(8, !0);
      }
      return this.parseIdentifier();
    }
    parseBindingList(e, s, r) {
      let i = r & 1, a = [], o = !0;
      for (; !this.eat(e); )
        if (o ? o = !1 : this.expect(12), i && this.match(12))
          a.push(null);
        else {
          if (this.eat(e))
            break;
          if (this.match(21)) {
            let l = this.parseRestBinding();
            if ((this.hasPlugin("flow") || r & 2) && (l = this.parseFunctionParamType(l)), a.push(l), !this.checkCommaAfterRest(s)) {
              this.expect(e);
              break;
            }
          } else {
            let l = [];
            for (this.match(26) && this.hasPlugin("decorators") && this.raise(te.UnsupportedParameterDecorator, this.state.startLoc); this.match(
            26); )
              l.push(this.parseDecorator());
            a.push(this.parseAssignableListItem(r, l));
          }
        }
      return a;
    }
    parseBindingRestProperty(e) {
      return this.next(), e.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(e, "RestElement");
    }
    parseBindingProperty() {
      let {
        type: e,
        startLoc: s
      } = this.state;
      if (e === 21)
        return this.parseBindingRestProperty(this.startNode());
      let r = this.startNode();
      return e === 139 ? (this.expectPlugin("destructuringPrivate", s), this.classScope.usePrivateName(this.state.value, s), r.key = this.parsePrivateName()) :
      this.parsePropertyName(r), r.method = !1, this.parseObjPropValue(r, s, !1, !1, !0, !1);
    }
    parseAssignableListItem(e, s) {
      let r = this.parseMaybeDefault();
      (this.hasPlugin("flow") || e & 2) && this.parseFunctionParamType(r);
      let i = this.parseMaybeDefault(r.loc.start, r);
      return s.length && (r.decorators = s), i;
    }
    parseFunctionParamType(e) {
      return e;
    }
    parseMaybeDefault(e, s) {
      var r, i;
      if ((r = e) != null || (e = this.state.startLoc), s = (i = s) != null ? i : this.parseBindingAtom(), !this.eat(29)) return s;
      let a = this.startNodeAt(e);
      return a.left = s, a.right = this.parseMaybeAssignAllowIn(), this.finishNode(a, "AssignmentPattern");
    }
    isValidLVal(e, s, r) {
      switch (e) {
        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(e) {
      return e.type === "OptionalMemberExpression";
    }
    checkLVal(e, s, r = 64, i = !1, a = !1, o = !1) {
      var l;
      let u = e.type;
      if (this.isObjectMethod(e)) return;
      let c = this.isOptionalMemberExpression(e);
      if (c || u === "MemberExpression") {
        c && (this.expectPlugin("optionalChainingAssign", e.loc.start), s.type !== "AssignmentExpression" && this.raise(te.InvalidLhsOptionalChaining,
        e, {
          ancestor: s
        })), r !== 64 && this.raise(te.InvalidPropertyBindingPattern, e);
        return;
      }
      if (u === "Identifier") {
        this.checkIdentifier(e, r, a);
        let {
          name: y
        } = e;
        i && (i.has(y) ? this.raise(te.ParamDupe, e) : i.add(y));
        return;
      }
      let p = this.isValidLVal(u, !(o || (l = e.extra) != null && l.parenthesized) && s.type === "AssignmentExpression", r);
      if (p === !0) return;
      if (p === !1) {
        let y = r === 64 ? te.InvalidLhs : te.InvalidLhsBinding;
        this.raise(y, e, {
          ancestor: s
        });
        return;
      }
      let h, f;
      typeof p == "string" ? (h = p, f = u === "ParenthesizedExpression") : [h, f] = p;
      let d = u === "ArrayPattern" || u === "ObjectPattern" ? {
        type: u
      } : s, m = e[h];
      if (Array.isArray(m))
        for (let y of m)
          y && this.checkLVal(y, d, r, i, a, f);
      else m && this.checkLVal(m, d, r, i, a, f);
    }
    checkIdentifier(e, s, r = !1) {
      this.state.strict && (r ? voe(e.name, this.inModule) : Aoe(e.name)) && (s === 64 ? this.raise(te.StrictEvalArguments, e, {
        referenceName: e.name
      }) : this.raise(te.StrictEvalArgumentsBinding, e, {
        bindingName: e.name
      })), s & 8192 && e.name === "let" && this.raise(te.LetInLexicalBinding, e), s & 64 || this.declareNameFromIdentifier(e, s);
    }
    declareNameFromIdentifier(e, s) {
      this.scope.declareName(e.name, s, e.loc.start);
    }
    checkToRestConversion(e, s) {
      switch (e.type) {
        case "ParenthesizedExpression":
          this.checkToRestConversion(e.expression, s);
          break;
        case "Identifier":
        case "MemberExpression":
          break;
        case "ArrayExpression":
        case "ObjectExpression":
          if (s) break;
        default:
          this.raise(te.InvalidRestAssignmentPattern, e);
      }
    }
    checkCommaAfterRest(e) {
      return this.match(12) ? (this.raise(this.lookaheadCharCode() === e ? te.RestTrailingComma : te.ElementAfterRest, this.state.startLoc),
      !0) : !1;
    }
  };
  function b4t(t) {
    if (t == null)
      throw new Error(`Unexpected ${t} value.`);
    return t;
  }
  n(b4t, "nonNull");
  function foe(t) {
    if (!t)
      throw new Error("Assert fail");
  }
  n(foe, "assert");
  var mt = Ju`typescript`({
    AbstractMethodHasImplementation: /* @__PURE__ */ n(({
      methodName: t
    }) => `Method '${t}' cannot have an implementation because it is marked abstract.`, "AbstractMethodHasImplementation"),
    AbstractPropertyHasInitializer: /* @__PURE__ */ n(({
      propertyName: t
    }) => `Property '${t}' cannot have an initializer because it is marked abstract.`, "AbstractPropertyHasInitializer"),
    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 num\
eric literal or literal enum reference.",
    ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
    DeclareAccessor: /* @__PURE__ */ n(({
      kind: t
    }) => `'declare' is not allowed in ${t}ters.`, "DeclareAccessor"),
    DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
    DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
    DuplicateAccessibilityModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => "Accessibility modifier already seen.", "DuplicateAccessibilityModifier"),
    DuplicateModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => `Duplicate modifier: '${t}'.`, "DuplicateModifier"),
    EmptyHeritageClauseType: /* @__PURE__ */ n(({
      token: t
    }) => `'${t}' list cannot be empty.`, "EmptyHeritageClauseType"),
    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: /* @__PURE__ */ n(({
      modifiers: t
    }) => `'${t[0]}' modifier cannot be used with '${t[1]}' modifier.`, "IncompatibleModifiers"),
    IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
    IndexSignatureHasAccessibility: /* @__PURE__ */ n(({
      modifier: t
    }) => `Index signatures cannot have an accessibility modifier ('${t}').`, "IndexSignatureHasAccessibility"),
    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: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type member.`, "InvalidModifierOnTypeMember"),
    InvalidModifierOnTypeParameter: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type parameter.`, "InvalidModifierOnTypeParameter"),
    InvalidModifierOnTypeParameterPositions: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier can only appear on a type parameter of a class, interface or type alias.`, "InvalidModifierOnTypeParameterPositio\
ns"),
    InvalidModifiersOrder: /* @__PURE__ */ n(({
      orderedModifiers: t
    }) => `'${t[0]}' modifier must precede '${t[1]}' modifier.`, "InvalidModifiersOrder"),
    InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the i\
nstantiation 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: /* @__PURE__ */ n(({
      modifier: t
    }) => `Private elements cannot have an accessibility modifier ('${t}').`, "PrivateElementHasAccessibility"),
    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: /* @__PURE__ */ n(({
      typeParameterName: t
    }) => `Single type parameter ${t} should have a trailing comma. Example usage: <${t},>.`, "SingleTypeParameterWithoutTrailingComma"),
    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 (`n\
ame?: 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 statemen\
t.",
    TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statemen\
t.",
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${t}.`, "UnsupportedSignatureParameterKind")
  });
  function x4t(t) {
    switch (t) {
      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;
    }
  }
  n(x4t, "keywordTypeFromName");
  function doe(t) {
    return t === "private" || t === "public" || t === "protected";
  }
  n(doe, "tsIsAccessModifier");
  function S4t(t) {
    return t === "in" || t === "out";
  }
  n(S4t, "tsIsVarianceAnnotations");
  var P4t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "TypeScriptParserMixin");
    }
    constructor(...s) {
      super(...s), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out"],
        disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: mt.InvalidModifierOnTypeParameter
      }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["const"],
        disallowedModifiers: ["in", "out"],
        errorTemplate: mt.InvalidModifierOnTypeParameterPositions
      }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out", "const"],
        disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: mt.InvalidModifierOnTypeParameter
      });
    }
    getScopeHandler() {
      return C3;
    }
    tsIsIdentifier() {
      return ir(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(s, r) {
      if (!ir(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
        return;
      let i = this.state.value;
      if (s.includes(i)) {
        if (r && this.tsIsStartOfStaticBlocks())
          return;
        if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
          return i;
      }
    }
    tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: r,
      stopOnStartOfClassStaticBlock: i,
      errorTemplate: a = mt.InvalidModifierOnTypeMember
    }, o) {
      let l = /* @__PURE__ */ n((c, p, h, f) => {
        p === h && o[f] && this.raise(mt.InvalidModifiersOrder, c, {
          orderedModifiers: [h, f]
        });
      }, "enforceOrder"), u = /* @__PURE__ */ n((c, p, h, f) => {
        (o[h] && p === f || o[f] && p === h) && this.raise(mt.IncompatibleModifiers, c, {
          modifiers: [h, f]
        });
      }, "incompatible");
      for (; ; ) {
        let {
          startLoc: c
        } = this.state, p = this.tsParseModifier(s.concat(r ?? []), i);
        if (!p) break;
        doe(p) ? o.accessibility ? this.raise(mt.DuplicateAccessibilityModifier, c, {
          modifier: p
        }) : (l(c, p, p, "override"), l(c, p, p, "static"), l(c, p, p, "readonly"), o.accessibility = p) : S4t(p) ? (o[p] && this.raise(mt.DuplicateModifier,
        c, {
          modifier: p
        }), o[p] = !0, l(c, p, "in", "out")) : (hasOwnProperty.call(o, p) ? this.raise(mt.DuplicateModifier, c, {
          modifier: p
        }) : (l(c, p, "static", "readonly"), l(c, p, "static", "override"), l(c, p, "override", "readonly"), l(c, p, "abstract", "override"),
        u(c, p, "declare", "override"), u(c, p, "static", "abstract")), o[p] = !0), r != null && r.includes(p) && this.raise(a, c, {
          modifier: p
        });
      }
    }
    tsIsListTerminator(s) {
      switch (s) {
        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(s, r) {
      let i = [];
      for (; !this.tsIsListTerminator(s); )
        i.push(r());
      return i;
    }
    tsParseDelimitedList(s, r, i) {
      return b4t(this.tsParseDelimitedListWorker(s, r, !0, i));
    }
    tsParseDelimitedListWorker(s, r, i, a) {
      let o = [], l = -1;
      for (; !this.tsIsListTerminator(s); ) {
        l = -1;
        let u = r();
        if (u == null)
          return;
        if (o.push(u), this.eat(12)) {
          l = this.state.lastTokStartLoc.index;
          continue;
        }
        if (this.tsIsListTerminator(s))
          break;
        i && this.expect(12);
        return;
      }
      return a && (a.value = l), o;
    }
    tsParseBracketedList(s, r, i, a, o) {
      a || (i ? this.expect(0) : this.expect(47));
      let l = this.tsParseDelimitedList(s, r, o);
      return i ? this.expect(3) : this.expect(48), l;
    }
    tsParseImportType() {
      let s = this.startNode();
      return this.expect(83), this.expect(10), this.match(134) ? s.argument = this.parseStringLiteral(this.state.value) : (this.raise(mt.UnsupportedImportTypeArgument,
      this.state.startLoc), s.argument = super.parseExprAtom()), this.eat(12) && !this.match(11) ? (s.options = super.parseMaybeAssignAllowIn(),
      this.eat(12)) : s.options = null, this.expect(11), this.eat(16) && (s.qualifier = this.tsParseEntityName(3)), this.match(47) && (s.typeParameters =
      this.tsParseTypeArguments()), this.finishNode(s, "TSImportType");
    }
    tsParseEntityName(s) {
      let r;
      if (s & 1 && this.match(78))
        if (s & 2)
          r = this.parseIdentifier(!0);
        else {
          let i = this.startNode();
          this.next(), r = this.finishNode(i, "ThisExpression");
        }
      else
        r = this.parseIdentifier(!!(s & 1));
      for (; this.eat(16); ) {
        let i = this.startNodeAtNode(r);
        i.left = r, i.right = this.parseIdentifier(!!(s & 1)), r = this.finishNode(i, "TSQualifiedName");
      }
      return r;
    }
    tsParseTypeReference() {
      let s = this.startNode();
      return s.typeName = this.tsParseEntityName(1), !this.hasPrecedingLineBreak() && this.match(47) && (s.typeParameters = this.tsParseTypeArguments()),
      this.finishNode(s, "TSTypeReference");
    }
    tsParseThisTypePredicate(s) {
      this.next();
      let r = this.startNodeAtNode(s);
      return r.parameterName = s, r.typeAnnotation = this.tsParseTypeAnnotation(!1), r.asserts = !1, this.finishNode(r, "TSTypePredicate");
    }
    tsParseThisTypeNode() {
      let s = this.startNode();
      return this.next(), this.finishNode(s, "TSThisType");
    }
    tsParseTypeQuery() {
      let s = this.startNode();
      return this.expect(87), this.match(83) ? s.exprName = this.tsParseImportType() : s.exprName = this.tsParseEntityName(3), !this.hasPrecedingLineBreak() &&
      this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSTypeQuery");
    }
    tsParseTypeParameter(s) {
      let r = this.startNode();
      return s(r), r.name = this.tsParseTypeParameterName(), r.constraint = this.tsEatThenParseType(81), r.default = this.tsEatThenParseType(
      29), this.finishNode(r, "TSTypeParameter");
    }
    tsTryParseTypeParameters(s) {
      if (this.match(47))
        return this.tsParseTypeParameters(s);
    }
    tsParseTypeParameters(s) {
      let r = this.startNode();
      this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = {
        value: -1
      };
      return r.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, s), !1, !0, i), r.params.
      length === 0 && this.raise(mt.EmptyTypeParameters, r), i.value !== -1 && this.addExtra(r, "trailingComma", i.value), this.finishNode(r,
      "TSTypeParameterDeclaration");
    }
    tsFillSignature(s, r) {
      let i = s === 19, a = "parameters", o = "typeAnnotation";
      r.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), r[a] = this.tsParseBindingListForSignature(),
      i ? r[o] = this.tsParseTypeOrTypePredicateAnnotation(s) : this.match(s) && (r[o] = this.tsParseTypeOrTypePredicateAnnotation(s));
    }
    tsParseBindingListForSignature() {
      let s = super.parseBindingList(11, 41, 2);
      for (let r of s) {
        let {
          type: i
        } = r;
        (i === "AssignmentPattern" || i === "TSParameterProperty") && this.raise(mt.UnsupportedSignatureParameterKind, r, {
          type: i
        });
      }
      return s;
    }
    tsParseTypeMemberSemicolon() {
      !this.eat(12) && !this.isLineTerminator() && this.expect(13);
    }
    tsParseSignatureMember(s, r) {
      return this.tsFillSignature(14, r), this.tsParseTypeMemberSemicolon(), this.finishNode(r, s);
    }
    tsIsUnambiguouslyIndexSignature() {
      return this.next(), ir(this.state.type) ? (this.next(), this.match(14)) : !1;
    }
    tsTryParseIndexSignature(s) {
      if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
        return;
      this.expect(0);
      let r = this.parseIdentifier();
      r.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(r), this.expect(3), s.parameters = [r];
      let i = this.tsTryParseTypeAnnotation();
      return i && (s.typeAnnotation = i), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSIndexSignature");
    }
    tsParsePropertyOrMethodSignature(s, r) {
      this.eat(17) && (s.optional = !0);
      let i = s;
      if (this.match(10) || this.match(47)) {
        r && this.raise(mt.ReadonlyForMethodSignature, s);
        let a = i;
        a.kind && this.match(47) && this.raise(mt.AccessorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, a), this.
        tsParseTypeMemberSemicolon();
        let o = "parameters", l = "typeAnnotation";
        if (a.kind === "get")
          a[o].length > 0 && (this.raise(te.BadGetterArity, this.state.curPosition()), this.isThisParam(a[o][0]) && this.raise(mt.AccessorCannotDeclareThisParameter,
          this.state.curPosition()));
        else if (a.kind === "set") {
          if (a[o].length !== 1)
            this.raise(te.BadSetterArity, this.state.curPosition());
          else {
            let u = a[o][0];
            this.isThisParam(u) && this.raise(mt.AccessorCannotDeclareThisParameter, this.state.curPosition()), u.type === "Identifier" && u.
            optional && this.raise(mt.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()), u.type === "RestElement" && this.raise(
            mt.SetAccessorCannotHaveRestParameter, this.state.curPosition());
          }
          a[l] && this.raise(mt.SetAccessorCannotHaveReturnType, a[l]);
        } else
          a.kind = "method";
        return this.finishNode(a, "TSMethodSignature");
      } else {
        let a = i;
        r && (a.readonly = !0);
        let o = this.tsTryParseTypeAnnotation();
        return o && (a.typeAnnotation = o), this.tsParseTypeMemberSemicolon(), this.finishNode(a, "TSPropertySignature");
      }
    }
    tsParseTypeMember() {
      let s = this.startNode();
      if (this.match(10) || this.match(47))
        return this.tsParseSignatureMember("TSCallSignatureDeclaration", s);
      if (this.match(77)) {
        let i = this.startNode();
        return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", s) : (s.key = this.
        createIdentifier(i, "new"), this.tsParsePropertyOrMethodSignature(s, !1));
      }
      this.tsParseModifiers({
        allowedModifiers: ["readonly"],
        disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
      }, s);
      let r = this.tsTryParseIndexSignature(s);
      return r || (super.parsePropertyName(s), !s.computed && s.key.type === "Identifier" && (s.key.name === "get" || s.key.name === "set") &&
      this.tsTokenCanFollowModifier() && (s.kind = s.key.name, super.parsePropertyName(s)), this.tsParsePropertyOrMethodSignature(s, !!s.readonly));
    }
    tsParseTypeLiteral() {
      let s = this.startNode();
      return s.members = this.tsParseObjectTypeMembers(), this.finishNode(s, "TSTypeLiteral");
    }
    tsParseObjectTypeMembers() {
      this.expect(5);
      let s = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
      return this.expect(8), s;
    }
    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() {
      let s = this.startNode();
      this.expect(5), this.match(53) ? (s.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) &&
      (s.readonly = !0), this.expect(0);
      {
        let r = this.startNode();
        r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), s.typeParameter = this.finishNode(r, "TSTyp\
eParameter");
      }
      return s.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (s.optional = this.state.value,
      this.next(), this.expect(17)) : this.eat(17) && (s.optional = !0), s.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(
      8), this.finishNode(s, "TSMappedType");
    }
    tsParseTupleType() {
      let s = this.startNode();
      s.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
      let r = !1;
      return s.elementTypes.forEach((i) => {
        let {
          type: a
        } = i;
        r && a !== "TSRestType" && a !== "TSOptionalType" && !(a === "TSNamedTupleMember" && i.optional) && this.raise(mt.OptionalTypeBeforeRequired,
        i), r || (r = a === "TSNamedTupleMember" && i.optional || a === "TSOptionalType");
      }), this.finishNode(s, "TSTupleType");
    }
    tsParseTupleElementType() {
      let s = this.state.startLoc, r = this.eat(21), {
        startLoc: i
      } = this.state, a, o, l, u, p = Mo(this.state.type) ? this.lookaheadCharCode() : null;
      if (p === 58)
        a = !0, l = !1, o = this.parseIdentifier(!0), this.expect(14), u = this.tsParseType();
      else if (p === 63) {
        l = !0;
        let h = this.state.value, f = this.tsParseNonArrayType();
        this.lookaheadCharCode() === 58 ? (a = !0, o = this.createIdentifier(this.startNodeAt(i), h), this.expect(17), this.expect(14), u = this.
        tsParseType()) : (a = !1, u = f, this.expect(17));
      } else
        u = this.tsParseType(), l = this.eat(17), a = this.eat(14);
      if (a) {
        let h;
        o ? (h = this.startNodeAt(i), h.optional = l, h.label = o, h.elementType = u, this.eat(17) && (h.optional = !0, this.raise(mt.TupleOptionalAfterType,
        this.state.lastTokStartLoc))) : (h = this.startNodeAt(i), h.optional = l, this.raise(mt.InvalidTupleMemberLabel, u), h.label = u, h.
        elementType = this.tsParseType()), u = this.finishNode(h, "TSNamedTupleMember");
      } else if (l) {
        let h = this.startNodeAt(i);
        h.typeAnnotation = u, u = this.finishNode(h, "TSOptionalType");
      }
      if (r) {
        let h = this.startNodeAt(s);
        h.typeAnnotation = u, u = this.finishNode(h, "TSRestType");
      }
      return u;
    }
    tsParseParenthesizedType() {
      let s = this.startNode();
      return this.expect(10), s.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(s, "TSParenthesizedType");
    }
    tsParseFunctionOrConstructorType(s, r) {
      let i = this.startNode();
      return s === "TSConstructorType" && (i.abstract = !!r, r && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.
      tsFillSignature(19, i)), this.finishNode(i, s);
    }
    tsParseLiteralTypeNode() {
      let s = this.startNode();
      switch (this.state.type) {
        case 135:
        case 136:
        case 134:
        case 85:
        case 86:
          s.literal = super.parseExprAtom();
          break;
        default:
          this.unexpected();
      }
      return this.finishNode(s, "TSLiteralType");
    }
    tsParseTemplateLiteralType() {
      {
        let s = this.startNode();
        return s.literal = super.parseTemplate(!1), this.finishNode(s, "TSLiteralType");
      }
    }
    parseTemplateSubstitution() {
      return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
    }
    tsParseThisTypeOrThisTypePredicate() {
      let s = this.tsParseThisTypeNode();
      return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(s) : s;
    }
    tsParseNonArrayType() {
      switch (this.state.type) {
        case 134:
        case 135:
        case 136:
        case 85:
        case 86:
          return this.tsParseLiteralTypeNode();
        case 53:
          if (this.state.value === "-") {
            let s = this.startNode(), r = this.lookahead();
            return r.type !== 135 && r.type !== 136 && this.unexpected(), s.literal = this.parseMaybeUnary(), this.finishNode(s, "TSLiteralT\
ype");
          }
          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: {
          let {
            type: s
          } = this.state;
          if (ir(s) || s === 88 || s === 84) {
            let r = s === 88 ? "TSVoidKeyword" : s === 84 ? "TSNullKeyword" : x4t(this.state.value);
            if (r !== void 0 && this.lookaheadCharCode() !== 46) {
              let i = this.startNode();
              return this.next(), this.finishNode(i, r);
            }
            return this.tsParseTypeReference();
          }
        }
      }
      this.unexpected();
    }
    tsParseArrayTypeOrHigher() {
      let {
        startLoc: s
      } = this.state, r = this.tsParseNonArrayType();
      for (; !this.hasPrecedingLineBreak() && this.eat(0); )
        if (this.match(3)) {
          let i = this.startNodeAt(s);
          i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
        } else {
          let i = this.startNodeAt(s);
          i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
        }
      return r;
    }
    tsParseTypeOperator() {
      let s = this.startNode(), r = this.state.value;
      return this.next(), s.operator = r, s.typeAnnotation = this.tsParseTypeOperatorOrHigher(), r === "readonly" && this.tsCheckTypeAnnotationForReadOnly(
      s), this.finishNode(s, "TSTypeOperator");
    }
    tsCheckTypeAnnotationForReadOnly(s) {
      switch (s.typeAnnotation.type) {
        case "TSTupleType":
        case "TSArrayType":
          return;
        default:
          this.raise(mt.UnexpectedReadonly, s);
      }
    }
    tsParseInferType() {
      let s = this.startNode();
      this.expectContextual(115);
      let r = this.startNode();
      return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), s.typeParameter =
      this.finishNode(r, "TSTypeParameter"), this.finishNode(s, "TSInferType");
    }
    tsParseConstraintForInferType() {
      if (this.eat(81)) {
        let s = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
        if (this.state.inDisallowConditionalTypesContext || !this.match(17))
          return s;
      }
    }
    tsParseTypeOperatorOrHigher() {
      return q3t(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() :
      this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
    }
    tsParseUnionOrIntersectionType(s, r, i) {
      let a = this.startNode(), o = this.eat(i), l = [];
      do
        l.push(r());
      while (this.eat(i));
      return l.length === 1 && !o ? l[0] : (a.types = l, this.finishNode(a, s));
    }
    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 (ir(this.state.type) || this.match(78))
        return this.next(), !0;
      if (this.match(5)) {
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return this.parseObjectLike(8, !0), s.length === r;
        } catch {
          return !1;
        }
      }
      if (this.match(0)) {
        this.next();
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return super.parseBindingList(3, 93, 1), s.length === r;
        } 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(s) {
      return this.tsInType(() => {
        let r = this.startNode();
        this.expect(s);
        let i = this.startNode(), a = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
        if (a && this.match(78)) {
          let u = this.tsParseThisTypeOrThisTypePredicate();
          return u.type === "TSThisType" ? (i.parameterName = u, i.asserts = !0, i.typeAnnotation = null, u = this.finishNode(i, "TSTypePred\
icate")) : (this.resetStartLocationFromNode(u, i), u.asserts = !0), r.typeAnnotation = u, this.finishNode(r, "TSTypeAnnotation");
        }
        let o = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
        if (!o)
          return a ? (i.parameterName = this.parseIdentifier(), i.asserts = a, i.typeAnnotation = null, r.typeAnnotation = this.finishNode(i,
          "TSTypePredicate"), this.finishNode(r, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, r);
        let l = this.tsParseTypeAnnotation(!1);
        return i.parameterName = o, i.typeAnnotation = l, i.asserts = a, r.typeAnnotation = this.finishNode(i, "TSTypePredicate"), this.finishNode(
        r, "TSTypeAnnotation");
      });
    }
    tsTryParseTypeOrTypePredicateAnnotation() {
      if (this.match(14))
        return this.tsParseTypeOrTypePredicateAnnotation(14);
    }
    tsTryParseTypeAnnotation() {
      if (this.match(14))
        return this.tsParseTypeAnnotation();
    }
    tsTryParseType() {
      return this.tsEatThenParseType(14);
    }
    tsParseTypePredicatePrefix() {
      let s = this.parseIdentifier();
      if (this.isContextual(116) && !this.hasPrecedingLineBreak())
        return this.next(), s;
    }
    tsParseTypePredicateAsserts() {
      if (this.state.type !== 109)
        return !1;
      let s = this.state.containsEsc;
      return this.next(), !ir(this.state.type) && !this.match(78) ? !1 : (s && this.raise(te.InvalidEscapedReservedWord, this.state.lastTokStartLoc,
      {
        reservedWord: "asserts"
      }), !0);
    }
    tsParseTypeAnnotation(s = !0, r = this.startNode()) {
      return this.tsInType(() => {
        s && this.expect(14), r.typeAnnotation = this.tsParseType();
      }), this.finishNode(r, "TSTypeAnnotation");
    }
    tsParseType() {
      foe(this.state.inType);
      let s = this.tsParseNonConditionalType();
      if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
        return s;
      let r = this.startNodeAtNode(s);
      return r.checkType = s, r.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(
      17), r.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), r.falseType = this.tsInAllowConditionalTypesContext(
      () => this.tsParseType()), this.finishNode(r, "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(mt.ReservedTypeAssertion, this.state.startLoc);
      let s = this.startNode();
      return s.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.
      expect(48), s.expression = this.parseMaybeUnary(), this.finishNode(s, "TSTypeAssertion");
    }
    tsParseHeritageClause(s) {
      let r = this.state.startLoc, i = this.tsParseDelimitedList("HeritageClauseElement", () => {
        let a = this.startNode();
        return a.expression = this.tsParseEntityName(3), this.match(47) && (a.typeParameters = this.tsParseTypeArguments()), this.finishNode(
        a, "TSExpressionWithTypeArguments");
      });
      return i.length || this.raise(mt.EmptyHeritageClauseType, r, {
        token: s
      }), i;
    }
    tsParseInterfaceDeclaration(s, r = {}) {
      if (this.hasFollowingLineBreak()) return null;
      this.expectContextual(129), r.declare && (s.declare = !0), ir(this.state.type) ? (s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, 130)) : (s.id = null, this.raise(mt.MissingInterfaceName, this.state.startLoc)), s.typeParameters = this.tsTryParseTypeParameters(
      this.tsParseInOutConstModifiers), this.eat(81) && (s.extends = this.tsParseHeritageClause("extends"));
      let i = this.startNode();
      return i.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), s.body = this.finishNode(i, "TSInterfaceBody"), this.finishNode(
      s, "TSInterfaceDeclaration");
    }
    tsParseTypeAliasDeclaration(s) {
      return s.id = this.parseIdentifier(), this.checkIdentifier(s.id, 2), s.typeAnnotation = this.tsInType(() => {
        if (s.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().
        type !== 16) {
          let r = this.startNode();
          return this.next(), this.finishNode(r, "TSIntrinsicKeyword");
        }
        return this.tsParseType();
      }), this.semicolon(), this.finishNode(s, "TSTypeAliasDeclaration");
    }
    tsInTopLevelContext(s) {
      if (this.curContext() !== rr.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    tsInType(s) {
      let r = this.state.inType;
      this.state.inType = !0;
      try {
        return s();
      } finally {
        this.state.inType = r;
      }
    }
    tsInDisallowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !0;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsInAllowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !1;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsEatThenParseType(s) {
      if (this.match(s))
        return this.tsNextThenParseType();
    }
    tsExpectThenParseType(s) {
      return this.tsInType(() => (this.expect(s), this.tsParseType()));
    }
    tsNextThenParseType() {
      return this.tsInType(() => (this.next(), this.tsParseType()));
    }
    tsParseEnumMember() {
      let s = this.startNode();
      return s.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (s.initializer =
      super.parseMaybeAssignAllowIn()), this.finishNode(s, "TSEnumMember");
    }
    tsParseEnumDeclaration(s, r = {}) {
      return r.const && (s.const = !0), r.declare && (s.declare = !0), this.expectContextual(126), s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, s.const ? 8971 : 8459), this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)),
      this.expect(8), this.finishNode(s, "TSEnumDeclaration");
    }
    tsParseEnumBody() {
      let s = this.startNode();
      return this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(
      s, "TSEnumBody");
    }
    tsParseModuleBlock() {
      let s = this.startNode();
      return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(s.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(
      s, "TSModuleBlock");
    }
    tsParseModuleOrNamespaceDeclaration(s, r = !1) {
      if (s.id = this.parseIdentifier(), r || this.checkIdentifier(s.id, 1024), this.eat(16)) {
        let i = this.startNode();
        this.tsParseModuleOrNamespaceDeclaration(i, !0), s.body = i;
      } else
        this.scope.enter(256), this.prodParam.enter(0), s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
      return this.finishNode(s, "TSModuleDeclaration");
    }
    tsParseAmbientExternalModuleDeclaration(s) {
      return this.isContextual(112) ? (s.kind = "global", s.global = !0, s.id = this.parseIdentifier()) : this.match(134) ? (s.kind = "modul\
e", s.id = super.parseStringLiteral(this.state.value)) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0),
      s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(s, "TSModuleDeclarat\
ion");
    }
    tsParseImportEqualsDeclaration(s, r, i) {
      s.isExport = i || !1, s.id = r || this.parseIdentifier(), this.checkIdentifier(s.id, 4096), this.expect(29);
      let a = this.tsParseModuleReference();
      return s.importKind === "type" && a.type !== "TSExternalModuleReference" && this.raise(mt.ImportAliasHasImportType, a), s.moduleReference =
      a, this.semicolon(), this.finishNode(s, "TSImportEqualsDeclaration");
    }
    tsIsExternalModuleReference() {
      return this.isContextual(119) && this.lookaheadCharCode() === 40;
    }
    tsParseModuleReference() {
      return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0);
    }
    tsParseExternalModuleReference() {
      let s = this.startNode();
      return this.expectContextual(119), this.expect(10), this.match(134) || this.unexpected(), s.expression = super.parseExprAtom(), this.expect(
      11), this.sawUnambiguousESM = !0, this.finishNode(s, "TSExternalModuleReference");
    }
    tsLookAhead(s) {
      let r = this.state.clone(), i = s();
      return this.state = r, i;
    }
    tsTryParseAndCatch(s) {
      let r = this.tryParse((i) => s() || i());
      if (!(r.aborted || !r.node))
        return r.error && (this.state = r.failState), r.node;
    }
    tsTryParse(s) {
      let r = this.state.clone(), i = s();
      if (i !== void 0 && i !== !1)
        return i;
      this.state = r;
    }
    tsTryParseDeclare(s) {
      if (this.isLineTerminator())
        return;
      let r = this.state.type, i;
      return this.isContextual(100) && (r = 74, i = "let"), this.tsInAmbientContext(() => {
        switch (r) {
          case 68:
            return s.declare = !0, super.parseFunctionStatement(s, !1, !1);
          case 80:
            return s.declare = !0, this.parseClass(s, !0, !1);
          case 126:
            return this.tsParseEnumDeclaration(s, {
              declare: !0
            });
          case 112:
            return this.tsParseAmbientExternalModuleDeclaration(s);
          case 75:
          case 74:
            return !this.match(75) || !this.isLookaheadContextual("enum") ? (s.declare = !0, this.parseVarStatement(s, i || this.state.value,
            !0)) : (this.expect(75), this.tsParseEnumDeclaration(s, {
              const: !0,
              declare: !0
            }));
          case 129: {
            let a = this.tsParseInterfaceDeclaration(s, {
              declare: !0
            });
            if (a) return a;
          }
          default:
            if (ir(r))
              return this.tsParseDeclaration(s, this.state.value, !0, null);
        }
      });
    }
    tsTryParseExportDeclaration() {
      return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
    }
    tsParseExpressionStatement(s, r, i) {
      switch (r.name) {
        case "declare": {
          let a = this.tsTryParseDeclare(s);
          return a && (a.declare = !0), a;
        }
        case "global":
          if (this.match(5)) {
            this.scope.enter(256), this.prodParam.enter(0);
            let a = s;
            return a.kind = "global", s.global = !0, a.id = r, a.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(),
            this.finishNode(a, "TSModuleDeclaration");
          }
          break;
        default:
          return this.tsParseDeclaration(s, r.name, !1, i);
      }
    }
    tsParseDeclaration(s, r, i, a) {
      switch (r) {
        case "abstract":
          if (this.tsCheckLineTerminator(i) && (this.match(80) || ir(this.state.type)))
            return this.tsParseAbstractDeclaration(s, a);
          break;
        case "module":
          if (this.tsCheckLineTerminator(i)) {
            if (this.match(134))
              return this.tsParseAmbientExternalModuleDeclaration(s);
            if (ir(this.state.type))
              return s.kind = "module", this.tsParseModuleOrNamespaceDeclaration(s);
          }
          break;
        case "namespace":
          if (this.tsCheckLineTerminator(i) && ir(this.state.type))
            return s.kind = "namespace", this.tsParseModuleOrNamespaceDeclaration(s);
          break;
        case "type":
          if (this.tsCheckLineTerminator(i) && ir(this.state.type))
            return this.tsParseTypeAliasDeclaration(s);
          break;
      }
    }
    tsCheckLineTerminator(s) {
      return s ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
    }
    tsTryParseGenericAsyncArrowFunction(s) {
      if (!this.match(47)) return;
      let r = this.state.maybeInArrowParameters;
      this.state.maybeInArrowParameters = !0;
      let i = this.tsTryParseAndCatch(() => {
        let a = this.startNodeAt(s);
        return a.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(a), a.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(),
        this.expect(19), a;
      });
      if (this.state.maybeInArrowParameters = r, !!i)
        return super.parseArrowExpression(i, null, !0);
    }
    tsParseTypeArgumentsInExpression() {
      if (this.reScan_lt() === 47)
        return this.tsParseTypeArguments();
    }
    tsParseTypeArguments() {
      let s = this.startNode();
      return s.params = this.tsInType(() => this.tsInTopLevelContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArgu\
ments", this.tsParseType.bind(this))))), s.params.length === 0 ? this.raise(mt.EmptyTypeArguments, s) : !this.state.inType && this.curContext() ===
      rr.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(s, "TSTypeParameterInstantiation");
    }
    tsIsDeclarationStart() {
      return U3t(this.state.type);
    }
    isExportDefaultSpecifier() {
      return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
    }
    parseAssignableListItem(s, r) {
      let i = this.state.startLoc, a = {};
      this.tsParseModifiers({
        allowedModifiers: ["public", "private", "protected", "override", "readonly"]
      }, a);
      let o = a.accessibility, l = a.override, u = a.readonly;
      !(s & 4) && (o || u || l) && this.raise(mt.UnexpectedParameterModifier, i);
      let c = this.parseMaybeDefault();
      s & 2 && this.parseFunctionParamType(c);
      let p = this.parseMaybeDefault(c.loc.start, c);
      if (o || u || l) {
        let h = this.startNodeAt(i);
        return r.length && (h.decorators = r), o && (h.accessibility = o), u && (h.readonly = u), l && (h.override = l), p.type !== "Identif\
ier" && p.type !== "AssignmentPattern" && this.raise(mt.UnsupportedParameterPropertyKind, h), h.parameter = p, this.finishNode(h, "TSParamet\
erProperty");
      }
      return r.length && (c.decorators = r), p;
    }
    isSimpleParameter(s) {
      return s.type === "TSParameterProperty" && super.isSimpleParameter(s.parameter) || super.isSimpleParameter(s);
    }
    tsDisallowOptionalPattern(s) {
      for (let r of s.params)
        r.type !== "Identifier" && r.optional && !this.state.isAmbientContext && this.raise(mt.PatternIsOptional, r);
    }
    setArrowFunctionParameters(s, r, i) {
      super.setArrowFunctionParameters(s, r, i), this.tsDisallowOptionalPattern(s);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      this.match(14) && (s.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
      let a = r === "FunctionDeclaration" ? "TSDeclareFunction" : r === "ClassMethod" || r === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
      return a && !this.match(5) && this.isLineTerminator() ? this.finishNode(s, a) : a === "TSDeclareFunction" && this.state.isAmbientContext &&
      (this.raise(mt.DeclareFunctionHasImplementation, s), s.declare) ? super.parseFunctionBodyAndFinish(s, a, i) : (this.tsDisallowOptionalPattern(
      s), super.parseFunctionBodyAndFinish(s, r, i));
    }
    registerFunctionStatementId(s) {
      !s.body && s.id ? this.checkIdentifier(s.id, 1024) : super.registerFunctionStatementId(s);
    }
    tsCheckForInvalidTypeCasts(s) {
      s.forEach((r) => {
        r?.type === "TSTypeCastExpression" && this.raise(mt.UnexpectedTypeAnnotation, r.typeAnnotation);
      });
    }
    toReferencedList(s, r) {
      return this.tsCheckForInvalidTypeCasts(s), s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return o.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(o.elements), o;
    }
    parseSubscript(s, r, i, a) {
      if (!this.hasPrecedingLineBreak() && this.match(35)) {
        this.state.canStartJSXElement = !1, this.next();
        let l = this.startNodeAt(r);
        return l.expression = s, this.finishNode(l, "TSNonNullExpression");
      }
      let o = !1;
      if (this.match(18) && this.lookaheadCharCode() === 60) {
        if (i)
          return a.stop = !0, s;
        a.optionalChainMember = o = !0, this.next();
      }
      if (this.match(47) || this.match(51)) {
        let l, u = this.tsTryParseAndCatch(() => {
          if (!i && this.atPossibleAsyncArrow(s)) {
            let f = this.tsTryParseGenericAsyncArrowFunction(r);
            if (f)
              return f;
          }
          let c = this.tsParseTypeArgumentsInExpression();
          if (!c) return;
          if (o && !this.match(10)) {
            l = this.state.curPosition();
            return;
          }
          if (HA(this.state.type)) {
            let f = super.parseTaggedTemplateExpression(s, r, a);
            return f.typeParameters = c, f;
          }
          if (!i && this.eat(10)) {
            let f = this.startNodeAt(r);
            return f.callee = s, f.arguments = this.parseCallExpressionArguments(11), this.tsCheckForInvalidTypeCasts(f.arguments), f.typeParameters =
            c, a.optionalChainMember && (f.optional = o), this.finishCallExpression(f, a.optionalChainMember);
          }
          let p = this.state.type;
          if (p === 48 || p === 52 || p !== 10 && c3(p) && !this.hasPrecedingLineBreak())
            return;
          let h = this.startNodeAt(r);
          return h.expression = s, h.typeParameters = c, this.finishNode(h, "TSInstantiationExpression");
        });
        if (l && this.unexpected(l, 10), u)
          return u.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(
          mt.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), u;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      var r;
      super.parseNewCallee(s);
      let {
        callee: i
      } = s;
      i.type === "TSInstantiationExpression" && !((r = i.extra) != null && r.parenthesized) && (s.typeParameters = i.typeParameters, s.callee =
      i.expression);
    }
    parseExprOp(s, r, i) {
      let a;
      if (VA(58) > i && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (a = this.isContextual(120)))) {
        let o = this.startNodeAt(r);
        return o.expression = s, o.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (a && this.raise(te.UnexpectedKeyword,
        this.state.startLoc, {
          keyword: "const"
        }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(o, a ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(),
        this.parseExprOp(o, r, i);
      }
      return super.parseExprOp(s, r, i);
    }
    checkReservedWord(s, r, i, a) {
      this.state.isAmbientContext || super.checkReservedWord(s, r, i, a);
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(mt.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    checkDuplicateExports() {
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        let r = this.lookaheadCharCode();
        return s ? r === 123 || r === 42 : r !== 61;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      super.applyImportPhase(s, r, i, a), r ? s.exportKind = i === "type" ? "type" : "value" : s.importKind = i === "type" || i === "typeof" ?
      i : "value";
    }
    parseImport(s) {
      if (this.match(134))
        return s.importKind = "value", super.parseImport(s);
      let r;
      if (ir(this.state.type) && this.lookaheadCharCode() === 61)
        return s.importKind = "value", this.tsParseImportEqualsDeclaration(s);
      if (this.isContextual(130)) {
        let i = this.parseMaybeImportPhase(s, !1);
        if (this.lookaheadCharCode() === 61)
          return this.tsParseImportEqualsDeclaration(s, i);
        r = super.parseImportSpecifiersAndAfter(s, i);
      } else
        r = super.parseImport(s);
      return r.importKind === "type" && r.specifiers.length > 1 && r.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(mt.TypeImportCannotSpecifyDefaultAndNamed,
      r), r;
    }
    parseExport(s, r) {
      if (this.match(83)) {
        let i = s;
        this.next();
        let a = null;
        return this.isContextual(130) && this.isPotentialImportPhase(!1) ? a = this.parseMaybeImportPhase(i, !1) : i.importKind = "value", this.
        tsParseImportEqualsDeclaration(i, a, !0);
      } else if (this.eat(29)) {
        let i = s;
        return i.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(i, "TSExportAssignment");
      } else if (this.eatContextual(93)) {
        let i = s;
        return this.expectContextual(128), i.id = this.parseIdentifier(), this.semicolon(), this.finishNode(i, "TSNamespaceExportDeclaration");
      } else
        return super.parseExport(s, r);
    }
    isAbstractClass() {
      return this.isContextual(124) && this.lookahead().type === 80;
    }
    parseExportDefaultExpression() {
      if (this.isAbstractClass()) {
        let s = this.startNode();
        return this.next(), s.abstract = !0, this.parseClass(s, !0, !0);
      }
      if (this.match(129)) {
        let s = this.tsParseInterfaceDeclaration(this.startNode());
        if (s) return s;
      }
      return super.parseExportDefaultExpression();
    }
    parseVarStatement(s, r, i = !1) {
      let {
        isAmbientContext: a
      } = this.state, o = super.parseVarStatement(s, r, i || a);
      if (!a) return o;
      for (let {
        id: l,
        init: u
      } of o.declarations)
        u && (r !== "const" || l.typeAnnotation ? this.raise(mt.InitializerNotAllowedInAmbientContext, u) : A4t(u, this.hasPlugin("estree")) ||
        this.raise(mt.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, u));
      return o;
    }
    parseStatementContent(s, r) {
      if (this.match(75) && this.isLookaheadContextual("enum")) {
        let i = this.startNode();
        return this.expect(75), this.tsParseEnumDeclaration(i, {
          const: !0
        });
      }
      if (this.isContextual(126))
        return this.tsParseEnumDeclaration(this.startNode());
      if (this.isContextual(129)) {
        let i = this.tsParseInterfaceDeclaration(this.startNode());
        if (i) return i;
      }
      return super.parseStatementContent(s, r);
    }
    parseAccessModifier() {
      return this.tsParseModifier(["public", "protected", "private"]);
    }
    tsHasSomeModifiers(s, r) {
      return r.some((i) => doe(i) ? s.accessibility === i : !!s[i]);
    }
    tsIsStartOfStaticBlocks() {
      return this.isContextual(106) && this.lookaheadCharCode() === 123;
    }
    parseClassMember(s, r, i) {
      let a = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
      this.tsParseModifiers({
        allowedModifiers: a,
        disallowedModifiers: ["in", "out"],
        stopOnStartOfClassStaticBlock: !0,
        errorTemplate: mt.InvalidModifierOnTypeParameterPositions
      }, r);
      let o = /* @__PURE__ */ n(() => {
        this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(r, a) && this.raise(mt.StaticBlockCannotHaveModifier,
        this.state.curPosition()), super.parseClassStaticBlock(s, r)) : this.parseClassMemberWithIsStatic(s, r, i, !!r.static);
      }, "callParseClassMemberWithIsStatic");
      r.declare ? this.tsInAmbientContext(o) : o();
    }
    parseClassMemberWithIsStatic(s, r, i, a) {
      let o = this.tsTryParseIndexSignature(r);
      if (o) {
        s.body.push(o), r.abstract && this.raise(mt.IndexSignatureHasAbstract, r), r.accessibility && this.raise(mt.IndexSignatureHasAccessibility,
        r, {
          modifier: r.accessibility
        }), r.declare && this.raise(mt.IndexSignatureHasDeclare, r), r.override && this.raise(mt.IndexSignatureHasOverride, r);
        return;
      }
      !this.state.inAbstractClass && r.abstract && this.raise(mt.NonAbstractClassHasAbstractMethod, r), r.override && (i.hadSuperClass || this.
      raise(mt.OverrideNotInSubClass, r)), super.parseClassMemberWithIsStatic(s, r, i, a);
    }
    parsePostMemberNameModifiers(s) {
      this.eat(17) && (s.optional = !0), s.readonly && this.match(10) && this.raise(mt.ClassMethodHasReadonly, s), s.declare && this.match(10) &&
      this.raise(mt.ClassMethodHasDeclare, s);
    }
    parseExpressionStatement(s, r, i) {
      return (r.type === "Identifier" ? this.tsParseExpressionStatement(s, r, i) : void 0) || super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
    }
    parseConditional(s, r, i) {
      if (!this.state.maybeInArrowParameters || !this.match(17))
        return super.parseConditional(s, r, i);
      let a = this.tryParse(() => super.parseConditional(s, r));
      return a.node ? (a.error && (this.state = a.failState), a.node) : (a.error && super.setOptionalParametersError(i, a.error), s);
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = s, a.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(a, "TSTypeCastExpression");
      }
      return s;
    }
    parseExportDeclaration(s) {
      if (!this.state.isAmbientContext && this.isContextual(125))
        return this.tsInAmbientContext(() => this.parseExportDeclaration(s));
      let r = this.state.startLoc, i = this.eatContextual(125);
      if (i && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
        throw this.raise(mt.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
      let o = ir(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(s);
      return o ? ((o.type === "TSInterfaceDeclaration" || o.type === "TSTypeAliasDeclaration" || i) && (s.exportKind = "type"), i && o.type !==
      "TSImportEqualsDeclaration" && (this.resetStartLocation(o, r), o.declare = !0), o) : null;
    }
    parseClassId(s, r, i, a) {
      if ((!r || i) && this.isContextual(113))
        return;
      super.parseClassId(s, r, i, s.declare ? 1024 : 8331);
      let o = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
      o && (s.typeParameters = o);
    }
    parseClassPropertyAnnotation(s) {
      s.optional || (this.eat(35) ? s.definite = !0 : this.eat(17) && (s.optional = !0));
      let r = this.tsTryParseTypeAnnotation();
      r && (s.typeAnnotation = r);
    }
    parseClassProperty(s) {
      if (this.parseClassPropertyAnnotation(s), this.state.isAmbientContext && !(s.readonly && !s.typeAnnotation) && this.match(29) && this.
      raise(mt.DeclareClassFieldHasInitializer, this.state.startLoc), s.abstract && this.match(29)) {
        let {
          key: r
        } = s;
        this.raise(mt.AbstractPropertyHasInitializer, this.state.startLoc, {
          propertyName: r.type === "Identifier" && !s.computed ? r.name : `[${this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(
          r.end))}]`
        });
      }
      return super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return s.abstract && this.raise(mt.PrivateElementHasAbstract, s), s.accessibility && this.raise(mt.PrivateElementHasAccessibility, s, {
        modifier: s.accessibility
      }), this.parseClassPropertyAnnotation(s), super.parseClassPrivateProperty(s);
    }
    parseClassAccessorProperty(s) {
      return this.parseClassPropertyAnnotation(s), s.optional && this.raise(mt.AccessorCannotBeOptional, s), super.parseClassAccessorProperty(
      s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      let u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      u && o && this.raise(mt.ConstructorHasTypeParameters, u);
      let {
        declare: c = !1,
        kind: p
      } = r;
      c && (p === "get" || p === "set") && this.raise(mt.DeclareAccessor, r, {
        kind: p
      }), u && (r.typeParameters = u), super.pushClassMethod(s, r, i, a, o, l);
    }
    pushClassPrivateMethod(s, r, i, a) {
      let o = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      o && (r.typeParameters = o), super.pushClassPrivateMethod(s, r, i, a);
    }
    declareClassPrivateMethodInScope(s, r) {
      s.type !== "TSDeclareMethod" && (s.type === "MethodDefinition" && !hasOwnProperty.call(s.value, "body") || super.declareClassPrivateMethodInScope(
      s, r));
    }
    parseClassSuper(s) {
      super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.tsParseTypeArgumentsInExpression()),
      this.eatContextual(113) && (s.implements = this.tsParseHeritageClause("implements"));
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      let c = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      return c && (s.typeParameters = c), super.parseObjPropValue(s, r, i, a, o, l, u);
    }
    parseFunctionParams(s, r) {
      let i = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      i && (s.typeParameters = i), super.parseFunctionParams(s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), s.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (s.definite = !0);
      let i = this.tsTryParseTypeAnnotation();
      i && (s.id.typeAnnotation = i, this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      return this.match(14) && (s.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(s, r);
    }
    parseMaybeAssign(s, r) {
      var i, a, o, l, u;
      let c, p, h;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (c = this.state.clone(), p = this.tryParse(() => super.parseMaybeAssign(s, r), c), !p.error) return p.node;
        let {
          context: m
        } = this.state, y = m[m.length - 1];
        (y === rr.j_oTag || y === rr.j_expr) && m.pop();
      }
      if (!((i = p) != null && i.error) && !this.match(47))
        return super.parseMaybeAssign(s, r);
      (!c || c === this.state) && (c = this.state.clone());
      let f, d = this.tryParse((m) => {
        var y, T;
        f = this.tsParseTypeParameters(this.tsParseConstModifier);
        let b = super.parseMaybeAssign(s, r);
        return (b.type !== "ArrowFunctionExpression" || (y = b.extra) != null && y.parenthesized) && m(), ((T = f) == null ? void 0 : T.params.
        length) !== 0 && this.resetStartLocationFromNode(b, f), b.typeParameters = f, b;
      }, c);
      if (!d.error && !d.aborted)
        return f && this.reportReservedArrowTypeParam(f), d.node;
      if (!p && (foe(!this.hasPlugin("jsx")), h = this.tryParse(() => super.parseMaybeAssign(s, r), c), !h.error))
        return h.node;
      if ((a = p) != null && a.node)
        return this.state = p.failState, p.node;
      if (d.node)
        return this.state = d.failState, f && this.reportReservedArrowTypeParam(f), d.node;
      if ((o = h) != null && o.node)
        return this.state = h.failState, h.node;
      throw ((l = p) == null ? void 0 : l.error) || d.error || ((u = h) == null ? void 0 : u.error);
    }
    reportReservedArrowTypeParam(s) {
      var r;
      s.params.length === 1 && !s.params[0].constraint && !((r = s.extra) != null && r.trailingComma) && this.getPluginOption("typescript", "\
disallowAmbiguousJSXLike") && this.raise(mt.ReservedArrowTypeParam, s);
    }
    parseMaybeUnary(s, r) {
      return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse((i) => {
          let a = this.tsParseTypeOrTypePredicateAnnotation(14);
          return (this.canInsertSemicolon() || !this.match(19)) && i(), a;
        });
        if (r.aborted) return;
        r.thrown || (r.error && (this.state = r.failState), s.returnType = r.node);
      }
      return super.parseArrow(s);
    }
    parseFunctionParamType(s) {
      this.eat(17) && (s.optional = !0);
      let r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r), this.resetEndLocation(s), s;
    }
    isAssignable(s, r) {
      switch (s.type) {
        case "TSTypeCastExpression":
          return this.isAssignable(s.expression, r);
        case "TSParameterProperty":
          return !0;
        default:
          return super.isAssignable(s, r);
      }
    }
    toAssignable(s, r = !1) {
      switch (s.type) {
        case "ParenthesizedExpression":
          this.toAssignableParenthesizedExpression(s, r);
          break;
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
          r ? this.expressionScope.recordArrowParameterBindingError(mt.UnexpectedTypeCastInParameter, s) : this.raise(mt.UnexpectedTypeCastInParameter,
          s), this.toAssignable(s.expression, r);
          break;
        case "AssignmentExpression":
          !r && s.left.type === "TSTypeCastExpression" && (s.left = this.typeCastToParameter(s.left));
        default:
          super.toAssignable(s, r);
      }
    }
    toAssignableParenthesizedExpression(s, r) {
      switch (s.expression.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
        case "ParenthesizedExpression":
          this.toAssignable(s.expression, r);
          break;
        default:
          super.toAssignable(s, r);
      }
    }
    checkToRestConversion(s, r) {
      switch (s.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
        case "TSNonNullExpression":
          this.checkToRestConversion(s.expression, !1);
          break;
        default:
          super.checkToRestConversion(s, r);
      }
    }
    isValidLVal(s, r, i) {
      switch (s) {
        case "TSTypeCastExpression":
          return !0;
        case "TSParameterProperty":
          return "parameter";
        case "TSNonNullExpression":
        case "TSInstantiationExpression":
          return "expression";
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
          return (i !== 64 || !r) && ["expression", !0];
        default:
          return super.isValidLVal(s, r, i);
      }
    }
    parseBindingAtom() {
      return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
    }
    parseMaybeDecoratorArguments(s, r) {
      if (this.match(47) || this.match(51)) {
        let i = this.tsParseTypeArgumentsInExpression();
        if (this.match(10)) {
          let a = super.parseMaybeDecoratorArguments(s, r);
          return a.typeParameters = i, a;
        }
        this.unexpected(null, 10);
      }
      return super.parseMaybeDecoratorArguments(s, r);
    }
    checkCommaAfterRest(s) {
      return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === s ? (this.next(), !1) : super.checkCommaAfterRest(
      s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(35) || this.match(14) || super.isClassProperty();
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(mt.TypeAnnotationAfterAssign,
      i.typeAnnotation), i;
    }
    getTokenFromCode(s) {
      if (this.state.inType) {
        if (s === 62) {
          this.finishOp(48, 1);
          return;
        }
        if (s === 60) {
          this.finishOp(47, 1);
          return;
        }
      }
      super.getTokenFromCode(s);
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TSTypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    shouldParseArrow(s) {
      return this.match(14) ? s.every((r) => this.isAssignable(r, !0)) : super.shouldParseArrow(s);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    canHaveLeadingDecorator() {
      return super.canHaveLeadingDecorator() || this.isAbstractClass();
    }
    jsxParseOpeningElementAfterName(s) {
      if (this.match(47) || this.match(51)) {
        let r = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
        r && (s.typeParameters = r);
      }
      return super.jsxParseOpeningElementAfterName(s);
    }
    getGetterSetterExpectedParamCount(s) {
      let r = super.getGetterSetterExpectedParamCount(s), a = this.getObjectOrClassMethodParams(s)[0];
      return a && this.isThisParam(a) ? r + 1 : r;
    }
    parseCatchClauseParam() {
      let s = super.parseCatchClauseParam(), r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r, this.resetEndLocation(s)), s;
    }
    tsInAmbientContext(s) {
      let {
        isAmbientContext: r,
        strict: i
      } = this.state;
      this.state.isAmbientContext = !0, this.state.strict = !1;
      try {
        return s();
      } finally {
        this.state.isAmbientContext = r, this.state.strict = i;
      }
    }
    parseClass(s, r, i) {
      let a = this.state.inAbstractClass;
      this.state.inAbstractClass = !!s.abstract;
      try {
        return super.parseClass(s, r, i);
      } finally {
        this.state.inAbstractClass = a;
      }
    }
    tsParseAbstractDeclaration(s, r) {
      if (this.match(80))
        return s.abstract = !0, this.maybeTakeDecorators(r, this.parseClass(s, !0, !1));
      if (this.isContextual(129)) {
        if (!this.hasFollowingLineBreak())
          return s.abstract = !0, this.raise(mt.NonClassMethodPropertyHasAbstractModifer, s), this.tsParseInterfaceDeclaration(s);
      } else
        this.unexpected(null, 80);
    }
    parseMethod(s, r, i, a, o, l, u) {
      let c = super.parseMethod(s, r, i, a, o, l, u);
      if (c.abstract && (this.hasPlugin("estree") ? c.value : c).body) {
        let {
          key: f
        } = c;
        this.raise(mt.AbstractMethodHasImplementation, c, {
          methodName: f.type === "Identifier" && !c.computed ? f.name : `[${this.input.slice(this.offsetToSourcePos(f.start), this.offsetToSourcePos(
          f.end))}]`
        });
      }
      return c;
    }
    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(s, r, i, a) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !1, i), this.finishNode(s, "ExportSpecifier")) : (s.exportKind = "value",
      super.parseExportSpecifier(s, r, i, a));
    }
    parseImportSpecifier(s, r, i, a, o) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !0, i), this.finishNode(s, "ImportSpecifier")) : (s.importKind = "value",
      super.parseImportSpecifier(s, r, i, a, i ? 4098 : 4096));
    }
    parseTypeOnlyImportExportSpecifier(s, r, i) {
      let a = r ? "imported" : "local", o = r ? "local" : "exported", l = s[a], u, c = !1, p = !0, h = l.loc.start;
      if (this.isContextual(93)) {
        let d = this.parseIdentifier();
        if (this.isContextual(93)) {
          let m = this.parseIdentifier();
          Mo(this.state.type) ? (c = !0, l = d, u = r ? this.parseIdentifier() : this.parseModuleExportName(), p = !1) : (u = m, p = !1);
        } else Mo(this.state.type) ? (p = !1, u = r ? this.parseIdentifier() : this.parseModuleExportName()) : (c = !0, l = d);
      } else Mo(this.state.type) && (c = !0, r ? (l = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(l.name, l.loc.
      start, !0, !0)) : l = this.parseModuleExportName());
      c && i && this.raise(r ? mt.TypeModifierIsUsedInTypeImports : mt.TypeModifierIsUsedInTypeExports, h), s[a] = l, s[o] = u;
      let f = r ? "importKind" : "exportKind";
      s[f] = c ? "type" : "value", p && this.eatContextual(93) && (s[o] = r ? this.parseIdentifier() : this.parseModuleExportName()), s[o] ||
      (s[o] = Yu(s[a])), r && this.checkIdentifier(s[o], c ? 4098 : 4096);
    }
  }, "typescript");
  function E4t(t) {
    if (t.type !== "MemberExpression") return !1;
    let {
      computed: e,
      property: s
    } = t;
    return e && s.type !== "StringLiteral" && (s.type !== "TemplateLiteral" || s.expressions.length > 0) ? !1 : Ooe(t.object);
  }
  n(E4t, "isPossiblyLiteralEnum");
  function A4t(t, e) {
    var s;
    let {
      type: r
    } = t;
    if ((s = t.extra) != null && s.parenthesized)
      return !1;
    if (e) {
      if (r === "Literal") {
        let {
          value: i
        } = t;
        if (typeof i == "string" || typeof i == "boolean")
          return !0;
      }
    } else if (r === "StringLiteral" || r === "BooleanLiteral")
      return !0;
    return !!(Doe(t, e) || v4t(t, e) || r === "TemplateLiteral" && t.expressions.length === 0 || E4t(t));
  }
  n(A4t, "isValidAmbientConstInitializer");
  function Doe(t, e) {
    return e ? t.type === "Literal" && (typeof t.value == "number" || "bigint" in t) : t.type === "NumericLiteral" || t.type === "BigIntLite\
ral";
  }
  n(Doe, "isNumber");
  function v4t(t, e) {
    if (t.type === "UnaryExpression") {
      let {
        operator: s,
        argument: r
      } = t;
      if (s === "-" && Doe(r, e))
        return !0;
    }
    return !1;
  }
  n(v4t, "isNegativeNumber");
  function Ooe(t) {
    return t.type === "Identifier" ? !0 : t.type !== "MemberExpression" || t.computed ? !1 : Ooe(t.object);
  }
  n(Ooe, "isUncomputedMemberExpressionChain");
  var moe = Ju`placeholders`({
    ClassNameIsRequired: "A class name is required.",
    UnexpectedSpace: "Unexpected space in placeholder."
  }), C4t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "PlaceholdersParserMixin");
    }
    parsePlaceholder(s) {
      if (this.match(133)) {
        let r = this.startNode();
        return this.next(), this.assertNoSpace(), r.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(133), this.finishPlaceholder(
        r, s);
      }
    }
    finishPlaceholder(s, r) {
      let i = s;
      return (!i.expectedNode || !i.type) && (i = this.finishNode(i, "Placeholder")), i.expectedNode = r, i;
    }
    getTokenFromCode(s) {
      s === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(133, 2) : super.getTokenFromCode(s);
    }
    parseExprAtom(s) {
      return this.parsePlaceholder("Expression") || super.parseExprAtom(s);
    }
    parseIdentifier(s) {
      return this.parsePlaceholder("Identifier") || super.parseIdentifier(s);
    }
    checkReservedWord(s, r, i, a) {
      s !== void 0 && super.checkReservedWord(s, r, i, a);
    }
    parseBindingAtom() {
      return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
    }
    isValidLVal(s, r, i) {
      return s === "Placeholder" || super.isValidLVal(s, r, i);
    }
    toAssignable(s, r) {
      s && s.type === "Placeholder" && s.expectedNode === "Expression" ? s.expectedNode = "Pattern" : super.toAssignable(s, r);
    }
    chStartsBindingIdentifier(s, r) {
      return !!(super.chStartsBindingIdentifier(s, r) || this.lookahead().type === 133);
    }
    verifyBreakContinue(s, r) {
      s.label && s.label.type === "Placeholder" || super.verifyBreakContinue(s, r);
    }
    parseExpressionStatement(s, r) {
      var i;
      if (r.type !== "Placeholder" || (i = r.extra) != null && i.parenthesized)
        return super.parseExpressionStatement(s, r);
      if (this.match(14)) {
        let o = s;
        return o.label = this.finishPlaceholder(r, "Identifier"), this.next(), o.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(),
        this.finishNode(o, "LabeledStatement");
      }
      this.semicolon();
      let a = s;
      return a.name = r.name, this.finishPlaceholder(a, "Statement");
    }
    parseBlock(s, r, i) {
      return this.parsePlaceholder("BlockStatement") || super.parseBlock(s, r, i);
    }
    parseFunctionId(s) {
      return this.parsePlaceholder("Identifier") || super.parseFunctionId(s);
    }
    parseClass(s, r, i) {
      let a = r ? "ClassDeclaration" : "ClassExpression";
      this.next();
      let o = this.state.strict, l = this.parsePlaceholder("Identifier");
      if (l)
        if (this.match(81) || this.match(133) || this.match(5))
          s.id = l;
        else {
          if (i || !r)
            return s.id = null, s.body = this.finishPlaceholder(l, "ClassBody"), this.finishNode(s, a);
          throw this.raise(moe.ClassNameIsRequired, this.state.startLoc);
        }
      else
        this.parseClassId(s, r, i);
      return super.parseClassSuper(s), s.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!s.superClass, o), this.finishNode(
      s, a);
    }
    parseExport(s, r) {
      let i = this.parsePlaceholder("Identifier");
      if (!i) return super.parseExport(s, r);
      let a = s;
      if (!this.isContextual(98) && !this.match(12))
        return a.specifiers = [], a.source = null, a.declaration = this.finishPlaceholder(i, "Declaration"), this.finishNode(a, "ExportNamed\
Declaration");
      this.expectPlugin("exportDefaultFrom");
      let o = this.startNode();
      return o.exported = i, a.specifiers = [this.finishNode(o, "ExportDefaultSpecifier")], super.parseExport(a, r);
    }
    isExportDefaultSpecifier() {
      if (this.match(65)) {
        let s = this.nextTokenStart();
        if (this.isUnparsedContextual(s, "from") && this.input.startsWith(wp(133), this.nextTokenStartSince(s + 4)))
          return !0;
      }
      return super.isExportDefaultSpecifier();
    }
    maybeParseExportDefaultSpecifier(s, r) {
      var i;
      return (i = s.specifiers) != null && i.length ? !0 : super.maybeParseExportDefaultSpecifier(s, r);
    }
    checkExport(s) {
      let {
        specifiers: r
      } = s;
      r != null && r.length && (s.specifiers = r.filter((i) => i.exported.type === "Placeholder")), super.checkExport(s), s.specifiers = r;
    }
    parseImport(s) {
      let r = this.parsePlaceholder("Identifier");
      if (!r) return super.parseImport(s);
      if (s.specifiers = [], !this.isContextual(98) && !this.match(12))
        return s.source = this.finishPlaceholder(r, "StringLiteral"), this.semicolon(), this.finishNode(s, "ImportDeclaration");
      let i = this.startNodeAtNode(r);
      return i.local = r, s.specifiers.push(this.finishNode(i, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(
      s) || this.parseNamedImportSpecifiers(s)), this.expectContextual(98), s.source = this.parseImportSource(), this.semicolon(), this.finishNode(
      s, "ImportDeclaration");
    }
    parseImportSource() {
      return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
    }
    assertNoSpace() {
      this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index) && this.raise(moe.UnexpectedSpace, this.state.lastTokEndLoc);
    }
  }, "placeholders"), w4t = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "V8IntrinsicMixin");
    }
    parseV8Intrinsic() {
      if (this.match(54)) {
        let s = this.state.startLoc, r = this.startNode();
        if (this.next(), ir(this.state.type)) {
          let i = this.parseIdentifierName(), a = this.createIdentifier(r, i);
          if (a.type = "V8IntrinsicIdentifier", this.match(10))
            return a;
        }
        this.unexpected(s);
      }
    }
    parseExprAtom(s) {
      return this.parseV8Intrinsic() || super.parseExprAtom(s);
    }
  }, "v8intrinsic"), yoe = ["minimal", "fsharp", "hack", "smart"], goe = ["^^", "@@", "^", "%", "#"];
  function I4t(t) {
    if (t.has("decorators")) {
      if (t.has("decorators-legacy"))
        throw new Error("Cannot use the decorators and decorators-legacy plugin together");
      let s = t.get("decorators").decoratorsBeforeExport;
      if (s != null && typeof s != "boolean")
        throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
      let r = t.get("decorators").allowCallParenthesized;
      if (r != null && typeof r != "boolean")
        throw new Error("'allowCallParenthesized' must be a boolean.");
    }
    if (t.has("flow") && t.has("typescript"))
      throw new Error("Cannot combine flow and typescript plugins.");
    if (t.has("placeholders") && t.has("v8intrinsic"))
      throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
    if (t.has("pipelineOperator")) {
      var e;
      let s = t.get("pipelineOperator").proposal;
      if (!yoe.includes(s)) {
        let i = yoe.map((a) => `"${a}"`).join(", ");
        throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${i}.`);
      }
      let r = ((e = t.get("recordAndTuple")) == null ? void 0 : e.syntaxType) === "hash";
      if (s === "hack") {
        if (t.has("placeholders"))
          throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
        if (t.has("v8intrinsic"))
          throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
        let i = t.get("pipelineOperator").topicToken;
        if (!goe.includes(i)) {
          let a = goe.map((o) => `"${o}"`).join(", ");
          throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${a}\
.`);
        }
        if (i === "#" && r)
          throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["\
recordAndTuple", t.get("recordAndTuple")])}\`.`);
      } else if (s === "smart" && r)
        throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", t.
        get("recordAndTuple")])}\`.`);
    }
    if (t.has("moduleAttributes")) {
      if (t.has("deprecatedImportAssert") || t.has("importAssertions"))
        throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");
      if (t.get("moduleAttributes").version !== "may-2020")
        throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the on\
ly supported value is 'may-2020'.");
    }
    if (t.has("importAssertions") && t.has("deprecatedImportAssert"))
      throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");
    if (!t.has("deprecatedImportAssert") && t.has("importAttributes") && t.get("importAttributes").deprecatedAssertSyntax && t.set("deprecat\
edImportAssert", {}), t.has("recordAndTuple")) {
      let s = t.get("recordAndTuple").syntaxType;
      if (s != null) {
        let r = ["hash", "bar"];
        if (!r.includes(s))
          throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + r.map((i) => `'${i}'`).join(", "));
      }
    }
    if (t.has("asyncDoExpressions") && !t.has("doExpressions")) {
      let s = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
      throw s.missingPlugins = "doExpressions", s;
    }
    if (t.has("optionalChainingAssign") && t.get("optionalChainingAssign").version !== "2023-07")
      throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, th\
e only supported value is '2023-07'.");
  }
  n(I4t, "validatePlugins");
  var _oe = {
    estree: k3t,
    jsx: T4t,
    flow: y4t,
    typescript: P4t,
    v8intrinsic: w4t,
    placeholders: C4t
  }, N4t = Object.keys(_oe), I3 = class extends w3 {
    static {
      n(this, "ExpressionParser");
    }
    checkProto(e, s, r, i) {
      if (e.type === "SpreadElement" || this.isObjectMethod(e) || e.computed || e.shorthand)
        return;
      let a = e.key;
      if ((a.type === "Identifier" ? a.name : a.value) === "__proto__") {
        if (s) {
          this.raise(te.RecordNoProto, a);
          return;
        }
        r.used && (i ? i.doubleProtoLoc === null && (i.doubleProtoLoc = a.loc.start) : this.raise(te.DuplicateProto, a)), r.used = !0;
      }
    }
    shouldExitDescending(e, s) {
      return e.type === "ArrowFunctionExpression" && this.offsetToSourcePos(e.start) === s;
    }
    getExpression() {
      this.enterInitialScopes(), this.nextToken();
      let e = this.parseExpression();
      return this.match(140) || this.unexpected(), this.finalizeRemainingComments(), e.comments = this.comments, e.errors = this.state.errors,
      this.optionFlags & 128 && (e.tokens = this.tokens), e;
    }
    parseExpression(e, s) {
      return e ? this.disallowInAnd(() => this.parseExpressionBase(s)) : this.allowInAnd(() => this.parseExpressionBase(s));
    }
    parseExpressionBase(e) {
      let s = this.state.startLoc, r = this.parseMaybeAssign(e);
      if (this.match(12)) {
        let i = this.startNodeAt(s);
        for (i.expressions = [r]; this.eat(12); )
          i.expressions.push(this.parseMaybeAssign(e));
        return this.toReferencedList(i.expressions), this.finishNode(i, "SequenceExpression");
      }
      return r;
    }
    parseMaybeAssignDisallowIn(e, s) {
      return this.disallowInAnd(() => this.parseMaybeAssign(e, s));
    }
    parseMaybeAssignAllowIn(e, s) {
      return this.allowInAnd(() => this.parseMaybeAssign(e, s));
    }
    setOptionalParametersError(e, s) {
      var r;
      e.optionalParametersLoc = (r = s?.loc) != null ? r : this.state.startLoc;
    }
    parseMaybeAssign(e, s) {
      let r = this.state.startLoc;
      if (this.isContextual(108) && this.prodParam.hasYield) {
        let l = this.parseYield();
        return s && (l = s.call(this, l, r)), l;
      }
      let i;
      e ? i = !1 : (e = new Um(), i = !0);
      let {
        type: a
      } = this.state;
      (a === 10 || ir(a)) && (this.state.potentialArrowAt = this.state.start);
      let o = this.parseMaybeConditional(e);
      if (s && (o = s.call(this, o, r)), B3t(this.state.type)) {
        let l = this.startNodeAt(r), u = this.state.value;
        if (l.operator = u, this.match(29)) {
          this.toAssignable(o, !0), l.left = o;
          let c = r.index;
          e.doubleProtoLoc != null && e.doubleProtoLoc.index >= c && (e.doubleProtoLoc = null), e.shorthandAssignLoc != null && e.shorthandAssignLoc.
          index >= c && (e.shorthandAssignLoc = null), e.privateKeyLoc != null && e.privateKeyLoc.index >= c && (this.checkDestructuringPrivate(
          e), e.privateKeyLoc = null);
        } else
          l.left = o;
        return this.next(), l.right = this.parseMaybeAssign(), this.checkLVal(o, this.finishNode(l, "AssignmentExpression")), l;
      } else i && this.checkExpressionErrors(e, !0);
      return o;
    }
    parseMaybeConditional(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprOps(e);
      return this.shouldExitDescending(i, r) ? i : this.parseConditional(i, s, e);
    }
    parseConditional(e, s, r) {
      if (this.eat(17)) {
        let i = this.startNodeAt(s);
        return i.test = e, i.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), i.alternate = this.parseMaybeAssign(), this.finishNode(
        i, "ConditionalExpression");
      }
      return e;
    }
    parseMaybeUnaryOrPrivate(e) {
      return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(e);
    }
    parseExprOps(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseMaybeUnaryOrPrivate(e);
      return this.shouldExitDescending(i, r) ? i : this.parseExprOp(i, s, -1);
    }
    parseExprOp(e, s, r) {
      if (this.isPrivateName(e)) {
        let a = this.getPrivateNameSV(e);
        (r >= VA(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(te.PrivateInExpectedIn, e, {
          identifierName: a
        }), this.classScope.usePrivateName(a, e.loc.start);
      }
      let i = this.state.type;
      if (F3t(i) && (this.prodParam.hasIn || !this.match(58))) {
        let a = VA(i);
        if (a > r) {
          if (i === 39) {
            if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
              return e;
            this.checkPipelineAtInfixOperator(e, s);
          }
          let o = this.startNodeAt(s);
          o.left = e, o.operator = this.state.value;
          let l = i === 41 || i === 42, u = i === 40;
          if (u && (a = VA(42)), this.next(), i === 39 && this.hasPlugin(["pipelineOperator", {
            proposal: "minimal"
          }]) && this.state.type === 96 && this.prodParam.hasAwait)
            throw this.raise(te.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
          o.right = this.parseExprOpRightExpr(i, a);
          let c = this.finishNode(o, l || u ? "LogicalExpression" : "BinaryExpression"), p = this.state.type;
          if (u && (p === 41 || p === 42) || l && p === 40)
            throw this.raise(te.MixingCoalesceWithLogical, this.state.startLoc);
          return this.parseExprOp(c, s, r);
        }
      }
      return e;
    }
    parseExprOpRightExpr(e, s) {
      let r = this.state.startLoc;
      switch (e) {
        case 39:
          switch (this.getPluginOption("pipelineOperator", "proposal")) {
            case "hack":
              return this.withTopicBindingContext(() => this.parseHackPipeBody());
            case "fsharp":
              return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(s));
          }
          if (this.getPluginOption("pipelineOperator", "proposal") === "smart")
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(108))
                throw this.raise(te.PipeBodyIsTighter, this.state.startLoc);
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(e, s), r);
            });
        default:
          return this.parseExprOpBaseRightExpr(e, s);
      }
    }
    parseExprOpBaseRightExpr(e, s) {
      let r = this.state.startLoc;
      return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, K3t(e) ? s - 1 : s);
    }
    parseHackPipeBody() {
      var e;
      let {
        startLoc: s
      } = this.state, r = this.parseMaybeAssign();
      return E3t.has(r.type) && !((e = r.extra) != null && e.parenthesized) && this.raise(te.PipeUnparenthesizedBody, s, {
        type: r.type
      }), this.topicReferenceWasUsedInCurrentContext() || this.raise(te.PipeTopicUnused, s), r;
    }
    checkExponentialAfterUnary(e) {
      this.match(57) && this.raise(te.UnexpectedTokenUnaryExponentiation, e.argument);
    }
    parseMaybeUnary(e, s) {
      let r = this.state.startLoc, i = this.isContextual(96);
      if (i && this.recordAwaitIfAllowed()) {
        this.next();
        let u = this.parseAwait(r);
        return s || this.checkExponentialAfterUnary(u), u;
      }
      let a = this.match(34), o = this.startNode();
      if (R3t(this.state.type)) {
        o.operator = this.state.value, o.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
        let u = this.match(89);
        if (this.next(), o.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(e, !0), this.state.strict && u) {
          let c = o.argument;
          c.type === "Identifier" ? this.raise(te.StrictDelete, o) : this.hasPropertyAsPrivateName(c) && this.raise(te.DeletePrivateField, o);
        }
        if (!a)
          return s || this.checkExponentialAfterUnary(o), this.finishNode(o, "UnaryExpression");
      }
      let l = this.parseUpdate(o, a, e);
      if (i) {
        let {
          type: u
        } = this.state;
        if ((this.hasPlugin("v8intrinsic") ? c3(u) : c3(u) && !this.match(54)) && !this.isAmbiguousAwait())
          return this.raiseOverwrite(te.AwaitNotInAsyncContext, r), this.parseAwait(r);
      }
      return l;
    }
    parseUpdate(e, s, r) {
      if (s) {
        let o = e;
        return this.checkLVal(o.argument, this.finishNode(o, "UpdateExpression")), e;
      }
      let i = this.state.startLoc, a = this.parseExprSubscripts(r);
      if (this.checkExpressionErrors(r, !1)) return a;
      for (; j3t(this.state.type) && !this.canInsertSemicolon(); ) {
        let o = this.startNodeAt(i);
        o.operator = this.state.value, o.prefix = !1, o.argument = a, this.next(), this.checkLVal(a, a = this.finishNode(o, "UpdateExpressio\
n"));
      }
      return a;
    }
    parseExprSubscripts(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprAtom(e);
      return this.shouldExitDescending(i, r) ? i : this.parseSubscripts(i, s);
    }
    parseSubscripts(e, s, r) {
      let i = {
        optionalChainMember: !1,
        maybeAsyncArrow: this.atPossibleAsyncArrow(e),
        stop: !1
      };
      do
        e = this.parseSubscript(e, s, r, i), i.maybeAsyncArrow = !1;
      while (!i.stop);
      return e;
    }
    parseSubscript(e, s, r, i) {
      let {
        type: a
      } = this.state;
      if (!r && a === 15)
        return this.parseBind(e, s, r, i);
      if (HA(a))
        return this.parseTaggedTemplateExpression(e, s, i);
      let o = !1;
      if (a === 18) {
        if (r && (this.raise(te.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
          return i.stop = !0, e;
        i.optionalChainMember = o = !0, this.next();
      }
      if (!r && this.match(10))
        return this.parseCoverCallAndAsyncArrowHead(e, s, i, o);
      {
        let l = this.eat(0);
        return l || o || this.eat(16) ? this.parseMember(e, s, i, l, o) : (i.stop = !0, e);
      }
    }
    parseMember(e, s, r, i, a) {
      let o = this.startNodeAt(s);
      return o.object = e, o.computed = i, i ? (o.property = this.parseExpression(), this.expect(3)) : this.match(139) ? (e.type === "Super" &&
      this.raise(te.SuperPrivateField, s), this.classScope.usePrivateName(this.state.value, this.state.startLoc), o.property = this.parsePrivateName()) :
      o.property = this.parseIdentifier(!0), r.optionalChainMember ? (o.optional = a, this.finishNode(o, "OptionalMemberExpression")) : this.
      finishNode(o, "MemberExpression");
    }
    parseBind(e, s, r, i) {
      let a = this.startNodeAt(s);
      return a.object = e, this.next(), a.callee = this.parseNoCallExpr(), i.stop = !0, this.parseSubscripts(this.finishNode(a, "BindExpress\
ion"), s, r);
    }
    parseCoverCallAndAsyncArrowHead(e, s, r, i) {
      let a = this.state.maybeInArrowParameters, o = null;
      this.state.maybeInArrowParameters = !0, this.next();
      let l = this.startNodeAt(s);
      l.callee = e;
      let {
        maybeAsyncArrow: u,
        optionalChainMember: c
      } = r;
      u && (this.expressionScope.enter(l4t()), o = new Um()), c && (l.optional = i), i ? l.arguments = this.parseCallExpressionArguments(11) :
      l.arguments = this.parseCallExpressionArguments(11, e.type !== "Super", l, o);
      let p = this.finishCallExpression(l, c);
      return u && this.shouldParseAsyncArrow() && !i ? (r.stop = !0, this.checkDestructuringPrivate(o), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), p = this.parseAsyncArrowFromCallExpression(this.startNodeAt(s), p)) : (u && (this.checkExpressionErrors(o,
      !0), this.expressionScope.exit()), this.toReferencedArguments(p)), this.state.maybeInArrowParameters = a, p;
    }
    toReferencedArguments(e, s) {
      this.toReferencedListDeep(e.arguments, s);
    }
    parseTaggedTemplateExpression(e, s, r) {
      let i = this.startNodeAt(s);
      return i.tag = e, i.quasi = this.parseTemplate(!0), r.optionalChainMember && this.raise(te.OptionalChainingNoTemplate, s), this.finishNode(
      i, "TaggedTemplateExpression");
    }
    atPossibleAsyncArrow(e) {
      return e.type === "Identifier" && e.name === "async" && this.state.lastTokEndLoc.index === e.end && !this.canInsertSemicolon() && e.end -
      e.start === 5 && this.offsetToSourcePos(e.start) === this.state.potentialArrowAt;
    }
    finishCallExpression(e, s) {
      if (e.callee.type === "Import")
        if (e.arguments.length === 0 || e.arguments.length > 2)
          this.raise(te.ImportCallArity, e);
        else
          for (let r of e.arguments)
            r.type === "SpreadElement" && this.raise(te.ImportCallSpreadArgument, r);
      return this.finishNode(e, s ? "OptionalCallExpression" : "CallExpression");
    }
    parseCallExpressionArguments(e, s, r, i) {
      let a = [], o = !0, l = this.state.inFSharpPipelineDirectBody;
      for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          r && this.addTrailingCommaExtraToNode(r), this.next();
          break;
        }
        a.push(this.parseExprListItem(!1, i, s));
      }
      return this.state.inFSharpPipelineDirectBody = l, a;
    }
    shouldParseAsyncArrow() {
      return this.match(19) && !this.canInsertSemicolon();
    }
    parseAsyncArrowFromCallExpression(e, s) {
      var r;
      return this.resetPreviousNodeTrailingComments(s), this.expect(19), this.parseArrowExpression(e, s.arguments, !0, (r = s.extra) == null ?
      void 0 : r.trailingCommaLoc), s.innerComments && iT(e, s.innerComments), s.callee.trailingComments && iT(e, s.callee.trailingComments),
      e;
    }
    parseNoCallExpr() {
      let e = this.state.startLoc;
      return this.parseSubscripts(this.parseExprAtom(), e, !0);
    }
    parseExprAtom(e) {
      let s, r = null, {
        type: i
      } = this.state;
      switch (i) {
        case 79:
          return this.parseSuper();
        case 83:
          return s = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(s) : this.match(10) ? this.optionFlags & 256 ?
          this.parseImportCall(s) : this.finishNode(s, "Import") : (this.raise(te.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(
          s, "Import"));
        case 78:
          return s = this.startNode(), this.next(), this.finishNode(s, "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: {
          let a = this.state.potentialArrowAt === this.state.start;
          return this.parseParenAndDistinguishExpression(a);
        }
        case 2:
        case 1:
          return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
        case 0:
          return this.parseArrayLike(3, !0, !1, e);
        case 6:
        case 7:
          return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
        case 5:
          return this.parseObjectLike(8, !1, !1, e);
        case 68:
          return this.parseFunctionOrFunctionSent();
        case 26:
          r = this.parseDecorators();
        case 80:
          return this.parseClass(this.maybeTakeDecorators(r, this.startNode()), !1);
        case 77:
          return this.parseNewOrNewTarget();
        case 25:
        case 24:
          return this.parseTemplate(!1);
        case 15: {
          s = this.startNode(), this.next(), s.object = null;
          let a = s.callee = this.parseNoCallExpr();
          if (a.type === "MemberExpression")
            return this.finishNode(s, "BindExpression");
          throw this.raise(te.UnsupportedBind, a);
        }
        case 139:
          return this.raise(te.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: {
          let a = this.getPluginOption("pipelineOperator", "proposal");
          if (a)
            return this.parseTopicReference(a);
          this.unexpected();
          break;
        }
        case 47: {
          let a = this.input.codePointAt(this.nextTokenStart());
          Hu(a) || a === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
          break;
        }
        default:
          if (i === 137)
            return this.parseDecimalLiteral(this.state.value);
          if (ir(i)) {
            if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
              return this.parseModuleExpression();
            let a = this.state.potentialArrowAt === this.state.start, o = this.state.containsEsc, l = this.parseIdentifier();
            if (!o && l.name === "async" && !this.canInsertSemicolon()) {
              let {
                type: u
              } = this.state;
              if (u === 68)
                return this.resetPreviousNodeTrailingComments(l), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(l));
              if (ir(u))
                return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(l)) : l;
              if (u === 90)
                return this.resetPreviousNodeTrailingComments(l), this.parseDo(this.startNodeAtNode(l), !0);
            }
            return a && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(l), [l],
            !1)) : l;
          } else
            this.unexpected();
      }
    }
    parseTopicReferenceThenEqualsSign(e, s) {
      let r = this.getPluginOption("pipelineOperator", "proposal");
      if (r)
        return this.state.type = e, this.state.value = s, this.state.pos--, this.state.end--, this.state.endLoc = Fn(this.state.endLoc, -1),
        this.parseTopicReference(r);
      this.unexpected();
    }
    parseTopicReference(e) {
      let s = this.startNode(), r = this.state.startLoc, i = this.state.type;
      return this.next(), this.finishTopicReference(s, r, e, i);
    }
    finishTopicReference(e, s, r, i) {
      if (this.testTopicReferenceConfiguration(r, s, i))
        return r === "hack" ? (this.topicReferenceIsAllowedInCurrentContext() || this.raise(te.PipeTopicUnbound, s), this.registerTopicReference(),
        this.finishNode(e, "TopicReference")) : (this.topicReferenceIsAllowedInCurrentContext() || this.raise(te.PrimaryTopicNotAllowed, s),
        this.registerTopicReference(), this.finishNode(e, "PipelinePrimaryTopicReference"));
      throw this.raise(te.PipeTopicUnconfiguredToken, s, {
        token: wp(i)
      });
    }
    testTopicReferenceConfiguration(e, s, r) {
      switch (e) {
        case "hack":
          return this.hasPlugin(["pipelineOperator", {
            topicToken: wp(r)
          }]);
        case "smart":
          return r === 27;
        default:
          throw this.raise(te.PipeTopicRequiresHackPipes, s);
      }
    }
    parseAsyncArrowUnaryFunction(e) {
      this.prodParam.enter(WA(!0, this.prodParam.hasYield));
      let s = [this.parseIdentifier()];
      return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(te.LineTerminatorBeforeArrow, this.state.curPosition()), this.
      expect(19), this.parseArrowExpression(e, s, !0);
    }
    parseDo(e, s) {
      this.expectPlugin("doExpressions"), s && this.expectPlugin("asyncDoExpressions"), e.async = s, this.next();
      let r = this.state.labels;
      return this.state.labels = [], s ? (this.prodParam.enter(2), e.body = this.parseBlock(), this.prodParam.exit()) : e.body = this.parseBlock(),
      this.state.labels = r, this.finishNode(e, "DoExpression");
    }
    parseSuper() {
      let e = this.startNode();
      return this.next(), this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16) ? this.raise(te.SuperNotAllowed, e) : !this.
      scope.allowSuper && !(this.optionFlags & 16) && this.raise(te.UnexpectedSuper, e), !this.match(10) && !this.match(0) && !this.match(16) &&
      this.raise(te.UnsupportedSuper, e), this.finishNode(e, "Super");
    }
    parsePrivateName() {
      let e = this.startNode(), s = this.startNodeAt(Fn(this.state.startLoc, 1)), r = this.state.value;
      return this.next(), e.id = this.createIdentifier(s, r), this.finishNode(e, "PrivateName");
    }
    parseFunctionOrFunctionSent() {
      let e = this.startNode();
      if (this.next(), this.prodParam.hasYield && this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "function");
        return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.
        parseMetaProperty(e, s, "sent");
      }
      return this.parseFunction(e);
    }
    parseMetaProperty(e, s, r) {
      e.meta = s;
      let i = this.state.containsEsc;
      return e.property = this.parseIdentifier(!0), (e.property.name !== r || i) && this.raise(te.UnsupportedMetaProperty, e.property, {
        target: s.name,
        onlyValidPropertyName: r
      }), this.finishNode(e, "MetaProperty");
    }
    parseImportMetaProperty(e) {
      let s = this.createIdentifier(this.startNodeAtNode(e), "import");
      if (this.next(), this.isContextual(101))
        this.inModule || this.raise(te.ImportMetaOutsideModule, s), this.sawUnambiguousESM = !0;
      else if (this.isContextual(105) || this.isContextual(97)) {
        let r = this.isContextual(105);
        if (this.expectPlugin(r ? "sourcePhaseImports" : "deferredImportEvaluation"), !(this.optionFlags & 256))
          throw this.raise(te.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
            phase: this.state.value
          });
        return this.next(), e.phase = r ? "source" : "defer", this.parseImportCall(e);
      }
      return this.parseMetaProperty(e, s, "meta");
    }
    parseLiteralAtNode(e, s, r) {
      return this.addExtra(r, "rawValue", e), this.addExtra(r, "raw", this.input.slice(this.offsetToSourcePos(r.start), this.state.end)), r.
      value = e, this.next(), this.finishNode(r, s);
    }
    parseLiteral(e, s) {
      let r = this.startNode();
      return this.parseLiteralAtNode(e, s, r);
    }
    parseStringLiteral(e) {
      return this.parseLiteral(e, "StringLiteral");
    }
    parseNumericLiteral(e) {
      return this.parseLiteral(e, "NumericLiteral");
    }
    parseBigIntLiteral(e) {
      return this.parseLiteral(e, "BigIntLiteral");
    }
    parseDecimalLiteral(e) {
      return this.parseLiteral(e, "DecimalLiteral");
    }
    parseRegExpLiteral(e) {
      let s = this.startNode();
      return this.addExtra(s, "raw", this.input.slice(this.offsetToSourcePos(s.start), this.state.end)), s.pattern = e.pattern, s.flags = e.
      flags, this.next(), this.finishNode(s, "RegExpLiteral");
    }
    parseBooleanLiteral(e) {
      let s = this.startNode();
      return s.value = e, this.next(), this.finishNode(s, "BooleanLiteral");
    }
    parseNullLiteral() {
      let e = this.startNode();
      return this.next(), this.finishNode(e, "NullLiteral");
    }
    parseParenAndDistinguishExpression(e) {
      let s = this.state.startLoc, r;
      this.next(), this.expressionScope.enter(o4t());
      let i = this.state.maybeInArrowParameters, a = this.state.inFSharpPipelineDirectBody;
      this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
      let o = this.state.startLoc, l = [], u = new Um(), c = !0, p, h;
      for (; !this.match(11); ) {
        if (c)
          c = !1;
        else if (this.expect(12, u.optionalParametersLoc === null ? null : u.optionalParametersLoc), this.match(11)) {
          h = this.state.startLoc;
          break;
        }
        if (this.match(21)) {
          let m = this.state.startLoc;
          if (p = this.state.startLoc, l.push(this.parseParenItem(this.parseRestBinding(), m)), !this.checkCommaAfterRest(41))
            break;
        } else
          l.push(this.parseMaybeAssignAllowIn(u, this.parseParenItem));
      }
      let f = this.state.lastTokEndLoc;
      this.expect(11), this.state.maybeInArrowParameters = i, this.state.inFSharpPipelineDirectBody = a;
      let d = this.startNodeAt(s);
      return e && this.shouldParseArrow(l) && (d = this.parseArrow(d)) ? (this.checkDestructuringPrivate(u), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), this.parseArrowExpression(d, l, !1), d) : (this.expressionScope.exit(), l.length || this.unexpected(this.
      state.lastTokStartLoc), h && this.unexpected(h), p && this.unexpected(p), this.checkExpressionErrors(u, !0), this.toReferencedListDeep(
      l, !0), l.length > 1 ? (r = this.startNodeAt(o), r.expressions = l, this.finishNode(r, "SequenceExpression"), this.resetEndLocation(r,
      f)) : r = l[0], this.wrapParenthesis(s, r));
    }
    wrapParenthesis(e, s) {
      if (!(this.optionFlags & 512))
        return this.addExtra(s, "parenthesized", !0), this.addExtra(s, "parenStart", e.index), this.takeSurroundingComments(s, e.index, this.
        state.lastTokEndLoc.index), s;
      let r = this.startNodeAt(e);
      return r.expression = s, this.finishNode(r, "ParenthesizedExpression");
    }
    shouldParseArrow(e) {
      return !this.canInsertSemicolon();
    }
    parseArrow(e) {
      if (this.eat(19))
        return e;
    }
    parseParenItem(e, s) {
      return e;
    }
    parseNewOrNewTarget() {
      let e = this.startNode();
      if (this.next(), this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "new");
        this.next();
        let r = this.parseMetaProperty(e, s, "target");
        return !this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4) && this.raise(te.UnexpectedNewTarget, r), r;
      }
      return this.parseNew(e);
    }
    parseNew(e) {
      if (this.parseNewCallee(e), this.eat(10)) {
        let s = this.parseExprList(11);
        this.toReferencedList(s), e.arguments = s;
      } else
        e.arguments = [];
      return this.finishNode(e, "NewExpression");
    }
    parseNewCallee(e) {
      let s = this.match(83), r = this.parseNoCallExpr();
      e.callee = r, s && (r.type === "Import" || r.type === "ImportExpression") && this.raise(te.ImportCallNotNewExpression, r);
    }
    parseTemplateElement(e) {
      let {
        start: s,
        startLoc: r,
        end: i,
        value: a
      } = this.state, o = s + 1, l = this.startNodeAt(Fn(r, 1));
      a === null && (e || this.raise(te.InvalidEscapeSequenceTemplate, Fn(this.state.firstInvalidTemplateEscapePos, 1)));
      let u = this.match(24), c = u ? -1 : -2, p = i + c;
      l.value = {
        raw: this.input.slice(o, p).replace(/\r\n?/g, `
`),
        cooked: a === null ? null : a.slice(1, c)
      }, l.tail = u, this.next();
      let h = this.finishNode(l, "TemplateElement");
      return this.resetEndLocation(h, Fn(this.state.lastTokEndLoc, c)), h;
    }
    parseTemplate(e) {
      let s = this.startNode(), r = this.parseTemplateElement(e), i = [r], a = [];
      for (; !r.tail; )
        a.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), i.push(r = this.parseTemplateElement(e));
      return s.expressions = a, s.quasis = i, this.finishNode(s, "TemplateLiteral");
    }
    parseTemplateSubstitution() {
      return this.parseExpression();
    }
    parseObjectLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = /* @__PURE__ */ Object.create(null), l = !0, u = this.startNode();
      for (u.properties = [], this.next(); !this.match(e); ) {
        if (l)
          l = !1;
        else if (this.expect(12), this.match(e)) {
          this.addTrailingCommaExtraToNode(u);
          break;
        }
        let p;
        s ? p = this.parseBindingProperty() : (p = this.parsePropertyDefinition(i), this.checkProto(p, r, o, i)), r && !this.isObjectProperty(
        p) && p.type !== "SpreadElement" && this.raise(te.InvalidRecordProperty, p), p.shorthand && this.addExtra(p, "shorthand", !0), u.properties.
        push(p);
      }
      this.next(), this.state.inFSharpPipelineDirectBody = a;
      let c = "ObjectExpression";
      return s ? c = "ObjectPattern" : r && (c = "RecordExpression"), this.finishNode(u, c);
    }
    addTrailingCommaExtraToNode(e) {
      this.addExtra(e, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(e, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
    }
    maybeAsyncOrAccessorProp(e) {
      return !e.computed && e.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
    }
    parsePropertyDefinition(e) {
      let s = [];
      if (this.match(26))
        for (this.hasPlugin("decorators") && this.raise(te.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
          s.push(this.parseDecorator());
      let r = this.startNode(), i = !1, a = !1, o;
      if (this.match(21))
        return s.length && this.unexpected(), this.parseSpread();
      s.length && (r.decorators = s, s = []), r.method = !1, e && (o = this.state.startLoc);
      let l = this.eat(55);
      this.parsePropertyNamePrefixOperator(r);
      let u = this.state.containsEsc;
      if (this.parsePropertyName(r, e), !l && !u && this.maybeAsyncOrAccessorProp(r)) {
        let {
          key: c
        } = r, p = c.name;
        p === "async" && !this.hasPrecedingLineBreak() && (i = !0, this.resetPreviousNodeTrailingComments(c), l = this.eat(55), this.parsePropertyName(
        r)), (p === "get" || p === "set") && (a = !0, this.resetPreviousNodeTrailingComments(c), r.kind = p, this.match(55) && (l = !0, this.
        raise(te.AccessorIsGenerator, this.state.curPosition(), {
          kind: p
        }), this.next()), this.parsePropertyName(r));
      }
      return this.parseObjPropValue(r, o, l, i, !1, a, e);
    }
    getGetterSetterExpectedParamCount(e) {
      return e.kind === "get" ? 0 : 1;
    }
    getObjectOrClassMethodParams(e) {
      return e.params;
    }
    checkGetterSetterParams(e) {
      var s;
      let r = this.getGetterSetterExpectedParamCount(e), i = this.getObjectOrClassMethodParams(e);
      i.length !== r && this.raise(e.kind === "get" ? te.BadGetterArity : te.BadSetterArity, e), e.kind === "set" && ((s = i[i.length - 1]) ==
      null ? void 0 : s.type) === "RestElement" && this.raise(te.BadSetterRestParameter, e);
    }
    parseObjectMethod(e, s, r, i, a) {
      if (a) {
        let o = this.parseMethod(e, s, !1, !1, !1, "ObjectMethod");
        return this.checkGetterSetterParams(o), o;
      }
      if (r || s || this.match(10))
        return i && this.unexpected(), e.kind = "method", e.method = !0, this.parseMethod(e, s, r, !1, !1, "ObjectMethod");
    }
    parseObjectProperty(e, s, r, i) {
      if (e.shorthand = !1, this.eat(14))
        return e.value = r ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(i), this.finishNode(e, "ObjectProper\
ty");
      if (!e.computed && e.key.type === "Identifier") {
        if (this.checkReservedWord(e.key.name, e.key.loc.start, !0, !1), r)
          e.value = this.parseMaybeDefault(s, Yu(e.key));
        else if (this.match(29)) {
          let a = this.state.startLoc;
          i != null ? i.shorthandAssignLoc === null && (i.shorthandAssignLoc = a) : this.raise(te.InvalidCoverInitializedName, a), e.value =
          this.parseMaybeDefault(s, Yu(e.key));
        } else
          e.value = Yu(e.key);
        return e.shorthand = !0, this.finishNode(e, "ObjectProperty");
      }
    }
    parseObjPropValue(e, s, r, i, a, o, l) {
      let u = this.parseObjectMethod(e, r, i, a, o) || this.parseObjectProperty(e, s, a, l);
      return u || this.unexpected(), u;
    }
    parsePropertyName(e, s) {
      if (this.eat(0))
        e.computed = !0, e.key = this.parseMaybeAssignAllowIn(), this.expect(3);
      else {
        let {
          type: r,
          value: i
        } = this.state, a;
        if (Mo(r))
          a = this.parseIdentifier(!0);
        else
          switch (r) {
            case 135:
              a = this.parseNumericLiteral(i);
              break;
            case 134:
              a = this.parseStringLiteral(i);
              break;
            case 136:
              a = this.parseBigIntLiteral(i);
              break;
            case 139: {
              let o = this.state.startLoc;
              s != null ? s.privateKeyLoc === null && (s.privateKeyLoc = o) : this.raise(te.UnexpectedPrivateField, o), a = this.parsePrivateName();
              break;
            }
            default:
              if (r === 137) {
                a = this.parseDecimalLiteral(i);
                break;
              }
              this.unexpected();
          }
        e.key = a, r !== 139 && (e.computed = !1);
      }
    }
    initFunction(e, s) {
      e.id = null, e.generator = !1, e.async = s;
    }
    parseMethod(e, s, r, i, a, o, l = !1) {
      this.initFunction(e, r), e.generator = s, this.scope.enter(18 | (l ? 64 : 0) | (a ? 32 : 0)), this.prodParam.enter(WA(r, e.generator)),
      this.parseFunctionParams(e, i);
      let u = this.parseFunctionBodyAndFinish(e, o, !0);
      return this.prodParam.exit(), this.scope.exit(), u;
    }
    parseArrayLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = this.startNode();
      return this.next(), o.elements = this.parseExprList(e, !r, i, o), this.state.inFSharpPipelineDirectBody = a, this.finishNode(o, r ? "T\
upleExpression" : "ArrayExpression");
    }
    parseArrowExpression(e, s, r, i) {
      this.scope.enter(6);
      let a = WA(r, !1);
      !this.match(5) && this.prodParam.hasIn && (a |= 8), this.prodParam.enter(a), this.initFunction(e, r);
      let o = this.state.maybeInArrowParameters;
      return s && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(e, s, i)), this.state.maybeInArrowParameters = !1,
      this.parseFunctionBody(e, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = o, this.finishNode(e, "Ar\
rowFunctionExpression");
    }
    setArrowFunctionParameters(e, s, r) {
      this.toAssignableList(s, r, !1), e.params = s;
    }
    parseFunctionBodyAndFinish(e, s, r = !1) {
      return this.parseFunctionBody(e, !1, r), this.finishNode(e, s);
    }
    parseFunctionBody(e, s, r = !1) {
      let i = s && !this.match(5);
      if (this.expressionScope.enter(Noe()), i)
        e.body = this.parseMaybeAssign(), this.checkParams(e, !1, s, !1);
      else {
        let a = this.state.strict, o = this.state.labels;
        this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), e.body = this.parseBlock(!0, !1, (l) => {
          let u = !this.isSimpleParamList(e.params);
          l && u && this.raise(te.IllegalLanguageModeDirective, (e.kind === "method" || e.kind === "constructor") && e.key ? e.key.loc.end :
          e);
          let c = !a && this.state.strict;
          this.checkParams(e, !this.state.strict && !s && !r && !u, s, c), this.state.strict && e.id && this.checkIdentifier(e.id, 65, c);
        }), this.prodParam.exit(), this.state.labels = o;
      }
      this.expressionScope.exit();
    }
    isSimpleParameter(e) {
      return e.type === "Identifier";
    }
    isSimpleParamList(e) {
      for (let s = 0, r = e.length; s < r; s++)
        if (!this.isSimpleParameter(e[s])) return !1;
      return !0;
    }
    checkParams(e, s, r, i = !0) {
      let a = !s && /* @__PURE__ */ new Set(), o = {
        type: "FormalParameters"
      };
      for (let l of e.params)
        this.checkLVal(l, o, 5, a, i);
    }
    parseExprList(e, s, r, i) {
      let a = [], o = !0;
      for (; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          i && this.addTrailingCommaExtraToNode(i), this.next();
          break;
        }
        a.push(this.parseExprListItem(s, r));
      }
      return a;
    }
    parseExprListItem(e, s, r) {
      let i;
      if (this.match(12))
        e || this.raise(te.UnexpectedToken, this.state.curPosition(), {
          unexpected: ","
        }), i = null;
      else if (this.match(21)) {
        let a = this.state.startLoc;
        i = this.parseParenItem(this.parseSpread(s), a);
      } else if (this.match(17)) {
        this.expectPlugin("partialApplication"), r || this.raise(te.UnexpectedArgumentPlaceholder, this.state.startLoc);
        let a = this.startNode();
        this.next(), i = this.finishNode(a, "ArgumentPlaceholder");
      } else
        i = this.parseMaybeAssignAllowIn(s, this.parseParenItem);
      return i;
    }
    parseIdentifier(e) {
      let s = this.startNode(), r = this.parseIdentifierName(e);
      return this.createIdentifier(s, r);
    }
    createIdentifier(e, s) {
      return e.name = s, e.loc.identifierName = s, this.finishNode(e, "Identifier");
    }
    parseIdentifierName(e) {
      let s, {
        startLoc: r,
        type: i
      } = this.state;
      Mo(i) ? s = this.state.value : this.unexpected();
      let a = _3t(i);
      return e ? a && this.replaceToken(132) : this.checkReservedWord(s, r, a, !1), this.next(), s;
    }
    checkReservedWord(e, s, r, i) {
      if (e.length > 10 || !Q3t(e))
        return;
      if (r && X3t(e)) {
        this.raise(te.UnexpectedKeyword, s, {
          keyword: e
        });
        return;
      }
      if ((this.state.strict ? i ? voe : Eoe : Poe)(e, this.inModule)) {
        this.raise(te.UnexpectedReservedWord, s, {
          reservedWord: e
        });
        return;
      } else if (e === "yield") {
        if (this.prodParam.hasYield) {
          this.raise(te.YieldBindingIdentifier, s);
          return;
        }
      } else if (e === "await") {
        if (this.prodParam.hasAwait) {
          this.raise(te.AwaitBindingIdentifier, s);
          return;
        }
        if (this.scope.inStaticBlock) {
          this.raise(te.AwaitBindingIdentifierInStaticBlock, s);
          return;
        }
        this.expressionScope.recordAsyncArrowParametersError(s);
      } else if (e === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
        this.raise(te.ArgumentsInClass, s);
        return;
      }
    }
    recordAwaitIfAllowed() {
      let e = this.prodParam.hasAwait || this.optionFlags & 1 && !this.scope.inFunction;
      return e && !this.scope.inFunction && (this.state.hasTopLevelAwait = !0), e;
    }
    parseAwait(e) {
      let s = this.startNodeAt(e);
      return this.expressionScope.recordParameterInitializerError(te.AwaitExpressionFormalParameter, s), this.eat(55) && this.raise(te.ObsoleteAwaitStar,
      s), !this.scope.inFunction && !(this.optionFlags & 1) && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM =
      !0), this.state.soloAwait || (s.argument = this.parseMaybeUnary(null, !0)), this.finishNode(s, "AwaitExpression");
    }
    isAmbiguousAwait() {
      if (this.hasPrecedingLineBreak()) return !0;
      let {
        type: e
      } = this.state;
      return e === 53 || e === 10 || e === 0 || HA(e) || e === 102 && !this.state.containsEsc || e === 138 || e === 56 || this.hasPlugin("v8\
intrinsic") && e === 54;
    }
    parseYield() {
      let e = this.startNode();
      this.expressionScope.recordParameterInitializerError(te.YieldInParameter, e), this.next();
      let s = !1, r = null;
      if (!this.hasPrecedingLineBreak())
        switch (s = this.eat(55), this.state.type) {
          case 13:
          case 140:
          case 8:
          case 11:
          case 3:
          case 9:
          case 14:
          case 12:
            if (!s) break;
          default:
            r = this.parseMaybeAssign();
        }
      return e.delegate = s, e.argument = r, this.finishNode(e, "YieldExpression");
    }
    parseImportCall(e) {
      if (this.next(), e.source = this.parseMaybeAssignAllowIn(), e.options = null, this.eat(12) && !this.match(11) && (e.options = this.parseMaybeAssignAllowIn(),
      this.eat(12) && !this.match(11))) {
        do
          this.parseMaybeAssignAllowIn();
        while (this.eat(12) && !this.match(11));
        this.raise(te.ImportCallArity, e);
      }
      return this.expect(11), this.finishNode(e, "ImportExpression");
    }
    checkPipelineAtInfixOperator(e, s) {
      this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }]) && e.type === "SequenceExpression" && this.raise(te.PipelineHeadSequenceExpression, s);
    }
    parseSmartPipelineBodyInStyle(e, s) {
      if (this.isSimpleReference(e)) {
        let r = this.startNodeAt(s);
        return r.callee = e, this.finishNode(r, "PipelineBareFunction");
      } else {
        let r = this.startNodeAt(s);
        return this.checkSmartPipeTopicBodyEarlyErrors(s), r.expression = e, this.finishNode(r, "PipelineTopicExpression");
      }
    }
    isSimpleReference(e) {
      switch (e.type) {
        case "MemberExpression":
          return !e.computed && this.isSimpleReference(e.object);
        case "Identifier":
          return !0;
        default:
          return !1;
      }
    }
    checkSmartPipeTopicBodyEarlyErrors(e) {
      if (this.match(19))
        throw this.raise(te.PipelineBodyNoArrow, this.state.startLoc);
      this.topicReferenceWasUsedInCurrentContext() || this.raise(te.PipelineTopicUnused, e);
    }
    withTopicBindingContext(e) {
      let s = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 1,
        maxTopicIndex: null
      };
      try {
        return e();
      } finally {
        this.state.topicContext = s;
      }
    }
    withSmartMixTopicForbiddingContext(e) {
      if (this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }])) {
        let s = this.state.topicContext;
        this.state.topicContext = {
          maxNumOfResolvableTopics: 0,
          maxTopicIndex: null
        };
        try {
          return e();
        } finally {
          this.state.topicContext = s;
        }
      } else
        return e();
    }
    withSoloAwaitPermittingContext(e) {
      let s = this.state.soloAwait;
      this.state.soloAwait = !0;
      try {
        return e();
      } finally {
        this.state.soloAwait = s;
      }
    }
    allowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & ~s) {
        this.prodParam.enter(s | 8);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    disallowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & s) {
        this.prodParam.enter(s & -9);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    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(e) {
      let s = this.state.startLoc;
      this.state.potentialArrowAt = this.state.start;
      let r = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !0;
      let i = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), s, e);
      return this.state.inFSharpPipelineDirectBody = r, i;
    }
    parseModuleExpression() {
      this.expectPlugin("moduleBlocks");
      let e = this.startNode();
      this.next(), this.match(5) || this.unexpected(null, 5);
      let s = this.startNodeAt(this.state.endLoc);
      this.next();
      let r = this.initializeScopes(!0);
      this.enterInitialScopes();
      try {
        e.body = this.parseProgram(s, 8, "module");
      } finally {
        r();
      }
      return this.finishNode(e, "ModuleExpression");
    }
    parsePropertyNamePrefixOperator(e) {
    }
  }, l3 = {
    kind: 1
  }, k4t = {
    kind: 2
  }, D4t = /[\uD800-\uDFFF]/u, u3 = /in(?:stanceof)?/y;
  function O4t(t, e, s) {
    for (let r = 0; r < t.length; r++) {
      let i = t[r], {
        type: a
      } = i;
      if (typeof a == "number") {
        {
          if (a === 139) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Fn(o.start, 1);
            t.splice(r, 1, new Sl({
              type: Wu(27),
              value: "#",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }), new Sl({
              type: Wu(132),
              value: u,
              start: p,
              end: c,
              startLoc: h,
              endLoc: o.end
            })), r++;
            continue;
          }
          if (HA(a)) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Fn(o.start, 1), f;
            e.charCodeAt(l - s) === 96 ? f = new Sl({
              type: Wu(22),
              value: "`",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }) : f = new Sl({
              type: Wu(8),
              value: "}",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            });
            let d, m, y, T;
            a === 24 ? (m = c - 1, y = Fn(o.end, -1), d = u === null ? null : u.slice(1, -1), T = new Sl({
              type: Wu(22),
              value: "`",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })) : (m = c - 2, y = Fn(o.end, -2), d = u === null ? null : u.slice(1, -2), T = new Sl({
              type: Wu(23),
              value: "${",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })), t.splice(r, 1, f, new Sl({
              type: Wu(20),
              value: d,
              start: p,
              end: m,
              startLoc: h,
              endLoc: y
            }), T), r += 2;
            continue;
          }
        }
        i.type = Wu(a);
      }
    }
    return t;
  }
  n(O4t, "babel7CompatTokens");
  var N3 = class extends I3 {
    static {
      n(this, "StatementParser");
    }
    parseTopLevel(e, s) {
      return e.program = this.parseProgram(s), e.comments = this.comments, this.optionFlags & 128 && (e.tokens = O4t(this.tokens, this.input,
      this.startIndex)), this.finishNode(e, "File");
    }
    parseProgram(e, s = 140, r = this.options.sourceType) {
      if (e.sourceType = r, e.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(e, !0, !0, s), this.inModule) {
        if (!(this.optionFlags & 32) && this.scope.undefinedExports.size > 0)
          for (let [a, o] of Array.from(this.scope.undefinedExports))
            this.raise(te.ModuleExportUndefined, o, {
              localName: a
            });
        this.addExtra(e, "topLevelAwait", this.state.hasTopLevelAwait);
      }
      let i;
      return s === 140 ? i = this.finishNode(e, "Program") : i = this.finishNodeAt(e, "Program", Fn(this.state.startLoc, -1)), i;
    }
    stmtToDirective(e) {
      let s = e;
      s.type = "Directive", s.value = s.expression, delete s.expression;
      let r = s.value, i = r.value, a = this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(r.end)), o = r.value = a.slice(
      1, -1);
      return this.addExtra(r, "raw", a), this.addExtra(r, "rawValue", o), this.addExtra(r, "expressionValue", i), r.type = "DirectiveLiteral",
      s;
    }
    parseInterpreterDirective() {
      if (!this.match(28))
        return null;
      let e = this.startNode();
      return e.value = this.state.value, this.next(), this.finishNode(e, "InterpreterDirective");
    }
    isLet() {
      return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
    }
    chStartsBindingIdentifier(e, s) {
      if (Hu(e)) {
        if (u3.lastIndex = s, u3.test(this.input)) {
          let r = this.codePointAtPos(u3.lastIndex);
          if (!Rm(r) && r !== 92)
            return !1;
        }
        return !0;
      } else return e === 92;
    }
    chStartsBindingPattern(e) {
      return e === 91 || e === 123;
    }
    hasFollowingBindingAtom() {
      let e = this.nextTokenStart(), s = this.codePointAtPos(e);
      return this.chStartsBindingPattern(s) || this.chStartsBindingIdentifier(s, e);
    }
    hasInLineFollowingBindingIdentifierOrBrace() {
      let e = this.nextTokenInLineStart(), s = this.codePointAtPos(e);
      return s === 123 || this.chStartsBindingIdentifier(s, e);
    }
    startsUsingForOf() {
      let {
        type: e,
        containsEsc: s
      } = this.lookahead();
      if (e === 102 && !s)
        return !1;
      if (ir(e) && !this.hasFollowingLineBreak())
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    startsAwaitUsing() {
      let e = this.nextTokenInLineStart();
      if (this.isUnparsedContextual(e, "using")) {
        e = this.nextTokenInLineStartSince(e + 5);
        let s = this.codePointAtPos(e);
        if (this.chStartsBindingIdentifier(s, e))
          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(e = !1) {
      let s = 0;
      return this.options.annexB && !this.state.strict && (s |= 4, e && (s |= 8)), this.parseStatementLike(s);
    }
    parseStatement() {
      return this.parseStatementLike(0);
    }
    parseStatementLike(e) {
      let s = null;
      return this.match(26) && (s = this.parseDecorators(!0)), this.parseStatementContent(e, s);
    }
    parseStatementContent(e, s) {
      let r = this.state.type, i = this.startNode(), a = !!(e & 2), o = !!(e & 4), l = e & 1;
      switch (r) {
        case 60:
          return this.parseBreakContinueStatement(i, !0);
        case 63:
          return this.parseBreakContinueStatement(i, !1);
        case 64:
          return this.parseDebuggerStatement(i);
        case 90:
          return this.parseDoWhileStatement(i);
        case 91:
          return this.parseForStatement(i);
        case 68:
          if (this.lookaheadCharCode() === 46) break;
          return o || this.raise(this.state.strict ? te.StrictFunction : this.options.annexB ? te.SloppyFunctionAnnexB : te.SloppyFunction, this.
          state.startLoc), this.parseFunctionStatement(i, !1, !a && o);
        case 80:
          return a || this.unexpected(), this.parseClass(this.maybeTakeDecorators(s, i), !0);
        case 69:
          return this.parseIfStatement(i);
        case 70:
          return this.parseReturnStatement(i);
        case 71:
          return this.parseSwitchStatement(i);
        case 72:
          return this.parseThrowStatement(i);
        case 73:
          return this.parseTryStatement(i);
        case 96:
          if (!this.state.containsEsc && this.startsAwaitUsing())
            return this.recordAwaitIfAllowed() ? a || this.raise(te.UnexpectedLexicalDeclaration, i) : this.raise(te.AwaitUsingNotInAsyncContext,
            i), this.next(), this.parseVarStatement(i, "await using");
          break;
        case 107:
          if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace())
            break;
          return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(te.UnexpectedUsingDeclaration,
          this.state.startLoc) : a || this.raise(te.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(i, "using");
        case 100: {
          if (this.state.containsEsc)
            break;
          let p = this.nextTokenStart(), h = this.codePointAtPos(p);
          if (h !== 91 && (!a && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(h, p) && h !== 123))
            break;
        }
        case 75:
          a || this.raise(te.UnexpectedLexicalDeclaration, this.state.startLoc);
        case 74: {
          let p = this.state.value;
          return this.parseVarStatement(i, p);
        }
        case 92:
          return this.parseWhileStatement(i);
        case 76:
          return this.parseWithStatement(i);
        case 5:
          return this.parseBlock();
        case 13:
          return this.parseEmptyStatement(i);
        case 83: {
          let p = this.lookaheadCharCode();
          if (p === 40 || p === 46)
            break;
        }
        case 82: {
          !(this.optionFlags & 8) && !l && this.raise(te.UnexpectedImportExport, this.state.startLoc), this.next();
          let p;
          return r === 83 ? (p = this.parseImport(i), p.type === "ImportDeclaration" && (!p.importKind || p.importKind === "value") && (this.
          sawUnambiguousESM = !0)) : (p = this.parseExport(i, s), (p.type === "ExportNamedDeclaration" && (!p.exportKind || p.exportKind ===
          "value") || p.type === "ExportAllDeclaration" && (!p.exportKind || p.exportKind === "value") || p.type === "ExportDefaultDeclarati\
on") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(p), p;
        }
        default:
          if (this.isAsyncFunction())
            return a || this.raise(te.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(
            i, !0, !a && o);
      }
      let u = this.state.value, c = this.parseExpression();
      return ir(r) && c.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(i, u, c, e) : this.parseExpressionStatement(i, c,
      s);
    }
    assertModuleNodeAllowed(e) {
      !(this.optionFlags & 8) && !this.inModule && this.raise(te.ImportOutsideModule, e);
    }
    decoratorsEnabledBeforeExport() {
      return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBefore\
Export") !== !1;
    }
    maybeTakeDecorators(e, s, r) {
      if (e) {
        var i;
        (i = s.decorators) != null && i.length ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(
        te.DecoratorsBeforeAfterExport, s.decorators[0]), s.decorators.unshift(...e)) : s.decorators = e, this.resetStartLocationFromNode(s,
        e[0]), r && this.resetStartLocationFromNode(r, s);
      }
      return s;
    }
    canHaveLeadingDecorator() {
      return this.match(80);
    }
    parseDecorators(e) {
      let s = [];
      do
        s.push(this.parseDecorator());
      while (this.match(26));
      if (this.match(82))
        e || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(te.DecoratorExportClass, this.state.startLoc);
      else if (!this.canHaveLeadingDecorator())
        throw this.raise(te.UnexpectedLeadingDecorator, this.state.startLoc);
      return s;
    }
    parseDecorator() {
      this.expectOnePlugin(["decorators", "decorators-legacy"]);
      let e = this.startNode();
      if (this.next(), this.hasPlugin("decorators")) {
        let s = this.state.startLoc, r;
        if (this.match(10)) {
          let i = this.state.startLoc;
          this.next(), r = this.parseExpression(), this.expect(11), r = this.wrapParenthesis(i, r);
          let a = this.state.startLoc;
          e.expression = this.parseMaybeDecoratorArguments(r, i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && e.expression !==
          r && this.raise(te.DecoratorArgumentsOutsideParentheses, a);
        } else {
          for (r = this.parseIdentifier(!1); this.eat(16); ) {
            let i = this.startNodeAt(s);
            i.object = r, this.match(139) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), i.property = this.parsePrivateName()) :
            i.property = this.parseIdentifier(!0), i.computed = !1, r = this.finishNode(i, "MemberExpression");
          }
          e.expression = this.parseMaybeDecoratorArguments(r, s);
        }
      } else
        e.expression = this.parseExprSubscripts();
      return this.finishNode(e, "Decorator");
    }
    parseMaybeDecoratorArguments(e, s) {
      if (this.eat(10)) {
        let r = this.startNodeAt(s);
        return r.callee = e, r.arguments = this.parseCallExpressionArguments(11), this.toReferencedList(r.arguments), this.finishNode(r, "Ca\
llExpression");
      }
      return e;
    }
    parseBreakContinueStatement(e, s) {
      return this.next(), this.isLineTerminator() ? e.label = null : (e.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(
      e, s), this.finishNode(e, s ? "BreakStatement" : "ContinueStatement");
    }
    verifyBreakContinue(e, s) {
      let r;
      for (r = 0; r < this.state.labels.length; ++r) {
        let i = this.state.labels[r];
        if ((e.label == null || i.name === e.label.name) && (i.kind != null && (s || i.kind === 1) || e.label && s))
          break;
      }
      if (r === this.state.labels.length) {
        let i = s ? "BreakStatement" : "ContinueStatement";
        this.raise(te.IllegalBreakContinue, e, {
          type: i
        });
      }
    }
    parseDebuggerStatement(e) {
      return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
    }
    parseHeaderExpression() {
      this.expect(10);
      let e = this.parseExpression();
      return this.expect(11), e;
    }
    parseDoWhileStatement(e) {
      return this.next(), this.state.labels.push(l3), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.
      labels.pop(), this.expect(92), e.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(e, "DoWhileStatement");
    }
    parseForStatement(e) {
      this.next(), this.state.labels.push(l3);
      let s = null;
      if (this.isContextual(96) && this.recordAwaitIfAllowed() && (s = this.state.startLoc, this.next()), this.scope.enter(0), this.expect(10),
      this.match(13))
        return s !== null && this.unexpected(s), this.parseFor(e, null);
      let r = this.isContextual(100);
      {
        let u = this.isContextual(96) && this.startsAwaitUsing(), c = u || this.isContextual(107) && this.startsUsingForOf(), p = r && this.
        hasFollowingBindingAtom() || c;
        if (this.match(74) || this.match(75) || p) {
          let h = this.startNode(), f;
          u ? (f = "await using", this.recordAwaitIfAllowed() || this.raise(te.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) :
          f = this.state.value, this.next(), this.parseVar(h, !0, f);
          let d = this.finishNode(h, "VariableDeclaration"), m = this.match(58);
          return m && c && this.raise(te.ForInUsing, d), (m || this.isContextual(102)) && d.declarations.length === 1 ? this.parseForIn(e, d,
          s) : (s !== null && this.unexpected(s), this.parseFor(e, d));
        }
      }
      let i = this.isContextual(95), a = new Um(), o = this.parseExpression(!0, a), l = this.isContextual(102);
      if (l && (r && this.raise(te.ForOfLet, o), s === null && i && o.type === "Identifier" && this.raise(te.ForOfAsync, o)), l || this.match(
      58)) {
        this.checkDestructuringPrivate(a), this.toAssignable(o, !0);
        let u = l ? "ForOfStatement" : "ForInStatement";
        return this.checkLVal(o, {
          type: u
        }), this.parseForIn(e, o, s);
      } else
        this.checkExpressionErrors(a, !0);
      return s !== null && this.unexpected(s), this.parseFor(e, o);
    }
    parseFunctionStatement(e, s, r) {
      return this.next(), this.parseFunction(e, 1 | (r ? 2 : 0) | (s ? 8 : 0));
    }
    parseIfStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), e.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), e.alternate =
      this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(e, "IfStatement");
    }
    parseReturnStatement(e) {
      return !this.prodParam.hasReturn && !(this.optionFlags & 2) && this.raise(te.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ?
      e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
    }
    parseSwitchStatement(e) {
      this.next(), e.discriminant = this.parseHeaderExpression();
      let s = e.cases = [];
      this.expect(5), this.state.labels.push(k4t), this.scope.enter(0);
      let r;
      for (let i; !this.match(8); )
        if (this.match(61) || this.match(65)) {
          let a = this.match(61);
          r && this.finishNode(r, "SwitchCase"), s.push(r = this.startNode()), r.consequent = [], this.next(), a ? r.test = this.parseExpression() :
          (i && this.raise(te.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), i = !0, r.test = null), this.expect(14);
        } else
          r ? r.consequent.push(this.parseStatementListItem()) : this.unexpected();
      return this.scope.exit(), r && this.finishNode(r, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(e, "SwitchState\
ment");
    }
    parseThrowStatement(e) {
      return this.next(), this.hasPrecedingLineBreak() && this.raise(te.NewlineAfterThrow, this.state.lastTokEndLoc), e.argument = this.parseExpression(),
      this.semicolon(), this.finishNode(e, "ThrowStatement");
    }
    parseCatchClauseParam() {
      let e = this.parseBindingAtom();
      return this.scope.enter(this.options.annexB && e.type === "Identifier" ? 8 : 0), this.checkLVal(e, {
        type: "CatchClause"
      }, 9), e;
    }
    parseTryStatement(e) {
      if (this.next(), e.block = this.parseBlock(), e.handler = null, this.match(62)) {
        let s = this.startNode();
        this.next(), this.match(10) ? (this.expect(10), s.param = this.parseCatchClauseParam(), this.expect(11)) : (s.param = null, this.scope.
        enter(0)), s.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), e.handler = this.finishNode(
        s, "CatchClause");
      }
      return e.finalizer = this.eat(67) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(te.NoCatchOrFinally, e), this.finishNode(
      e, "TryStatement");
    }
    parseVarStatement(e, s, r = !1) {
      return this.next(), this.parseVar(e, !1, s, r), this.semicolon(), this.finishNode(e, "VariableDeclaration");
    }
    parseWhileStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), this.state.labels.push(l3), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.state.labels.pop(), this.finishNode(e, "WhileStatement");
    }
    parseWithStatement(e) {
      return this.state.strict && this.raise(te.StrictWith, this.state.startLoc), this.next(), e.object = this.parseHeaderExpression(), e.body =
      this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(e, "WithStatement");
    }
    parseEmptyStatement(e) {
      return this.next(), this.finishNode(e, "EmptyStatement");
    }
    parseLabeledStatement(e, s, r, i) {
      for (let o of this.state.labels)
        o.name === s && this.raise(te.LabelRedeclaration, r, {
          labelName: s
        });
      let a = M3t(this.state.type) ? 1 : this.match(71) ? 2 : null;
      for (let o = this.state.labels.length - 1; o >= 0; o--) {
        let l = this.state.labels[o];
        if (l.statementStart === e.start)
          l.statementStart = this.sourceToOffsetPos(this.state.start), l.kind = a;
        else
          break;
      }
      return this.state.labels.push({
        name: s,
        kind: a,
        statementStart: this.sourceToOffsetPos(this.state.start)
      }), e.body = i & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), e.label =
      r, this.finishNode(e, "LabeledStatement");
    }
    parseExpressionStatement(e, s, r) {
      return e.expression = s, this.semicolon(), this.finishNode(e, "ExpressionStatement");
    }
    parseBlock(e = !1, s = !0, r) {
      let i = this.startNode();
      return e && this.state.strictErrors.clear(), this.expect(5), s && this.scope.enter(0), this.parseBlockBody(i, e, !1, 8, r), s && this.
      scope.exit(), this.finishNode(i, "BlockStatement");
    }
    isValidDirective(e) {
      return e.type === "ExpressionStatement" && e.expression.type === "StringLiteral" && !e.expression.extra.parenthesized;
    }
    parseBlockBody(e, s, r, i, a) {
      let o = e.body = [], l = e.directives = [];
      this.parseBlockOrModuleBlockBody(o, s ? l : void 0, r, i, a);
    }
    parseBlockOrModuleBlockBody(e, s, r, i, a) {
      let o = this.state.strict, l = !1, u = !1;
      for (; !this.match(i); ) {
        let c = r ? this.parseModuleItem() : this.parseStatementListItem();
        if (s && !u) {
          if (this.isValidDirective(c)) {
            let p = this.stmtToDirective(c);
            s.push(p), !l && p.value.value === "use strict" && (l = !0, this.setStrict(!0));
            continue;
          }
          u = !0, this.state.strictErrors.clear();
        }
        e.push(c);
      }
      a?.call(this, l), o || this.setStrict(!1), this.next();
    }
    parseFor(e, s) {
      return e.init = s, this.semicolon(!1), e.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), e.update = this.match(
      11) ? null : this.parseExpression(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.
      scope.exit(), this.state.labels.pop(), this.finishNode(e, "ForStatement");
    }
    parseForIn(e, s, r) {
      let i = this.match(58);
      return this.next(), i ? r !== null && this.unexpected(r) : e.await = r !== null, s.type === "VariableDeclaration" && s.declarations[0].
      init != null && (!i || !this.options.annexB || this.state.strict || s.kind !== "var" || s.declarations[0].id.type !== "Identifier") &&
      this.raise(te.ForInOfLoopInitializer, s, {
        type: i ? "ForInStatement" : "ForOfStatement"
      }), s.type === "AssignmentPattern" && this.raise(te.InvalidLhs, s, {
        ancestor: {
          type: "ForStatement"
        }
      }), e.left = s, e.right = i ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement");
    }
    parseVar(e, s, r, i = !1) {
      let a = e.declarations = [];
      for (e.kind = r; ; ) {
        let o = this.startNode();
        if (this.parseVarId(o, r), o.init = this.eat(29) ? s ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, o.
        init === null && !i && (o.id.type !== "Identifier" && !(s && (this.match(58) || this.isContextual(102))) ? this.raise(te.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: "destructuring"
        }) : (r === "const" || r === "using" || r === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(te.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: r
        })), a.push(this.finishNode(o, "VariableDeclarator")), !this.eat(12)) break;
      }
      return e;
    }
    parseVarId(e, s) {
      let r = this.parseBindingAtom();
      (s === "using" || s === "await using") && (r.type === "ArrayPattern" || r.type === "ObjectPattern") && this.raise(te.UsingDeclarationHasBindingPattern,
      r.loc.start), this.checkLVal(r, {
        type: "VariableDeclarator"
      }, s === "var" ? 5 : 8201), e.id = r;
    }
    parseAsyncFunctionExpression(e) {
      return this.parseFunction(e, 8);
    }
    parseFunction(e, s = 0) {
      let r = s & 2, i = !!(s & 1), a = i && !(s & 4), o = !!(s & 8);
      this.initFunction(e, o), this.match(55) && (r && this.raise(te.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), e.
      generator = !0), i && (e.id = this.parseFunctionId(a));
      let l = this.state.maybeInArrowParameters;
      return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(WA(o, e.generator)), i || (e.id = this.parseFunctionId()),
      this.parseFunctionParams(e, !1), this.withSmartMixTopicForbiddingContext(() => {
        this.parseFunctionBodyAndFinish(e, i ? "FunctionDeclaration" : "FunctionExpression");
      }), this.prodParam.exit(), this.scope.exit(), i && !r && this.registerFunctionStatementId(e), this.state.maybeInArrowParameters = l, e;
    }
    parseFunctionId(e) {
      return e || ir(this.state.type) ? this.parseIdentifier() : null;
    }
    parseFunctionParams(e, s) {
      this.expect(10), this.expressionScope.enter(a4t()), e.params = this.parseBindingList(11, 41, 2 | (s ? 4 : 0)), this.expressionScope.exit();
    }
    registerFunctionStatementId(e) {
      e.id && this.scope.declareName(e.id.name, !this.options.annexB || this.state.strict || e.generator || e.async ? this.scope.treatFunctionsAsVar ?
      5 : 8201 : 17, e.id.loc.start);
    }
    parseClass(e, s, r) {
      this.next();
      let i = this.state.strict;
      return this.state.strict = !0, this.parseClassId(e, s, r), this.parseClassSuper(e), e.body = this.parseClassBody(!!e.superClass, i), this.
      finishNode(e, s ? "ClassDeclaration" : "ClassExpression");
    }
    isClassProperty() {
      return this.match(29) || this.match(13) || this.match(8);
    }
    isClassMethod() {
      return this.match(10);
    }
    nameIsConstructor(e) {
      return e.type === "Identifier" && e.name === "constructor" || e.type === "StringLiteral" && e.value === "constructor";
    }
    isNonstaticConstructor(e) {
      return !e.computed && !e.static && this.nameIsConstructor(e.key);
    }
    parseClassBody(e, s) {
      this.classScope.enter();
      let r = {
        hadConstructor: !1,
        hadSuperClass: e
      }, i = [], a = this.startNode();
      if (a.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
        for (; !this.match(8); ) {
          if (this.eat(13)) {
            if (i.length > 0)
              throw this.raise(te.DecoratorSemicolon, this.state.lastTokEndLoc);
            continue;
          }
          if (this.match(26)) {
            i.push(this.parseDecorator());
            continue;
          }
          let o = this.startNode();
          i.length && (o.decorators = i, this.resetStartLocationFromNode(o, i[0]), i = []), this.parseClassMember(a, o, r), o.kind === "cons\
tructor" && o.decorators && o.decorators.length > 0 && this.raise(te.DecoratorConstructor, o);
        }
      }), this.state.strict = s, this.next(), i.length)
        throw this.raise(te.TrailingDecorator, this.state.startLoc);
      return this.classScope.exit(), this.finishNode(a, "ClassBody");
    }
    parseClassMemberFromModifier(e, s) {
      let r = this.parseIdentifier(!0);
      if (this.isClassMethod()) {
        let i = s;
        return i.kind = "method", i.computed = !1, i.key = r, i.static = !1, this.pushClassMethod(e, i, !1, !1, !1, !1), !0;
      } else if (this.isClassProperty()) {
        let i = s;
        return i.computed = !1, i.key = r, i.static = !1, e.body.push(this.parseClassProperty(i)), !0;
      }
      return this.resetPreviousNodeTrailingComments(r), !1;
    }
    parseClassMember(e, s, r) {
      let i = this.isContextual(106);
      if (i) {
        if (this.parseClassMemberFromModifier(e, s))
          return;
        if (this.eat(5)) {
          this.parseClassStaticBlock(e, s);
          return;
        }
      }
      this.parseClassMemberWithIsStatic(e, s, r, i);
    }
    parseClassMemberWithIsStatic(e, s, r, i) {
      let a = s, o = s, l = s, u = s, c = s, p = a, h = a;
      if (s.static = i, this.parsePropertyNamePrefixOperator(s), this.eat(55)) {
        p.kind = "method";
        let b = this.match(139);
        if (this.parseClassElementName(p), b) {
          this.pushClassPrivateMethod(e, o, !0, !1);
          return;
        }
        this.isNonstaticConstructor(a) && this.raise(te.ConstructorIsGenerator, a.key), this.pushClassMethod(e, a, !0, !1, !1, !1);
        return;
      }
      let f = !this.state.containsEsc && ir(this.state.type), d = this.parseClassElementName(s), m = f ? d.name : null, y = this.isPrivateName(
      d), T = this.state.startLoc;
      if (this.parsePostMemberNameModifiers(h), this.isClassMethod()) {
        if (p.kind = "method", y) {
          this.pushClassPrivateMethod(e, o, !1, !1);
          return;
        }
        let b = this.isNonstaticConstructor(a), E = !1;
        b && (a.kind = "constructor", r.hadConstructor && !this.hasPlugin("typescript") && this.raise(te.DuplicateConstructor, d), b && this.
        hasPlugin("typescript") && s.override && this.raise(te.OverrideOnConstructor, d), r.hadConstructor = !0, E = r.hadSuperClass), this.
        pushClassMethod(e, a, !1, !1, b, E);
      } else if (this.isClassProperty())
        y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l);
      else if (m === "async" && !this.isLineTerminator()) {
        this.resetPreviousNodeTrailingComments(d);
        let b = this.eat(55);
        h.optional && this.unexpected(T), p.kind = "method";
        let E = this.match(139);
        this.parseClassElementName(p), this.parsePostMemberNameModifiers(h), E ? this.pushClassPrivateMethod(e, o, b, !0) : (this.isNonstaticConstructor(
        a) && this.raise(te.ConstructorIsAsync, a.key), this.pushClassMethod(e, a, b, !0, !1, !1));
      } else if ((m === "get" || m === "set") && !(this.match(55) && this.isLineTerminator())) {
        this.resetPreviousNodeTrailingComments(d), p.kind = m;
        let b = this.match(139);
        this.parseClassElementName(a), b ? this.pushClassPrivateMethod(e, o, !1, !1) : (this.isNonstaticConstructor(a) && this.raise(te.ConstructorIsAccessor,
        a.key), this.pushClassMethod(e, a, !1, !1, !1, !1)), this.checkGetterSetterParams(a);
      } else if (m === "accessor" && !this.isLineTerminator()) {
        this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(d);
        let b = this.match(139);
        this.parseClassElementName(l), this.pushClassAccessorProperty(e, c, b);
      } else this.isLineTerminator() ? y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l) : this.unexpected();
    }
    parseClassElementName(e) {
      let {
        type: s,
        value: r
      } = this.state;
      if ((s === 132 || s === 134) && e.static && r === "prototype" && this.raise(te.StaticPrototype, this.state.startLoc), s === 139) {
        r === "constructor" && this.raise(te.ConstructorClassPrivateField, this.state.startLoc);
        let i = this.parsePrivateName();
        return e.key = i, i;
      }
      return this.parsePropertyName(e), e.key;
    }
    parseClassStaticBlock(e, s) {
      var r;
      this.scope.enter(208);
      let i = this.state.labels;
      this.state.labels = [], this.prodParam.enter(0);
      let a = s.body = [];
      this.parseBlockOrModuleBlockBody(a, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = i, e.body.push(this.
      finishNode(s, "StaticBlock")), (r = s.decorators) != null && r.length && this.raise(te.DecoratorStaticBlock, s);
    }
    pushClassProperty(e, s) {
      !s.computed && this.nameIsConstructor(s.key) && this.raise(te.ConstructorClassField, s.key), e.body.push(this.parseClassProperty(s));
    }
    pushClassPrivateProperty(e, s) {
      let r = this.parseClassPrivateProperty(s);
      e.body.push(r), this.classScope.declarePrivateName(this.getPrivateNameSV(r.key), 0, r.key.loc.start);
    }
    pushClassAccessorProperty(e, s, r) {
      !r && !s.computed && this.nameIsConstructor(s.key) && this.raise(te.ConstructorClassField, s.key);
      let i = this.parseClassAccessorProperty(s);
      e.body.push(i), r && this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
    }
    pushClassMethod(e, s, r, i, a, o) {
      e.body.push(this.parseMethod(s, r, i, a, o, "ClassMethod", !0));
    }
    pushClassPrivateMethod(e, s, r, i) {
      let a = this.parseMethod(s, r, i, !1, !1, "ClassPrivateMethod", !0);
      e.body.push(a);
      let o = a.kind === "get" ? a.static ? 6 : 2 : a.kind === "set" ? a.static ? 5 : 1 : 0;
      this.declareClassPrivateMethodInScope(a, o);
    }
    declareClassPrivateMethodInScope(e, s) {
      this.classScope.declarePrivateName(this.getPrivateNameSV(e.key), s, e.key.loc.start);
    }
    parsePostMemberNameModifiers(e) {
    }
    parseClassPrivateProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassPrivateProperty");
    }
    parseClassProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassProperty");
    }
    parseClassAccessorProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassAccessorProperty");
    }
    parseInitializer(e) {
      this.scope.enter(80), this.expressionScope.enter(Noe()), this.prodParam.enter(0), e.value = this.eat(29) ? this.parseMaybeAssignAllowIn() :
      null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
    }
    parseClassId(e, s, r, i = 8331) {
      if (ir(this.state.type))
        e.id = this.parseIdentifier(), s && this.declareNameFromIdentifier(e.id, i);
      else if (r || !s)
        e.id = null;
      else
        throw this.raise(te.MissingClassName, this.state.startLoc);
    }
    parseClassSuper(e) {
      e.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
    }
    parseExport(e, s) {
      let r = this.parseMaybeImportPhase(e, !0), i = this.maybeParseExportDefaultSpecifier(e, r), a = !i || this.eat(12), o = a && this.eatExportStar(
      e), l = o && this.maybeParseExportNamespaceSpecifier(e), u = a && (!l || this.eat(12)), c = i || o;
      if (o && !l) {
        if (i && this.unexpected(), s)
          throw this.raise(te.UnsupportedDecoratorExport, e);
        return this.parseExportFrom(e, !0), this.finishNode(e, "ExportAllDeclaration");
      }
      let p = this.maybeParseExportNamedSpecifiers(e);
      i && a && !o && !p && this.unexpected(null, 5), l && u && this.unexpected(null, 98);
      let h;
      if (c || p) {
        if (h = !1, s)
          throw this.raise(te.UnsupportedDecoratorExport, e);
        this.parseExportFrom(e, c);
      } else
        h = this.maybeParseExportDeclaration(e);
      if (c || p || h) {
        var f;
        let d = e;
        if (this.checkExport(d, !0, !1, !!d.source), ((f = d.declaration) == null ? void 0 : f.type) === "ClassDeclaration")
          this.maybeTakeDecorators(s, d.declaration, d);
        else if (s)
          throw this.raise(te.UnsupportedDecoratorExport, e);
        return this.finishNode(d, "ExportNamedDeclaration");
      }
      if (this.eat(65)) {
        let d = e, m = this.parseExportDefaultExpression();
        if (d.declaration = m, m.type === "ClassDeclaration")
          this.maybeTakeDecorators(s, m, d);
        else if (s)
          throw this.raise(te.UnsupportedDecoratorExport, e);
        return this.checkExport(d, !0, !0), this.finishNode(d, "ExportDefaultDeclaration");
      }
      this.unexpected(null, 5);
    }
    eatExportStar(e) {
      return this.eat(55);
    }
    maybeParseExportDefaultSpecifier(e, s) {
      if (s || this.isExportDefaultSpecifier()) {
        this.expectPlugin("exportDefaultFrom", s?.loc.start);
        let r = s || this.parseIdentifier(!0), i = this.startNodeAtNode(r);
        return i.exported = r, e.specifiers = [this.finishNode(i, "ExportDefaultSpecifier")], !0;
      }
      return !1;
    }
    maybeParseExportNamespaceSpecifier(e) {
      if (this.isContextual(93)) {
        var s, r;
        (r = (s = e).specifiers) != null || (s.specifiers = []);
        let i = this.startNodeAt(this.state.lastTokStartLoc);
        return this.next(), i.exported = this.parseModuleExportName(), e.specifiers.push(this.finishNode(i, "ExportNamespaceSpecifier")), !0;
      }
      return !1;
    }
    maybeParseExportNamedSpecifiers(e) {
      if (this.match(5)) {
        let s = e;
        s.specifiers || (s.specifiers = []);
        let r = s.exportKind === "type";
        return s.specifiers.push(...this.parseExportSpecifiers(r)), s.source = null, s.declaration = null, this.hasPlugin("importAssertions") &&
        (s.assertions = []), !0;
      }
      return !1;
    }
    maybeParseExportDeclaration(e) {
      return this.shouldParseExportDeclaration() ? (e.specifiers = [], e.source = null, this.hasPlugin("importAssertions") && (e.assertions =
      []), e.declaration = this.parseExportDeclaration(e), !0) : !1;
    }
    isAsyncFunction() {
      if (!this.isContextual(95)) return !1;
      let e = this.nextTokenInLineStart();
      return this.isUnparsedContextual(e, "function");
    }
    parseExportDefaultExpression() {
      let e = this.startNode();
      if (this.match(68))
        return this.next(), this.parseFunction(e, 5);
      if (this.isAsyncFunction())
        return this.next(), this.next(), this.parseFunction(e, 13);
      if (this.match(80))
        return this.parseClass(e, !0, !0);
      if (this.match(26))
        return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(te.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(te.UnsupportedDefaultExport, this.state.startLoc);
      let s = this.parseMaybeAssignAllowIn();
      return this.semicolon(), s;
    }
    parseExportDeclaration(e) {
      return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
    }
    isExportDefaultSpecifier() {
      let {
        type: e
      } = this.state;
      if (ir(e)) {
        if (e === 95 && !this.state.containsEsc || e === 100)
          return !1;
        if ((e === 130 || e === 129) && !this.state.containsEsc) {
          let {
            type: i
          } = this.lookahead();
          if (ir(i) && i !== 98 || i === 5)
            return this.expectOnePlugin(["flow", "typescript"]), !1;
        }
      } else if (!this.match(65))
        return !1;
      let s = this.nextTokenStart(), r = this.isUnparsedContextual(s, "from");
      if (this.input.charCodeAt(s) === 44 || ir(this.state.type) && r)
        return !0;
      if (this.match(65) && r) {
        let i = this.input.charCodeAt(this.nextTokenStartSince(s + 4));
        return i === 34 || i === 39;
      }
      return !1;
    }
    parseExportFrom(e, s) {
      this.eatContextual(98) ? (e.source = this.parseImportSource(), this.checkExport(e), this.maybeParseImportAttributes(e), this.checkJSONModuleImport(
      e)) : s && this.unexpected(), this.semicolon();
    }
    shouldParseExportDeclaration() {
      let {
        type: e
      } = this.state;
      return e === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("\
decorators", "decoratorsBeforeExport") === !0 && this.raise(te.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.
      raise(te.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(te.UsingDeclarationExport,
      this.state.startLoc), !0) : e === 74 || e === 75 || e === 68 || e === 80 || this.isLet() || this.isAsyncFunction();
    }
    checkExport(e, s, r, i) {
      if (s) {
        var a;
        if (r) {
          if (this.checkDuplicateExports(e, "default"), this.hasPlugin("exportDefaultFrom")) {
            var o;
            let l = e.declaration;
            l.type === "Identifier" && l.name === "from" && l.end - l.start === 4 && !((o = l.extra) != null && o.parenthesized) && this.raise(
            te.ExportDefaultFromAsIdentifier, l);
          }
        } else if ((a = e.specifiers) != null && a.length)
          for (let l of e.specifiers) {
            let {
              exported: u
            } = l, c = u.type === "Identifier" ? u.name : u.value;
            if (this.checkDuplicateExports(l, c), !i && l.local) {
              let {
                local: p
              } = l;
              p.type !== "Identifier" ? this.raise(te.ExportBindingIsString, l, {
                localName: p.value,
                exportName: c
              }) : (this.checkReservedWord(p.name, p.loc.start, !0, !1), this.scope.checkLocalExport(p));
            }
          }
        else if (e.declaration) {
          let l = e.declaration;
          if (l.type === "FunctionDeclaration" || l.type === "ClassDeclaration") {
            let {
              id: u
            } = l;
            if (!u) throw new Error("Assertion failure");
            this.checkDuplicateExports(e, u.name);
          } else if (l.type === "VariableDeclaration")
            for (let u of l.declarations)
              this.checkDeclaration(u.id);
        }
      }
    }
    checkDeclaration(e) {
      if (e.type === "Identifier")
        this.checkDuplicateExports(e, e.name);
      else if (e.type === "ObjectPattern")
        for (let s of e.properties)
          this.checkDeclaration(s);
      else if (e.type === "ArrayPattern")
        for (let s of e.elements)
          s && this.checkDeclaration(s);
      else e.type === "ObjectProperty" ? this.checkDeclaration(e.value) : e.type === "RestElement" ? this.checkDeclaration(e.argument) : e.type ===
      "AssignmentPattern" && this.checkDeclaration(e.left);
    }
    checkDuplicateExports(e, s) {
      this.exportedIdentifiers.has(s) && (s === "default" ? this.raise(te.DuplicateDefaultExport, e) : this.raise(te.DuplicateExport, e, {
        exportName: s
      })), this.exportedIdentifiers.add(s);
    }
    parseExportSpecifiers(e) {
      let s = [], r = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (r)
          r = !1;
        else if (this.expect(12), this.eat(8)) break;
        let i = this.isContextual(130), a = this.match(134), o = this.startNode();
        o.local = this.parseModuleExportName(), s.push(this.parseExportSpecifier(o, a, e, i));
      }
      return s;
    }
    parseExportSpecifier(e, s, r, i) {
      return this.eatContextual(93) ? e.exported = this.parseModuleExportName() : s ? e.exported = c4t(e.local) : e.exported || (e.exported =
      Yu(e.local)), this.finishNode(e, "ExportSpecifier");
    }
    parseModuleExportName() {
      if (this.match(134)) {
        let e = this.parseStringLiteral(this.state.value), s = D4t.exec(e.value);
        return s && this.raise(te.ModuleExportNameHasLoneSurrogate, e, {
          surrogateCharCode: s[0].charCodeAt(0)
        }), e;
      }
      return this.parseIdentifier(!0);
    }
    isJSONModuleImport(e) {
      return e.assertions != null ? e.assertions.some(({
        key: s,
        value: r
      }) => r.value === "json" && (s.type === "Identifier" ? s.name === "type" : s.value === "type")) : !1;
    }
    checkImportReflection(e) {
      let {
        specifiers: s
      } = e, r = s.length === 1 ? s[0].type : null;
      if (e.phase === "source")
        r !== "ImportDefaultSpecifier" && this.raise(te.SourcePhaseImportRequiresDefault, s[0].loc.start);
      else if (e.phase === "defer")
        r !== "ImportNamespaceSpecifier" && this.raise(te.DeferImportRequiresNamespace, s[0].loc.start);
      else if (e.module) {
        var i;
        r !== "ImportDefaultSpecifier" && this.raise(te.ImportReflectionNotBinding, s[0].loc.start), ((i = e.assertions) == null ? void 0 : i.
        length) > 0 && this.raise(te.ImportReflectionHasAssertion, s[0].loc.start);
      }
    }
    checkJSONModuleImport(e) {
      if (this.isJSONModuleImport(e) && e.type !== "ExportAllDeclaration") {
        let {
          specifiers: s
        } = e;
        if (s != null) {
          let r = s.find((i) => {
            let a;
            if (i.type === "ExportSpecifier" ? a = i.local : i.type === "ImportSpecifier" && (a = i.imported), a !== void 0)
              return a.type === "Identifier" ? a.name !== "default" : a.value !== "default";
          });
          r !== void 0 && this.raise(te.ImportJSONBindingNotDefault, r.loc.start);
        }
      }
    }
    isPotentialImportPhase(e) {
      return e ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
    }
    applyImportPhase(e, s, r, i) {
      s || (r === "module" ? (this.expectPlugin("importReflection", i), e.module = !0) : this.hasPlugin("importReflection") && (e.module = !1),
      r === "source" ? (this.expectPlugin("sourcePhaseImports", i), e.phase = "source") : r === "defer" ? (this.expectPlugin("deferredImport\
Evaluation", i), e.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (e.phase = null));
    }
    parseMaybeImportPhase(e, s) {
      if (!this.isPotentialImportPhase(s))
        return this.applyImportPhase(e, s, null), null;
      let r = this.parseIdentifier(!0), {
        type: i
      } = this.state;
      return (Mo(i) ? i !== 98 || this.lookaheadCharCode() === 102 : i !== 12) ? (this.resetPreviousIdentifierLeadingComments(r), this.applyImportPhase(
      e, s, r.name, r.loc.start), null) : (this.applyImportPhase(e, s, null), r);
    }
    isPrecedingIdImportPhase(e) {
      let {
        type: s
      } = this.state;
      return ir(s) ? s !== 98 || this.lookaheadCharCode() === 102 : s !== 12;
    }
    parseImport(e) {
      return this.match(134) ? this.parseImportSourceAndAttributes(e) : this.parseImportSpecifiersAndAfter(e, this.parseMaybeImportPhase(e, !1));
    }
    parseImportSpecifiersAndAfter(e, s) {
      e.specifiers = [];
      let i = !this.maybeParseDefaultImportSpecifier(e, s) || this.eat(12), a = i && this.maybeParseStarImportSpecifier(e);
      return i && !a && this.parseNamedImportSpecifiers(e), this.expectContextual(98), this.parseImportSourceAndAttributes(e);
    }
    parseImportSourceAndAttributes(e) {
      var s;
      return (s = e.specifiers) != null || (e.specifiers = []), e.source = this.parseImportSource(), this.maybeParseImportAttributes(e), this.
      checkImportReflection(e), this.checkJSONModuleImport(e), this.semicolon(), this.finishNode(e, "ImportDeclaration");
    }
    parseImportSource() {
      return this.match(134) || this.unexpected(), this.parseExprAtom();
    }
    parseImportSpecifierLocal(e, s, r) {
      s.local = this.parseIdentifier(), e.specifiers.push(this.finishImportSpecifier(s, r));
    }
    finishImportSpecifier(e, s, r = 8201) {
      return this.checkLVal(e.local, {
        type: s
      }, r), this.finishNode(e, s);
    }
    parseImportAttributes() {
      this.expect(5);
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        if (this.match(8))
          break;
        let r = this.startNode(), i = this.state.value;
        if (s.has(i) && this.raise(te.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
          key: i
        }), s.add(i), this.match(134) ? r.key = this.parseStringLiteral(i) : r.key = this.parseIdentifier(!0), this.expect(14), !this.match(
        134))
          throw this.raise(te.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return this.expect(8), e;
    }
    parseModuleAttributes() {
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        let r = this.startNode();
        if (r.key = this.parseIdentifier(!0), r.key.name !== "type" && this.raise(te.ModuleAttributeDifferentFromType, r.key), s.has(r.key.name) &&
        this.raise(te.ModuleAttributesWithDuplicateKeys, r.key, {
          key: r.key.name
        }), s.add(r.key.name), this.expect(14), !this.match(134))
          throw this.raise(te.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return e;
    }
    maybeParseImportAttributes(e) {
      let s;
      var r = !1;
      if (this.match(76)) {
        if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
          return;
        this.next(), this.hasPlugin("moduleAttributes") ? s = this.parseModuleAttributes() : s = this.parseImportAttributes(), r = !0;
      } else this.isContextual(94) && !this.hasPrecedingLineBreak() ? (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importA\
ssertions") && this.raise(te.ImportAttributesUseAssert, this.state.startLoc), this.hasPlugin("importAssertions") || this.addExtra(e, "deprec\
atedAssertSyntax", !0), this.next(), s = this.parseImportAttributes()) : s = [];
      !r && this.hasPlugin("importAssertions") ? e.assertions = s : e.attributes = s;
    }
    maybeParseDefaultImportSpecifier(e, s) {
      if (s) {
        let r = this.startNodeAtNode(s);
        return r.local = s, e.specifiers.push(this.finishImportSpecifier(r, "ImportDefaultSpecifier")), !0;
      } else if (Mo(this.state.type))
        return this.parseImportSpecifierLocal(e, this.startNode(), "ImportDefaultSpecifier"), !0;
      return !1;
    }
    maybeParseStarImportSpecifier(e) {
      if (this.match(55)) {
        let s = this.startNode();
        return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(e, s, "ImportNamespaceSpecifier"), !0;
      }
      return !1;
    }
    parseNamedImportSpecifiers(e) {
      let s = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (s)
          s = !1;
        else {
          if (this.eat(14))
            throw this.raise(te.DestructureNamedImport, this.state.startLoc);
          if (this.expect(12), this.eat(8)) break;
        }
        let r = this.startNode(), i = this.match(134), a = this.isContextual(130);
        r.imported = this.parseModuleExportName();
        let o = this.parseImportSpecifier(r, i, e.importKind === "type" || e.importKind === "typeof", a, void 0);
        e.specifiers.push(o);
      }
    }
    parseImportSpecifier(e, s, r, i, a) {
      if (this.eatContextual(93))
        e.local = this.parseIdentifier();
      else {
        let {
          imported: o
        } = e;
        if (s)
          throw this.raise(te.ImportBindingIsString, e, {
            importName: o.value
          });
        this.checkReservedWord(o.name, e.loc.start, !0, !0), e.local || (e.local = Yu(o));
      }
      return this.finishImportSpecifier(e, "ImportSpecifier", a);
    }
    isThisParam(e) {
      return e.type === "Identifier" && e.name === "this";
    }
  }, YA = class extends N3 {
    static {
      n(this, "Parser");
    }
    constructor(e, s, r) {
      e = I3t(e), super(e, s), this.options = e, this.initializeScopes(), this.plugins = r, this.filename = e.sourceFilename, this.startIndex =
      e.startIndex;
      let i = 0;
      e.allowAwaitOutsideFunction && (i |= 1), e.allowReturnOutsideFunction && (i |= 2), e.allowImportExportEverywhere && (i |= 8), e.allowSuperOutsideMethod &&
      (i |= 16), e.allowUndeclaredExports && (i |= 32), e.allowNewTargetOutsideFunction && (i |= 4), e.ranges && (i |= 64), e.tokens && (i |=
      128), e.createImportExpressions && (i |= 256), e.createParenthesizedExpressions && (i |= 512), e.errorRecovery && (i |= 1024), e.attachComment &&
      (i |= 2048), e.annexB && (i |= 4096), this.optionFlags = i;
    }
    getScopeHandler() {
      return rT;
    }
    parse() {
      this.enterInitialScopes();
      let e = this.startNode(), s = this.startNode();
      return this.nextToken(), e.errors = null, this.parseTopLevel(e, s), e.errors = this.state.errors, e.comments.length = this.state.commentsLen,
      e;
    }
  };
  function _4t(t, e) {
    var s;
    if (((s = e) == null ? void 0 : s.sourceType) === "unambiguous") {
      e = Object.assign({}, e);
      try {
        e.sourceType = "module";
        let r = eT(e, t), i = r.parse();
        if (r.sawUnambiguousESM)
          return i;
        if (r.ambiguousScriptDifferentAst)
          try {
            return e.sourceType = "script", eT(e, t).parse();
          } catch {
          }
        else
          i.program.sourceType = "script";
        return i;
      } catch (r) {
        try {
          return e.sourceType = "script", eT(e, t).parse();
        } catch {
        }
        throw r;
      }
    } else
      return eT(e, t).parse();
  }
  n(_4t, "parse");
  function L4t(t, e) {
    let s = eT(e, t);
    return s.options.strictMode && (s.state.strict = !0), s.getExpression();
  }
  n(L4t, "parseExpression");
  function B4t(t) {
    let e = {};
    for (let s of Object.keys(t))
      e[s] = Wu(t[s]);
    return e;
  }
  n(B4t, "generateExportedTokenTypes");
  var M4t = B4t(O3t);
  function eT(t, e) {
    let s = YA, r = /* @__PURE__ */ new Map();
    if (t != null && t.plugins) {
      for (let i of t.plugins) {
        let a, o;
        typeof i == "string" ? a = i : [a, o] = i, r.has(a) || r.set(a, o || {});
      }
      I4t(r), s = F4t(r);
    }
    return new s(t, e, r);
  }
  n(eT, "getParser");
  var Toe = /* @__PURE__ */ new Map();
  function F4t(t) {
    let e = [];
    for (let i of N4t)
      t.has(i) && e.push(i);
    let s = e.join("|"), r = Toe.get(s);
    if (!r) {
      r = YA;
      for (let i of e)
        r = _oe[i](r);
      Toe.set(s, r);
    }
    return r;
  }
  n(F4t, "getParserClass");
  nT.parse = _4t;
  nT.parseExpression = L4t;
  nT.tokTypes = M4t;
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/replacement.js
var GF = g((Ip) => {
  "use strict";
  Object.defineProperty(Ip, "__esModule", {
    value: !0
  });
  Ip._replaceWith = Koe;
  Ip.replaceExpressionWithStatements = pjt;
  Ip.replaceInline = hjt;
  Ip.replaceWith = cjt;
  Ip.replaceWithMultiple = ljt;
  Ip.replaceWithSourceString = ujt;
  var j4t = Hl(), U3 = Bo(), R4t = Ap(), Roe = ff(), K3 = FA(), q4t = Loe(), U4t = fe(), $m = xl(), {
    FUNCTION_TYPES: Boe,
    arrowFunctionExpression: K4t,
    assignmentExpression: qoe,
    awaitExpression: V4t,
    blockStatement: W4t,
    buildUndefinedNode: q3,
    callExpression: $4t,
    cloneNode: V3,
    conditionalExpression: H4t,
    expressionStatement: J4t,
    getBindingIdentifiers: Y4t,
    identifier: X4t,
    inheritLeadingComments: z4t,
    inheritTrailingComments: G4t,
    inheritsComments: Q4t,
    isBlockStatement: Z4t,
    isEmptyStatement: Moe,
    isExpression: Uoe,
    isExpressionStatement: ejt,
    isIfStatement: tjt,
    isProgram: sjt,
    isStatement: rjt,
    isVariableDeclaration: ijt,
    removeComments: njt,
    returnStatement: Foe,
    sequenceExpression: ajt,
    validate: joe,
    yieldExpression: ojt
  } = U4t;
  function ljt(t) {
    var e;
    $m.resync.call(this), t = K3._verifyNodeList.call(this, t), z4t(t[0], this.node), G4t(t[t.length - 1], this.node), (e = (0, Roe.getCachedPaths)(
    this.hub, this.parent)) == null || e.delete(this.node), this.node = this.container[this.key] = null;
    let s = this.insertAfter(t);
    return this.node ? this.requeue() : this.remove(), s;
  }
  n(ljt, "replaceWithMultiple");
  function ujt(t) {
    $m.resync.call(this);
    let e;
    try {
      t = `(${t})`, e = (0, q4t.parse)(t);
    } catch (r) {
      let i = r.loc;
      throw i && (r.message += ` - make sure this is an expression.
` + (0, j4t.codeFrameColumns)(t, {
        start: {
          line: i.line,
          column: i.column + 1
        }
      }), r.code = "BABEL_REPLACE_SOURCE_ERROR"), r;
    }
    let s = e.program.body[0].expression;
    return U3.default.removeProperties(s), this.replaceWith(s);
  }
  n(ujt, "replaceWithSourceString");
  function cjt(t) {
    if ($m.resync.call(this), this.removed)
      throw new Error("You can't replace this node, we've already removed it");
    let e = t instanceof R4t.default ? t.node : t;
    if (!e)
      throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");
    if (this.node === e)
      return [this];
    if (this.isProgram() && !sjt(e))
      throw new Error("You can only replace a Program root node with another Program node");
    if (Array.isArray(e))
      throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");
    if (typeof e == "string")
      throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");
    let s = "";
    if (this.isNodeType("Statement") && Uoe(e) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(
    e) && !this.parentPath.isExportDefaultDeclaration() && (e = J4t(e), s = "expression"), this.isNodeType("Expression") && rjt(e) && !this.
    canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(e))
      return this.replaceExpressionWithStatements([e]);
    let r = this.node;
    return r && (Q4t(e, r), njt(r)), Koe.call(this, e), this.type = e.type, $m.setScope.call(this), this.requeue(), [s ? this.get(s) : this];
  }
  n(cjt, "replaceWith");
  function Koe(t) {
    var e;
    if (!this.container)
      throw new ReferenceError("Container is falsy");
    this.inList ? joe(this.parent, this.key, [t]) : joe(this.parent, this.key, t), this.debug(`Replace with ${t?.type}`), (e = (0, Roe.getCachedPaths)(
    this.hub, this.parent)) == null || e.set(t, this).delete(this.node), this.node = this.container[this.key] = t;
  }
  n(Koe, "_replaceWith");
  function pjt(t) {
    $m.resync.call(this);
    let e = [], s = XA(t, e);
    if (s) {
      for (let f of e) this.scope.push({
        id: f
      });
      return this.replaceWith(s)[0].get("expressions");
    }
    let r = this.getFunctionParent(), i = r?.node.async, a = r?.node.generator, o = K4t([], W4t(t));
    this.replaceWith($4t(o, []));
    let l = this.get("callee");
    l.get("body").scope.hoistVariables((f) => this.scope.push({
      id: f
    }));
    let u = l.getCompletionRecords();
    for (let f of u) {
      if (!f.isExpressionStatement()) continue;
      let d = f.findParent((m) => m.isLoop());
      if (d) {
        let m = d.getData("expressionReplacementReturnUid");
        m ? m = X4t(m.name) : (m = l.scope.generateDeclaredUidIdentifier("ret"), l.get("body").pushContainer("body", Foe(V3(m))), d.setData(
        "expressionReplacementReturnUid", m)), f.get("expression").replaceWith(qoe("=", V3(m), f.node.expression));
      } else
        f.replaceWith(Foe(f.node.expression));
    }
    l.arrowFunctionToExpression();
    let c = l, p = i && U3.default.hasType(this.get("callee.body").node, "AwaitExpression", Boe), h = a && U3.default.hasType(this.get("call\
ee.body").node, "YieldExpression", Boe);
    return p && (c.set("async", !0), h || this.replaceWith(V4t(this.node))), h && (c.set("generator", !0), this.replaceWith(ojt(this.node, !0))),
    c.get("body.body");
  }
  n(pjt, "replaceExpressionWithStatements");
  function XA(t, e) {
    let s = [], r = !0;
    for (let i of t)
      if (Moe(i) || (r = !1), Uoe(i))
        s.push(i);
      else if (ejt(i))
        s.push(i.expression);
      else if (ijt(i)) {
        if (i.kind !== "var") return;
        for (let a of i.declarations) {
          let o = Y4t(a);
          for (let l of Object.keys(o))
            e.push(V3(o[l]));
          a.init && s.push(qoe("=", a.id, a.init));
        }
        r = !0;
      } else if (tjt(i)) {
        let a = i.consequent ? XA([i.consequent], e) : q3(), o = i.alternate ? XA([i.alternate], e) : q3();
        if (!a || !o) return;
        s.push(H4t(i.test, a, o));
      } else if (Z4t(i)) {
        let a = XA(i.body, e);
        if (!a) return;
        s.push(a);
      } else if (Moe(i))
        t.indexOf(i) === 0 && (r = !0);
      else
        return;
    return r && s.push(q3()), s.length === 1 ? s[0] : ajt(s);
  }
  n(XA, "gatherSequenceExpressions");
  function hjt(t) {
    if ($m.resync.call(this), Array.isArray(t))
      if (Array.isArray(this.container)) {
        t = K3._verifyNodeList.call(this, t);
        let e = K3._containerInsertAfter.call(this, t);
        return this.remove(), e;
      } else
        return this.replaceWithMultiple(t);
    else
      return this.replaceWith(t);
  }
  n(hjt, "replaceInline");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/evaluation.js
var Hoe = g((zA) => {
  "use strict";
  Object.defineProperty(zA, "__esModule", {
    value: !0
  });
  zA.evaluate = xjt;
  zA.evaluateTruthy = Tjt;
  var fjt = ["Number", "String", "Math"], djt = ["isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeUR\
I", "encodeURIComponent", null, null], mjt = ["random"];
  function Voe(t) {
    return fjt.includes(t);
  }
  n(Voe, "isValidObjectCallee");
  function yjt(t) {
    return djt.includes(t);
  }
  n(yjt, "isValidIdentifierCallee");
  function gjt(t) {
    return mjt.includes(t);
  }
  n(gjt, "isInvalidMethod");
  function Tjt() {
    let t = this.evaluate();
    if (t.confident) return !!t.value;
  }
  n(Tjt, "evaluateTruthy");
  function Xu(t, e) {
    e.confident && (e.deoptPath = t, e.confident = !1);
  }
  n(Xu, "deopt");
  var Woe = /* @__PURE__ */ new Map([["undefined", void 0], ["Infinity", 1 / 0], ["NaN", NaN]]);
  function jn(t, e) {
    let {
      node: s
    } = t, {
      seen: r
    } = e;
    if (r.has(s)) {
      let i = r.get(s);
      if (i.resolved)
        return i.value;
      Xu(t, e);
      return;
    } else {
      let i = {
        resolved: !1
      };
      r.set(s, i);
      let a = bjt(t, e);
      return e.confident && (i.resolved = !0, i.value = a), a;
    }
  }
  n(jn, "evaluateCached");
  function bjt(t, e) {
    if (e.confident) {
      if (t.isSequenceExpression()) {
        let s = t.get("expressions");
        return jn(s[s.length - 1], e);
      }
      if (t.isStringLiteral() || t.isNumericLiteral() || t.isBooleanLiteral())
        return t.node.value;
      if (t.isNullLiteral())
        return null;
      if (t.isTemplateLiteral())
        return $oe(t, t.node.quasis, e);
      if (t.isTaggedTemplateExpression() && t.get("tag").isMemberExpression()) {
        let s = t.get("tag.object"), {
          node: {
            name: r
          }
        } = s, i = t.get("tag.property");
        if (s.isIdentifier() && r === "String" && !t.scope.getBinding(r) && i.isIdentifier() && i.node.name === "raw")
          return $oe(t, t.node.quasi.quasis, e, !0);
      }
      if (t.isConditionalExpression()) {
        let s = jn(t.get("test"), e);
        return e.confident ? jn(s ? t.get("consequent") : t.get("alternate"), e) : void 0;
      }
      if (t.isExpressionWrapper())
        return jn(t.get("expression"), e);
      if (t.isMemberExpression() && !t.parentPath.isCallExpression({
        callee: t.node
      })) {
        let s = t.get("property"), r = t.get("object");
        if (r.isLiteral()) {
          let i = r.node.value, a = typeof i, o = null;
          if (t.node.computed) {
            if (o = jn(s, e), !e.confident) return;
          } else s.isIdentifier() && (o = s.node.name);
          if ((a === "number" || a === "string") && o != null && (typeof o == "number" || typeof o == "string"))
            return i[o];
        }
      }
      if (t.isReferencedIdentifier()) {
        let s = t.scope.getBinding(t.node.name);
        if (s) {
          if (s.constantViolations.length > 0 || t.node.start < s.path.node.end) {
            Xu(s.path, e);
            return;
          }
          if (s.hasValue)
            return s.value;
        }
        let r = t.node.name;
        if (Woe.has(r)) {
          if (!s)
            return Woe.get(r);
          Xu(s.path, e);
          return;
        }
        let i = t.resolve();
        if (i === t) {
          Xu(t, e);
          return;
        } else
          return jn(i, e);
      }
      if (t.isUnaryExpression({
        prefix: !0
      })) {
        if (t.node.operator === "void")
          return;
        let s = t.get("argument");
        if (t.node.operator === "typeof" && (s.isFunction() || s.isClass()))
          return "function";
        let r = jn(s, e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "!":
            return !r;
          case "+":
            return +r;
          case "-":
            return -r;
          case "~":
            return ~r;
          case "typeof":
            return typeof r;
        }
      }
      if (t.isArrayExpression()) {
        let s = [], r = t.get("elements");
        for (let i of r) {
          let a = i.evaluate();
          if (a.confident)
            s.push(a.value);
          else {
            Xu(a.deopt, e);
            return;
          }
        }
        return s;
      }
      if (t.isObjectExpression()) {
        let s = {}, r = t.get("properties");
        for (let i of r) {
          if (i.isObjectMethod() || i.isSpreadElement()) {
            Xu(i, e);
            return;
          }
          let a = i.get("key"), o;
          if (i.node.computed) {
            if (o = a.evaluate(), !o.confident) {
              Xu(o.deopt, e);
              return;
            }
            o = o.value;
          } else a.isIdentifier() ? o = a.node.name : o = a.node.value;
          let u = i.get("value").evaluate();
          if (!u.confident) {
            Xu(u.deopt, e);
            return;
          }
          u = u.value, s[o] = u;
        }
        return s;
      }
      if (t.isLogicalExpression()) {
        let s = e.confident, r = jn(t.get("left"), e), i = e.confident;
        e.confident = s;
        let a = jn(t.get("right"), e), o = e.confident;
        switch (t.node.operator) {
          case "||":
            return e.confident = i && (!!r || o), e.confident ? r || a : void 0;
          case "&&":
            return e.confident = i && (!r || o), e.confident ? r && a : void 0;
          case "??":
            return e.confident = i && (r != null || o), e.confident ? r ?? a : void 0;
        }
      }
      if (t.isBinaryExpression()) {
        let s = jn(t.get("left"), e);
        if (!e.confident) return;
        let r = jn(t.get("right"), e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "-":
            return s - r;
          case "+":
            return s + r;
          case "/":
            return s / r;
          case "*":
            return s * r;
          case "%":
            return s % r;
          case "**":
            return Math.pow(s, r);
          case "<":
            return s < r;
          case ">":
            return s > r;
          case "<=":
            return s <= r;
          case ">=":
            return s >= r;
          case "==":
            return s == r;
          case "!=":
            return s != r;
          case "===":
            return s === r;
          case "!==":
            return s !== r;
          case "|":
            return s | r;
          case "&":
            return s & r;
          case "^":
            return s ^ r;
          case "<<":
            return s << r;
          case ">>":
            return s >> r;
          case ">>>":
            return s >>> r;
        }
      }
      if (t.isCallExpression()) {
        let s = t.get("callee"), r, i;
        if (s.isIdentifier() && !t.scope.getBinding(s.node.name) && (Voe(s.node.name) || yjt(s.node.name)) && (i = global[s.node.name]), s.isMemberExpression()) {
          let a = s.get("object"), o = s.get("property");
          if (a.isIdentifier() && o.isIdentifier() && Voe(a.node.name) && !gjt(o.node.name)) {
            r = global[a.node.name];
            let l = o.node.name;
            hasOwnProperty.call(r, l) && (i = r[l]);
          }
          if (a.isLiteral() && o.isIdentifier()) {
            let l = typeof a.node.value;
            (l === "string" || l === "number") && (r = a.node.value, i = r[o.node.name]);
          }
        }
        if (i) {
          let a = t.get("arguments").map((o) => jn(o, e));
          return e.confident ? i.apply(r, a) : void 0;
        }
      }
      Xu(t, e);
    }
  }
  n(bjt, "_evaluate");
  function $oe(t, e, s, r = !1) {
    let i = "", a = 0, o = t.isTemplateLiteral() ? t.get("expressions") : t.get("quasi.expressions");
    for (let l of e) {
      if (!s.confident) break;
      i += r ? l.value.raw : l.value.cooked;
      let u = o[a++];
      u && (i += String(jn(u, s)));
    }
    if (s.confident)
      return i;
  }
  n($oe, "evaluateQuasis");
  function xjt() {
    let t = {
      confident: !0,
      deoptPath: null,
      seen: /* @__PURE__ */ new Map()
    }, e = jn(this, t);
    return t.confident || (e = void 0), {
      confident: t.confident,
      deopt: t.deoptPath,
      value: e
    };
  }
  n(xjt, "evaluate");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/conversion.js
var ele = g((zu) => {
  "use strict";
  Object.defineProperty(zu, "__esModule", {
    value: !0
  });
  zu.arrowFunctionToExpression = zjt;
  zu.ensureBlock = Jjt;
  zu.ensureFunctionName = l8t;
  zu.splitExportDeclaration = a8t;
  zu.toComputedKey = Hjt;
  zu.unwrapFunctionEnvironment = Yjt;
  var Sjt = fe(), Pjt = Jl(), H3 = H0(), Ejt = xl(), {
    arrowFunctionExpression: J3,
    assignmentExpression: Pf,
    binaryExpression: W3,
    blockStatement: Ajt,
    callExpression: Hm,
    conditionalExpression: vjt,
    expressionStatement: Xoe,
    identifier: gr,
    isIdentifier: Cjt,
    jsxIdentifier: wjt,
    logicalExpression: Ijt,
    LOGICAL_OPERATORS: Njt,
    memberExpression: Fo,
    metaProperty: kjt,
    numericLiteral: Djt,
    objectExpression: Ojt,
    restElement: _jt,
    returnStatement: Ljt,
    sequenceExpression: Bjt,
    spreadElement: Mjt,
    stringLiteral: zoe,
    super: $3,
    thisExpression: aT,
    toExpression: Goe,
    unaryExpression: Fjt,
    toBindingIdentifierName: jjt,
    isFunction: Rjt,
    isAssignmentPattern: qjt,
    isRestElement: Ujt,
    getFunctionName: Kjt,
    cloneNode: Ef,
    variableDeclaration: Vjt,
    variableDeclarator: Wjt,
    exportNamedDeclaration: Joe,
    exportSpecifier: Yoe,
    inherits: $jt
  } = Sjt;
  function Hjt() {
    let t;
    if (this.isMemberExpression())
      t = this.node.property;
    else if (this.isProperty() || this.isMethod())
      t = this.node.key;
    else
      throw new ReferenceError("todo");
    return this.node.computed || Cjt(t) && (t = zoe(t.name)), t;
  }
  n(Hjt, "toComputedKey");
  function Jjt() {
    let t = this.get("body"), e = t.node;
    if (Array.isArray(t))
      throw new Error("Can't convert array path to a block statement");
    if (!e)
      throw new Error("Can't convert node without a body");
    if (t.isBlockStatement())
      return e;
    let s = [], r = "body", i, a;
    t.isStatement() ? (a = "body", i = 0, s.push(t.node)) : (r += ".body.0", this.isFunction() ? (i = "argument", s.push(Ljt(t.node))) : (i =
    "expression", s.push(Xoe(t.node)))), this.node.body = Ajt(s);
    let o = this.get(r);
    return Ejt.setup.call(t, o, a ? o.node[a] : o.node, a, i), this.node;
  }
  n(Jjt, "ensureBlock");
  zu.arrowFunctionToShadowed = function() {
    this.isArrowFunctionExpression() && this.arrowFunctionToExpression();
  };
  function Yjt() {
    if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration())
      throw this.buildCodeFrameError("Can only unwrap the environment of a function.");
    Qoe(this);
  }
  n(Yjt, "unwrapFunctionEnvironment");
  function Xjt(t, e) {
    t.node.type = e;
  }
  n(Xjt, "setType");
  function zjt({
    allowInsertArrow: t = !0,
    allowInsertArrowWithRest: e = t,
    noNewArrows: s = !((r) => (r = arguments[0]) == null ? void 0 : r.specCompliant)()
  } = {}) {
    if (!this.isArrowFunctionExpression())
      throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");
    let r = this;
    if (!s) {
      var i;
      r = (i = r.ensureFunctionName(!1)) != null ? i : r;
    }
    let {
      thisBinding: a,
      fnPath: o
    } = Qoe(r, s, t, e);
    if (o.ensureBlock(), Xjt(o, "FunctionExpression"), !s) {
      let l = a ? null : o.scope.generateUidIdentifier("arrowCheckId");
      return l && o.parentPath.scope.push({
        id: l,
        init: Ojt([])
      }), o.get("body").unshiftContainer("body", Xoe(Hm(this.hub.addHelper("newArrowCheck"), [aT(), gr(l ? l.name : a)]))), o.replaceWith(Hm(
      Fo(o.node, gr("bind")), [l ? gr(l.name) : aT()])), o.get("callee.object");
    }
    return o;
  }
  n(zjt, "arrowFunctionToExpression");
  var Gjt = (0, H3.environmentVisitor)({
    CallExpression(t, {
      allSuperCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    }
  });
  function Qoe(t, e = !0, s = !0, r = !0) {
    let i, a = t.findParent((d) => {
      if (d.isArrowFunctionExpression()) {
        var m;
        return (m = i) != null || (i = d), !1;
      }
      return d.isFunction() || d.isProgram() || d.isClassProperty({
        static: !1
      }) || d.isClassPrivateProperty({
        static: !1
      });
    }), o = a.isClassMethod({
      kind: "constructor"
    });
    if (a.isClassProperty() || a.isClassPrivateProperty())
      if (i)
        a = i;
      else if (s)
        t.replaceWith(Hm(J3([], Goe(t.node)), [])), a = t.get("callee"), t = a.get("body");
      else
        throw t.buildCodeFrameError("Unable to transform arrow inside class property");
    let {
      thisPaths: l,
      argumentsPaths: u,
      newTargetPaths: c,
      superProps: p,
      superCalls: h
    } = n8t(t);
    if (o && h.length > 0) {
      if (!s)
        throw h[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an a\
rrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      if (!r)
        throw h[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\
.");
      let d = [];
      a.traverse(Gjt, {
        allSuperCalls: d
      });
      let m = s8t(a);
      d.forEach((y) => {
        let T = gr(m);
        T.loc = y.node.callee.loc, y.get("callee").replaceWith(T);
      });
    }
    if (u.length > 0) {
      let d = oT(a, "arguments", () => {
        let m = /* @__PURE__ */ n(() => gr("arguments"), "args");
        return a.scope.path.isProgram() ? vjt(W3("===", Fjt("typeof", m()), zoe("undefined")), a.scope.buildUndefinedNode(), m()) : m();
      });
      u.forEach((m) => {
        let y = gr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (c.length > 0) {
      let d = oT(a, "newtarget", () => kjt(gr("new"), gr("target")));
      c.forEach((m) => {
        let y = gr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (p.length > 0) {
      if (!s)
        throw p[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in a\
n arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      p.reduce((m, y) => m.concat(Zjt(y)), []).forEach((m) => {
        let y = m.node.computed ? "" : m.get("property").node.name, T = m.parentPath, b = T.isAssignmentExpression({
          left: m.node
        }), E = T.isCallExpression({
          callee: m.node
        }), V = T.isTaggedTemplateExpression({
          tag: m.node
        }), W = r8t(a, b, y), oe = [];
        if (m.node.computed && oe.push(m.get("property").node), b) {
          let ye = T.node.right;
          oe.push(ye);
        }
        let de = Hm(gr(W), oe);
        E ? (T.unshiftContainer("arguments", aT()), m.replaceWith(Fo(de, gr("call"))), l.push(T.get("arguments.0"))) : b ? T.replaceWith(de) :
        V ? (m.replaceWith(Hm(Fo(de, gr("bind"), !1), [aT()])), l.push(m.get("arguments.0"))) : m.replaceWith(de);
      });
    }
    let f;
    return (l.length > 0 || !e) && (f = t8t(a, o), (e || o && Zoe(a)) && (l.forEach((d) => {
      let m = d.isJSX() ? wjt(f) : gr(f);
      m.loc = d.node.loc, d.replaceWith(m);
    }), e || (f = null))), {
      thisBinding: f,
      fnPath: t
    };
  }
  n(Qoe, "hoistFunctionEnvironment");
  function Qjt(t) {
    return Njt.includes(t);
  }
  n(Qjt, "isLogicalOp");
  function Zjt(t) {
    if (t.parentPath.isAssignmentExpression() && t.parentPath.node.operator !== "=") {
      let s = t.parentPath, r = s.node.operator.slice(0, -1), i = s.node.right, a = Qjt(r);
      if (t.node.computed) {
        let o = t.scope.generateDeclaredUidIdentifier("tmp"), l = t.node.object, u = t.node.property;
        s.get("left").replaceWith(Fo(l, Pf("=", o, u), !0)), s.get("right").replaceWith(e(a ? "=" : r, Fo(l, gr(o.name), !0), i));
      } else {
        let o = t.node.object, l = t.node.property;
        s.get("left").replaceWith(Fo(o, l)), s.get("right").replaceWith(e(a ? "=" : r, Fo(o, gr(l.name)), i));
      }
      return a ? s.replaceWith(Ijt(r, s.node.left, s.node.right)) : s.node.operator = "=", [s.get("left"), s.get("right").get("left")];
    } else if (t.parentPath.isUpdateExpression()) {
      let s = t.parentPath, r = t.scope.generateDeclaredUidIdentifier("tmp"), i = t.node.computed ? t.scope.generateDeclaredUidIdentifier("p\
rop") : null, a = [Pf("=", r, Fo(t.node.object, i ? Pf("=", i, t.node.property) : t.node.property, t.node.computed)), Pf("=", Fo(t.node.object,
      i ? gr(i.name) : t.node.property, t.node.computed), W3(t.parentPath.node.operator[0], gr(r.name), Djt(1)))];
      t.parentPath.node.prefix || a.push(gr(r.name)), s.replaceWith(Bjt(a));
      let o = s.get("expressions.0.right"), l = s.get("expressions.1.left");
      return [o, l];
    }
    return [t];
    function e(s, r, i) {
      return s === "=" ? Pf("=", r, i) : W3(s, r, i);
    }
  }
  n(Zjt, "standardizeSuperProperty");
  function Zoe(t) {
    return t.isClassMethod() && !!t.parentPath.parentPath.node.superClass;
  }
  n(Zoe, "hasSuperClass");
  var e8t = (0, H3.environmentVisitor)({
    CallExpression(t, {
      supers: e,
      thisBinding: s
    }) {
      t.get("callee").isSuper() && (e.has(t.node) || (e.add(t.node), t.replaceWithMultiple([t.node, Pf("=", gr(s), gr("this"))])));
    }
  });
  function t8t(t, e) {
    return oT(t, "this", (s) => {
      if (!e || !Zoe(t)) return aT();
      t.traverse(e8t, {
        supers: /* @__PURE__ */ new WeakSet(),
        thisBinding: s
      });
    });
  }
  n(t8t, "getThisBinding");
  function s8t(t) {
    return oT(t, "supercall", () => {
      let e = t.scope.generateUidIdentifier("args");
      return J3([_jt(e)], Hm($3(), [Mjt(gr(e.name))]));
    });
  }
  n(s8t, "getSuperBinding");
  function r8t(t, e, s) {
    return oT(t, `superprop_${e ? "set" : "get"}:${s || ""}`, () => {
      let i = [], a;
      if (s)
        a = Fo($3(), gr(s));
      else {
        let o = t.scope.generateUidIdentifier("prop");
        i.unshift(o), a = Fo($3(), gr(o.name), !0);
      }
      if (e) {
        let o = t.scope.generateUidIdentifier("value");
        i.push(o), a = Pf("=", a, gr(o.name));
      }
      return J3(i, a);
    });
  }
  n(r8t, "getSuperPropBinding");
  function oT(t, e, s) {
    let r = "binding:" + e, i = t.getData(r);
    if (!i) {
      let a = t.scope.generateUidIdentifier(e);
      i = a.name, t.setData(r, i), t.scope.push({
        id: a,
        init: s(i)
      });
    }
    return i;
  }
  n(oT, "getBinding");
  var i8t = (0, H3.environmentVisitor)({
    ThisExpression(t, {
      thisPaths: e
    }) {
      e.push(t);
    },
    JSXIdentifier(t, {
      thisPaths: e
    }) {
      t.node.name === "this" && (!t.parentPath.isJSXMemberExpression({
        object: t.node
      }) && !t.parentPath.isJSXOpeningElement({
        name: t.node
      }) || e.push(t));
    },
    CallExpression(t, {
      superCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    },
    MemberExpression(t, {
      superProps: e
    }) {
      t.get("object").isSuper() && e.push(t);
    },
    Identifier(t, {
      argumentsPaths: e
    }) {
      if (!t.isReferencedIdentifier({
        name: "arguments"
      })) return;
      let s = t.scope;
      do {
        if (s.hasOwnBinding("arguments")) {
          s.rename("arguments");
          return;
        }
        if (s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
      } while (s = s.parent);
      e.push(t);
    },
    MetaProperty(t, {
      newTargetPaths: e
    }) {
      t.get("meta").isIdentifier({
        name: "new"
      }) && t.get("property").isIdentifier({
        name: "target"
      }) && e.push(t);
    }
  });
  function n8t(t) {
    let e = [], s = [], r = [], i = [], a = [];
    return t.traverse(i8t, {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    }), {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    };
  }
  n(n8t, "getScopeInformation");
  function a8t() {
    if (!this.isExportDeclaration() || this.isExportAllDeclaration())
      throw new Error("Only default and named export declarations can be split.");
    if (this.isExportNamedDeclaration() && this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let t = this.get("declaration");
    if (this.isExportDefaultDeclaration()) {
      let i = t.isFunctionDeclaration() || t.isClassDeclaration(), a = t.isFunctionExpression() || t.isClassExpression(), o = t.isScope() ? t.
      scope.parent : t.scope, l = t.node.id, u = !1;
      l ? a && o.hasBinding(l.name) && (u = !0, l = o.generateUidIdentifier(l.name)) : (u = !0, l = o.generateUidIdentifier("default"), (i ||
      a) && (t.node.id = Ef(l)));
      let c = i ? t.node : Vjt("var", [Wjt(Ef(l), t.node)]), p = Joe(null, [Yoe(Ef(l), gr("default"))]);
      return this.insertAfter(p), this.replaceWith(c), u && o.registerDeclaration(this), this;
    } else if (this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let e = t.getOuterBindingIdentifiers(), s = Object.keys(e).map((i) => Yoe(gr(i), gr(i))), r = Joe(null, s);
    return this.insertAfter(r), this.replaceWith(t.node), this;
  }
  n(a8t, "splitExportDeclaration");
  var o8t = {
    "ReferencedIdentifier|BindingIdentifier"(t, e) {
      t.node.name === e.name && (e.needsRename = !0, t.stop());
    },
    Scope(t, e) {
      t.scope.hasOwnBinding(e.name) && t.skip();
    }
  };
  function l8t(t) {
    if (this.node.id) return this;
    let e = Kjt(this.node, this.parent);
    if (e == null) return this;
    let {
      name: s
    } = e;
    if (!t && /[\uD800-\uDFFF]/.test(s) || s.startsWith("get ") || s.startsWith("set "))
      return null;
    s = jjt(s.replace(/[/ ]/g, "_"));
    let r = gr(s);
    $jt(r, e.originalNode);
    let i = {
      needsRename: !1,
      name: s
    }, {
      scope: a
    } = this, o = a.getOwnBinding(s);
    if (o ? o.kind === "param" && (i.needsRename = !0) : (a.parent.hasBinding(s) || a.hasGlobal(s)) && this.traverse(o8t, i), !i.needsRename)
      return this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (a.hasBinding(r.name) && !a.hasGlobal(r.name))
      return a.rename(r.name), this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (!Rjt(this.node)) return null;
    let l = a.generateUidIdentifier(r.name), u = [];
    for (let p = 0, h = u8t(this.node); p < h; p++)
      u.push(a.generateUidIdentifier("x"));
    let c = Pjt.default.expression.ast`
    (function (${l}) {
      function ${r}(${u}) {
        return ${Ef(l)}.apply(this, arguments);
      }

      ${Ef(r)}.toString = function () {
        return ${Ef(l)}.toString();
      }

      return ${Ef(r)};
    })(${Goe(this.node)})
  `;
    return this.replaceWith(c)[0].get("arguments.0");
  }
  n(l8t, "ensureFunctionName");
  function u8t(t) {
    let e = t.params.findIndex((s) => qjt(s) || Ujt(s));
    return e === -1 ? t.params.length : e;
  }
  n(u8t, "getFunctionArity");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/introspection.js
var ale = g((pi) => {
  "use strict";
  Object.defineProperty(pi, "__esModule", {
    value: !0
  });
  pi._guessExecutionStatusRelativeTo = k8t;
  pi._resolve = nle;
  pi.canHaveVariableDeclarationOrExpression = P8t;
  pi.canSwapBetweenExpressionAndStatement = E8t;
  pi.getSource = w8t;
  pi.isCompletionRecord = A8t;
  pi.isConstantExpression = L8t;
  pi.isInStrictMode = B8t;
  pi.isNodeType = S8t;
  pi.isStatementOrBlock = v8t;
  pi.isStatic = x8t;
  pi.matchesPattern = b8t;
  pi.referencesImport = C8t;
  pi.resolve = _8t;
  pi.willIMaybeExecuteBefore = I8t;
  var c8t = fe(), {
    STATEMENT_OR_BLOCK_KEYS: p8t,
    VISITOR_KEYS: h8t,
    isBlockStatement: ile,
    isExpression: f8t,
    isIdentifier: d8t,
    isLiteral: m8t,
    isStringLiteral: y8t,
    isType: g8t,
    matchesPattern: T8t
  } = c8t;
  function b8t(t, e) {
    return T8t(this.node, t, e);
  }
  n(b8t, "matchesPattern");
  pi.has = /* @__PURE__ */ n(function(e) {
    var s;
    let r = (s = this.node) == null ? void 0 : s[e];
    return r && Array.isArray(r) ? !!r.length : !!r;
  }, "has");
  function x8t() {
    return this.scope.isStatic(this.node);
  }
  n(x8t, "isStatic");
  pi.is = pi.has, pi.isnt = /* @__PURE__ */ n(function(e) {
    return !this.has(e);
  }, "isnt"), pi.equals = /* @__PURE__ */ n(function(e, s) {
    return this.node[e] === s;
  }, "equals");
  function S8t(t) {
    return g8t(this.type, t);
  }
  n(S8t, "isNodeType");
  function P8t() {
    return (this.key === "init" || this.key === "left") && this.parentPath.isFor();
  }
  n(P8t, "canHaveVariableDeclarationOrExpression");
  function E8t(t) {
    return this.key !== "body" || !this.parentPath.isArrowFunctionExpression() ? !1 : this.isExpression() ? ile(t) : this.isBlockStatement() ?
    f8t(t) : !1;
  }
  n(E8t, "canSwapBetweenExpressionAndStatement");
  function A8t(t) {
    let e = this, s = !0;
    do {
      let {
        type: r,
        container: i
      } = e;
      if (!s && (e.isFunction() || r === "StaticBlock"))
        return !!t;
      if (s = !1, Array.isArray(i) && e.key !== i.length - 1)
        return !1;
    } while ((e = e.parentPath) && !e.isProgram() && !e.isDoExpression());
    return !0;
  }
  n(A8t, "isCompletionRecord");
  function v8t() {
    return this.parentPath.isLabeledStatement() || ile(this.container) ? !1 : p8t.includes(this.key);
  }
  n(v8t, "isStatementOrBlock");
  function C8t(t, e) {
    if (!this.isReferencedIdentifier()) {
      if (this.isJSXMemberExpression() && this.node.property.name === e || (this.isMemberExpression() || this.isOptionalMemberExpression()) &&
      (this.node.computed ? y8t(this.node.property, {
        value: e
      }) : this.node.property.name === e)) {
        let a = this.get("object");
        return a.isReferencedIdentifier() && a.referencesImport(t, "*");
      }
      return !1;
    }
    let s = this.scope.getBinding(this.node.name);
    if (!s || s.kind !== "module") return !1;
    let r = s.path, i = r.parentPath;
    if (!i.isImportDeclaration()) return !1;
    if (i.node.source.value === t) {
      if (!e) return !0;
    } else
      return !1;
    return !!(r.isImportDefaultSpecifier() && e === "default" || r.isImportNamespaceSpecifier() && e === "*" || r.isImportSpecifier() && d8t(
    r.node.imported, {
      name: e
    }));
  }
  n(C8t, "referencesImport");
  function w8t() {
    let t = this.node;
    if (t.end) {
      let e = this.hub.getCode();
      if (e) return e.slice(t.start, t.end);
    }
    return "";
  }
  n(w8t, "getSource");
  function I8t(t) {
    return this._guessExecutionStatusRelativeTo(t) !== "after";
  }
  n(I8t, "willIMaybeExecuteBefore");
  function tle(t) {
    return t.isProgram() ? t : (t.parentPath.scope.getFunctionParent() || t.parentPath.scope.getProgramParent()).path;
  }
  n(tle, "getOuterFunction");
  function N8t(t, e) {
    switch (t) {
      case "LogicalExpression":
        return e === "right";
      case "ConditionalExpression":
      case "IfStatement":
        return e === "consequent" || e === "alternate";
      case "WhileStatement":
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForOfStatement":
        return e === "body";
      case "ForStatement":
        return e === "body" || e === "update";
      case "SwitchStatement":
        return e === "cases";
      case "TryStatement":
        return e === "handler";
      case "AssignmentPattern":
        return e === "right";
      case "OptionalMemberExpression":
        return e === "property";
      case "OptionalCallExpression":
        return e === "arguments";
      default:
        return !1;
    }
  }
  n(N8t, "isExecutionUncertain");
  function sle(t, e) {
    for (let s = 0; s < e; s++) {
      let r = t[s];
      if (N8t(r.parent.type, r.parentKey))
        return !0;
    }
    return !1;
  }
  n(sle, "isExecutionUncertainInList");
  var rle = Symbol();
  function k8t(t) {
    return Y3(this, t, /* @__PURE__ */ new Map());
  }
  n(k8t, "_guessExecutionStatusRelativeTo");
  function Y3(t, e, s) {
    let r = {
      this: tle(t),
      target: tle(e)
    };
    if (r.target.node !== r.this.node)
      return O8t(t, r.target, s);
    let i = {
      target: e.getAncestry(),
      this: t.getAncestry()
    };
    if (i.target.includes(t)) return "after";
    if (i.this.includes(e)) return "before";
    let a, o = {
      target: 0,
      this: 0
    };
    for (; !a && o.this < i.this.length; ) {
      let p = i.this[o.this];
      o.target = i.target.indexOf(p), o.target >= 0 ? a = p : o.this++;
    }
    if (!a)
      throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");
    if (sle(i.this, o.this - 1) || sle(i.target, o.target - 1))
      return "unknown";
    let l = {
      this: i.this[o.this - 1],
      target: i.target[o.target - 1]
    };
    if (l.target.listKey && l.this.listKey && l.target.container === l.this.container)
      return l.target.key > l.this.key ? "before" : "after";
    let u = h8t[a.type], c = {
      this: u.indexOf(l.this.parentKey),
      target: u.indexOf(l.target.parentKey)
    };
    return c.target > c.this ? "before" : "after";
  }
  n(Y3, "_guessExecutionStatusRelativeToCached");
  function D8t(t, e, s) {
    if (e.isFunctionDeclaration()) {
      if (e.parentPath.isExportDeclaration())
        return "unknown";
    } else return Y3(t, e, s) === "before" ? "before" : "unknown";
    let r = e.scope.getBinding(e.node.id.name);
    if (!r.references) return "before";
    let i = r.referencePaths, a;
    for (let o of i) {
      if (!!o.find((c) => c.node === e.node)) continue;
      if (o.key !== "callee" || !o.parentPath.isCallExpression())
        return "unknown";
      let u = Y3(t, o, s);
      if (a && a !== u)
        return "unknown";
      a = u;
    }
    return a;
  }
  n(D8t, "_guessExecutionStatusRelativeToDifferentFunctionsInternal");
  function O8t(t, e, s) {
    let r = s.get(t.node), i;
    if (!r)
      s.set(t.node, r = /* @__PURE__ */ new Map());
    else if (i = r.get(e.node))
      return i === rle ? "unknown" : i;
    r.set(e.node, rle);
    let a = D8t(t, e, s);
    return r.set(e.node, a), a;
  }
  n(O8t, "_guessExecutionStatusRelativeToDifferentFunctionsCached");
  function _8t(t, e) {
    return nle.call(this, t, e) || this;
  }
  n(_8t, "resolve");
  function nle(t, e) {
    var s;
    if (!((s = e) != null && s.includes(this)))
      if (e = e || [], e.push(this), this.isVariableDeclarator()) {
        if (this.get("id").isIdentifier())
          return this.get("init").resolve(t, e);
      } else if (this.isReferencedIdentifier()) {
        let r = this.scope.getBinding(this.node.name);
        if (!r || !r.constant || r.kind === "module") return;
        if (r.path !== this) {
          let i = r.path.resolve(t, e);
          return this.find((a) => a.node === i.node) ? void 0 : i;
        }
      } else {
        if (this.isTypeCastExpression())
          return this.get("expression").resolve(t, e);
        if (t && this.isMemberExpression()) {
          let r = this.toComputedKey();
          if (!m8t(r)) return;
          let i = r.value, a = this.get("object").resolve(t, e);
          if (a.isObjectExpression()) {
            let o = a.get("properties");
            for (let l of o) {
              if (!l.isProperty()) continue;
              let u = l.get("key"), c = l.isnt("computed") && u.isIdentifier({
                name: i
              });
              if (c = c || u.isLiteral({
                value: i
              }), c) return l.get("value").resolve(t, e);
            }
          } else if (a.isArrayExpression() && !isNaN(+i)) {
            let l = a.get("elements")[i];
            if (l) return l.resolve(t, e);
          }
        }
      }
  }
  n(nle, "_resolve");
  function L8t() {
    if (this.isIdentifier()) {
      let t = this.scope.getBinding(this.node.name);
      return t ? t.constant : !1;
    }
    if (this.isLiteral())
      return this.isRegExpLiteral() ? !1 : this.isTemplateLiteral() ? this.get("expressions").every((t) => t.isConstantExpression()) : !0;
    if (this.isUnaryExpression())
      return this.node.operator !== "void" ? !1 : this.get("argument").isConstantExpression();
    if (this.isBinaryExpression()) {
      let {
        operator: t
      } = this.node;
      return t !== "in" && t !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression();
    }
    return this.isMemberExpression() ? !this.node.computed && this.get("object").isIdentifier({
      name: "Symbol"
    }) && !this.scope.hasBinding("Symbol", {
      noGlobals: !0
    }) : this.isCallExpression() ? this.node.arguments.length === 1 && this.get("callee").matchesPattern("Symbol.for") && !this.scope.hasBinding(
    "Symbol", {
      noGlobals: !0
    }) && this.get("arguments")[0].isStringLiteral() : !1;
  }
  n(L8t, "isConstantExpression");
  function B8t() {
    return !!(this.isProgram() ? this : this.parentPath).find((s) => {
      if (s.isProgram({
        sourceType: "module"
      }) || s.isClass()) return !0;
      if (s.isArrowFunctionExpression() && !s.get("body").isBlockStatement())
        return !1;
      let r;
      if (s.isFunction())
        r = s.node.body;
      else if (s.isProgram())
        r = s.node;
      else
        return !1;
      for (let i of r.directives)
        if (i.value.value === "use strict")
          return !0;
    });
  }
  n(B8t, "isInStrictMode");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/family.js
var ple = g((Gi) => {
  "use strict";
  Object.defineProperty(Gi, "__esModule", {
    value: !0
  });
  Gi._getKey = ule;
  Gi._getPattern = cle;
  Gi.get = Q8t;
  Gi.getAllNextSiblings = z8t;
  Gi.getAllPrevSiblings = G8t;
  Gi.getAssignmentIdentifiers = Z8t;
  Gi.getBindingIdentifierPaths = s6t;
  Gi.getBindingIdentifiers = e6t;
  Gi.getCompletionRecords = H8t;
  Gi.getNextSibling = X8t;
  Gi.getOpposite = V8t;
  Gi.getOuterBindingIdentifierPaths = r6t;
  Gi.getOuterBindingIdentifiers = t6t;
  Gi.getPrevSibling = Y8t;
  Gi.getSibling = J8t;
  var z3 = Ap(), M8t = fe(), {
    getAssignmentIdentifiers: F8t,
    getBindingIdentifiers: lle,
    getOuterBindingIdentifiers: j8t,
    numericLiteral: R8t,
    unaryExpression: q8t
  } = M8t, G3 = 0, lT = 1;
  function U8t(t) {
    return {
      type: G3,
      path: t
    };
  }
  n(U8t, "NormalCompletion");
  function K8t(t) {
    return {
      type: lT,
      path: t
    };
  }
  n(K8t, "BreakCompletion");
  function V8t() {
    return this.key === "left" ? this.getSibling("right") : this.key === "right" ? this.getSibling("left") : null;
  }
  n(V8t, "getOpposite");
  function Jm(t, e, s) {
    return t && e.push(...Ym(t, s)), e;
  }
  n(Jm, "addCompletionRecords");
  function W8t(t, e, s) {
    let r = [];
    for (let i = 0; i < t.length; i++) {
      let a = t[i], o = Ym(a, s), l = [], u = [];
      for (let c of o)
        c.type === G3 && l.push(c), c.type === lT && u.push(c);
      l.length && (r = l), e.push(...u);
    }
    return e.push(...r), e;
  }
  n(W8t, "completionRecordForSwitch");
  function $8t(t) {
    t.forEach((e) => {
      e.type = lT;
    });
  }
  n($8t, "normalCompletionToBreak");
  function X3(t, e) {
    t.forEach((s) => {
      s.path.isBreakStatement({
        label: null
      }) && (e ? s.path.replaceWith(q8t("void", R8t(0))) : s.path.remove());
    });
  }
  n(X3, "replaceBreakStatementInBreakCompletion");
  function ole(t, e) {
    let s = [];
    if (e.canHaveBreak) {
      let r = [];
      for (let i = 0; i < t.length; i++) {
        let a = t[i], o = Object.assign({}, e, {
          inCaseClause: !1
        });
        a.isBlockStatement() && (e.inCaseClause || e.shouldPopulateBreak) ? o.shouldPopulateBreak = !0 : o.shouldPopulateBreak = !1;
        let l = Ym(a, o);
        if (l.length > 0 && l.every((u) => u.type === lT)) {
          r.length > 0 && l.every((u) => u.path.isBreakStatement({
            label: null
          })) ? ($8t(r), s.push(...r), r.some((u) => u.path.isDeclaration()) && (s.push(...l), X3(l, !0)), X3(l, !1)) : (s.push(...l), e.shouldPopulateBreak ||
          X3(l, !0));
          break;
        }
        if (i === t.length - 1)
          s.push(...l);
        else {
          r = [];
          for (let u = 0; u < l.length; u++) {
            let c = l[u];
            c.type === lT && s.push(c), c.type === G3 && r.push(c);
          }
        }
      }
    } else if (t.length)
      for (let r = t.length - 1; r >= 0; r--) {
        let i = Ym(t[r], e);
        if (i.length > 1 || i.length === 1 && !i[0].path.isVariableDeclaration()) {
          s.push(...i);
          break;
        }
      }
    return s;
  }
  n(ole, "getStatementListCompletion");
  function Ym(t, e) {
    let s = [];
    if (t.isIfStatement())
      s = Jm(t.get("consequent"), s, e), s = Jm(t.get("alternate"), s, e);
    else {
      if (t.isDoExpression() || t.isFor() || t.isWhile() || t.isLabeledStatement())
        return Jm(t.get("body"), s, e);
      if (t.isProgram() || t.isBlockStatement())
        return ole(t.get("body"), e);
      if (t.isFunction())
        return Ym(t.get("body"), e);
      if (t.isTryStatement())
        s = Jm(t.get("block"), s, e), s = Jm(t.get("handler"), s, e);
      else {
        if (t.isCatchClause())
          return Jm(t.get("body"), s, e);
        if (t.isSwitchStatement())
          return W8t(t.get("cases"), s, e);
        if (t.isSwitchCase())
          return ole(t.get("consequent"), {
            canHaveBreak: !0,
            shouldPopulateBreak: !1,
            inCaseClause: !0
          });
        t.isBreakStatement() ? s.push(K8t(t)) : s.push(U8t(t));
      }
    }
    return s;
  }
  n(Ym, "_getCompletionRecords");
  function H8t() {
    return Ym(this, {
      canHaveBreak: !1,
      shouldPopulateBreak: !1,
      inCaseClause: !1
    }).map((e) => e.path);
  }
  n(H8t, "getCompletionRecords");
  function J8t(t) {
    return z3.default.get({
      parentPath: this.parentPath,
      parent: this.parent,
      container: this.container,
      listKey: this.listKey,
      key: t
    }).setContext(this.context);
  }
  n(J8t, "getSibling");
  function Y8t() {
    return this.getSibling(this.key - 1);
  }
  n(Y8t, "getPrevSibling");
  function X8t() {
    return this.getSibling(this.key + 1);
  }
  n(X8t, "getNextSibling");
  function z8t() {
    let t = this.key, e = this.getSibling(++t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(++t);
    return s;
  }
  n(z8t, "getAllNextSiblings");
  function G8t() {
    let t = this.key, e = this.getSibling(--t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(--t);
    return s;
  }
  n(G8t, "getAllPrevSiblings");
  function Q8t(t, e = !0) {
    e === !0 && (e = this.context);
    let s = t.split(".");
    return s.length === 1 ? ule.call(this, t, e) : cle.call(this, s, e);
  }
  n(Q8t, "get");
  function ule(t, e) {
    let s = this.node, r = s[t];
    return Array.isArray(r) ? r.map((i, a) => z3.default.get({
      listKey: t,
      parentPath: this,
      parent: s,
      container: r,
      key: a
    }).setContext(e)) : z3.default.get({
      parentPath: this,
      parent: s,
      container: s,
      key: t
    }).setContext(e);
  }
  n(ule, "_getKey");
  function cle(t, e) {
    let s = this;
    for (let r of t)
      r === "." ? s = s.parentPath : Array.isArray(s) ? s = s[r] : s = s.get(r, e);
    return s;
  }
  n(cle, "_getPattern");
  function Z8t() {
    return F8t(this.node);
  }
  n(Z8t, "getAssignmentIdentifiers");
  function e6t(t) {
    return lle(this.node, t);
  }
  n(e6t, "getBindingIdentifiers");
  function t6t(t) {
    return j8t(this.node, t);
  }
  n(t6t, "getOuterBindingIdentifiers");
  function s6t(t = !1, e = !1) {
    let r = [this], i = /* @__PURE__ */ Object.create(null);
    for (; r.length; ) {
      let a = r.shift();
      if (!a || !a.node) continue;
      let o = lle.keys[a.node.type];
      if (a.isIdentifier()) {
        t ? (i[a.node.name] = i[a.node.name] || []).push(a) : i[a.node.name] = a;
        continue;
      }
      if (a.isExportDeclaration()) {
        let l = a.get("declaration");
        l.isDeclaration() && r.push(l);
        continue;
      }
      if (e) {
        if (a.isFunctionDeclaration()) {
          r.push(a.get("id"));
          continue;
        }
        if (a.isFunctionExpression())
          continue;
      }
      if (o)
        for (let l = 0; l < o.length; l++) {
          let u = o[l], c = a.get(u);
          Array.isArray(c) ? r.push(...c) : c.node && r.push(c);
        }
    }
    return i;
  }
  n(s6t, "getBindingIdentifierPaths");
  function r6t(t = !1) {
    return this.getBindingIdentifierPaths(t, !0);
  }
  n(r6t, "getOuterBindingIdentifierPaths");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/comments.js
var fle = g((uT) => {
  "use strict";
  Object.defineProperty(uT, "__esModule", {
    value: !0
  });
  uT.addComment = l6t;
  uT.addComments = u6t;
  uT.shareCommentsWithSiblings = o6t;
  var i6t = fe(), {
    addComment: n6t,
    addComments: a6t
  } = i6t;
  function o6t() {
    if (typeof this.key == "string") return;
    let t = this.node;
    if (!t) return;
    let e = t.trailingComments, s = t.leadingComments;
    if (!e && !s) return;
    let r = this.getSibling(this.key - 1), i = this.getSibling(this.key + 1), a = !!r.node, o = !!i.node;
    a && (s && r.addComments("trailing", hle(s, r.node.trailingComments)), e && !o && r.addComments("trailing", e)), o && (e && i.addComments(
    "leading", hle(e, i.node.leadingComments)), s && !a && i.addComments("leading", s));
  }
  n(o6t, "shareCommentsWithSiblings");
  function hle(t, e) {
    if (!(e != null && e.length)) return t;
    let s = new Set(e);
    return t.filter((r) => !s.has(r));
  }
  n(hle, "removeIfExisting");
  function l6t(t, e, s) {
    n6t(this.node, t, e, s);
  }
  n(l6t, "addComment");
  function u6t(t, e) {
    a6t(this.node, t, e);
  }
  n(u6t, "addComments");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/index.js
var Ap = g((vl) => {
  "use strict";
  Object.defineProperty(vl, "__esModule", {
    value: !0
  });
  vl.default = vl.SHOULD_STOP = vl.SHOULD_SKIP = vl.REMOVED = void 0;
  var c6t = oF(), p6t = go(), h6t = Bo(), f6t = yF(), yle = fe(), GA = yle, d6t = ff(), m6t = Pae(), El = Eae(), Xm = Vae(), zm = GF(), dle = Hoe(),
  Af = ele(), Ei = ale(), gle = xl(), hi = gle, Gm = MA(), Al = FA(), Rn = ple(), Q3 = fle(), y6t = uF(), {
    validate: g6t
  } = yle, mle = p6t("babel"), dzs = vl.REMOVED = 1, mzs = vl.SHOULD_STOP = 2, yzs = vl.SHOULD_SKIP = 4, Gu = vl.default = class Tle {
    static {
      n(this, "NodePath");
    }
    constructor(e, s) {
      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 = s, this.hub = e, this.data = null, this.
      context = null, this.scope = null;
    }
    get removed() {
      return (this._traverseFlags & 1) > 0;
    }
    set removed(e) {
      e ? this._traverseFlags |= 1 : this._traverseFlags &= -2;
    }
    get shouldStop() {
      return (this._traverseFlags & 2) > 0;
    }
    set shouldStop(e) {
      e ? this._traverseFlags |= 2 : this._traverseFlags &= -3;
    }
    get shouldSkip() {
      return (this._traverseFlags & 4) > 0;
    }
    set shouldSkip(e) {
      e ? this._traverseFlags |= 4 : this._traverseFlags &= -5;
    }
    static get({
      hub: e,
      parentPath: s,
      parent: r,
      container: i,
      listKey: a,
      key: o
    }) {
      if (!e && s && (e = s.hub), !r)
        throw new Error("To get a node path the parent needs to exist");
      let l = i[o], u = d6t.getOrCreateCachedPaths(e, r), c = u.get(l);
      return c || (c = new Tle(e, r), l && u.set(l, c)), gle.setup.call(c, s, i, a, o), c;
    }
    getScope(e) {
      return this.isScope() ? new f6t.default(this) : e;
    }
    setData(e, s) {
      return this.data == null && (this.data = /* @__PURE__ */ Object.create(null)), this.data[e] = s;
    }
    getData(e, s) {
      this.data == null && (this.data = /* @__PURE__ */ Object.create(null));
      let r = this.data[e];
      return r === void 0 && s !== void 0 && (r = this.data[e] = s), r;
    }
    hasNode() {
      return this.node != null;
    }
    buildCodeFrameError(e, s = SyntaxError) {
      return this.hub.buildError(this.node, e, s);
    }
    traverse(e, s) {
      (0, h6t.default)(this.node, e, this.scope, s, this);
    }
    set(e, s) {
      g6t(this.node, e, s), this.node[e] = s;
    }
    getPathLocation() {
      let e = [], s = this;
      do {
        let r = s.key;
        s.inList && (r = `${s.listKey}[${r}]`), e.unshift(r);
      } while (s = s.parentPath);
      return e.join(".");
    }
    debug(e) {
      mle.enabled && mle(`${this.getPathLocation()} ${this.type}: ${e}`);
    }
    toString() {
      return (0, m6t.default)(this.node).code;
    }
    get inList() {
      return !!this.listKey;
    }
    set inList(e) {
      e || (this.listKey = null);
    }
    get parentKey() {
      return this.listKey || this.key;
    }
  }, T6t = {
    findParent: El.findParent,
    find: El.find,
    getFunctionParent: El.getFunctionParent,
    getStatementParent: El.getStatementParent,
    getEarliestCommonAncestorFrom: El.getEarliestCommonAncestorFrom,
    getDeepestCommonAncestorFrom: El.getDeepestCommonAncestorFrom,
    getAncestry: El.getAncestry,
    isAncestor: El.isAncestor,
    isDescendant: El.isDescendant,
    inType: El.inType,
    getTypeAnnotation: Xm.getTypeAnnotation,
    isBaseType: Xm.isBaseType,
    couldBeBaseType: Xm.couldBeBaseType,
    baseTypeStrictlyMatches: Xm.baseTypeStrictlyMatches,
    isGenericType: Xm.isGenericType,
    replaceWithMultiple: zm.replaceWithMultiple,
    replaceWithSourceString: zm.replaceWithSourceString,
    replaceWith: zm.replaceWith,
    replaceExpressionWithStatements: zm.replaceExpressionWithStatements,
    replaceInline: zm.replaceInline,
    evaluateTruthy: dle.evaluateTruthy,
    evaluate: dle.evaluate,
    toComputedKey: Af.toComputedKey,
    ensureBlock: Af.ensureBlock,
    unwrapFunctionEnvironment: Af.unwrapFunctionEnvironment,
    arrowFunctionToExpression: Af.arrowFunctionToExpression,
    splitExportDeclaration: Af.splitExportDeclaration,
    ensureFunctionName: Af.ensureFunctionName,
    matchesPattern: Ei.matchesPattern,
    isStatic: Ei.isStatic,
    isNodeType: Ei.isNodeType,
    canHaveVariableDeclarationOrExpression: Ei.canHaveVariableDeclarationOrExpression,
    canSwapBetweenExpressionAndStatement: Ei.canSwapBetweenExpressionAndStatement,
    isCompletionRecord: Ei.isCompletionRecord,
    isStatementOrBlock: Ei.isStatementOrBlock,
    referencesImport: Ei.referencesImport,
    getSource: Ei.getSource,
    willIMaybeExecuteBefore: Ei.willIMaybeExecuteBefore,
    _guessExecutionStatusRelativeTo: Ei._guessExecutionStatusRelativeTo,
    resolve: Ei.resolve,
    isConstantExpression: Ei.isConstantExpression,
    isInStrictMode: Ei.isInStrictMode,
    isDenylisted: hi.isDenylisted,
    visit: hi.visit,
    skip: hi.skip,
    skipKey: hi.skipKey,
    stop: hi.stop,
    setContext: hi.setContext,
    requeue: hi.requeue,
    requeueComputedKeyAndDecorators: hi.requeueComputedKeyAndDecorators,
    remove: Gm.remove,
    insertBefore: Al.insertBefore,
    insertAfter: Al.insertAfter,
    unshiftContainer: Al.unshiftContainer,
    pushContainer: Al.pushContainer,
    getOpposite: Rn.getOpposite,
    getCompletionRecords: Rn.getCompletionRecords,
    getSibling: Rn.getSibling,
    getPrevSibling: Rn.getPrevSibling,
    getNextSibling: Rn.getNextSibling,
    getAllNextSiblings: Rn.getAllNextSiblings,
    getAllPrevSiblings: Rn.getAllPrevSiblings,
    get: Rn.get,
    getAssignmentIdentifiers: Rn.getAssignmentIdentifiers,
    getBindingIdentifiers: Rn.getBindingIdentifiers,
    getOuterBindingIdentifiers: Rn.getOuterBindingIdentifiers,
    getBindingIdentifierPaths: Rn.getBindingIdentifierPaths,
    getOuterBindingIdentifierPaths: Rn.getOuterBindingIdentifierPaths,
    shareCommentsWithSiblings: Q3.shareCommentsWithSiblings,
    addComment: Q3.addComment,
    addComments: Q3.addComments
  };
  Object.assign(Gu.prototype, T6t);
  Gu.prototype.arrowFunctionToShadowed = Af.arrowFunctionToShadowed, Object.assign(Gu.prototype, {
    has: Ei.has,
    is: Ei.is,
    isnt: Ei.isnt,
    equals: Ei.equals,
    hoist: Al.hoist,
    updateSiblingKeys: Al.updateSiblingKeys,
    call: hi.call,
    isBlacklisted: hi.isBlacklisted,
    setScope: hi.setScope,
    resync: hi.resync,
    popContext: hi.popContext,
    pushContext: hi.pushContext,
    setup: hi.setup,
    setKey: hi.setKey
  });
  Gu.prototype._guessExecutionStatusRelativeToDifferentFunctions = Ei._guessExecutionStatusRelativeTo, Gu.prototype._guessExecutionStatusRelativeToDifferentFunctions =
  Ei._guessExecutionStatusRelativeTo, Object.assign(Gu.prototype, {
    _getTypeAnnotation: Xm._getTypeAnnotation,
    _replaceWith: zm._replaceWith,
    _resolve: Ei._resolve,
    _call: hi._call,
    _resyncParent: hi._resyncParent,
    _resyncKey: hi._resyncKey,
    _resyncList: hi._resyncList,
    _resyncRemoved: hi._resyncRemoved,
    _getQueueContexts: hi._getQueueContexts,
    _removeFromScope: Gm._removeFromScope,
    _callRemovalHooks: Gm._callRemovalHooks,
    _remove: Gm._remove,
    _markRemoved: Gm._markRemoved,
    _assertUnremoved: Gm._assertUnremoved,
    _containerInsert: Al._containerInsert,
    _containerInsertBefore: Al._containerInsertBefore,
    _containerInsertAfter: Al._containerInsertAfter,
    _verifyNodeList: Al._verifyNodeList,
    _getKey: Rn._getKey,
    _getPattern: Rn._getPattern
  });
  for (let t of GA.TYPES) {
    let e = `is${t}`, s = GA[e];
    Gu.prototype[e] = function(r) {
      return s(this.node, r);
    }, Gu.prototype[`assert${t}`] = function(r) {
      if (!s(this.node, r))
        throw new TypeError(`Expected node path of type ${t}`);
    };
  }
  Object.assign(Gu.prototype, y6t);
  for (let t of Object.keys(c6t))
    t[0] !== "_" && (GA.TYPES.includes(t) || GA.TYPES.push(t));
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/context.js
var ble = g((QA) => {
  "use strict";
  Object.defineProperty(QA, "__esModule", {
    value: !0
  });
  QA.default = void 0;
  var b6t = Ap(), x6t = fe(), Z3 = xl(), {
    VISITOR_KEYS: S6t
  } = x6t, e4 = class {
    static {
      n(this, "TraversalContext");
    }
    constructor(e, s, r, i) {
      this.queue = null, this.priorityQueue = null, this.parentPath = i, this.scope = e, this.state = r, this.opts = s;
    }
    shouldVisit(e) {
      let s = this.opts;
      if (s.enter || s.exit || s[e.type]) return !0;
      let r = S6t[e.type];
      if (!(r != null && r.length)) return !1;
      for (let i of r)
        if (e[i])
          return !0;
      return !1;
    }
    create(e, s, r, i) {
      return b6t.default.get({
        parentPath: this.parentPath,
        parent: e,
        container: s,
        key: r,
        listKey: i
      });
    }
    maybeQueue(e, s) {
      this.queue && (s ? this.queue.push(e) : this.priorityQueue.push(e));
    }
    visitMultiple(e, s, r) {
      if (e.length === 0) return !1;
      let i = [];
      for (let a = 0; a < e.length; a++) {
        let o = e[a];
        o && this.shouldVisit(o) && i.push(this.create(s, e, a, r));
      }
      return this.visitQueue(i);
    }
    visitSingle(e, s) {
      return this.shouldVisit(e[s]) ? this.visitQueue([this.create(e, e, s)]) : !1;
    }
    visitQueue(e) {
      this.queue = e, this.priorityQueue = [];
      let s = /* @__PURE__ */ new WeakSet(), r = !1, i = 0;
      for (; i < e.length; ) {
        let a = e[i];
        if (i++, Z3.resync.call(a), (a.contexts.length === 0 || a.contexts[a.contexts.length - 1] !== this) && Z3.pushContext.call(a, this),
        a.key === null) continue;
        let {
          node: o
        } = a;
        if (!s.has(o)) {
          if (o && s.add(o), a.visit()) {
            r = !0;
            break;
          }
          if (this.priorityQueue.length && (r = this.visitQueue(this.priorityQueue), this.priorityQueue = [], this.queue = e, r))
            break;
        }
      }
      for (let a = 0; a < i; a++)
        Z3.popContext.call(e[a]);
      return this.queue = null, r;
    }
    visit(e, s) {
      let r = e[s];
      return r ? Array.isArray(r) ? this.visitMultiple(r, e, s) : this.visitSingle(e, s) : !1;
    }
  };
  QA.default = e4;
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/traverse-node.js
var fA = g((t4) => {
  "use strict";
  Object.defineProperty(t4, "__esModule", {
    value: !0
  });
  t4.traverseNode = v6t;
  var P6t = ble(), E6t = fe(), {
    VISITOR_KEYS: A6t
  } = E6t;
  function v6t(t, e, s, r, i, a, o) {
    let l = A6t[t.type];
    if (!l) return !1;
    let u = new P6t.default(s, e, r, i);
    if (o)
      return a != null && a[i.parentKey] ? !1 : u.visitQueue([i]);
    for (let c of l)
      if (!(a != null && a[c]) && u.visit(t, c))
        return !0;
    return !1;
  }
  n(v6t, "traverseNode");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/path/context.js
var xl = g((Vr) => {
  "use strict";
  Object.defineProperty(Vr, "__esModule", {
    value: !0
  });
  Vr._call = r4;
  Vr._getQueueContexts = U6t;
  Vr._resyncKey = vle;
  Vr._resyncList = Cle;
  Vr._resyncParent = Ale;
  Vr._resyncRemoved = B6t;
  Vr.call = s4;
  Vr.isDenylisted = Ple;
  Vr.popContext = M6t;
  Vr.pushContext = F6t;
  Vr.requeue = R6t;
  Vr.requeueComputedKeyAndDecorators = q6t;
  Vr.resync = L6t;
  Vr.setContext = _6t;
  Vr.setKey = ZA;
  Vr.setScope = Ele;
  Vr.setup = j6t;
  Vr.skip = k6t;
  Vr.skipKey = D6t;
  Vr.stop = O6t;
  Vr.visit = N6t;
  var C6t = fA(), xle = Ap(), w6t = MA(), I6t = fe();
  function s4(t) {
    let e = this.opts;
    if (this.debug(t), this.node && r4.call(this, e[t]))
      return !0;
    if (this.node) {
      var s;
      return r4.call(this, (s = e[this.node.type]) == null ? void 0 : s[t]);
    }
    return !1;
  }
  n(s4, "call");
  function r4(t) {
    if (!t) return !1;
    for (let e of t) {
      if (!e) continue;
      let s = this.node;
      if (!s) return !0;
      let r = e.call(this.state, this, this.state);
      if (r && typeof r == "object" && typeof r.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 suppo\
rt. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      if (r)
        throw new Error(`Unexpected return value from visitor method ${e}`);
      if (this.node !== s || this._traverseFlags > 0) return !0;
    }
    return !1;
  }
  n(r4, "_call");
  function Ple() {
    var t;
    let e = (t = this.opts.denylist) != null ? t : this.opts.blacklist;
    return e?.includes(this.node.type);
  }
  n(Ple, "isDenylisted");
  Vr.isBlacklisted = Ple;
  function Sle(t, e) {
    t.context !== e && (t.context = e, t.state = e.state, t.opts = e.opts);
  }
  n(Sle, "restoreContext");
  function N6t() {
    var t, e;
    if (!this.node || this.isDenylisted() || (t = (e = this.opts).shouldSkip) != null && t.call(e, this))
      return !1;
    let s = this.context;
    return this.shouldSkip || s4.call(this, "enter") ? (this.debug("Skip..."), this.shouldStop) : (Sle(this, s), this.debug("Recursing into.\
.."), this.shouldStop = (0, C6t.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys), Sle(this, s), s4.call(this,
    "exit"), this.shouldStop);
  }
  n(N6t, "visit");
  function k6t() {
    this.shouldSkip = !0;
  }
  n(k6t, "skip");
  function D6t(t) {
    this.skipKeys == null && (this.skipKeys = {}), this.skipKeys[t] = !0;
  }
  n(D6t, "skipKey");
  function O6t() {
    this._traverseFlags |= xle.SHOULD_SKIP | xle.SHOULD_STOP;
  }
  n(O6t, "stop");
  function Ele() {
    var t, e;
    if ((t = this.opts) != null && t.noScope) return;
    let s = this.parentPath;
    ((this.key === "key" || this.listKey === "decorators") && s.isMethod() || this.key === "discriminant" && s.isSwitchStatement()) && (s = s.
    parentPath);
    let r;
    for (; s && !r; ) {
      var i;
      if ((i = s.opts) != null && i.noScope) return;
      r = s.scope, s = s.parentPath;
    }
    this.scope = this.getScope(r), (e = this.scope) == null || e.init();
  }
  n(Ele, "setScope");
  function _6t(t) {
    return this.skipKeys != null && (this.skipKeys = {}), this._traverseFlags = 0, t && (this.context = t, this.state = t.state, this.opts =
    t.opts), Ele.call(this), this;
  }
  n(_6t, "setContext");
  function L6t() {
    this.removed || (Ale.call(this), Cle.call(this), vle.call(this));
  }
  n(L6t, "resync");
  function Ale() {
    this.parentPath && (this.parent = this.parentPath.node);
  }
  n(Ale, "_resyncParent");
  function vle() {
    if (this.container && this.node !== this.container[this.key]) {
      if (Array.isArray(this.container)) {
        for (let t = 0; t < this.container.length; t++)
          if (this.container[t] === this.node) {
            ZA.call(this, t);
            return;
          }
      } else
        for (let t of Object.keys(this.container))
          if (this.container[t] === this.node) {
            ZA.call(this, t);
            return;
          }
      this.key = null;
    }
  }
  n(vle, "_resyncKey");
  function Cle() {
    if (!this.parent || !this.inList) return;
    let t = this.parent[this.listKey];
    this.container !== t && (this.container = t || null);
  }
  n(Cle, "_resyncList");
  function B6t() {
    (this.key == null || !this.container || this.container[this.key] !== this.node) && w6t._markRemoved.call(this);
  }
  n(B6t, "_resyncRemoved");
  function M6t() {
    this.contexts.pop(), this.contexts.length > 0 ? this.setContext(this.contexts[this.contexts.length - 1]) : this.setContext(void 0);
  }
  n(M6t, "popContext");
  function F6t(t) {
    this.contexts.push(t), this.setContext(t);
  }
  n(F6t, "pushContext");
  function j6t(t, e, s, r) {
    this.listKey = s, this.container = e, this.parentPath = t || this.parentPath, ZA.call(this, r);
  }
  n(j6t, "setup");
  function ZA(t) {
    var e;
    this.key = t, this.node = this.container[this.key], this.type = (e = this.node) == null ? void 0 : e.type;
  }
  n(ZA, "setKey");
  function R6t(t = this) {
    if (t.removed) return;
    let e = this.contexts;
    for (let s of e)
      s.maybeQueue(t);
  }
  n(R6t, "requeue");
  function q6t() {
    let {
      context: t,
      node: e
    } = this;
    if (!I6t.isPrivate(e) && e.computed && t.maybeQueue(this.get("key")), e.decorators)
      for (let s of this.get("decorators"))
        t.maybeQueue(s);
  }
  n(q6t, "requeueComputedKeyAndDecorators");
  function U6t() {
    let t = this, e = this.contexts;
    for (; !e.length && (t = t.parentPath, !!t); )
      e = t.contexts;
    return e;
  }
  n(U6t, "_getQueueContexts");
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/hub.js
var wle = g((e1) => {
  "use strict";
  Object.defineProperty(e1, "__esModule", {
    value: !0
  });
  e1.default = void 0;
  var i4 = class {
    static {
      n(this, "Hub");
    }
    getCode() {
    }
    getScope() {
    }
    addHelper() {
      throw new Error("Helpers are not supported by the default hub.");
    }
    buildError(e, s, r = TypeError) {
      return new r(s);
    }
  };
  e1.default = i4;
});

// ../node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse/lib/index.js
var Bo = g((Qu) => {
  "use strict";
  Object.defineProperty(Qu, "__esModule", {
    value: !0
  });
  Object.defineProperty(Qu, "Hub", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return H6t.default;
    }, "get")
  });
  Object.defineProperty(Qu, "NodePath", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return W6t.default;
    }, "get")
  });
  Object.defineProperty(Qu, "Scope", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return $6t.default;
    }, "get")
  });
  Qu.visitors = Qu.default = void 0;
  xl();
  var cT = H0();
  Qu.visitors = cT;
  var K6t = fe(), V6t = ff(), Ile = fA(), W6t = Ap(), $6t = yF(), H6t = wle(), {
    VISITOR_KEYS: J6t,
    removeProperties: Y6t,
    traverseFast: Nle
  } = K6t;
  function Qa(t, e = {}, s, r, i, a) {
    if (t) {
      if (!e.noScope && !s && t.type !== "Program" && t.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 ${t.
        type} node without passing scope and parentPath.`);
      if (!i && a)
        throw new Error("visitSelf can only be used when providing a NodePath.");
      J6t[t.type] && (cT.explode(e), (0, Ile.traverseNode)(t, e, s, r, i, null, a));
    }
  }
  n(Qa, "traverse");
  var wzs = Qu.default = Qa;
  Qa.visitors = cT;
  Qa.verify = cT.verify;
  Qa.explode = cT.explode;
  Qa.cheap = function(t, e) {
    Nle(t, e);
  };
  Qa.node = function(t, e, s, r, i, a) {
    (0, Ile.traverseNode)(t, e, s, r, i, a);
  };
  Qa.clearNode = function(t, e) {
    Y6t(t, e);
  };
  Qa.removeProperties = function(t, e) {
    return Nle(t, Qa.clearNode, e), t;
  };
  function X6t(t, e) {
    t.node.type === e.type && (e.has = !0, t.stop());
  }
  n(X6t, "hasDenylistedType");
  Qa.hasType = function(t, e, s) {
    if (s != null && s.includes(t.type)) return !1;
    if (t.type === e) return !0;
    let r = {
      has: !1,
      type: e
    };
    return Qa(t, {
      noScope: !0,
      denylist: s,
      enter: X6t
    }, null, r), r.has;
  };
  Qa.cache = V6t;
});

// ../node_modules/@babel/helper-annotate-as-pure/lib/index.js
var kle = g((n4) => {
  "use strict";
  Object.defineProperty(n4, "__esModule", {
    value: !0
  });
  n4.default = eRt;
  var z6t = fe(), {
    addComment: G6t
  } = z6t, Q6t = "#__PURE__", Z6t = /* @__PURE__ */ n(({
    leadingComments: t
  }) => !!t && t.some((e) => /[@#]__PURE__/.test(e.value)), "isPureAnnotated");
  function eRt(t) {
    let e = t.node || t;
    Z6t(e) || G6t(e, "leading", Q6t);
  }
  n(eRt, "annotateAsPure");
});

// ../node_modules/@babel/helper-create-class-features-plugin/lib/typescript.js
var o4 = g((a4) => {
  "use strict";
  Object.defineProperty(a4, "__esModule", {
    value: !0
  });
  a4.assertFieldTransformed = tRt;
  function tRt(t) {
    if (t.node.declare)
      throw t.buildCodeFrameError(`TypeScript 'declare' fields must first be transformed by @babel/plugin-transform-typescript.
If you have already enabled that plugin (or '@babel/preset-typescript'), make sure that it runs before any plugin related to additional clas\
s features:
 - @babel/plugin-transform-class-properties
 - @babel/plugin-transform-private-methods
 - @babel/plugin-proposal-decorators`);
  }
  n(tRt, "assertFieldTransformed");
});

// ../node_modules/@babel/helper-create-class-features-plugin/lib/fields.js
var h4 = g((Np) => {
  "use strict";
  Object.defineProperty(Np, "__esModule", {
    value: !0
  });
  Np.buildCheckInRHS = r1;
  Np.buildFieldsInitNodes = vRt;
  Np.buildPrivateNamesMap = oRt;
  Np.buildPrivateNamesNodes = lRt;
  Np.privateNameVisitorFactory = p4;
  Np.transformPrivateNamesUsage = dRt;
  var ae = ai(), Mle = Bo(), sRt = cA(), rRt = sB(), Dle = iB(), iRt = kle(), nRt = aF(), aRt = o4();
  ln = /* @__PURE__ */ n((t) => t.availableHelper("classPrivateFieldGet2"), "newHelpers");
  var ln;
  function oRt(t, e, s, r) {
    let i = /* @__PURE__ */ new Map(), a;
    for (let l of s)
      if (l.isPrivate()) {
        let {
          name: u
        } = l.node.key.id, c = i.get(u);
        if (!c) {
          let p = !l.isProperty(), h = l.node.static, f = !1, d;
          if (!e && ln(r) && p && !h) {
            var o;
            f = !!a, (o = a) != null || (a = l.scope.generateUidIdentifier(`${t}_brand`)), d = a;
          } else
            d = l.scope.generateUidIdentifier(u);
          c = {
            id: d,
            static: h,
            method: p,
            initAdded: f
          }, i.set(u, c);
        }
        if (l.isClassPrivateMethod())
          if (l.node.kind === "get") {
            let {
              body: p
            } = l.node.body, h;
            p.length === 1 && ae.types.isReturnStatement(h = p[0]) && ae.types.isCallExpression(h = h.argument) && h.arguments.length === 1 &&
            ae.types.isThisExpression(h.arguments[0]) && ae.types.isIdentifier(h = h.callee) ? (c.getId = ae.types.cloneNode(h), c.getterDeclared =
            !0) : c.getId = l.scope.generateUidIdentifier(`get_${u}`);
          } else if (l.node.kind === "set") {
            let {
              params: p
            } = l.node, {
              body: h
            } = l.node.body, f;
            h.length === 1 && ae.types.isExpressionStatement(f = h[0]) && ae.types.isCallExpression(f = f.expression) && f.arguments.length ===
            2 && ae.types.isThisExpression(f.arguments[0]) && ae.types.isIdentifier(f.arguments[1], {
              name: p[0].name
            }) && ae.types.isIdentifier(f = f.callee) ? (c.setId = ae.types.cloneNode(f), c.setterDeclared = !0) : c.setId = l.scope.generateUidIdentifier(
            `set_${u}`);
          } else l.node.kind === "method" && (c.methodId = l.scope.generateUidIdentifier(u));
        i.set(u, c);
      }
    return i;
  }
  n(oRt, "buildPrivateNamesMap");
  function lRt(t, e, s, r) {
    let i = [], a = /* @__PURE__ */ new Set();
    for (let [o, l] of t) {
      let {
        static: u,
        method: c,
        getId: p,
        setId: h
      } = l, f = p || h, d = ae.types.cloneNode(l.id), m;
      if (e)
        m = ae.types.callExpression(r.addHelper("classPrivateFieldLooseKey"), [ae.types.stringLiteral(o)]);
      else if (s)
        m = ae.types.callExpression(ae.types.identifier("Symbol"), [ae.types.stringLiteral(o)]);
      else if (!u) {
        if (a.has(d.name)) continue;
        a.add(d.name), m = ae.types.newExpression(ae.types.identifier(c && (!f || ln(r)) ? "WeakSet" : "WeakMap"), []);
      }
      m && (s || (0, iRt.default)(m), i.push(ae.template.statement.ast`var ${d} = ${m}`));
    }
    return i;
  }
  n(lRt, "buildPrivateNamesNodes");
  function p4(t) {
    let e = Mle.visitors.environmentVisitor(Object.assign({}, t)), s = Object.assign({}, t, {
      Class(r) {
        let {
          privateNamesMap: i
        } = this, a = r.get("body.body"), o = new Map(i), l = [];
        for (let u of a) {
          if (!u.isPrivate()) continue;
          let {
            name: c
          } = u.node.key.id;
          o.delete(c), l.push(c);
        }
        l.length && (r.get("body").traverse(e, Object.assign({}, this, {
          redeclared: l
        })), r.traverse(s, Object.assign({}, this, {
          privateNamesMap: o
        })), r.skipKey("body"));
      }
    });
    return s;
  }
  n(p4, "privateNameVisitorFactory");
  var uRt = p4({
    PrivateName(t, {
      noDocumentAll: e
    }) {
      let {
        privateNamesMap: s,
        redeclared: r
      } = this, {
        node: i,
        parentPath: a
      } = t;
      if (!a.isMemberExpression({
        property: i
      }) && !a.isOptionalMemberExpression({
        property: i
      }))
        return;
      let {
        name: o
      } = i.id;
      s.has(o) && (r != null && r.includes(o) || this.handle(a, e));
    }
  });
  function Fle(t, e, s) {
    for (; (r = e) != null && r.hasBinding(t) && !e.bindingIdentifierEquals(t, s); ) {
      var r;
      e.rename(t), e = e.parent;
    }
  }
  n(Fle, "unshadow");
  function r1(t, e, s) {
    return s || !(e.availableHelper != null && e.availableHelper("checkInRHS")) ? t : ae.types.callExpression(e.addHelper("checkInRHS"), [t]);
  }
  n(r1, "buildCheckInRHS");
  var cRt = p4({
    BinaryExpression(t, {
      file: e
    }) {
      let {
        operator: s,
        left: r,
        right: i
      } = t.node;
      if (s !== "in" || !ae.types.isPrivateName(r)) return;
      let {
        privateFieldsAsProperties: a,
        privateNamesMap: o,
        redeclared: l
      } = this, {
        name: u
      } = r.id;
      if (!o.has(u) || l != null && l.includes(u)) return;
      if (Fle(this.classRef.name, t.scope, this.innerBinding), a) {
        let {
          id: h
        } = o.get(u);
        t.replaceWith(ae.template.expression.ast`
        Object.prototype.hasOwnProperty.call(${r1(i, e)}, ${ae.types.cloneNode(h)})
      `);
        return;
      }
      let {
        id: c,
        static: p
      } = o.get(u);
      if (p) {
        t.replaceWith(ae.template.expression.ast`${r1(i, e)} === ${ae.types.cloneNode(this.classRef)}`);
        return;
      }
      t.replaceWith(ae.template.expression.ast`${ae.types.cloneNode(c)}.has(${r1(i, e)})`);
    }
  });
  function t1(t, e) {
    return ae.types.callExpression(t.addHelper("readOnlyError"), [ae.types.stringLiteral(`#${e}`)]);
  }
  n(t1, "readOnlyError");
  function pRt(t, e) {
    return t.availableHelper("writeOnlyError") ? ae.types.callExpression(t.addHelper("writeOnlyError"), [ae.types.stringLiteral(`#${e}`)]) :
    (console.warn("@babel/helpers is outdated, update it to silence this warning."), ae.types.buildUndefinedNode());
  }
  n(pRt, "writeOnlyError");
  function l4(t, e) {
    return e ? t : ae.types.memberExpression(t, ae.types.identifier("_"));
  }
  n(l4, "buildStaticPrivateFieldAccess");
  function Ole(t) {
    return function(e) {
      return ae.types.inherits(t.apply(this, arguments), e.node);
    };
  }
  n(Ole, "autoInherits");
  var hRt = {
    memoise(t, e) {
      let {
        scope: s
      } = t, {
        object: r
      } = t.node, i = s.maybeGenerateMemoised(r);
      i && this.memoiser.set(r, i, e);
    },
    receiver(t) {
      let {
        object: e
      } = t.node;
      return this.memoiser.has(e) ? ae.types.cloneNode(this.memoiser.get(e)) : ae.types.cloneNode(e);
    },
    get: Ole(function(t) {
      let {
        classRef: e,
        privateNamesMap: s,
        file: r,
        innerBinding: i,
        noUninitializedPrivateFieldAccess: a
      } = this, o = t.node.property, {
        name: l
      } = o.id, {
        id: u,
        static: c,
        method: p,
        methodId: h,
        getId: f,
        setId: d
      } = s.get(l), m = f || d, y = /* @__PURE__ */ n((T) => ae.types.inherits(ae.types.cloneNode(T), o), "cloneId");
      if (c) {
        if (Fle(e.name, t.scope, i), !ln(r)) {
          let E = p && !m ? "classStaticPrivateMethodGet" : "classStaticPrivateFieldSpecGet";
          return ae.types.callExpression(r.addHelper(E), [this.receiver(t), ae.types.cloneNode(e), y(u)]);
        }
        let T = this.receiver(t), b = ae.types.isIdentifier(T) && T.name === e.name;
        if (!p)
          return l4(b ? y(u) : ae.types.callExpression(r.addHelper("assertClassBrand"), [ae.types.cloneNode(e), T, y(u)]), a);
        if (f)
          return b ? ae.types.callExpression(y(f), [T]) : ae.types.callExpression(r.addHelper("classPrivateGetter"), [ae.types.cloneNode(e),
          T, y(f)]);
        if (d) {
          let E = ae.types.buildUndefinedNode();
          return b ? E : ae.types.sequenceExpression([ae.types.callExpression(r.addHelper("assertClassBrand"), [ae.types.cloneNode(e), T]), E]);
        }
        return b ? y(u) : ae.types.callExpression(r.addHelper("assertClassBrand"), [ae.types.cloneNode(e), T, y(u)]);
      }
      return p ? m ? f ? ln(r) ? ae.types.callExpression(r.addHelper("classPrivateGetter"), [ae.types.cloneNode(u), this.receiver(t), y(f)]) :
      ae.types.callExpression(r.addHelper("classPrivateFieldGet"), [this.receiver(t), y(u)]) : ae.types.sequenceExpression([this.receiver(t),
      pRt(r, l)]) : ln(r) ? ae.types.callExpression(r.addHelper("assertClassBrand"), [ae.types.cloneNode(u), this.receiver(t), y(h)]) : ae.types.
      callExpression(r.addHelper("classPrivateMethodGet"), [this.receiver(t), ae.types.cloneNode(u), y(h)]) : ln(r) ? ae.types.callExpression(
      r.addHelper("classPrivateFieldGet2"), [y(u), this.receiver(t)]) : ae.types.callExpression(r.addHelper("classPrivateFieldGet"), [this.receiver(
      t), y(u)]);
    }),
    boundGet(t) {
      return this.memoise(t, 1), ae.types.callExpression(ae.types.memberExpression(this.get(t), ae.types.identifier("bind")), [this.receiver(
      t)]);
    },
    set: Ole(function(t, e) {
      let {
        classRef: s,
        privateNamesMap: r,
        file: i,
        noUninitializedPrivateFieldAccess: a
      } = this, o = t.node.property, {
        name: l
      } = o.id, {
        id: u,
        static: c,
        method: p,
        setId: h,
        getId: f
      } = r.get(l), d = f || h, m = /* @__PURE__ */ n((y) => ae.types.inherits(ae.types.cloneNode(y), o), "cloneId");
      if (c) {
        if (!ln(i)) {
          let b = p && !d ? "classStaticPrivateMethodSet" : "classStaticPrivateFieldSpecSet";
          return ae.types.callExpression(i.addHelper(b), [this.receiver(t), ae.types.cloneNode(s), m(u), e]);
        }
        let y = this.receiver(t), T = ae.types.isIdentifier(y) && y.name === s.name;
        if (p && !h) {
          let b = t1(i, l);
          return T ? ae.types.sequenceExpression([e, b]) : ae.types.sequenceExpression([e, ae.types.callExpression(i.addHelper("assertClassB\
rand"), [ae.types.cloneNode(s), y]), t1(i, l)]);
        }
        return h ? T ? ae.types.callExpression(ae.types.cloneNode(h), [y, e]) : ae.types.callExpression(i.addHelper("classPrivateSetter"), [
        ae.types.cloneNode(s), m(h), y, e]) : ae.types.assignmentExpression("=", l4(m(u), a), T ? e : ae.types.callExpression(i.addHelper("a\
ssertClassBrand"), [ae.types.cloneNode(s), y, e]));
      }
      return p ? h ? ln(i) ? ae.types.callExpression(i.addHelper("classPrivateSetter"), [ae.types.cloneNode(u), m(h), this.receiver(t), e]) :
      ae.types.callExpression(i.addHelper("classPrivateFieldSet"), [this.receiver(t), m(u), e]) : ae.types.sequenceExpression([this.receiver(
      t), e, t1(i, l)]) : ln(i) ? ae.types.callExpression(i.addHelper("classPrivateFieldSet2"), [m(u), this.receiver(t), e]) : ae.types.callExpression(
      i.addHelper("classPrivateFieldSet"), [this.receiver(t), m(u), e]);
    }),
    destructureSet(t) {
      let {
        classRef: e,
        privateNamesMap: s,
        file: r,
        noUninitializedPrivateFieldAccess: i
      } = this, a = t.node.property, {
        name: o
      } = a.id, {
        id: l,
        static: u,
        method: c,
        setId: p
      } = s.get(o), h = /* @__PURE__ */ n((y) => ae.types.inherits(ae.types.cloneNode(y), a), "cloneId");
      if (!ln(r)) {
        if (u) {
          try {
            var f = r.addHelper("classStaticPrivateFieldDestructureSet");
          } catch {
            throw new Error("Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \nplease update @babel/helpers to the late\
st version.");
          }
          return ae.types.memberExpression(ae.types.callExpression(f, [this.receiver(t), ae.types.cloneNode(e), h(l)]), ae.types.identifier(
          "value"));
        }
        return ae.types.memberExpression(ae.types.callExpression(r.addHelper("classPrivateFieldDestructureSet"), [this.receiver(t), h(l)]), ae.
        types.identifier("value"));
      }
      if (c && !p)
        return ae.types.memberExpression(ae.types.sequenceExpression([t.node.object, t1(r, o)]), ae.types.identifier("_"));
      if (u && !c) {
        let y = this.get(t);
        if (!i || !ae.types.isCallExpression(y))
          return y;
        let T = y.arguments.pop();
        return y.arguments.push(ae.template.expression.ast`(_) => ${T} = _`), ae.types.memberExpression(ae.types.callExpression(r.addHelper(
        "toSetter"), [y]), ae.types.identifier("_"));
      }
      let d = this.set(t, ae.types.identifier("_"));
      if (!ae.types.isCallExpression(d) || !ae.types.isIdentifier(d.arguments[d.arguments.length - 1], {
        name: "_"
      }))
        throw t.buildCodeFrameError("Internal Babel error while compiling this code. This is a Babel bug. Please report it at https://github\
.com/babel/babel/issues.");
      let m;
      return ae.types.isMemberExpression(d.callee, {
        computed: !1
      }) && ae.types.isIdentifier(d.callee.property) && d.callee.property.name === "call" ? m = [d.callee.object, ae.types.arrayExpression(d.
      arguments.slice(1, -1)), d.arguments[0]] : m = [d.callee, ae.types.arrayExpression(d.arguments.slice(0, -1))], ae.types.memberExpression(
      ae.types.callExpression(r.addHelper("toSetter"), m), ae.types.identifier("_"));
    },
    call(t, e) {
      return this.memoise(t, 1), (0, Dle.default)(this.get(t), this.receiver(t), e, !1);
    },
    optionalCall(t, e) {
      return this.memoise(t, 1), (0, Dle.default)(this.get(t), this.receiver(t), e, !0);
    },
    delete() {
      throw new Error("Internal Babel error: deleting private elements is a parsing error.");
    }
  }, fRt = {
    get(t) {
      let {
        privateNamesMap: e,
        file: s
      } = this, {
        object: r
      } = t.node, {
        name: i
      } = t.node.property.id;
      return ae.template.expression`BASE(REF, PROP)[PROP]`({
        BASE: s.addHelper("classPrivateFieldLooseBase"),
        REF: ae.types.cloneNode(r),
        PROP: ae.types.cloneNode(e.get(i).id)
      });
    },
    set() {
      throw new Error("private name handler with loose = true don't need set()");
    },
    boundGet(t) {
      return ae.types.callExpression(ae.types.memberExpression(this.get(t), ae.types.identifier("bind")), [ae.types.cloneNode(t.node.object)]);
    },
    simpleSet(t) {
      return this.get(t);
    },
    destructureSet(t) {
      return this.get(t);
    },
    call(t, e) {
      return ae.types.callExpression(this.get(t), e);
    },
    optionalCall(t, e) {
      return ae.types.optionalCallExpression(this.get(t), e, !0);
    },
    delete() {
      throw new Error("Internal Babel error: deleting private elements is a parsing error.");
    }
  };
  function dRt(t, e, s, {
    privateFieldsAsProperties: r,
    noUninitializedPrivateFieldAccess: i,
    noDocumentAll: a,
    innerBinding: o
  }, l) {
    if (!s.size) return;
    let u = e.get("body"), c = r ? fRt : hRt;
    (0, rRt.default)(u, uRt, Object.assign({
      privateNamesMap: s,
      classRef: t,
      file: l
    }, c, {
      noDocumentAll: a,
      noUninitializedPrivateFieldAccess: i,
      innerBinding: o
    })), u.traverse(cRt, {
      privateNamesMap: s,
      classRef: t,
      file: l,
      privateFieldsAsProperties: r,
      innerBinding: o
    });
  }
  n(dRt, "transformPrivateNamesUsage");
  function _le(t, e, s) {
    let {
      id: r
    } = s.get(e.node.key.id.name), i = e.node.value || e.scope.buildUndefinedNode();
    return qi(ae.template.statement.ast`
      Object.defineProperty(${t}, ${ae.types.cloneNode(r)}, {
        // configurable is false by default
        // enumerable is false by default
        writable: true,
        value: ${i}
      });
    `, e);
  }
  n(_le, "buildPrivateFieldInitLoose");
  function mRt(t, e, s, r) {
    let {
      id: i
    } = s.get(e.node.key.id.name), a = e.node.value || e.scope.buildUndefinedNode();
    if (!r.availableHelper("classPrivateFieldInitSpec"))
      return qi(ae.template.statement.ast`${ae.types.cloneNode(i)}.set(${t}, {
          // configurable is always false for private elements
          // enumerable is always false for private elements
          writable: true,
          value: ${a},
        })`, e);
    let o = r.addHelper("classPrivateFieldInitSpec");
    return c4(qi(ae.types.expressionStatement(ae.types.callExpression(o, [ae.types.thisExpression(), c4(ae.types.cloneNode(i), e.node.key), ln(
    r) ? a : ae.template.expression.ast`{ writable: true, value: ${a} }`])), e), e.node);
  }
  n(mRt, "buildPrivateInstanceFieldInitSpec");
  function yRt(t, e, s) {
    let r = e.get(t.node.key.id.name), i = s ? t.node.value : ae.template.expression.ast`{
        _: ${t.node.value || ae.types.buildUndefinedNode()}
      }`;
    return qi(ae.types.variableDeclaration("var", [ae.types.variableDeclarator(ae.types.cloneNode(r.id), i)]), t);
  }
  n(yRt, "buildPrivateStaticFieldInitSpec");
  u4 = /* @__PURE__ */ n(function(t, e) {
    let s = e.get(t.node.key.id.name), {
      id: r,
      getId: i,
      setId: a,
      initAdded: o
    } = s, l = i || a;
    if (!t.isProperty() && (o || !l)) return;
    if (l)
      return e.set(t.node.key.id.name, Object.assign({}, s, {
        initAdded: !0
      })), qi(ae.template.statement.ast`
          var ${ae.types.cloneNode(r)} = {
            // configurable is false by default
            // enumerable is false by default
            // writable is false by default
            get: ${i ? i.name : t.scope.buildUndefinedNode()},
            set: ${a ? a.name : t.scope.buildUndefinedNode()}
          }
        `, t);
    let u = t.node.value || t.scope.buildUndefinedNode();
    return qi(ae.template.statement.ast`
        var ${ae.types.cloneNode(r)} = {
          // configurable is false by default
          // enumerable is false by default
          writable: true,
          value: ${u}
        };
      `, t);
  }, "buildPrivateStaticFieldInitSpecOld");
  var u4;
  function gRt(t, e, s) {
    let r = s.get(e.node.key.id.name), {
      methodId: i,
      id: a,
      getId: o,
      setId: l,
      initAdded: u
    } = r;
    if (u) return;
    if (i)
      return qi(ae.template.statement.ast`
        Object.defineProperty(${t}, ${a}, {
          // configurable is false by default
          // enumerable is false by default
          // writable is false by default
          value: ${i.name}
        });
      `, e);
    if (o || l)
      return s.set(e.node.key.id.name, Object.assign({}, r, {
        initAdded: !0
      })), qi(ae.template.statement.ast`
        Object.defineProperty(${t}, ${a}, {
          // configurable is false by default
          // enumerable is false by default
          // writable is false by default
          get: ${o ? o.name : e.scope.buildUndefinedNode()},
          set: ${l ? l.name : e.scope.buildUndefinedNode()}
        });
      `, e);
  }
  n(gRt, "buildPrivateMethodInitLoose");
  function TRt(t, e, s, r) {
    let i = s.get(e.node.key.id.name);
    if (!i.initAdded)
      return !ln(r) && (i.getId || i.setId) ? bRt(t, e, s, r) : xRt(t, e, s, r);
  }
  n(TRt, "buildPrivateInstanceMethodInitSpec");
  function bRt(t, e, s, r) {
    let i = s.get(e.node.key.id.name), {
      id: a,
      getId: o,
      setId: l
    } = i;
    if (s.set(e.node.key.id.name, Object.assign({}, i, {
      initAdded: !0
    })), !r.availableHelper("classPrivateFieldInitSpec"))
      return qi(ae.template.statement.ast`
          ${a}.set(${t}, {
            get: ${o ? o.name : e.scope.buildUndefinedNode()},
            set: ${l ? l.name : e.scope.buildUndefinedNode()}
          });
        `, e);
    let u = r.addHelper("classPrivateFieldInitSpec");
    return c4(qi(ae.template.statement.ast`${u}(
      ${ae.types.thisExpression()},
      ${ae.types.cloneNode(a)},
      {
        get: ${o ? o.name : e.scope.buildUndefinedNode()},
        set: ${l ? l.name : e.scope.buildUndefinedNode()}
      },
    )`, e), e.node);
  }
  n(bRt, "buildPrivateAccessorInitialization");
  function xRt(t, e, s, r) {
    let i = s.get(e.node.key.id.name), {
      id: a
    } = i;
    if (!r.availableHelper("classPrivateMethodInitSpec"))
      return qi(ae.template.statement.ast`${a}.add(${t})`, e);
    let o = r.addHelper("classPrivateMethodInitSpec");
    return qi(ae.template.statement.ast`${o}(
      ${ae.types.thisExpression()},
      ${ae.types.cloneNode(a)}
    )`, e);
  }
  n(xRt, "buildPrivateInstanceMethodInitialization");
  function Lle(t, e) {
    let {
      key: s,
      computed: r
    } = e.node, i = e.node.value || e.scope.buildUndefinedNode();
    return qi(ae.types.expressionStatement(ae.types.assignmentExpression("=", ae.types.memberExpression(t, s, r || ae.types.isLiteral(s)), i)),
    e);
  }
  n(Lle, "buildPublicFieldInitLoose");
  function Ble(t, e, s) {
    let {
      key: r,
      computed: i
    } = e.node, a = e.node.value || e.scope.buildUndefinedNode();
    return qi(ae.types.expressionStatement(ae.types.callExpression(s.addHelper("defineProperty"), [t, i || ae.types.isLiteral(r) ? r : ae.types.
    stringLiteral(r.name), a])), e);
  }
  n(Ble, "buildPublicFieldInitSpec");
  function SRt(t, e, s, r) {
    let i = r.get(e.node.key.id.name), {
      id: a,
      methodId: o,
      getId: l,
      setId: u,
      initAdded: c
    } = i;
    return c ? void 0 : l || u ? (r.set(e.node.key.id.name, Object.assign({}, i, {
      initAdded: !0
    })), qi(ae.template.statement.ast`
        Object.defineProperty(${t}, ${a}, {
          // configurable is false by default
          // enumerable is false by default
          // writable is false by default
          get: ${l ? l.name : e.scope.buildUndefinedNode()},
          set: ${u ? u.name : e.scope.buildUndefinedNode()}
        })
      `, e)) : qi(ae.template.statement.ast`
      Object.defineProperty(${t}, ${a}, {
        // configurable is false by default
        // enumerable is false by default
        // writable is false by default
        value: ${o.name}
      });
    `, e);
  }
  n(SRt, "buildPrivateStaticMethodInitLoose");
  function s1(t, e, s, r = !1) {
    let i = s.get(e.node.key.id.name), {
      id: a,
      methodId: o,
      getId: l,
      setId: u,
      getterDeclared: c,
      setterDeclared: p,
      static: h
    } = i, {
      params: f,
      body: d,
      generator: m,
      async: y
    } = e.node, T = l && f.length === 0, b = u && f.length > 0;
    if (T && c || b && p)
      return s.set(e.node.key.id.name, Object.assign({}, i, {
        initAdded: !0
      })), null;
    if (ln(t) && (T || b) && !r) {
      let V = e.get("body").scope, W = V.generateUidIdentifier("this"), oe = {
        thisRef: W,
        argumentsPath: []
      };
      if (e.traverse(jle, oe), oe.argumentsPath.length) {
        let de = V.generateUidIdentifier("arguments");
        V.push({
          id: de,
          init: ae.template.expression.ast`[].slice.call(arguments, 1)`
        });
        for (let ye of oe.argumentsPath)
          ye.replaceWith(ae.types.cloneNode(de));
      }
      f.unshift(ae.types.cloneNode(W));
    }
    let E = o;
    return T ? (s.set(e.node.key.id.name, Object.assign({}, i, {
      getterDeclared: !0,
      initAdded: !0
    })), E = l) : b ? (s.set(e.node.key.id.name, Object.assign({}, i, {
      setterDeclared: !0,
      initAdded: !0
    })), E = u) : h && !r && (E = a), qi(ae.types.functionDeclaration(ae.types.cloneNode(E), f, d, m, y), e);
  }
  n(s1, "buildPrivateMethodDeclaration");
  var jle = Mle.visitors.environmentVisitor({
    Identifier(t, e) {
      e.argumentsPath && t.node.name === "arguments" && e.argumentsPath.push(t);
    },
    UnaryExpression(t) {
      let {
        node: e
      } = t;
      if (e.operator === "delete") {
        let s = (0, nRt.skipTransparentExprWrapperNodes)(e.argument);
        ae.types.isThisExpression(s) && t.replaceWith(ae.types.booleanLiteral(!0));
      }
    },
    ThisExpression(t, e) {
      e.needsClassRef = !0, t.replaceWith(ae.types.cloneNode(e.thisRef));
    },
    MetaProperty(t) {
      let {
        node: e,
        scope: s
      } = t;
      e.meta.name === "new" && e.property.name === "target" && t.replaceWith(s.buildUndefinedNode());
    }
  }), PRt = {
    ReferencedIdentifier(t, e) {
      t.scope.bindingIdentifierEquals(t.node.name, e.innerBinding) && (e.needsClassRef = !0, t.node.name = e.thisRef.name);
    }
  };
  function ERt(t, e, s) {
    var r;
    let i = {
      thisRef: e,
      needsClassRef: !1,
      innerBinding: s
    };
    return t.isMethod() || t.traverse(jle, i), s != null && (r = i.thisRef) != null && r.name && i.thisRef.name !== s.name && t.traverse(PRt,
    i), i.needsClassRef;
  }
  n(ERt, "replaceThisContext");
  function ARt({
    key: t,
    computed: e
  }) {
    return t.type === "Identifier" ? !e && (t.name === "name" || t.name === "length") : t.type === "StringLiteral" ? t.value === "name" || t.
    value === "length" : !1;
  }
  n(ARt, "isNameOrLength");
  function qi(t, e) {
    return ae.types.inheritLeadingComments(t, e.node), ae.types.inheritInnerComments(t, e.node), t;
  }
  n(qi, "inheritPropComments");
  function c4(t, e) {
    return t.start = e.start, t.end = e.end, t.loc = e.loc, t;
  }
  n(c4, "inheritLoc");
  function vRt(t, e, s, r, i, a, o, l, u, c) {
    var p, h;
    let f = 0, d, m = [], y = [], T = !1, b = [], E = null, V = ae.types.isIdentifier(e) ? () => e : () => {
      var oe;
      return (oe = d) != null || (d = s[0].scope.generateUidIdentifierBasedOnNode(e)), d;
    }, W = (p = t) != null ? p : s[0].scope.generateUidIdentifier(c?.name || "Class");
    (h = t) != null || (t = ae.types.cloneNode(c));
    for (let oe of s) {
      oe.isClassProperty() && aRt.assertFieldTransformed(oe);
      let de = !(ae.types.isStaticBlock != null && ae.types.isStaticBlock(oe.node)) && oe.node.static, ye = !de, Oe = oe.isPrivate(), be = !Oe,
      me = oe.isProperty(), he = !me, Pe = oe.isStaticBlock == null ? void 0 : oe.isStaticBlock();
      switch (de && (f |= 1), (de || he && Oe || Pe) && (new sRt.default({
        methodPath: oe,
        constantSuper: u,
        file: i,
        refToPreserve: c,
        getSuperRef: V,
        getObjectRef() {
          return f |= 2, de || Pe ? W : ae.types.memberExpression(W, ae.types.identifier("prototype"));
        }
      }).replace(), ERt(oe, W, c) && (f |= 2)), T = !1, !0) {
        case Pe: {
          let st = oe.node.body;
          st.length === 1 && ae.types.isExpressionStatement(st[0]) ? m.push(qi(st[0], oe)) : m.push(ae.types.inheritsComments(ae.template.statement.
          ast`(() => { ${st} })()`, oe.node));
          break;
        }
        case (de && Oe && me && o):
          m.push(_le(ae.types.cloneNode(t), oe, r));
          break;
        case (de && Oe && me && !o):
          ln(i) ? m.push(yRt(oe, r, l)) : m.push(u4(oe, r));
          break;
        case (de && be && me && a):
          if (!ARt(oe.node)) {
            m.push(Lle(ae.types.cloneNode(t), oe));
            break;
          }
        case (de && be && me && !a):
          m.push(Ble(ae.types.cloneNode(t), oe, i));
          break;
        case (ye && Oe && me && o):
          y.push(_le(ae.types.thisExpression(), oe, r));
          break;
        case (ye && Oe && me && !o):
          y.push(mRt(ae.types.thisExpression(), oe, r, i));
          break;
        case (ye && Oe && he && o):
          y.unshift(gRt(ae.types.thisExpression(), oe, r)), b.push(s1(i, oe, r, o));
          break;
        case (ye && Oe && he && !o):
          y.unshift(TRt(ae.types.thisExpression(), oe, r, i)), b.push(s1(i, oe, r, o));
          break;
        case (de && Oe && he && !o):
          ln(i) || m.unshift(u4(oe, r)), b.push(s1(i, oe, r, o));
          break;
        case (de && Oe && he && o):
          m.unshift(SRt(ae.types.cloneNode(t), oe, i, r)), b.push(s1(i, oe, r, o));
          break;
        case (ye && be && me && a):
          y.push(Lle(ae.types.thisExpression(), oe));
          break;
        case (ye && be && me && !a):
          T = !0, y.push(Ble(ae.types.thisExpression(), oe, i));
          break;
        default:
          throw new Error("Unreachable.");
      }
    }
    return f & 2 && c != null && (E = ae.types.expressionStatement(ae.types.assignmentExpression("=", ae.types.cloneNode(W), ae.types.cloneNode(
    c)))), {
      staticNodes: m.filter(Boolean),
      instanceNodes: y.filter(Boolean),
      lastInstanceNodeReturnsThis: T,
      pureStaticNodes: b.filter(Boolean),
      classBindingNode: E,
      wrapClass(oe) {
        for (let de of s)
          de.node.leadingComments = null, de.remove();
        return d && (oe.scope.push({
          id: ae.types.cloneNode(d)
        }), oe.set("superClass", ae.types.assignmentExpression("=", d, oe.node.superClass))), f !== 0 && (oe.isClassExpression() ? (oe.scope.
        push({
          id: t
        }), oe.replaceWith(ae.types.assignmentExpression("=", ae.types.cloneNode(t), oe.node))) : (c == null && (oe.node.id = t), E != null &&
        oe.scope.push({
          id: W
        }))), oe;
      }
    };
  }
  n(vRt, "buildFieldsInitNodes");
});

// ../node_modules/@babel/helper-create-class-features-plugin/lib/misc.js
var f4 = g((pT) => {
  "use strict";
  Object.defineProperty(pT, "__esModule", {
    value: !0
  });
  pT.extractComputedKeys = DRt;
  pT.injectInitialization = kRt;
  pT.memoiseComputedKey = qle;
  var fi = ai(), CRt = Bo(), wRt = CRt.visitors.environmentVisitor({
    Super(t) {
      let {
        node: e,
        parentPath: s
      } = t;
      s.isCallExpression({
        callee: e
      }) && this.push(s);
    }
  }), IRt = {
    "TSTypeAnnotation|TypeAnnotation"(t) {
      t.skip();
    },
    ReferencedIdentifier(t, {
      scope: e
    }) {
      e.hasOwnBinding(t.node.name) && (e.rename(t.node.name), t.skip());
    }
  };
  function Rle(t, e) {
    if (e.classBinding && e.classBinding === t.scope.getBinding(t.node.name)) {
      let s = e.file.addHelper("classNameTDZError"), r = fi.types.callExpression(s, [fi.types.stringLiteral(t.node.name)]);
      t.replaceWith(fi.types.sequenceExpression([r, t.node])), t.skip();
    }
  }
  n(Rle, "handleClassTDZ");
  var NRt = {
    ReferencedIdentifier: Rle
  };
  function kRt(t, e, s, r, i) {
    if (!s.length) return;
    let a = !!t.node.superClass;
    if (!e) {
      let o = fi.types.classMethod("constructor", fi.types.identifier("constructor"), [], fi.types.blockStatement([]));
      a && (o.params = [fi.types.restElement(fi.types.identifier("args"))], o.body.body.push(fi.template.statement.ast`super(...args)`)), [e] =
      t.get("body").unshiftContainer("body", o);
    }
    if (r && r(IRt, {
      scope: e.scope
    }), a) {
      let o = [];
      e.traverse(wRt, o);
      let l = !0;
      for (let u of o)
        if (l ? l = !1 : s = s.map((c) => fi.types.cloneNode(c)), u.parentPath.isExpressionStatement())
          u.insertAfter(s);
        else {
          let c = [u.node, ...s.map((p) => fi.types.toExpression(p))];
          i || c.push(fi.types.thisExpression()), u.replaceWith(fi.types.sequenceExpression(c));
        }
    } else
      e.get("body").unshiftContainer("body", s);
  }
  n(kRt, "injectInitialization");
  function qle(t, e, s) {
    if (fi.types.isIdentifier(t) && e.hasUid(t.name))
      return;
    if (fi.types.isAssignmentExpression(t, {
      operator: "="
    }) && fi.types.isIdentifier(t.left) && e.hasUid(t.left.name))
      return fi.types.cloneNode(t);
    {
      let a = fi.types.identifier(s);
      return e.push({
        id: a,
        kind: "let"
      }), fi.types.assignmentExpression("=", fi.types.cloneNode(a), t);
    }
  }
  n(qle, "memoiseComputedKey");
  function DRt(t, e, s) {
    let {
      scope: r
    } = t, i = [], a = {
      classBinding: t.node.id && r.getBinding(t.node.id.name),
      file: s
    };
    for (let o of e) {
      let l = o.get("key");
      l.isReferencedIdentifier() ? Rle(l, a) : l.traverse(NRt, a);
      let u = o.node;
      if (!l.isConstantExpression()) {
        let c = qle(l.node, r, r.generateUidBasedOnNode(l.node));
        c && (i.push(fi.types.expressionStatement(c)), u.key = fi.types.cloneNode(c.left));
      }
    }
    return i;
  }
  n(DRt, "extractComputedKeys");
});

// ../node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js
var tue = g((x4) => {
  "use strict";
  Object.defineProperty(x4, "__esModule", {
    value: !0
  });
  x4.default = c5t;
  var R = ai(), Ule = cA(), kp = aF(), Gle = h4(), i1 = f4();
  function Qle(t, e = t.length - 1) {
    if (e === -1) {
      t.unshift(65);
      return;
    }
    let s = t[e];
    s === 90 ? t[e] = 97 : s === 122 ? (t[e] = 65, Qle(t, e - 1)) : t[e] = s + 1;
  }
  n(Qle, "incrementId");
  function ORt(t) {
    let e = [], s = /* @__PURE__ */ new Set();
    return t.traverse({
      PrivateName(r) {
        s.add(r.node.id.name);
      }
    }), () => {
      let r;
      do
        Qle(e), r = String.fromCharCode(...e);
      while (s.has(r));
      return R.types.privateName(R.types.identifier(r));
    };
  }
  n(ORt, "createPrivateUidGeneratorForClass");
  function _Rt(t) {
    let e;
    return () => (e || (e = ORt(t)), e());
  }
  n(_Rt, "createLazyPrivateUidGeneratorForClass");
  function LRt(t, e) {
    let s = t.node.id, r = t.scope;
    if (t.type === "ClassDeclaration") {
      let i = s.name, a = r.generateUidIdentifierBasedOnNode(s), o = R.types.identifier(i);
      return r.rename(i, a.name), t.get("id").replaceWith(o), {
        id: R.types.cloneNode(a),
        path: t
      };
    } else {
      let i;
      s ? (e = s.name, i = ma(r.parent, e), r.rename(e, i.name)) : i = ma(r.parent, typeof e == "string" ? e : "decorated_class");
      let a = R.types.classExpression(typeof e == "string" ? R.types.identifier(e) : null, t.node.superClass, t.node.body), [o] = t.replaceWith(
      R.types.sequenceExpression([a, i]));
      return {
        id: R.types.cloneNode(i),
        path: o.get("expressions.0")
      };
    }
  }
  n(LRt, "replaceClassWithVar");
  function Kle(t, e, s) {
    return t.type === "PrivateName" ? R.types.classPrivateProperty(t, e, void 0, s) : R.types.classProperty(t, e, void 0, void 0, s);
  }
  n(Kle, "generateClassProperty");
  function d4(t, e) {
    t.node.id || (t.node.id = typeof e == "string" ? R.types.identifier(e) : t.scope.generateUidIdentifier("Class"));
  }
  n(d4, "assignIdForAnonymousClass");
  function Vle(t, e, s, r, i, a, o, l) {
    let u = (l === "2023-11" || l === "2023-05") && o ? t : R.types.thisExpression(), c = R.types.blockStatement([R.types.returnStatement(R.
    types.memberExpression(R.types.cloneNode(u), R.types.cloneNode(i)))]), p = R.types.blockStatement([R.types.expressionStatement(R.types.assignmentExpression(
    "=", R.types.memberExpression(R.types.cloneNode(u), R.types.cloneNode(i)), R.types.identifier("v")))]), h, f;
    s.type === "PrivateName" ? (h = R.types.classPrivateMethod("get", s, [], c, o), f = R.types.classPrivateMethod("set", r, [R.types.identifier(
    "v")], p, o)) : (h = R.types.classMethod("get", s, [], c, a, o), f = R.types.classMethod("set", r, [R.types.identifier("v")], p, a, o)),
    e.insertAfter(f), e.insertAfter(h);
  }
  n(Vle, "addProxyAccessorsFor");
  function Wle(t, e) {
    return e !== "2023-11" && e !== "2023-05" && e !== "2023-01" ? [R.template.expression.ast`
        function () {
          return this.${R.types.cloneNode(t)};
        }
      `, R.template.expression.ast`
        function (value) {
          this.${R.types.cloneNode(t)} = value;
        }
      `] : [R.template.expression.ast`
      o => o.${R.types.cloneNode(t)}
    `, R.template.expression.ast`
      (o, v) => o.${R.types.cloneNode(t)} = v
    `];
  }
  n(Wle, "extractProxyAccessorsFor");
  function b4(t) {
    if (t = (0, kp.skipTransparentExprWrappers)(t), t.isSequenceExpression()) {
      let e = t.get("expressions");
      return b4(e[e.length - 1]);
    }
    return t;
  }
  n(b4, "getComputedKeyLastElement");
  function BRt(t) {
    let e = b4(t);
    if (e.isConstantExpression())
      return R.types.cloneNode(t.node);
    if (e.isIdentifier() && t.scope.hasUid(e.node.name))
      return R.types.cloneNode(t.node);
    if (e.isAssignmentExpression() && e.get("left").isIdentifier())
      return R.types.cloneNode(e.node.left);
    throw new Error(`Internal Error: the computed key ${t.toString()} has not yet been memoised.`);
  }
  n(BRt, "getComputedKeyMemoiser");
  function hT(t, e) {
    let s = e.get("key");
    s.isSequenceExpression() ? t.push(...s.node.expressions) : t.push(s.node), s.replaceWith(Op(t));
  }
  n(hT, "prependExpressionsToComputedKey");
  function MRt(t, e) {
    let s = e.get("key"), r = b4(s);
    if (r.isConstantExpression())
      hT(t, e);
    else {
      let i = s.scope.parent, a = (0, i1.memoiseComputedKey)(r.node, i, i.generateUid("computedKey"));
      if (!a)
        hT(t, e);
      else {
        let o = [...t, R.types.cloneNode(a.left)], l = r.parentPath;
        l.isSequenceExpression() ? l.pushContainer("expressions", o) : r.replaceWith(Op([R.types.cloneNode(a), ...o]));
      }
    }
  }
  n(MRt, "appendExpressionsToComputedKey");
  function m4(t, e) {
    let s = e.get("value");
    s.node ? t.push(s.node) : t.length > 0 && (t[t.length - 1] = R.types.unaryExpression("void", t[t.length - 1])), s.replaceWith(Op(t));
  }
  n(m4, "prependExpressionsToFieldInitializer");
  function FRt(t, e) {
    e.unshiftContainer("body", R.types.expressionStatement(Op(t)));
  }
  n(FRt, "prependExpressionsToStaticBlock");
  function jRt(t, e) {
    e.node.body.body.unshift(R.types.expressionStatement(Op(t)));
  }
  n(jRt, "prependExpressionsToConstructor");
  function $le(t, e) {
    return R.types.isCallExpression(t) && R.types.isIdentifier(t.callee, {
      name: e.name
    });
  }
  n($le, "isProtoInitCallExpression");
  function RRt(t, e) {
    if (e) {
      if (t.length >= 2 && $le(t[1], e)) {
        let s = R.types.callExpression(R.types.cloneNode(e), [t[0]]);
        t.splice(0, 2, s);
      }
      t.length >= 2 && R.types.isThisExpression(t[t.length - 1]) && $le(t[t.length - 2], e) && t.splice(t.length - 1, 1);
    }
    return Op(t);
  }
  n(RRt, "optimizeSuperCallAndExpressions");
  function qRt(t, e, s) {
    e.traverse({
      CallExpression: {
        exit(r) {
          if (!r.get("callee").isSuper()) return;
          let i = [r.node, ...t.map((a) => R.types.cloneNode(a))];
          r.isCompletionRecord() && i.push(R.types.thisExpression()), r.replaceWith(RRt(i, s)), r.skip();
        }
      },
      ClassMethod(r) {
        r.node.kind === "constructor" && r.skip();
      }
    });
  }
  n(qRt, "insertExpressionsAfterSuperCallAndOptimize");
  function Hle(t, e) {
    let s = [R.types.expressionStatement(Op(t))];
    return e && s.unshift(R.types.expressionStatement(R.types.callExpression(R.types.super(), [R.types.spreadElement(R.types.identifier("arg\
s"))]))), R.types.classMethod("constructor", R.types.identifier("constructor"), e ? [R.types.restElement(R.types.identifier("args"))] : [], R.
    types.blockStatement(s));
  }
  n(Hle, "createConstructorFromExpressions");
  function Jle(t) {
    return R.types.staticBlock([R.types.expressionStatement(Op(t))]);
  }
  n(Jle, "createStaticBlockFromExpressions");
  var vf = 0, Dp = 1, URt = 2, Zle = 3, n1 = 4, KRt = 5, VRt = 8, WRt = 16;
  function $Rt(t) {
    switch (t.node.type) {
      case "ClassProperty":
      case "ClassPrivateProperty":
        return vf;
      case "ClassAccessorProperty":
        return Dp;
      case "ClassMethod":
      case "ClassPrivateMethod":
        return t.node.kind === "get" ? Zle : t.node.kind === "set" ? n1 : URt;
    }
  }
  n($Rt, "getElementKind");
  function HRt(t) {
    return [...t.filter((e) => e.isStatic && e.kind >= Dp && e.kind <= n1), ...t.filter((e) => !e.isStatic && e.kind >= Dp && e.kind <= n1),
    ...t.filter((e) => e.isStatic && e.kind === vf), ...t.filter((e) => !e.isStatic && e.kind === vf)];
  }
  n(HRt, "toSortedDecoratorInfo");
  function Yle(t, e, s) {
    let r = t.length, i = e.some(Boolean), a = [];
    for (let o = 0; o < r; o++)
      (s === "2023-11" || s === "2023-05") && i && a.push(e[o] || R.types.unaryExpression("void", R.types.numericLiteral(0))), a.push(t[o].expression);
    return {
      haveThis: i,
      decs: a
    };
  }
  n(Yle, "generateDecorationList");
  function JRt(t, e) {
    return R.types.arrayExpression(t.map((s) => {
      let r = s.kind;
      return s.isStatic && (r += e === "2023-11" || e === "2023-05" ? VRt : KRt), s.decoratorsHaveThis && (r += WRt), R.types.arrayExpression(
      [s.decoratorsArray, R.types.numericLiteral(r), s.name, ...s.privateMethods || []]);
    }));
  }
  n(JRt, "generateDecorationExprs");
  function YRt(t) {
    let e = [];
    for (let s of t) {
      let {
        locals: r
      } = s;
      Array.isArray(r) ? e.push(...r) : r !== void 0 && e.push(r);
    }
    return e;
  }
  n(YRt, "extractElementLocalAssignments");
  function XRt(t, e, s, r, i, a) {
    e.insertAfter(R.types.classPrivateMethod("get", R.types.cloneNode(s), [], R.types.blockStatement([R.types.returnStatement(R.types.callExpression(
    R.types.cloneNode(r), t === "2023-11" && a ? [] : [R.types.thisExpression()]))]), a)), e.insertAfter(R.types.classPrivateMethod("set", R.
    types.cloneNode(s), [R.types.identifier("v")], R.types.blockStatement([R.types.expressionStatement(R.types.callExpression(R.types.cloneNode(
    i), t === "2023-11" && a ? [R.types.identifier("v")] : [R.types.thisExpression(), R.types.identifier("v")]))]), a));
  }
  n(XRt, "addCallAccessorsFor");
  function zRt(t, e, s, r) {
    let i, a;
    t.node.kind === "set" ? (i = [R.types.identifier("v")], a = [R.types.expressionStatement(R.types.callExpression(s, [R.types.thisExpression(),
    R.types.identifier("v")]))]) : (i = [], a = [R.types.returnStatement(R.types.callExpression(s, [R.types.thisExpression()]))]), t.replaceWith(
    R.types.classPrivateMethod(t.node.kind, R.types.cloneNode(e), i, R.types.blockStatement(a), r));
  }
  n(zRt, "movePrivateAccessor");
  function Xle(t) {
    let {
      type: e
    } = t;
    return e !== "TSDeclareMethod" && e !== "TSIndexSignature" && e !== "StaticBlock";
  }
  n(Xle, "isClassDecoratableElementPath");
  function GRt(t) {
    return R.types.callExpression(R.types.arrowFunctionExpression([], R.types.blockStatement(t.body)), []);
  }
  n(GRt, "staticBlockToIIFE");
  function QRt(t) {
    return R.types.functionExpression(null, [], R.types.blockStatement(t.body));
  }
  n(QRt, "staticBlockToFunctionClosure");
  function ZRt(t) {
    return R.types.functionExpression(null, [], R.types.blockStatement([R.types.returnStatement(t)]));
  }
  n(ZRt, "fieldInitializerToClosure");
  function Op(t) {
    return t.length === 0 ? R.types.unaryExpression("void", R.types.numericLiteral(0)) : t.length === 1 ? t[0] : R.types.sequenceExpression(
    t);
  }
  n(Op, "maybeSequenceExpression");
  function zle(t) {
    let {
      params: e,
      body: s,
      generator: r,
      async: i
    } = t;
    return R.types.functionExpression(void 0, e, s, r, i);
  }
  n(zle, "createFunctionExpressionFromPrivateMethod");
  function eue(t, e) {
    return R.types.callExpression(t.addHelper("setFunctionName"), [R.types.thisExpression(), e]);
  }
  n(eue, "createSetFunctionNameCall");
  function T4(t, e) {
    return R.types.callExpression(t.addHelper("toPropertyKey"), [e]);
  }
  n(T4, "createToPropertyKeyCall");
  function y4(t) {
    return R.types.arrowFunctionExpression([R.types.identifier("_")], R.types.binaryExpression("in", R.types.cloneNode(t), R.types.identifier(
    "_")));
  }
  n(y4, "createPrivateBrandCheckClosure");
  function e5t(t) {
    try {
      return R.types.traverseFast(t, (e) => {
        if (R.types.isPrivateName(e))
          throw null;
      }), !1;
    } catch {
      return !0;
    }
  }
  n(e5t, "usesPrivateField");
  function t5t(t) {
    let {
      node: e
    } = t;
    e.computed = !0, R.types.isIdentifier(e.key) && (e.key = R.types.stringLiteral(e.key.name));
  }
  n(t5t, "convertToComputedKey");
  function g4(t, e) {
    let s = !1;
    if (e.length > 0) {
      let r = (0, Gle.privateNameVisitorFactory)({
        PrivateName(a, o) {
          o.privateNamesMap.has(a.node.id.name) && (s = !0, a.stop());
        }
      }), i = /* @__PURE__ */ new Map();
      for (let a of e)
        i.set(a, null);
      t.traverse(r, {
        privateNamesMap: i
      });
    }
    return s;
  }
  n(g4, "hasInstancePrivateAccess");
  function s5t(t, e) {
    let s = (0, Gle.privateNameVisitorFactory)({
      PrivateName(i, a) {
        if (!a.privateNamesMap.has(i.node.id.name)) return;
        let o = i.parentPath, l = o.parentPath;
        if (l.node.type === "AssignmentExpression" && l.node.left === o.node || l.node.type === "UpdateExpression" || l.node.type === "RestE\
lement" || l.node.type === "ArrayPattern" || l.node.type === "ObjectProperty" && l.node.value === o.node && l.parentPath.type === "ObjectPat\
tern" || l.node.type === "ForOfStatement" && l.node.left === o.node)
          throw i.buildCodeFrameError(`Decorated private methods are read-only, but "#${i.node.id.name}" is updated via this expression.`);
      }
    }), r = /* @__PURE__ */ new Map();
    for (let i of e)
      r.set(i, null);
    t.traverse(s, {
      privateNamesMap: r
    });
  }
  n(s5t, "checkPrivateMethodUpdateError");
  function r5t(t, e, s, r, i, a, o) {
    var l, u;
    let c = t.get("body.body"), p = t.node.decorators, h = !1, f = !1, d = !1, m = _Rt(t), y = [], T = t.scope.parent, b = /* @__PURE__ */ n(
    (et, je, le) => {
      let ge = ma(T, je);
      return le.push(R.types.assignmentExpression("=", ge, et)), R.types.cloneNode(ge);
    }, "memoiseExpression"), E, V, W = (l = t.node.id) == null ? void 0 : l.name, oe = typeof i == "object" ? i : void 0, de = /* @__PURE__ */ n(
    (et) => {
      try {
        return R.types.traverseFast(et, (je) => {
          if (R.types.isThisExpression(je) || R.types.isSuper(je) || R.types.isYieldExpression(je) || R.types.isAwaitExpression(je) || R.types.
          isIdentifier(je, {
            name: "arguments"
          }) || W && R.types.isIdentifier(je, {
            name: W
          }) || R.types.isMetaProperty(je) && je.meta.name !== "import")
            throw null;
        }), !1;
      } catch {
        return !0;
      }
    }, "usesFunctionContextOrYieldAwait"), ye = [];
    for (let et of c) {
      if (!Xle(et))
        continue;
      let je = et.node;
      if (!je.static && R.types.isPrivateName(je.key) && ye.push(je.key.id.name), fT(je)) {
        switch (je.type) {
          case "ClassProperty":
            a.ClassProperty(et, e);
            break;
          case "ClassPrivateProperty":
            a.ClassPrivateProperty(et, e);
            break;
          case "ClassAccessorProperty":
            if (a.ClassAccessorProperty(et, e), o === "2023-11")
              break;
          default:
            if (je.static) {
              var Oe;
              (Oe = V) != null || (V = ma(T, "initStatic"));
            } else {
              var be;
              (be = E) != null || (E = ma(T, "initProto"));
            }
            break;
        }
        h = !0, d || (d = je.decorators.some(de));
      } else if (je.type === "ClassAccessorProperty") {
        a.ClassAccessorProperty(et, e);
        let {
          key: le,
          value: ge,
          static: Ae,
          computed: De
        } = je, ct = m(), tt = Kle(ct, ge, Ae), Ut = et.get("key"), [Xt] = et.replaceWith(tt), Vt, zt;
        De && !Ut.isConstantExpression() ? (Vt = (0, i1.memoiseComputedKey)(T4(e, le), T, T.generateUid("computedKey")), zt = R.types.cloneNode(
        Vt.left)) : (Vt = R.types.cloneNode(le), zt = R.types.cloneNode(le)), d4(t, i), Vle(t.node.id, Xt, Vt, zt, ct, De, Ae, o);
      }
      "computed" in et.node && et.node.computed && (f || (f = !T.isStatic(et.node.key)));
    }
    if (!p && !h) {
      !t.node.id && typeof i == "string" && (t.node.id = R.types.identifier(i)), oe && t.node.body.body.unshift(Jle([eue(e, oe)]));
      return;
    }
    let me = [], he, Pe = /* @__PURE__ */ new Set(), st, lt, ke = null;
    function Ne(et) {
      let je = !1, le = !1, ge = [];
      for (let De of et) {
        let {
          expression: ct
        } = De, tt;
        if ((o === "2023-11" || o === "2023-05") && R.types.isMemberExpression(ct))
          if (R.types.isSuper(ct.object))
            tt = R.types.thisExpression();
          else if (T.isStatic(ct.object))
            tt = R.types.cloneNode(ct.object);
          else {
            var Ae;
            (Ae = ke) != null || (ke = ma(T, "obj")), tt = R.types.assignmentExpression("=", R.types.cloneNode(ke), ct.object), ct.object = R.
            types.cloneNode(ke);
          }
        ge.push(tt), je || (je = !T.isStatic(ct)), le || (le = de(De));
      }
      return {
        hasSideEffects: je,
        usesFnContext: le,
        decoratorsThis: ge
      };
    }
    n(Ne, "handleDecorators");
    let He = f || d || o !== "2023-11", Ze = !1, Pt = 0, Dt = [], Wt, ut = [];
    if (p) {
      st = ma(T, "initClass"), Ze = t.isClassDeclaration(), {
        id: lt,
        path: t
      } = LRt(t, i), t.node.decorators = null;
      let et = p.some(e5t), {
        hasSideEffects: je,
        usesFnContext: le,
        decoratorsThis: ge
      } = Ne(p), {
        haveThis: Ae,
        decs: De
      } = Yle(p, ge, o);
      if (Pt = Ae ? 1 : 0, Dt = De, (le || je && He || et) && (Wt = b(R.types.arrayExpression(Dt), "classDecs", y)), !h)
        for (let ct of t.get("body.body")) {
          let {
            node: tt
          } = ct;
          if ("computed" in tt && tt.computed)
            if (ct.isClassProperty({
              static: !0
            })) {
              if (!ct.get("key").isConstantExpression()) {
                let Xt = tt.key, Vt = (0, i1.memoiseComputedKey)(Xt, T, T.generateUid("computedKey"));
                Vt != null && (tt.key = R.types.cloneNode(Vt.left), ut.push(Vt));
              }
            } else ut.length > 0 && (hT(ut, ct), ut = []);
        }
    } else
      d4(t, i), lt = R.types.cloneNode(t.node.id);
    let Yt, Jr = !1, Pr = [], At = [];
    if (h) {
      if (E) {
        let et = R.types.callExpression(R.types.cloneNode(E), [R.types.thisExpression()]);
        Pr.push(et);
      }
      for (let et of c) {
        if (!Xle(et)) {
          At.length > 0 && et.isStaticBlock() && (FRt(At, et), At = []);
          continue;
        }
        let {
          node: je
        } = et, le = je.decorators, ge = !!(le != null && le.length), Ae = "computed" in je && je.computed, De = "computedKey";
        je.key.type === "PrivateName" ? De = je.key.id.name : !Ae && je.key.type === "Identifier" && (De = je.key.name);
        let ct, tt;
        if (ge) {
          let {
            hasSideEffects: Rs,
            usesFnContext: ms,
            decoratorsThis: Ar
          } = Ne(le), {
            decs: ei,
            haveThis: _i
          } = Yle(le, Ar, o);
          tt = _i, ct = ei.length === 1 ? ei[0] : R.types.arrayExpression(ei), (ms || Rs && He) && (ct = b(ct, De + "Decs", ut));
        }
        if (Ae && !et.get("key").isConstantExpression()) {
          let Rs = je.key, ms = (0, i1.memoiseComputedKey)(ge ? T4(e, Rs) : Rs, T, T.generateUid("computedKey"));
          ms != null && (p && et.isClassProperty({
            static: !0
          }) ? (je.key = R.types.cloneNode(ms.left), ut.push(ms)) : je.key = ms);
        }
        let {
          key: Ut,
          static: Xt
        } = je, Vt = Ut.type === "PrivateName", zt = $Rt(et);
        Vt && !Xt && (ge && (Jr = !0), (R.types.isClassPrivateProperty(je) || !Yt) && (Yt = Ut)), et.isClassMethod({
          kind: "constructor"
        }) && (he = et);
        let bi;
        if (ge) {
          let Rs, ms;
          if (Ae ? ms = BRt(et.get("key")) : Ut.type === "PrivateName" ? ms = R.types.stringLiteral(Ut.id.name) : Ut.type === "Identifier" ?
          ms = R.types.stringLiteral(Ut.name) : ms = R.types.cloneNode(Ut), zt === Dp) {
            let {
              value: Ar
            } = et.node, ei = o === "2023-11" && Xt ? [] : [R.types.thisExpression()];
            Ar && ei.push(R.types.cloneNode(Ar));
            let _i = m(), Jo = ma(T, `init_${De}`), Sc = R.types.callExpression(R.types.cloneNode(Jo), ei), _y = Kle(_i, Sc, Xt), [fn] = et.
            replaceWith(_y);
            if (Vt) {
              Rs = Wle(_i, o);
              let Qf = ma(T, `get_${De}`), Ly = ma(T, `set_${De}`);
              XRt(o, fn, Ut, Qf, Ly, Xt), bi = [Jo, Qf, Ly];
            } else
              d4(t, i), Vle(t.node.id, fn, R.types.cloneNode(Ut), R.types.isAssignmentExpression(Ut) ? R.types.cloneNode(Ut.left) : R.types.
              cloneNode(Ut), _i, Ae, Xt, o), bi = [Jo];
          } else if (zt === vf) {
            let Ar = ma(T, `init_${De}`), ei = et.get("value"), _i = o === "2023-11" && Xt ? [] : [R.types.thisExpression()];
            ei.node && _i.push(ei.node), ei.replaceWith(R.types.callExpression(R.types.cloneNode(Ar), _i)), bi = [Ar], Vt && (Rs = Wle(Ut, o));
          } else if (Vt) {
            let Ar = ma(T, `call_${De}`);
            if (bi = [Ar], new Ule.default({
              constantSuper: s,
              methodPath: et,
              objectRef: lt,
              superRef: t.node.superClass,
              file: e.file,
              refToPreserve: lt
            }).replace(), Rs = [zle(et.node)], zt === Zle || zt === n1)
              zRt(et, R.types.cloneNode(Ut), R.types.cloneNode(Ar), Xt);
            else {
              let _i = et.node;
              t.node.body.body.unshift(R.types.classPrivateProperty(Ut, R.types.cloneNode(Ar), [], _i.static)), Pe.add(Ut.id.name), et.remove();
            }
          }
          me.push({
            kind: zt,
            decoratorsArray: ct,
            decoratorsHaveThis: tt,
            name: ms,
            isStatic: Xt,
            privateMethods: Rs,
            locals: bi
          }), et.node && (et.node.decorators = null);
        }
        if (Ae && ut.length > 0 && (p && et.isClassProperty({
          static: !0
        }) || (hT(ut, zt === Dp ? et.getNextSibling() : et), ut = [])), Pr.length > 0 && !Xt && (zt === vf || zt === Dp) && (m4(Pr, et), Pr =
        []), At.length > 0 && Xt && (zt === vf || zt === Dp) && (m4(At, et), At = []), ge && o === "2023-11" && (zt === vf || zt === Dp)) {
          let Rs = ma(T, `init_extra_${De}`);
          bi.push(Rs);
          let ms = R.types.callExpression(R.types.cloneNode(Rs), Xt ? [] : [R.types.thisExpression()]);
          Xt ? At.push(ms) : Pr.push(ms);
        }
      }
    }
    if (ut.length > 0) {
      let et = t.get("body.body"), je;
      for (let le = et.length - 1; le >= 0; le--) {
        let ge = et[le], Ae = ge.node;
        if (Ae.computed) {
          if (p && R.types.isClassProperty(Ae, {
            static: !0
          }))
            continue;
          je = ge;
          break;
        }
      }
      je != null && (MRt(ut, je), ut = []);
    }
    if (Pr.length > 0) {
      let et = !!t.node.superClass;
      he ? et ? qRt(Pr, he, E) : jRt(Pr, he) : t.node.body.body.unshift(Hle(Pr, et)), Pr = [];
    }
    At.length > 0 && (t.node.body.body.push(Jle(At)), At = []);
    let Er = HRt(me), Zr = JRt(o === "2023-11" ? me : Er, o), Ti = YRt(Er);
    E && Ti.push(E), V && Ti.push(V);
    let Oi = [], vi = !1, ea = st && R.types.callExpression(R.types.cloneNode(st), []), $o = t, jl = t.node, fo = [];
    if (p) {
      Oi.push(lt, st);
      let et = [];
      if (t.get("body.body").forEach((je) => {
        if (je.isStaticBlock()) {
          if (g4(je, ye)) {
            let le = b(QRt(je.node), "staticBlock", fo);
            At.push(R.types.callExpression(R.types.memberExpression(le, R.types.identifier("call")), [R.types.thisExpression()]));
          } else
            At.push(GRt(je.node));
          je.remove();
          return;
        }
        if ((je.isClassProperty() || je.isClassPrivateProperty()) && je.node.static) {
          let le = je.get("value");
          if (g4(le, ye)) {
            let ge = b(ZRt(le.node), "fieldValue", fo);
            le.replaceWith(R.types.callExpression(R.types.memberExpression(ge, R.types.identifier("call")), [R.types.thisExpression()]));
          }
          At.length > 0 && (m4(At, je), At = []), je.node.static = !1, et.push(je.node), je.remove();
        } else if (je.isClassPrivateMethod({
          static: !0
        })) {
          if (g4(je, ye)) {
            new Ule.default({
              constantSuper: s,
              methodPath: je,
              objectRef: lt,
              superRef: t.node.superClass,
              file: e.file,
              refToPreserve: lt
            }).replace();
            let ge = b(zle(je.node), je.get("key.id").node.name, fo);
            r ? (je.node.params = [R.types.restElement(R.types.identifier("arg"))], je.node.body = R.types.blockStatement([R.types.returnStatement(
            R.types.callExpression(R.types.memberExpression(ge, R.types.identifier("apply")), [R.types.thisExpression(), R.types.identifier(
            "arg")]))])) : (je.node.params = je.node.params.map((Ae, De) => R.types.isRestElement(Ae) ? R.types.restElement(R.types.identifier(
            "arg")) : R.types.identifier("_" + De)), je.node.body = R.types.blockStatement([R.types.returnStatement(R.types.callExpression(R.
            types.memberExpression(ge, R.types.identifier("apply")), [R.types.thisExpression(), R.types.identifier("arguments")]))]));
          }
          je.node.static = !1, et.push(je.node), je.remove();
        }
      }), et.length > 0 || At.length > 0) {
        let je = R.template.expression.ast`
        class extends ${e.addHelper("identity")} {}
      `;
        je.body.body = [R.types.classProperty(R.types.toExpression(jl), void 0, void 0, void 0, !0, !0), ...et];
        let le = [], ge = R.types.newExpression(je, []);
        At.length > 0 && le.push(...At), ea && (vi = !0, le.push(ea)), le.length > 0 ? (le.unshift(R.types.callExpression(R.types.super(), [
        R.types.cloneNode(lt)])), je.body.body.push(Hle(le, !1))) : ge.arguments.push(R.types.cloneNode(lt));
        let [Ae] = t.replaceWith(ge);
        $o = Ae.get("callee").get("body").get("body.0.key");
      }
    }
    !vi && ea && t.node.body.body.push(R.types.staticBlock([R.types.expressionStatement(ea)]));
    let {
      superClass: Ho
    } = jl;
    if (Ho && (o === "2023-11" || o === "2023-05")) {
      let et = t.scope.maybeGenerateMemoised(Ho);
      et && (jl.superClass = R.types.assignmentExpression("=", et, Ho), Ho = et);
    }
    let xc = R.types.staticBlock([]);
    jl.body.body.unshift(xc);
    let Rl = xc.body;
    if (ut.length > 0) {
      let et = $o.get("body.body"), je;
      for (let le of et)
        if ((le.isClassProperty() || le.isClassMethod()) && le.node.kind !== "constructor") {
          je = le;
          break;
        }
      je != null ? (t5t(je), hT(ut, je)) : (jl.body.body.unshift(R.types.classProperty(R.types.sequenceExpression([...ut, R.types.stringLiteral(
      "_")]), void 0, void 0, void 0, !0, !0)), Rl.push(R.types.expressionStatement(R.types.unaryExpression("delete", R.types.memberExpression(
      R.types.thisExpression(), R.types.identifier("_")))))), ut = [];
    }
    if (Rl.push(R.types.expressionStatement(i5t(Ti, Oi, Zr, (u = Wt) != null ? u : R.types.arrayExpression(Dt), R.types.numericLiteral(Pt), Jr ?
    Yt : null, oe, R.types.cloneNode(Ho), e, o))), V && Rl.push(R.types.expressionStatement(R.types.callExpression(R.types.cloneNode(V), [R.
    types.thisExpression()]))), fo.length > 0 && Rl.push(...fo.map((et) => R.types.expressionStatement(et))), t.insertBefore(y.map((et) => R.
    types.expressionStatement(et))), Ze)
      if (!T.getBinding(lt.name).constantViolations.length)
        t.insertBefore(R.types.variableDeclaration("let", [R.types.variableDeclarator(R.types.cloneNode(lt))]));
      else {
        let je = T.generateUidIdentifier("t" + lt.name), le = lt;
        t.replaceWithMultiple([R.types.variableDeclaration("let", [R.types.variableDeclarator(R.types.cloneNode(le)), R.types.variableDeclarator(
        je)]), R.types.blockStatement([R.types.variableDeclaration("let", [R.types.variableDeclarator(R.types.cloneNode(lt))]), t.node, R.types.
        expressionStatement(R.types.assignmentExpression("=", R.types.cloneNode(je), R.types.cloneNode(lt)))]), R.types.expressionStatement(
        R.types.assignmentExpression("=", R.types.cloneNode(le), R.types.cloneNode(je)))]);
      }
    return Pe.size > 0 && s5t(t, Pe), t.scope.crawl(), t;
  }
  n(r5t, "transformClass");
  function i5t(t, e, s, r, i, a, o, l, u, c) {
    let p, h, f = [o ? eue(u, o) : R.types.thisExpression(), r, s];
    {
      if (c !== "2023-11" && f.splice(1, 2, s, r), c === "2021-12" || c === "2022-03" && !u.availableHelper("applyDecs2203R"))
        return p = R.types.arrayPattern([...t, ...e]), h = R.types.callExpression(u.addHelper(c === "2021-12" ? "applyDecs" : "applyDecs2203"),
        f), R.types.assignmentExpression("=", p, h);
      c === "2022-03" ? h = R.types.callExpression(u.addHelper("applyDecs2203R"), f) : c === "2023-01" ? (a && f.push(y4(a)), h = R.types.callExpression(
      u.addHelper("applyDecs2301"), f)) : c === "2023-05" && ((a || l || i.value !== 0) && f.push(i), a ? f.push(y4(a)) : l && f.push(R.types.
      unaryExpression("void", R.types.numericLiteral(0))), l && f.push(l), h = R.types.callExpression(u.addHelper("applyDecs2305"), f));
    }
    return c === "2023-11" && ((a || l || i.value !== 0) && f.push(i), a ? f.push(y4(a)) : l && f.push(R.types.unaryExpression("void", R.types.
    numericLiteral(0))), l && f.push(l), h = R.types.callExpression(u.addHelper("applyDecs2311"), f)), t.length > 0 ? e.length > 0 ? p = R.types.
    objectPattern([R.types.objectProperty(R.types.identifier("e"), R.types.arrayPattern(t)), R.types.objectProperty(R.types.identifier("c"),
    R.types.arrayPattern(e))]) : (p = R.types.arrayPattern(t), h = R.types.memberExpression(h, R.types.identifier("e"), !1, !1)) : (p = R.types.
    arrayPattern(e), h = R.types.memberExpression(h, R.types.identifier("c"), !1, !1)), R.types.assignmentExpression("=", p, h);
  }
  n(i5t, "createLocalsAssignment");
  function n5t(t) {
    return t.type === "Identifier" ? t.name === "__proto__" : t.value === "__proto__";
  }
  n(n5t, "isProtoKey");
  function fT(t) {
    return t.decorators && t.decorators.length > 0;
  }
  n(fT, "isDecorated");
  function a5t(t) {
    switch (t.type) {
      case "ClassAccessorProperty":
        return !0;
      case "ClassMethod":
      case "ClassProperty":
      case "ClassPrivateMethod":
      case "ClassPrivateProperty":
        return fT(t);
      default:
        return !1;
    }
  }
  n(a5t, "shouldTransformElement");
  function o5t(t) {
    return fT(t) || t.body.body.some(a5t);
  }
  n(o5t, "shouldTransformClass");
  function l5t(t, e) {
    function s(r, i, a) {
      switch (i.type) {
        case "StringLiteral":
          return R.types.stringLiteral(i.value);
        case "NumericLiteral":
        case "BigIntLiteral": {
          let o = i.value + "";
          return r.get("key").replaceWith(R.types.stringLiteral(o)), R.types.stringLiteral(o);
        }
        default: {
          let o = r.scope.maybeGenerateMemoised(i);
          return r.get("key").replaceWith(R.types.assignmentExpression("=", o, T4(a, i))), R.types.cloneNode(o);
        }
      }
    }
    return n(s, "handleComputedProperty"), {
      VariableDeclarator(r, i) {
        let a = r.node.id;
        if (a.type === "Identifier") {
          let o = (0, kp.skipTransparentExprWrappers)(r.get("init"));
          if (t(o)) {
            let l = a.name;
            e(o, i, l);
          }
        }
      },
      AssignmentExpression(r, i) {
        let a = r.node.left;
        if (a.type === "Identifier") {
          let o = (0, kp.skipTransparentExprWrappers)(r.get("right"));
          if (t(o))
            switch (r.node.operator) {
              case "=":
              case "&&=":
              case "||=":
              case "??=":
                e(o, i, a.name);
            }
        }
      },
      AssignmentPattern(r, i) {
        let a = r.node.left;
        if (a.type === "Identifier") {
          let o = (0, kp.skipTransparentExprWrappers)(r.get("right"));
          if (t(o)) {
            let l = a.name;
            e(o, i, l);
          }
        }
      },
      ObjectExpression(r, i) {
        for (let a of r.get("properties")) {
          if (!a.isObjectProperty()) continue;
          let {
            node: o
          } = a, l = o.key, u = (0, kp.skipTransparentExprWrappers)(a.get("value"));
          if (t(u)) {
            if (o.computed) {
              let c = s(a, l, i);
              e(u, i, c);
            } else if (!n5t(l))
              if (l.type === "Identifier")
                e(u, i, l.name);
              else {
                let c = R.types.stringLiteral(l.value + "");
                e(u, i, c);
              }
          }
        }
      },
      ClassPrivateProperty(r, i) {
        let {
          node: a
        } = r, o = (0, kp.skipTransparentExprWrappers)(r.get("value"));
        if (t(o)) {
          let l = R.types.stringLiteral("#" + a.key.id.name);
          e(o, i, l);
        }
      },
      ClassAccessorProperty(r, i) {
        let {
          node: a
        } = r, o = a.key, l = (0, kp.skipTransparentExprWrappers)(r.get("value"));
        if (t(l))
          if (a.computed) {
            let u = s(r, o, i);
            e(l, i, u);
          } else if (o.type === "Identifier")
            e(l, i, o.name);
          else if (o.type === "PrivateName") {
            let u = R.types.stringLiteral("#" + o.id.name);
            e(l, i, u);
          } else {
            let u = R.types.stringLiteral(o.value + "");
            e(l, i, u);
          }
      },
      ClassProperty(r, i) {
        let {
          node: a
        } = r, o = a.key, l = (0, kp.skipTransparentExprWrappers)(r.get("value"));
        if (t(l))
          if (a.computed) {
            let u = s(r, o, i);
            e(l, i, u);
          } else if (o.type === "Identifier")
            e(l, i, o.name);
          else {
            let u = R.types.stringLiteral(o.value + "");
            e(l, i, u);
          }
      }
    };
  }
  n(l5t, "NamedEvaluationVisitoryFactory");
  function u5t(t) {
    return t.isClassExpression({
      id: null
    }) && o5t(t.node);
  }
  n(u5t, "isDecoratedAnonymousClassExpression");
  function ma(t, e) {
    let s = t.generateUidIdentifier(e);
    return t.push({
      id: s,
      kind: "let"
    }), R.types.cloneNode(s);
  }
  n(ma, "generateLetUidIdentifier");
  function c5t({
    assertVersion: t,
    assumption: e
  }, {
    loose: s
  }, r, i) {
    var a, o;
    t(r === "2023-11" || r === "2023-05" || r === "2023-01" ? "^7.21.0" : r === "2021-12" ? "^7.16.0" : "^7.19.0");
    let l = /* @__PURE__ */ new WeakSet(), u = (a = e("constantSuper")) != null ? a : s, c = (o = e("ignoreFunctionLength")) != null ? o : s,
    p = l5t(u5t, h);
    function h(f, d, m) {
      var y, T;
      if (l.has(f)) return;
      let {
        node: b
      } = f;
      (y = m) != null || (m = (T = b.id) == null ? void 0 : T.name);
      let E = r5t(f, d, u, c, m, p, r);
      if (E) {
        l.add(E);
        return;
      }
      l.add(f);
    }
    return n(h, "visitClass"), {
      name: "proposal-decorators",
      inherits: i,
      visitor: Object.assign({
        ExportDefaultDeclaration(f, d) {
          let {
            declaration: m
          } = f.node;
          if (m?.type === "ClassDeclaration" && fT(m)) {
            let T = !m.id;
            {
              var y;
              (y = f.splitExportDeclaration) != null || (f.splitExportDeclaration = Bo().NodePath.prototype.splitExportDeclaration);
            }
            let b = f.splitExportDeclaration();
            T && h(b, d, R.types.stringLiteral("default"));
          }
        },
        ExportNamedDeclaration(f) {
          let {
            declaration: d
          } = f.node;
          if (d?.type === "ClassDeclaration" && fT(d)) {
            {
              var m;
              (m = f.splitExportDeclaration) != null || (f.splitExportDeclaration = Bo().NodePath.prototype.splitExportDeclaration);
            }
            f.splitExportDeclaration();
          }
        },
        Class(f, d) {
          h(f, d, void 0);
        }
      }, p)
    };
  }
  n(c5t, "_default");
});

// ../node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js
var P4 = g((dT) => {
  "use strict";
  Object.defineProperty(dT, "__esModule", {
    value: !0
  });
  dT.buildDecoratedClass = g5t;
  dT.hasDecorators = h5t;
  dT.hasOwnDecorators = S4;
  var vr = ai(), p5t = cA();
  function S4(t) {
    var e;
    return !!((e = t.decorators) != null && e.length);
  }
  n(S4, "hasOwnDecorators");
  function h5t(t) {
    return S4(t) || t.body.body.some(S4);
  }
  n(h5t, "hasDecorators");
  function Qm(t, e) {
    return e ? vr.types.objectProperty(vr.types.identifier(t), e) : null;
  }
  n(Qm, "prop");
  function f5t(t, e) {
    return vr.types.objectMethod("method", vr.types.identifier(t), [], vr.types.blockStatement(e));
  }
  n(f5t, "method");
  function sue(t) {
    let e;
    return t.decorators && t.decorators.length > 0 && (e = vr.types.arrayExpression(t.decorators.map((s) => s.expression))), t.decorators = void 0,
    e;
  }
  n(sue, "takeDecorators");
  function d5t(t) {
    return t.computed ? t.key : vr.types.isIdentifier(t.key) ? vr.types.stringLiteral(t.key.name) : vr.types.stringLiteral(String(t.key.value));
  }
  n(d5t, "getKey");
  function m5t(t, e, s, r) {
    let i = r.isClassMethod();
    if (r.isPrivate())
      throw r.buildCodeFrameError(`Private ${i ? "methods" : "fields"} in decorated classes are not supported yet.`);
    if (r.node.type === "ClassAccessorProperty")
      throw r.buildCodeFrameError('Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-1\
2" } instead.');
    if (r.node.type === "StaticBlock")
      throw r.buildCodeFrameError('Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } i\
nstead.');
    let {
      node: a,
      scope: o
    } = r;
    r.isTSDeclareMethod() || new p5t.default({
      methodPath: r,
      objectRef: e,
      superRef: s,
      file: t,
      refToPreserve: e
    }).replace();
    let l = [Qm("kind", vr.types.stringLiteral(vr.types.isClassMethod(a) ? a.kind : "field")), Qm("decorators", sue(a)), Qm("static", a.static &&
    vr.types.booleanLiteral(!0)), Qm("key", d5t(a))].filter(Boolean);
    if (i) {
      {
        var u;
        (u = r.ensureFunctionName) != null || (r.ensureFunctionName = Bo().NodePath.prototype.ensureFunctionName);
      }
      r.ensureFunctionName(!1), l.push(Qm("value", vr.types.toExpression(r.node)));
    } else vr.types.isClassProperty(a) && a.value ? l.push(f5t("value", vr.template.statements.ast`return ${a.value}`)) : l.push(Qm("value",
    o.buildUndefinedNode()));
    return r.remove(), vr.types.objectExpression(l);
  }
  n(m5t, "extractElementDescriptor");
  function y5t(t) {
    return t.addHelper("decorate");
  }
  n(y5t, "addDecorateHelper");
  function g5t(t, e, s, r) {
    let {
      node: i,
      scope: a
    } = e, o = a.generateUidIdentifier("initialize"), l = i.id && e.isDeclaration(), u = e.isInStrictMode(), {
      superClass: c
    } = i;
    i.type = "ClassDeclaration", i.id || (i.id = vr.types.cloneNode(t));
    let p;
    c && (p = a.generateUidIdentifierBasedOnNode(i.superClass, "super"), i.superClass = p);
    let h = sue(i), f = vr.types.arrayExpression(s.filter((T) => !T.node.abstract && T.node.type !== "TSIndexSignature").map((T) => m5t(r, i.
    id, p, T))), d = vr.template.expression.ast`
    ${y5t(r)}(
      ${h || vr.types.nullLiteral()},
      function (${o}, ${c ? vr.types.cloneNode(p) : null}) {
        ${i}
        return { F: ${vr.types.cloneNode(i.id)}, d: ${f} };
      },
      ${c}
    )
  `;
    u || d.arguments[1].body.directives.push(vr.types.directive(vr.types.directiveLiteral("use strict")));
    let m = d, y = "arguments.1.body.body.0";
    return l && (m = vr.template.statement.ast`let ${t} = ${d}`, y = "declarations.0.init." + y), {
      instanceNodes: [vr.template.statement.ast`
        ${vr.types.cloneNode(o)}(this)
      `],
      wrapClass(T) {
        return T.replaceWith(m), T.get(y);
      }
    };
  }
  n(g5t, "buildDecoratedClass");
});

// ../node_modules/@babel/helper-create-class-features-plugin/lib/features.js
var aue = g((Cf) => {
  "use strict";
  Object.defineProperty(Cf, "__esModule", {
    value: !0
  });
  Cf.FEATURES = void 0;
  Cf.enableFeature = T5t;
  Cf.isLoose = v4;
  Cf.shouldTransform = b5t;
  var rue = P4(), Zu = Cf.FEATURES = Object.freeze({
    fields: 2,
    privateMethods: 4,
    decorators: 8,
    privateIn: 16,
    staticBlocks: 32
  }), iue = /* @__PURE__ */ new Map([[Zu.fields, "@babel/plugin-transform-class-properties"], [Zu.privateMethods, "@babel/plugin-transform-p\
rivate-methods"], [Zu.privateIn, "@babel/plugin-transform-private-property-in-object"]]), E4 = "@babel/plugin-class-features/featuresKey", mT = "\
@babel/plugin-class-features/looseKey";
  _p = "@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing";
  var _p;
  A4 = /* @__PURE__ */ n(function(t, e) {
    return !!(t.get(_p) & e);
  }, "canIgnoreLoose");
  var A4;
  function T5t(t, e, s) {
    (!ec(t, e) || A4(t, e)) && (t.set(E4, t.get(E4) | e), s === "#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-\
an-error" ? (a1(t, e, !0), t.set(_p, t.get(_p) | e)) : s === "#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-\
error" ? (a1(t, e, !1), t.set(_p, t.get(_p) | e)) : a1(t, e, s));
    let r;
    for (let [a, o] of iue) {
      if (!ec(t, a) || A4(t, a)) continue;
      let l = v4(t, a);
      if (r === !l)
        throw new Error(`'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, @babel/plugin-transform-p\
rivate-methods and @babel/plugin-transform-private-property-in-object (when they are enabled).

` + nue(t));
      r = l;
      var i = o;
    }
    if (r !== void 0)
      for (let [a, o] of iue)
        ec(t, a) && v4(t, a) !== r && (a1(t, a, r), console.warn(`Though the "loose" option was set to "${!r}" in your @babel/preset-env con\
fig, it will not be used for ${o} since the "loose" mode option was set to "${r}" for ${i}.
The "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
	["${o}", { "loose": ${r} }]
to the "plugins" section of your Babel config.

` + nue(t)));
  }
  n(T5t, "enableFeature");
  function nue(t) {
    let {
      filename: e
    } = t.opts;
    return (!e || e === "unknown") && (e = "[name of the input file]"), `If you already set the same 'loose' mode for these plugins in your \
config, it's possible that they are enabled multiple times with different options.
You can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded configuration:
	npx cross-env BABEL_SHOW_CONFIG_FOR=${e} <your build command>
See https://babeljs.io/docs/configuration#print-effective-configs for more info.`;
  }
  n(nue, "getBabelShowConfigForHint");
  function ec(t, e) {
    return !!(t.get(E4) & e);
  }
  n(ec, "hasFeature");
  function v4(t, e) {
    return !!(t.get(mT) & e);
  }
  n(v4, "isLoose");
  function a1(t, e, s) {
    s ? t.set(mT, t.get(mT) | e) : t.set(mT, t.get(mT) & ~e), t.set(_p, t.get(_p) & ~e);
  }
  n(a1, "setLoose");
  function b5t(t, e) {
    let s = null, r = null, i = null, a = null, o = null;
    (0, rue.hasOwnDecorators)(t.node) && (s = t.get("decorators.0"));
    for (let l of t.get("body.body"))
      !s && (0, rue.hasOwnDecorators)(l.node) && (s = l.get("decorators.0")), !r && l.isClassProperty() && (r = l), !i && l.isClassPrivateProperty() &&
      (i = l), !a && l.isClassPrivateMethod != null && l.isClassPrivateMethod() && (a = l), !o && l.isStaticBlock != null && l.isStaticBlock() &&
      (o = l);
    if (s && i)
      throw i.buildCodeFrameError("Private fields in decorated classes are not supported yet.");
    if (s && a)
      throw a.buildCodeFrameError("Private methods in decorated classes are not supported yet.");
    if (s && !ec(e, Zu.decorators))
      throw t.buildCodeFrameError(`Decorators are not enabled.
If 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:
	["@babel/plugin-proposal-decorators", { "version": "legacy" }]
	["@babel/plugin-transform-class-properties", { "loose": true }]`);
    if (a && !ec(e, Zu.privateMethods))
      throw a.buildCodeFrameError("Class private methods are not enabled. Please add `@babel/plugin-transform-private-methods` to your confi\
guration.");
    if ((r || i) && !ec(e, Zu.fields) && !ec(e, Zu.privateMethods))
      throw t.buildCodeFrameError("Class fields are not enabled. Please add `@babel/plugin-transform-class-properties` to your configuration\
.");
    if (o && !ec(e, Zu.staticBlocks))
      throw t.buildCodeFrameError("Static class blocks are not enabled. Please add `@babel/plugin-transform-class-static-block` to your conf\
iguration.");
    return !!(s || a || o || (r || i) && ec(e, Zu.fields));
  }
  n(b5t, "shouldTransform");
});

// ../node_modules/@babel/helper-create-class-features-plugin/lib/index.js
var oue = g((If) => {
  "use strict";
  Object.defineProperty(If, "__esModule", {
    value: !0
  });
  Object.defineProperty(If, "FEATURES", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Zm.FEATURES;
    }, "get")
  });
  Object.defineProperty(If, "buildCheckInRHS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return yT.buildCheckInRHS;
    }, "get")
  });
  If.createClassFeaturePlugin = E5t;
  Object.defineProperty(If, "enableFeature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Zm.enableFeature;
    }, "get")
  });
  Object.defineProperty(If, "injectInitialization", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return I4.injectInitialization;
    }, "get")
  });
  var C4 = ai(), x5t = tue(), S5t = Je("semver"), yT = h4(), w4 = P4(), I4 = f4(), Zm = aue(), P5t = o4(), wf = "@babel/plugin-class-feature\
s/version";
  function E5t({
    name: t,
    feature: e,
    loose: s,
    manipulateOptions: r,
    api: i,
    inherits: a,
    decoratorVersion: o
  }) {
    var l;
    if (e & Zm.FEATURES.decorators && (o === "2023-11" || o === "2023-05" || o === "2023-01" || o === "2022-03" || o === "2021-12"))
      return (0, x5t.default)(i, {
        loose: s
      }, o, a);
    {
      var u;
      (u = i) != null || (i = {
        assumption: /* @__PURE__ */ n(() => {
        }, "assumption")
      });
    }
    let c = i.assumption("setPublicClassFields"), p = i.assumption("privateFieldsAsSymbols"), h = i.assumption("privateFieldsAsProperties"),
    f = (l = i.assumption("noUninitializedPrivateFieldAccess")) != null ? l : !1, d = i.assumption("constantSuper"), m = i.assumption("noDoc\
umentAll");
    if (h && p)
      throw new Error('Cannot enable both the "privateFieldsAsProperties" and "privateFieldsAsSymbols" assumptions as the same time.');
    let y = h || p;
    if (s === !0) {
      let T = [];
      c !== void 0 && T.push('"setPublicClassFields"'), h !== void 0 && T.push('"privateFieldsAsProperties"'), p !== void 0 && T.push('"priv\
ateFieldsAsSymbols"'), T.length !== 0 && console.warn(`[${t}]: You are using the "loose: true" option and you are explicitly setting a value\
 for the ${T.join(" and ")} assumption${T.length > 1 ? "s" : ""}. The "loose" option can cause incompatibilities with the other class featur\
es plugins, so it's recommended that you replace it with the following top-level option:
	"assumptions": {
		"setPublicClassFields": true,
		"privateFieldsAsSymbols": true
	}`);
    }
    return {
      name: t,
      manipulateOptions: r,
      inherits: a,
      pre(T) {
        if ((0, Zm.enableFeature)(T, e, s), typeof T.get(wf) == "number") {
          T.set(wf, "7.25.9");
          return;
        }
        (!T.get(wf) || S5t.lt(T.get(wf), "7.25.9")) && T.set(wf, "7.25.9");
      },
      visitor: {
        Class(T, {
          file: b
        }) {
          var E;
          if (b.get(wf) !== "7.25.9" || !(0, Zm.shouldTransform)(T, b)) return;
          let V = T.isClassDeclaration();
          V && (0, P5t.assertFieldTransformed)(T);
          let W = (0, Zm.isLoose)(b, e), oe, de = (0, w4.hasDecorators)(T.node), ye = [], Oe = [], be = [], me = /* @__PURE__ */ new Set(), he = T.
          get("body");
          for (let At of he.get("body")) {
            if ((At.isClassProperty() || At.isClassMethod()) && At.node.computed && be.push(At), At.isPrivate()) {
              let {
                name: Er
              } = At.node.key.id, Zr = `get ${Er}`, Ti = `set ${Er}`;
              if (At.isClassPrivateMethod()) {
                if (At.node.kind === "get") {
                  if (me.has(Zr) || me.has(Er) && !me.has(Ti))
                    throw At.buildCodeFrameError("Duplicate private field");
                  me.add(Zr).add(Er);
                } else if (At.node.kind === "set") {
                  if (me.has(Ti) || me.has(Er) && !me.has(Zr))
                    throw At.buildCodeFrameError("Duplicate private field");
                  me.add(Ti).add(Er);
                }
              } else {
                if (me.has(Er) && !me.has(Zr) && !me.has(Ti) || me.has(Er) && (me.has(Zr) || me.has(Ti)))
                  throw At.buildCodeFrameError("Duplicate private field");
                me.add(Er);
              }
            }
            At.isClassMethod({
              kind: "constructor"
            }) ? oe = At : (Oe.push(At), (At.isProperty() || At.isPrivate() || At.isStaticBlock != null && At.isStaticBlock()) && ye.push(At));
          }
          if (!ye.length && !de) return;
          let Pe = T.node.id, st;
          if (!Pe || !V) {
            {
              var lt;
              (lt = T.ensureFunctionName) != null || (T.ensureFunctionName = Bo().NodePath.prototype.ensureFunctionName);
            }
            T.ensureFunctionName(!1), st = T.scope.generateUidIdentifier(Pe?.name || "Class");
          }
          let ke = (E = st) != null ? E : C4.types.cloneNode(Pe), Ne = (0, yT.buildPrivateNamesMap)(ke.name, y ?? W, ye, b), He = (0, yT.buildPrivateNamesNodes)(
          Ne, h ?? W, p ?? !1, b);
          (0, yT.transformPrivateNamesUsage)(ke, T, Ne, {
            privateFieldsAsProperties: y ?? W,
            noUninitializedPrivateFieldAccess: f,
            noDocumentAll: m,
            innerBinding: Pe
          }, b);
          let Ze, Pt, Dt, Wt, ut, Yt, Jr;
          de ? (Pt = ut = Ze = [], {
            instanceNodes: Dt,
            wrapClass: Jr
          } = (0, w4.buildDecoratedClass)(ke, T, Oe, b)) : (Ze = (0, I4.extractComputedKeys)(T, be, b), {
            staticNodes: Pt,
            pureStaticNodes: ut,
            instanceNodes: Dt,
            lastInstanceNodeReturnsThis: Wt,
            classBindingNode: Yt,
            wrapClass: Jr
          } = (0, yT.buildFieldsInitNodes)(st, T.node.superClass, ye, Ne, b, c ?? W, y ?? W, f, d ?? W, Pe)), Dt.length > 0 && (0, I4.injectInitialization)(
          T, oe, Dt, (At, Er) => {
            if (!de)
              for (let Zr of ye)
                C4.types.isStaticBlock != null && C4.types.isStaticBlock(Zr.node) || Zr.node.static || Zr.traverse(At, Er);
          }, Wt);
          let Pr = Jr(T);
          Pr.insertBefore([...He, ...Ze]), Pt.length > 0 && Pr.insertAfter(Pt), ut.length > 0 && Pr.find((At) => At.isStatement() || At.isDeclaration()).
          insertAfter(ut), Yt != null && V && Pr.insertAfter(Yt);
        },
        ExportDefaultDeclaration(T, {
          file: b
        }) {
          {
            if (b.get(wf) !== "7.25.9") return;
            let V = T.get("declaration");
            if (V.isClassDeclaration() && (0, w4.hasDecorators)(V.node))
              if (V.node.id) {
                {
                  var E;
                  (E = T.splitExportDeclaration) != null || (T.splitExportDeclaration = Bo().NodePath.prototype.splitExportDeclaration);
                }
                T.splitExportDeclaration();
              } else
                V.node.type = "ClassExpression";
          }
        }
      }
    };
  }
  n(E5t, "createClassFeaturePlugin");
});

// ../node_modules/@babel/plugin-transform-typescript/node_modules/@babel/helper-annotate-as-pure/lib/index.js
var lue = g((N4) => {
  "use strict";
  Object.defineProperty(N4, "__esModule", {
    value: !0
  });
  N4.default = I5t;
  var A5t = fe(), {
    addComment: v5t
  } = A5t, C5t = "#__PURE__", w5t = /* @__PURE__ */ n(({
    leadingComments: t
  }) => !!t && t.some((e) => /[@#]__PURE__/.test(e.value)), "isPureAnnotated");
  function I5t(t) {
    let e = t.node || t;
    w5t(e) || v5t(e, "leading", C5t);
  }
  n(I5t, "annotateAsPure");
});

// ../node_modules/@babel/plugin-transform-typescript/lib/enum.js
var D4 = g((o1) => {
  "use strict";
  Object.defineProperty(o1, "__esModule", {
    value: !0
  });
  o1.default = O5t;
  o1.translateEnumValues = cue;
  var ey = ai(), N5t = Je("assert"), k5t = lue(), k4 = /* @__PURE__ */ new WeakMap(), D5t = ey.template.expression(`
    (function (ID) {
      ASSIGNMENTS;
      return ID;
    })(INIT)
  `);
  function O5t(t, e) {
    let {
      node: s,
      parentPath: r
    } = t;
    if (s.declare) {
      t.remove();
      return;
    }
    let i = s.id.name, {
      fill: a,
      data: o,
      isPure: l
    } = M5t(t, e, s.id);
    switch (r.type) {
      case "BlockStatement":
      case "ExportNamedDeclaration":
      case "Program": {
        let c = e.isProgram(t.parent), p = u(r), h = e.objectExpression([]);
        (p || c) && (h = e.logicalExpression("||", e.cloneNode(a.ID), h));
        let f = D5t(Object.assign({}, a, {
          INIT: h
        }));
        l && (0, k5t.default)(f), p ? (r.isExportDeclaration() ? r : t).replaceWith(e.expressionStatement(e.assignmentExpression("=", e.cloneNode(
        s.id), f))) : t.scope.registerDeclaration(t.replaceWith(e.variableDeclaration(c ? "var" : "let", [e.variableDeclarator(s.id, f)]))[0]),
        k4.set(t.scope.getBindingIdentifier(i), o);
        break;
      }
      default:
        throw new Error(`Unexpected enum parent '${t.parent.type}`);
    }
    function u(c) {
      return c.isExportDeclaration() ? u(c.parentPath) : c.getData(i) ? !0 : (c.setData(i, !0), !1);
    }
    n(u, "seen");
  }
  n(O5t, "transpileEnum");
  var _5t = (0, ey.template)(`
  ENUM["NAME"] = VALUE;
`), L5t = (0, ey.template)(`
  ENUM[ENUM["NAME"] = VALUE] = "NAME";
`), B5t = /* @__PURE__ */ n((t, e) => (t ? _5t : L5t)(e), "buildEnumMember");
  function M5t(t, e, s) {
    let {
      enumValues: r,
      data: i,
      isPure: a
    } = cue(t, e), o = r.map(([l, u]) => B5t(e.isStringLiteral(u), {
      ENUM: e.cloneNode(s),
      NAME: l,
      VALUE: u
    }));
    return {
      fill: {
        ID: e.cloneNode(s),
        ASSIGNMENTS: o
      },
      data: i,
      isPure: a
    };
  }
  n(M5t, "enumFill");
  function uue(t, e) {
    let {
      seen: s,
      path: r,
      t: i
    } = e, a = t.node.name;
    s.has(a) && !t.scope.hasOwnBinding(a) && (t.replaceWith(i.memberExpression(i.cloneNode(r.node.id), i.cloneNode(t.node))), t.skip());
  }
  n(uue, "ReferencedIdentifier");
  var F5t = {
    ReferencedIdentifier: uue
  };
  function cue(t, e) {
    var s;
    let r = t.scope.getBindingIdentifier(t.node.id.name), i = (s = k4.get(r)) != null ? s : /* @__PURE__ */ new Map(), a = -1, o, l = !0, u = t.
    get("members").map((c) => {
      let p = c.node, h = e.isIdentifier(p.id) ? p.id.name : p.id.value, f = c.get("initializer"), d = p.initializer, m;
      if (d)
        a = pue(f, i), a !== void 0 ? (i.set(h, a), N5t(typeof a == "number" || typeof a == "string"), a === 1 / 0 || Number.isNaN(a) ? m = e.
        identifier(String(a)) : a === -1 / 0 ? m = e.unaryExpression("-", e.identifier("Infinity")) : m = e.valueToNode(a)) : (l && (l = f.isPure()),
        f.isReferencedIdentifier() ? uue(f, {
          t: e,
          seen: i,
          path: t
        }) : f.traverse(F5t, {
          t: e,
          seen: i,
          path: t
        }), m = f.node, i.set(h, void 0));
      else if (typeof a == "number")
        a += 1, m = e.numericLiteral(a), i.set(h, a);
      else {
        if (typeof a == "string")
          throw t.buildCodeFrameError("Enum member must have initializer.");
        {
          let y = e.memberExpression(e.cloneNode(t.node.id), e.stringLiteral(o), !0);
          m = e.binaryExpression("+", e.numericLiteral(1), y), i.set(h, void 0);
        }
      }
      return o = h, [h, m];
    });
    return {
      isPure: l,
      data: i,
      enumValues: u
    };
  }
  n(cue, "translateEnumValues");
  function pue(t, e, s = /* @__PURE__ */ new Set()) {
    return r(t);
    function r(l) {
      let u = l.node;
      switch (u.type) {
        case "MemberExpression":
          return i(l, e, s);
        case "StringLiteral":
          return u.value;
        case "UnaryExpression":
          return a(l);
        case "BinaryExpression":
          return o(l);
        case "NumericLiteral":
          return u.value;
        case "ParenthesizedExpression":
          return r(l.get("expression"));
        case "Identifier":
          return i(l, e, s);
        case "TemplateLiteral": {
          if (u.quasis.length === 1)
            return u.quasis[0].value.cooked;
          let c = l.get("expressions"), p = u.quasis, h = "";
          for (let f = 0; f < p.length; f++)
            if (h += p[f].value.cooked, f + 1 < p.length) {
              let d = i(c[f], e, s);
              if (d === void 0) return;
              h += d;
            }
          return h;
        }
        default:
          return;
      }
    }
    function i(l, u, c) {
      if (l.isMemberExpression()) {
        let p = l.node, h = p.object, f = p.property;
        if (!ey.types.isIdentifier(h) || (p.computed ? !ey.types.isStringLiteral(f) : !ey.types.isIdentifier(f)))
          return;
        let d = l.scope.getBindingIdentifier(h.name), m = k4.get(d);
        return m ? m.get(f.computed ? f.value : f.name) : void 0;
      } else if (l.isIdentifier()) {
        let p = l.node.name;
        if (["Infinity", "NaN"].includes(p))
          return Number(p);
        let h = u?.get(p);
        return h !== void 0 ? h : c.has(l.node) ? void 0 : (c.add(l.node), h = pue(l.resolve(), u, c), u?.set(p, h), h);
      }
    }
    function a(l) {
      let u = r(l.get("argument"));
      if (u !== void 0)
        switch (l.node.operator) {
          case "+":
            return u;
          case "-":
            return -u;
          case "~":
            return ~u;
          default:
            return;
        }
    }
    function o(l) {
      let u = r(l.get("left"));
      if (u === void 0)
        return;
      let c = r(l.get("right"));
      if (c !== void 0)
        switch (l.node.operator) {
          case "|":
            return u | c;
          case "&":
            return u & c;
          case ">>":
            return u >> c;
          case ">>>":
            return u >>> c;
          case "<<":
            return u << c;
          case "^":
            return u ^ c;
          case "*":
            return u * c;
          case "/":
            return u / c;
          case "+":
            return u + c;
          case "-":
            return u - c;
          case "%":
            return u % c;
          case "**":
            return Math.pow(u, c);
          default:
            return;
        }
    }
  }
  n(pue, "computeConstantValue");
});

// ../node_modules/@babel/plugin-transform-typescript/lib/const-enum.js
var hue = g((O4) => {
  "use strict";
  Object.defineProperty(O4, "__esModule", {
    value: !0
  });
  O4.default = R5t;
  var j5t = D4();
  function R5t(t, e) {
    let {
      name: s
    } = t.node.id, r = t.parentPath.isExportNamedDeclaration(), i = r;
    !i && e.isProgram(t.parent) && (i = t.parent.body.some((l) => e.isExportNamedDeclaration(l) && l.exportKind !== "type" && !l.source && l.
    specifiers.some((u) => e.isExportSpecifier(u) && u.exportKind !== "type" && u.local.name === s)));
    let {
      enumValues: a
    } = (0, j5t.translateEnumValues)(t, e);
    if (i) {
      let l = e.objectExpression(a.map(([u, c]) => e.objectProperty(e.isValidIdentifier(u) ? e.identifier(u) : e.stringLiteral(u), c)));
      t.scope.hasOwnBinding(s) ? (r ? t.parentPath : t).replaceWith(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier("\
Object"), e.identifier("assign")), [t.node.id, l]))) : (t.replaceWith(e.variableDeclaration("var", [e.variableDeclarator(t.node.id, l)])), t.
      scope.registerDeclaration(t));
      return;
    }
    let o = new Map(a);
    t.scope.path.traverse({
      Scope(l) {
        l.scope.hasOwnBinding(s) && l.skip();
      },
      MemberExpression(l) {
        if (!e.isIdentifier(l.node.object, {
          name: s
        })) return;
        let u;
        if (l.node.computed)
          if (e.isStringLiteral(l.node.property))
            u = l.node.property.value;
          else
            return;
        else if (e.isIdentifier(l.node.property))
          u = l.node.property.name;
        else
          return;
        o.has(u) && l.replaceWith(e.cloneNode(o.get(u)));
      }
    }), t.remove();
  }
  n(R5t, "transpileConstEnum");
});

// ../node_modules/@babel/plugin-transform-typescript/lib/global-types.js
var _4 = g((ty) => {
  "use strict";
  Object.defineProperty(ty, "__esModule", {
    value: !0
  });
  ty.GLOBAL_TYPES = void 0;
  ty.isGlobalType = q5t;
  ty.registerGlobalType = U5t;
  var fue = ty.GLOBAL_TYPES = /* @__PURE__ */ new WeakMap();
  function q5t({
    scope: t
  }, e) {
    return t.hasBinding(e) ? !1 : fue.get(t).has(e) ? !0 : (console.warn(`The exported identifier "${e}" is not declared in Babel's scope tr\
acker
as a JavaScript value binding, and "@babel/plugin-transform-typescript"
never encountered it as a TypeScript type declaration.
It will be treated as a JavaScript value.

This problem is likely caused by another plugin injecting
"${e}" without registering it in the scope tracker. If you are the author
 of that plugin, please use "scope.registerDeclaration(declarationPath)".`), !1);
  }
  n(q5t, "isGlobalType");
  function U5t(t, e) {
    fue.get(t).add(e);
  }
  n(U5t, "registerGlobalType");
});

// ../node_modules/@babel/plugin-transform-typescript/lib/namespace.js
var mue = g((F4) => {
  "use strict";
  Object.defineProperty(F4, "__esModule", {
    value: !0
  });
  F4.default = V5t;
  var Us = ai(), K5t = _4();
  function V5t(t, e) {
    if (t.node.declare || t.node.id.type === "StringLiteral") {
      t.remove();
      return;
    }
    if (!e)
      throw t.get("id").buildCodeFrameError("Namespace not marked type-only declare. Non-declarative namespaces are only supported experimen\
tally in Babel. To enable and review caveats see: https://babeljs.io/docs/en/babel-plugin-transform-typescript");
    let s = t.node.id.name, r = M4(t, Us.types.cloneNode(t.node, !0));
    if (r === null) {
      let i = t.findParent((a) => a.isProgram());
      (0, K5t.registerGlobalType)(i.scope, s), t.remove();
    } else t.scope.hasOwnBinding(s) ? t.replaceWith(r) : t.scope.registerDeclaration(t.replaceWithMultiple([L4(s), r])[0]);
  }
  n(V5t, "transpileNamespace");
  function L4(t) {
    return Us.types.variableDeclaration("let", [Us.types.variableDeclarator(Us.types.identifier(t))]);
  }
  n(L4, "getDeclaration");
  function B4(t, e) {
    return Us.types.memberExpression(Us.types.identifier(t), Us.types.identifier(e));
  }
  n(B4, "getMemberExpression");
  function W5t(t, e, s) {
    if (t.kind !== "const")
      throw s.file.buildCodeFrameError(t, "Namespaces exporting non-const are not supported by Babel. Change to const or see: https://babelj\
s.io/docs/en/babel-plugin-transform-typescript");
    let {
      declarations: r
    } = t;
    if (r.every((o) => Us.types.isIdentifier(o.id))) {
      for (let o of r)
        o.init = Us.types.assignmentExpression("=", B4(e, o.id.name), o.init);
      return [t];
    }
    let i = Us.types.getBindingIdentifiers(t), a = [];
    for (let o in i)
      a.push(Us.types.assignmentExpression("=", B4(e, o), Us.types.cloneNode(i[o])));
    return [t, Us.types.expressionStatement(Us.types.sequenceExpression(a))];
  }
  n(W5t, "handleVariableDeclaration");
  function due(t, e) {
    return t.hub.buildError(e, "Ambient modules cannot be nested in other modules or namespaces.", Error);
  }
  n(due, "buildNestedAmbientModuleError");
  function M4(t, e, s) {
    let r = /* @__PURE__ */ new Set(), i = e.id;
    Us.types.assertIdentifier(i);
    let a = t.scope.generateUid(i.name), o = Us.types.isTSModuleBlock(e.body) ? e.body.body : [Us.types.exportNamedDeclaration(e.body)], l = !0;
    for (let c = 0; c < o.length; c++) {
      let p = o[c];
      switch (p.type) {
        case "TSModuleDeclaration": {
          if (!Us.types.isIdentifier(p.id))
            throw due(t, p);
          let h = M4(t, p);
          if (h !== null) {
            l = !1;
            let f = p.id.name;
            r.has(f) ? o[c] = h : (r.add(f), o.splice(c++, 1, L4(f), h));
          }
          continue;
        }
        case "TSEnumDeclaration":
        case "FunctionDeclaration":
        case "ClassDeclaration":
          l = !1, r.add(p.id.name);
          continue;
        case "VariableDeclaration": {
          l = !1;
          for (let h in Us.types.getBindingIdentifiers(p))
            r.add(h);
          continue;
        }
        default:
          l && (l = Us.types.isTypeScript(p));
          continue;
        case "ExportNamedDeclaration":
      }
      if (!("declare" in p.declaration && p.declaration.declare))
        switch (p.declaration.type) {
          case "TSEnumDeclaration":
          case "FunctionDeclaration":
          case "ClassDeclaration": {
            l = !1;
            let h = p.declaration.id.name;
            r.add(h), o.splice(c++, 1, p.declaration, Us.types.expressionStatement(Us.types.assignmentExpression("=", B4(a, h), Us.types.identifier(
            h))));
            break;
          }
          case "VariableDeclaration": {
            l = !1;
            let h = W5t(p.declaration, a, t.hub);
            o.splice(c, h.length, ...h), c += h.length - 1;
            break;
          }
          case "TSModuleDeclaration": {
            if (!Us.types.isIdentifier(p.declaration.id))
              throw due(t, p.declaration);
            let h = M4(t, p.declaration, Us.types.identifier(a));
            if (h !== null) {
              l = !1;
              let f = p.declaration.id.name;
              r.has(f) ? o[c] = h : (r.add(f), o.splice(c++, 1, L4(f), h));
            } else
              o.splice(c, 1), c--;
          }
        }
    }
    if (l) return null;
    let u = Us.types.objectExpression([]);
    if (s) {
      let c = Us.types.memberExpression(s, i);
      u = Us.template.expression.ast`
      ${Us.types.cloneNode(c)} ||
        (${Us.types.cloneNode(c)} = ${u})
    `;
    }
    return Us.template.statement.ast`
    (function (${Us.types.identifier(a)}) {
      ${o}
    })(${i} || (${Us.types.cloneNode(i)} = ${u}));
  `;
  }
  n(M4, "handleNested");
});

// ../node_modules/@babel/plugin-transform-typescript/lib/index.js
var Tue = g((u1) => {
  "use strict";
  Object.defineProperty(u1, "__esModule", {
    value: !0
  });
  u1.default = void 0;
  var $5t = dm(), H5t = $ee(), J5t = oue(), Y5t = hue(), X5t = D4(), tc = _4(), z5t = mue();
  function G5t(t) {
    switch (t.parent.type) {
      case "TSTypeReference":
      case "TSExpressionWithTypeArguments":
      case "TSTypeQuery":
        return !0;
      case "TSQualifiedName":
        return t.parentPath.findParent((e) => e.type !== "TSQualifiedName").type !== "TSImportEqualsDeclaration";
      case "ExportSpecifier":
        return t.parent.exportKind === "type" || t.parentPath.parent.exportKind === "type";
      default:
        return !1;
    }
  }
  n(G5t, "isInType");
  var Za = /* @__PURE__ */ new WeakMap(), yue = /* @__PURE__ */ new WeakSet();
  function l1(t) {
    let e = t.getBindingIdentifiers();
    for (let s of Object.keys(e)) {
      let r = t.scope.getBinding(s);
      r && r.identifier === e[s] && r.scope.removeBinding(s);
    }
    t.opts.noScope = !0, t.remove(), t.opts.noScope = !1;
  }
  n(l1, "safeRemove");
  function gue(t, e, s, r, i = "") {
    if (e.file.get("@babel/plugin-transform-modules-*") !== "commonjs")
      throw t.buildCodeFrameError(`\`${s}\` is only supported when compiling modules to CommonJS.
Please consider using \`${r}\`${i}, or add @babel/plugin-transform-modules-commonjs to your Babel config.`);
  }
  n(gue, "assertCjsTransformEnabled");
  var sGs = u1.default = (0, $5t.declare)((t, e) => {
    let {
      types: s,
      template: r
    } = t;
    t.assertVersion(7);
    let i = /\*?\s*@jsx((?:Frag)?)\s+([^\s]+)/, {
      allowNamespaces: a = !0,
      jsxPragma: o = "React.createElement",
      jsxPragmaFrag: l = "React.Fragment",
      onlyRemoveTypeImports: u = !1,
      optimizeConstEnums: c = !1
    } = e;
    var {
      allowDeclareFields: p = !1
    } = e;
    let h = {
      field(y) {
        let {
          node: T
        } = y;
        if (!p && T.declare)
          throw y.buildCodeFrameError("The 'declare' modifier is only allowed when the 'allowDeclareFields' option of @babel/plugin-transfor\
m-typescript or @babel/preset-typescript is enabled.");
        if (T.declare) {
          if (T.value)
            throw y.buildCodeFrameError("Fields with the 'declare' modifier cannot be initialized here, but only in the constructor");
          T.decorators || y.remove();
        } else if (T.definite) {
          if (T.value)
            throw y.buildCodeFrameError("Definitely assigned fields cannot be initialized here, but only in the constructor");
          !p && !T.decorators && !s.isClassPrivateProperty(T) && y.remove();
        } else (T.abstract || !p && !T.value && !T.decorators && !s.isClassPrivateProperty(T)) && y.remove();
        T.accessibility && (T.accessibility = null), T.abstract && (T.abstract = null), T.readonly && (T.readonly = null), T.optional && (T.
        optional = null), T.typeAnnotation && (T.typeAnnotation = null), T.definite && (T.definite = null), T.declare && (T.declare = null),
        T.override && (T.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, T) {
        y.node.accessibility && (y.node.accessibility = null);
        let b = [], {
          scope: E
        } = y;
        for (let V of y.get("params")) {
          let W = V.node;
          if (W.type === "TSParameterProperty") {
            let oe = W.parameter;
            if (yue.has(oe)) continue;
            yue.add(oe);
            let de;
            if (s.isIdentifier(oe))
              de = oe;
            else if (s.isAssignmentPattern(oe) && s.isIdentifier(oe.left))
              de = oe.left;
            else
              throw V.buildCodeFrameError("Parameter properties can not be destructuring patterns.");
            b.push(r.statement.ast`
              this.${s.cloneNode(de)} = ${s.cloneNode(de)}
            `), V.replaceWith(V.get("parameter")), E.registerBinding("param", V);
          }
        }
        (0, J5t.injectInitialization)(T, y, b);
      }
    };
    return {
      name: "transform-typescript",
      inherits: H5t.default,
      visitor: {
        Pattern: d,
        Identifier: d,
        RestElement: d,
        Program: {
          enter(y, T) {
            let {
              file: b
            } = T, E = null, V = null, W = y.scope;
            if (tc.GLOBAL_TYPES.has(W) || tc.GLOBAL_TYPES.set(W, /* @__PURE__ */ new Set()), b.ast.comments)
              for (let ye of b.ast.comments) {
                let Oe = i.exec(ye.value);
                Oe && (Oe[1] ? V = Oe[2] : E = Oe[2]);
              }
            let oe = E || o;
            oe && ([oe] = oe.split("."));
            let de = V || l;
            de && ([de] = de.split("."));
            for (let ye of y.get("body")) {
              if (ye.isImportDeclaration()) {
                if (Za.has(T.file.ast.program) || Za.set(T.file.ast.program, !0), ye.node.importKind === "type") {
                  for (let he of ye.node.specifiers)
                    (0, tc.registerGlobalType)(W, he.local.name);
                  ye.remove();
                  continue;
                }
                let Oe = /* @__PURE__ */ new Set(), be = ye.node.specifiers.length, me = /* @__PURE__ */ n(() => be > 0 && be === Oe.size, "\
isAllSpecifiersElided");
                for (let he of ye.node.specifiers)
                  if (he.type === "ImportSpecifier" && he.importKind === "type") {
                    (0, tc.registerGlobalType)(W, he.local.name);
                    let Pe = ye.scope.getBinding(he.local.name);
                    Pe && Oe.add(Pe.path);
                  }
                if (u)
                  Za.set(y.node, !1);
                else {
                  if (ye.node.specifiers.length === 0) {
                    Za.set(y.node, !1);
                    continue;
                  }
                  for (let he of ye.node.specifiers) {
                    let Pe = ye.scope.getBinding(he.local.name);
                    Pe && !Oe.has(Pe.path) && (m({
                      binding: Pe,
                      programPath: y,
                      pragmaImportName: oe,
                      pragmaFragImportName: de
                    }) ? Oe.add(Pe.path) : Za.set(y.node, !1));
                  }
                }
                if (me() && !u)
                  ye.remove();
                else
                  for (let he of Oe)
                    he.remove();
                continue;
              }
              if (ye.isExportDeclaration() && (ye = ye.get("declaration")), ye.isVariableDeclaration({
                declare: !0
              }))
                for (let Oe of Object.keys(ye.getBindingIdentifiers()))
                  (0, tc.registerGlobalType)(W, Oe);
              else (ye.isTSTypeAliasDeclaration() || ye.isTSDeclareFunction() && ye.get("id").isIdentifier() || ye.isTSInterfaceDeclaration() ||
              ye.isClassDeclaration({
                declare: !0
              }) || ye.isTSEnumDeclaration({
                declare: !0
              }) || ye.isTSModuleDeclaration({
                declare: !0
              }) && ye.get("id").isIdentifier()) && (0, tc.registerGlobalType)(W, ye.node.id.name);
            }
          },
          exit(y) {
            y.node.sourceType === "module" && Za.get(y.node) && y.pushContainer("body", s.exportNamedDeclaration());
          }
        },
        ExportNamedDeclaration(y, T) {
          if (Za.has(T.file.ast.program) || Za.set(T.file.ast.program, !0), y.node.exportKind === "type") {
            y.remove();
            return;
          }
          if (y.node.source && y.node.specifiers.length > 0 && y.node.specifiers.every((b) => b.type === "ExportSpecifier" && b.exportKind ===
          "type")) {
            y.remove();
            return;
          }
          if (!y.node.source && y.node.specifiers.length > 0 && y.node.specifiers.every((b) => s.isExportSpecifier(b) && (0, tc.isGlobalType)(
          y, b.local.name))) {
            y.remove();
            return;
          }
          if (s.isTSModuleDeclaration(y.node.declaration)) {
            let b = y.node.declaration, {
              id: E
            } = b;
            if (s.isIdentifier(E))
              if (y.scope.hasOwnBinding(E.name))
                y.replaceWith(b);
              else {
                let [V] = y.replaceWithMultiple([s.exportNamedDeclaration(s.variableDeclaration("let", [s.variableDeclarator(s.cloneNode(E))])),
                b]);
                y.scope.registerDeclaration(V);
              }
          }
          Za.set(T.file.ast.program, !1);
        },
        ExportAllDeclaration(y) {
          y.node.exportKind === "type" && y.remove();
        },
        ExportSpecifier(y) {
          (!y.parent.source && (0, tc.isGlobalType)(y, y.node.local.name) || y.node.exportKind === "type") && y.remove();
        },
        ExportDefaultDeclaration(y, T) {
          if (Za.has(T.file.ast.program) || Za.set(T.file.ast.program, !0), s.isIdentifier(y.node.declaration) && (0, tc.isGlobalType)(y, y.
          node.declaration.name)) {
            y.remove();
            return;
          }
          Za.set(T.file.ast.program, !1);
        },
        TSDeclareFunction(y) {
          l1(y);
        },
        TSDeclareMethod(y) {
          l1(y);
        },
        VariableDeclaration(y) {
          y.node.declare && l1(y);
        },
        VariableDeclarator({
          node: y
        }) {
          y.definite && (y.definite = null);
        },
        TSIndexSignature(y) {
          y.remove();
        },
        ClassDeclaration(y) {
          let {
            node: T
          } = y;
          T.declare && l1(y);
        },
        Class(y) {
          let {
            node: T
          } = y;
          T.typeParameters && (T.typeParameters = null), T.superTypeParameters && (T.superTypeParameters = null), T.implements && (T.implements =
          null), T.abstract && (T.abstract = null), y.get("body.body").forEach((b) => {
            b.isClassMethod() || b.isClassPrivateMethod() ? b.node.kind === "constructor" ? h.constructor(b, y) : h.method(b) : (b.isClassProperty() ||
            b.isClassPrivateProperty() || b.isClassAccessorProperty()) && h.field(b);
          });
        },
        Function(y) {
          let {
            node: T
          } = y;
          T.typeParameters && (T.typeParameters = null), T.returnType && (T.returnType = null);
          let b = T.params;
          b.length > 0 && s.isIdentifier(b[0], {
            name: "this"
          }) && b.shift();
        },
        TSModuleDeclaration(y) {
          (0, z5t.default)(y, a);
        },
        TSInterfaceDeclaration(y) {
          y.remove();
        },
        TSTypeAliasDeclaration(y) {
          y.remove();
        },
        TSEnumDeclaration(y) {
          c && y.node.const ? (0, Y5t.default)(y, s) : (0, X5t.default)(y, s);
        },
        TSImportEqualsDeclaration(y, T) {
          let {
            id: b,
            moduleReference: E
          } = y.node, V, W;
          s.isTSExternalModuleReference(E) ? (gue(y, T, `import ${b.name} = require(...);`, `import ${b.name} from '...';`, " alongside Type\
script's --allowSyntheticDefaultImports option"), V = s.callExpression(s.identifier("require"), [E.expression]), W = "const") : (V = f(E), W =
          "var"), y.replaceWith(s.variableDeclaration(W, [s.variableDeclarator(b, V)])), y.scope.registerDeclaration(y);
        },
        TSExportAssignment(y, T) {
          gue(y, T, "export = <value>;", "export default <value>;"), y.replaceWith(r.statement.ast`module.exports = ${y.node.expression}`);
        },
        TSTypeAssertion(y) {
          y.replaceWith(y.node.expression);
        },
        [`TSAsExpression${s.tsSatisfiesExpression ? "|TSSatisfiesExpression" : ""}`](y) {
          let {
            node: T
          } = y;
          do
            T = T.expression;
          while (s.isTSAsExpression(T) || s.isTSSatisfiesExpression != null && s.isTSSatisfiesExpression(T));
          y.replaceWith(T);
        },
        [t.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 f(y) {
      return s.isTSQualifiedName(y) ? s.memberExpression(f(y.left), y.right) : y;
    }
    function d({
      node: y
    }) {
      y.typeAnnotation && (y.typeAnnotation = null), s.isIdentifier(y) && y.optional && (y.optional = null);
    }
    function m({
      binding: y,
      programPath: T,
      pragmaImportName: b,
      pragmaFragImportName: E
    }) {
      for (let W of y.referencePaths)
        if (!G5t(W))
          return !1;
      if (y.identifier.name !== b && y.identifier.name !== E)
        return !0;
      let V = !1;
      return T.traverse({
        "JSXElement|JSXFragment"(W) {
          V = !0, W.stop();
        }
      }), !V;
    }
  });
});

// ../node_modules/@babel/plugin-syntax-jsx/lib/index.js
var bue = g((c1) => {
  "use strict";
  Object.defineProperty(c1, "__esModule", {
    value: !0
  });
  c1.default = void 0;
  var Q5t = dm(), nGs = c1.default = (0, Q5t.declare)((t) => (t.assertVersion(7), {
    name: "syntax-jsx",
    manipulateOptions(e, s) {
      s.plugins.some((r) => (Array.isArray(r) ? r[0] : r) === "typescript") || s.plugins.push("jsx");
    }
  }));
});

// ../node_modules/@babel/plugin-transform-modules-commonjs/lib/dynamic-import.js
var Pue = g((j4) => {
  "use strict";
  Object.defineProperty(j4, "__esModule", {
    value: !0
  });
  j4.transformDynamicImport = t9t;
  var xue = ai(), Z5t = Qg(), Sue = /* @__PURE__ */ n((t) => xue.template.expression.ast`require(${t})`, "requireNoInterop"), e9t = /* @__PURE__ */ n(
  (t, e) => xue.types.callExpression(e.addHelper("interopRequireWildcard"), [Sue(t)]), "requireInterop");
  function t9t(t, e, s) {
    let r = e ? Sue : e9t;
    t.replaceWith((0, Z5t.buildDynamicImport)(t.node, !0, !1, (i) => r(i, s)));
  }
  n(t9t, "transformDynamicImport");
});

// ../node_modules/@babel/plugin-transform-modules-commonjs/lib/lazy.js
var Aue = g((p1) => {
  "use strict";
  Object.defineProperty(p1, "__esModule", {
    value: !0
  });
  p1.lazyImportsHook = void 0;
  var Eue = ai(), s9t = Qg(), r9t = /* @__PURE__ */ n((t) => ({
    name: "@babel/plugin-transform-modules-commonjs/lazy",
    version: "7.26.3",
    getWrapperPayload(e, s) {
      if ((0, s9t.isSideEffectImport)(s) || s.reexportAll)
        return null;
      if (t === !0)
        return e.includes(".") ? null : "lazy/function";
      if (Array.isArray(t))
        return t.includes(e) ? "lazy/function" : null;
      if (typeof t == "function")
        return t(e) ? "lazy/function" : null;
    },
    buildRequireWrapper(e, s, r, i) {
      if (r === "lazy/function")
        return i ? Eue.template.statement.ast`
        function ${e}() {
          const data = ${s};
          ${e} = function(){ return data; };
          return data;
        }
      ` : !1;
    },
    wrapReference(e, s) {
      if (s === "lazy/function") return Eue.types.callExpression(e, []);
    }
  }), "lazyImportsHook");
  p1.lazyImportsHook = r9t;
});

// ../node_modules/@babel/plugin-transform-modules-commonjs/lib/hooks.js
var vue = g((h1) => {
  "use strict";
  Object.defineProperty(h1, "__esModule", {
    value: !0
  });
  h1.defineCommonJSHook = i9t;
  h1.makeInvokers = n9t;
  var q4 = "@babel/plugin-transform-modules-commonjs/customWrapperPlugin";
  function i9t(t, e) {
    let s = t.get(q4);
    s || t.set(q4, s = []), s.push(e);
  }
  n(i9t, "defineCommonJSHook");
  function R4(t, e) {
    if (t)
      for (let s of t) {
        let r = e(s);
        if (r != null) return r;
      }
  }
  n(R4, "findMap");
  function n9t(t) {
    let e = t.get(q4);
    return {
      getWrapperPayload(...s) {
        return R4(e, (r) => r.getWrapperPayload == null ? void 0 : r.getWrapperPayload(...s));
      },
      wrapReference(...s) {
        return R4(e, (r) => r.wrapReference == null ? void 0 : r.wrapReference(...s));
      },
      buildRequireWrapper(...s) {
        return R4(e, (r) => r.buildRequireWrapper == null ? void 0 : r.buildRequireWrapper(...s));
      }
    };
  }
  n(n9t, "makeInvokers");
});

// ../node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js
var Cue = g((gT) => {
  "use strict";
  Object.defineProperty(gT, "__esModule", {
    value: !0
  });
  gT.default = void 0;
  Object.defineProperty(gT, "defineCommonJSHook", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return U4.defineCommonJSHook;
    }, "get")
  });
  var a9t = dm(), Nf = Qg(), jo = ai(), o9t = Pue(), l9t = Aue(), U4 = vue(), fGs = gT.default = (0, a9t.declare)((t, e) => {
    var s, r, i;
    t.assertVersion(7);
    let {
      strictNamespace: a = !1,
      mjsStrictNamespace: o = a,
      allowTopLevelThis: l,
      strict: u,
      strictMode: c,
      noInterop: p,
      importInterop: h,
      lazy: f = !1,
      allowCommonJSExports: d = !0,
      loose: m = !1
    } = e, y = (s = t.assumption("constantReexports")) != null ? s : m, T = (r = t.assumption("enumerableModuleMeta")) != null ? r : m, b = (i =
    t.assumption("noIncompleteNsImportDetection")) != null ? i : !1;
    if (typeof f != "boolean" && typeof f != "function" && (!Array.isArray(f) || !f.every((W) => typeof W == "string")))
      throw new Error(".lazy must be a boolean, array of strings, or a function");
    if (typeof a != "boolean")
      throw new Error(".strictNamespace must be a boolean, or undefined");
    if (typeof o != "boolean")
      throw new Error(".mjsStrictNamespace must be a boolean, or undefined");
    let E = /* @__PURE__ */ n((W) => jo.template.expression.ast`
    (function(){
      throw new Error(
        "The CommonJS '" + "${W}" + "' variable is not available in ES6 modules." +
        "Consider setting setting sourceType:script or sourceType:unambiguous in your " +
        "Babel config for this file.");
    })()
  `, "getAssertion"), V = {
      ReferencedIdentifier(W) {
        let oe = W.node.name;
        if (oe !== "module" && oe !== "exports") return;
        let de = W.scope.getBinding(oe);
        this.scope.getBinding(oe) !== de || W.parentPath.isObjectProperty({
          value: W.node
        }) && W.parentPath.parentPath.isObjectPattern() || W.parentPath.isAssignmentExpression({
          left: W.node
        }) || W.isAssignmentExpression({
          left: W.node
        }) || W.replaceWith(E(oe));
      },
      UpdateExpression(W) {
        let oe = W.get("argument");
        if (!oe.isIdentifier()) return;
        let de = oe.node.name;
        if (de !== "module" && de !== "exports") return;
        let ye = W.scope.getBinding(de);
        this.scope.getBinding(de) === ye && W.replaceWith(jo.types.assignmentExpression(W.node.operator[0] + "=", oe.node, E(de)));
      },
      AssignmentExpression(W) {
        let oe = W.get("left");
        if (oe.isIdentifier()) {
          let de = oe.node.name;
          if (de !== "module" && de !== "exports") return;
          let ye = W.scope.getBinding(de);
          if (this.scope.getBinding(de) !== ye) return;
          let be = W.get("right");
          be.replaceWith(jo.types.sequenceExpression([be.node, E(de)]));
        } else if (oe.isPattern()) {
          let de = oe.getOuterBindingIdentifiers(), ye = Object.keys(de).find((Oe) => Oe !== "module" && Oe !== "exports" ? !1 : this.scope.
          getBinding(Oe) === W.scope.getBinding(Oe));
          if (ye) {
            let Oe = W.get("right");
            Oe.replaceWith(jo.types.sequenceExpression([Oe.node, E(ye)]));
          }
        }
      }
    };
    return {
      name: "transform-modules-commonjs",
      pre() {
        this.file.set("@babel/plugin-transform-modules-*", "commonjs"), f && (0, U4.defineCommonJSHook)(this.file, (0, l9t.lazyImportsHook)(
        f));
      },
      visitor: {
        ["CallExpression" + (t.types.importExpression ? "|ImportExpression" : "")](W) {
          if (!this.file.has("@babel/plugin-proposal-dynamic-import") || W.isCallExpression() && !jo.types.isImport(W.node.callee)) return;
          let {
            scope: oe
          } = W;
          do
            oe.rename("require");
          while (oe = oe.parent);
          (0, o9t.transformDynamicImport)(W, p, this.file);
        },
        Program: {
          exit(W, oe) {
            if (!(0, Nf.isModule)(W)) return;
            W.scope.rename("exports"), W.scope.rename("module"), W.scope.rename("require"), W.scope.rename("__filename"), W.scope.rename("__\
dirname"), d || W.traverse(V, {
              scope: W.scope
            });
            let de = (0, Nf.getModuleName)(this.file.opts, e);
            de && (de = jo.types.stringLiteral(de));
            let ye = (0, U4.makeInvokers)(this.file), {
              meta: Oe,
              headers: be
            } = (0, Nf.rewriteModuleStatementsAndPrepareHeader)(W, {
              exportName: "exports",
              constantReexports: y,
              enumerableModuleMeta: T,
              strict: u,
              strictMode: c,
              allowTopLevelThis: l,
              noInterop: p,
              importInterop: h,
              wrapReference: ye.wrapReference,
              getWrapperPayload: ye.getWrapperPayload,
              esNamespaceOnly: typeof oe.filename == "string" && /\.mjs$/.test(oe.filename) ? o : a,
              noIncompleteNsImportDetection: b,
              filename: this.file.opts.filename
            });
            for (let [he, Pe] of Oe.source) {
              let st = jo.types.callExpression(jo.types.identifier("require"), [jo.types.stringLiteral(he)]), lt;
              if ((0, Nf.isSideEffectImport)(Pe)) {
                if (f && Pe.wrap === "function")
                  throw new Error("Assertion failure");
                lt = jo.types.expressionStatement(st);
              } else {
                var me;
                let ke = (0, Nf.wrapInterop)(W, st, Pe.interop) || st;
                if (Pe.wrap) {
                  let Ne = ye.buildRequireWrapper(Pe.name, ke, Pe.wrap, Pe.referenced);
                  if (Ne === !1) continue;
                  lt = Ne;
                }
                (me = lt) != null || (lt = jo.template.statement.ast`
                var ${Pe.name} = ${ke};
              `);
              }
              lt.loc = Pe.loc, be.push(lt), be.push(...(0, Nf.buildNamespaceInitStatements)(Oe, Pe, y, ye.wrapReference));
            }
            (0, Nf.ensureStatementsHoisted)(be), W.unshiftContainer("body", be), W.get("body").forEach((he) => {
              be.includes(he.node) && he.isVariableDeclaration() && he.scope.registerDeclaration(he);
            });
          }
        }
      }
    };
  });
});

// ../node_modules/@babel/preset-typescript/lib/index.js
var kue = g((K4) => {
  "use strict";
  Object.defineProperty(K4, "__esModule", { value: !0 });
  var Iue = dm(), u9t = Tue();
  bue();
  var c9t = Cue(), p9t = jP();
  function Nue(t) {
    return t && t.__esModule ? t : { default: t };
  }
  n(Nue, "_interopDefault");
  var wue = /* @__PURE__ */ Nue(u9t), h9t = /* @__PURE__ */ Nue(c9t), sc = new p9t.OptionValidator("@babel/preset-typescript");
  function f9t(t = {}) {
    let {
      allowNamespaces: e = !0,
      jsxPragma: s,
      onlyRemoveTypeImports: r
    } = t, i = {
      ignoreExtensions: "ignoreExtensions",
      allowNamespaces: "allowNamespaces",
      disallowAmbiguousJSXLike: "disallowAmbiguousJSXLike",
      jsxPragma: "jsxPragma",
      jsxPragmaFrag: "jsxPragmaFrag",
      onlyRemoveTypeImports: "onlyRemoveTypeImports",
      optimizeConstEnums: "optimizeConstEnums",
      rewriteImportExtensions: "rewriteImportExtensions",
      allExtensions: "allExtensions",
      isTSX: "isTSX"
    }, a = sc.validateStringOption(i.jsxPragmaFrag, t.jsxPragmaFrag, "React.Fragment");
    {
      var o = sc.validateBooleanOption(i.allExtensions, t.allExtensions, !1), l = sc.validateBooleanOption(i.isTSX, t.isTSX, !1);
      l && sc.invariant(o, "isTSX:true requires allExtensions:true");
    }
    let u = sc.validateBooleanOption(i.ignoreExtensions, t.ignoreExtensions, !1), c = sc.validateBooleanOption(i.disallowAmbiguousJSXLike, t.
    disallowAmbiguousJSXLike, !1);
    c && sc.invariant(o, "disallowAmbiguousJSXLike:true requires allExtensions:true");
    let p = sc.validateBooleanOption(i.optimizeConstEnums, t.optimizeConstEnums, !1), h = sc.validateBooleanOption(i.rewriteImportExtensions,
    t.rewriteImportExtensions, !1), f = {
      ignoreExtensions: u,
      allowNamespaces: e,
      disallowAmbiguousJSXLike: c,
      jsxPragma: s,
      jsxPragmaFrag: a,
      onlyRemoveTypeImports: r,
      optimizeConstEnums: p,
      rewriteImportExtensions: h
    };
    return f.allExtensions = o, f.isTSX = l, f;
  }
  n(f9t, "normalizeOptions");
  var d9t = Iue.declare(function({
    types: t
  }) {
    return {
      name: "preset-typescript/plugin-rewrite-ts-imports",
      visitor: {
        "ImportDeclaration|ExportAllDeclaration|ExportNamedDeclaration"({
          node: e
        }) {
          let {
            source: s
          } = e;
          (t.isImportDeclaration(e) ? e.importKind : e.exportKind) === "value" && s && /[\\/]/.test(s.value) && (s.value = s.value.replace(/(\.[mc]?)ts$/,
          "$1js").replace(/\.tsx$/, ".js"));
        }
      }
    };
  }), m9t = Iue.declarePreset((t, e) => {
    t.assertVersion(7);
    let {
      allExtensions: s,
      ignoreExtensions: r,
      allowNamespaces: i,
      disallowAmbiguousJSXLike: a,
      isTSX: o,
      jsxPragma: l,
      jsxPragmaFrag: u,
      onlyRemoveTypeImports: c,
      optimizeConstEnums: p,
      rewriteImportExtensions: h
    } = f9t(e), f = /* @__PURE__ */ n((y) => ({
      allowDeclareFields: e.allowDeclareFields,
      allowNamespaces: i,
      disallowAmbiguousJSXLike: y,
      jsxPragma: l,
      jsxPragmaFrag: u,
      onlyRemoveTypeImports: c,
      optimizeConstEnums: p
    }), "pluginOptions"), d = /* @__PURE__ */ n((y, T) => [[wue.default, Object.assign({
      isTSX: y
    }, f(T))]], "getPlugins");
    return {
      plugins: h ? [d9t] : [],
      overrides: s || r ? [{
        plugins: d(o, a)
      }] : [{
        test: /\.ts$/,
        plugins: d(!1, !1)
      }, {
        test: /\.mts$/,
        sourceType: "module",
        plugins: d(!1, !0)
      }, {
        test: /\.cts$/,
        sourceType: "unambiguous",
        plugins: [[h9t.default, {
          allowTopLevelThis: !0
        }], [wue.default, f(!0)]]
      }, {
        test: /\.tsx$/,
        plugins: d(!0, !1)
      }]
    };
  });
  K4.default = m9t;
});

// ../node_modules/@babel/core/lib/config/files/module-types.js
var X4 = g((bT) => {
  "use strict";
  Object.defineProperty(bT, "__esModule", {
    value: !0
  });
  bT.default = b9t;
  bT.supportsESM = void 0;
  var V4 = sp();
  function J4() {
    let t = Je("path");
    return J4 = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(J4, "_path");
  function Bue() {
    let t = Je("url");
    return Bue = /* @__PURE__ */ n(function() {
      return t;
    }, "_url"), t;
  }
  n(Bue, "_url");
  Je("module");
  function Y4() {
    let t = Je("semver");
    return Y4 = /* @__PURE__ */ n(function() {
      return t;
    }, "_semver"), t;
  }
  n(Y4, "_semver");
  function Mue() {
    let t = go();
    return Mue = /* @__PURE__ */ n(function() {
      return t;
    }, "_debug"), t;
  }
  n(Mue, "_debug");
  var Fue = bu(), TT = Uh(), y9t = XL();
  function Due(t, e, s, r, i, a, o) {
    try {
      var l = t[a](o), u = l.value;
    } catch (c) {
      return void s(c);
    }
    l.done ? e(u) : Promise.resolve(u).then(r, i);
  }
  n(Due, "asyncGeneratorStep");
  function g9t(t) {
    return function() {
      var e = this, s = arguments;
      return new Promise(function(r, i) {
        var a = t.apply(e, s);
        function o(u) {
          Due(a, r, i, o, l, "next", u);
        }
        n(o, "_next");
        function l(u) {
          Due(a, r, i, o, l, "throw", u);
        }
        n(l, "_throw"), o(void 0);
      });
    };
  }
  n(g9t, "_asyncToGenerator");
  var T9t = Mue()("babel:config:loading:files:module-types");
  try {
    H4 = Kee();
  } catch {
  }
  var H4, TGs = bT.supportsESM = Y4().satisfies(process.versions.node, "^12.17 || >=13.2"), W4 = /* @__PURE__ */ new Set();
  function f1(t) {
    if (W4.has(t))
      return T9t("Auto-ignoring usage of config %o.", t), {};
    let e;
    try {
      W4.add(t), e = (0, Fue.endHiddenCallStack)(Je)(t);
    } finally {
      W4.delete(t);
    }
    return e != null && (e.__esModule || e[Symbol.toStringTag] === "Module") ? e.default || (arguments[1] ? e : void 0) : e;
  }
  n(f1, "loadCjsDefault");
  var Oue = (0, Fue.endHiddenCallStack)(function() {
    var t = g9t(function* (s) {
      let r = (0, Bue().pathToFileURL)(s).toString() + "?import";
      {
        if (!H4)
          throw new TT.default(`Internal error: Native ECMAScript modules aren't supported by this platform.
`, s);
        return yield H4(r);
      }
    });
    function e(s) {
      return t.apply(this, arguments);
    }
    return n(e, "loadMjsFromPath"), e;
  }()), _ue = {
    ".js": "unknown",
    ".mjs": "esm",
    ".cjs": "cjs",
    ".ts": "unknown",
    ".mts": "esm",
    ".cts": "cjs"
  }, Lue = /* @__PURE__ */ new Set();
  function* b9t(t, e, s, r) {
    var i;
    let a, o = J4().extname(t), l = o === ".ts" || o === ".cts" || o === ".mts", u = _ue[hasOwnProperty.call(_ue, o) ? o : ".js"];
    switch (`${e} ${u}`) {
      case "require cjs":
      case "auto cjs":
        return l ? $4(t, o, () => f1(t)) : f1(t, arguments[2]);
      case "auto unknown":
      case "require unknown":
      case "require esm":
        try {
          return l ? $4(t, o, () => f1(t)) : f1(t, arguments[2]);
        } catch (h) {
          if (h.code === "ERR_REQUIRE_ASYNC_MODULE" || h.code === "ERR_REQUIRE_CYCLE_MODULE" && Lue.has(t)) {
            var p;
            if (Lue.add(t), !((p = a) != null ? p : a = yield* (0, V4.isAsync)()))
              throw new TT.default(r, t);
          } else if (!(h.code === "ERR_REQUIRE_ESM" || u === "esm"))
            throw h;
        }
      case "auto esm":
        if ((i = a) != null ? i : a = yield* (0, V4.isAsync)()) {
          let h = l ? $4(t, o, () => Oue(t)) : Oue(t);
          return (yield* (0, V4.waitFor)(h)).default;
        }
        throw new TT.default(s, t);
      default:
        throw new Error("Internal Babel error: unreachable code.");
    }
  }
  n(b9t, "loadCodeDefault");
  function $4(t, e, s) {
    if (Je.extensions[".ts"] || Je.extensions[".cts"] || Je.extensions[".mts"])
      return s();
    if (e !== ".cts")
      throw new TT.default(`You are using a ${e} config file, but Babel only supports transpiling .cts configs. Either:
- Use a .cts config file
- Update to Node.js 23.6.0, which has native TypeScript support
- Install ts-node to transpile ${e} files on the fly`, t);
    let r = {
      babelrc: !1,
      configFile: !1,
      sourceType: "unambiguous",
      sourceMaps: "inline",
      sourceFileName: J4().basename(t),
      presets: [[x9t(t), Object.assign({
        onlyRemoveTypeImports: !0,
        optimizeConstEnums: !0
      }, {
        allowDeclareFields: !0
      })]]
    }, i = /* @__PURE__ */ n(function(a, o) {
      if (i && o.endsWith(".cts"))
        try {
          return a._compile((0, y9t.transformFileSync)(o, Object.assign({}, r, {
            filename: o
          })).code, o);
        } catch (l) {
          let u = Vee();
          throw Y4().lt(u.version, "7.21.4") && console.error("`.cts` configuration file failed to load, please try to update `@babel/preset\
-typescript`."), l;
        }
      return Je.extensions[".js"](a, o);
    }, "handler");
    Je.extensions[e] = i;
    try {
      return s();
    } finally {
      Je.extensions[e] === i && delete Je.extensions[e], i = void 0;
    }
  }
  n($4, "ensureTsSupport");
  function x9t(t) {
    try {
      return kue();
    } catch (e) {
      if (e.code !== "MODULE_NOT_FOUND") throw e;
      let s = "You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please i\
nstall it!";
      throw process.versions.pnp && (s += `
If you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:

packageExtensions:
	"@babel/core@*":
		peerDependencies:
			"@babel/preset-typescript": "*"
`), new TT.default(s, t);
    }
  }
  n(x9t, "getTSPreset");
});

// ../node_modules/@babel/core/lib/config/files/configuration.js
var Jue = g((rc) => {
  "use strict";
  Object.defineProperty(rc, "__esModule", {
    value: !0
  });
  rc.ROOT_CONFIG_FILENAMES = void 0;
  rc.findConfigUpwards = B9t;
  rc.findRelativeConfig = M9t;
  rc.findRootConfig = F9t;
  rc.loadConfig = j9t;
  rc.resolveShowConfigPath = R9t;
  function Rue() {
    let t = go();
    return Rue = /* @__PURE__ */ n(function() {
      return t;
    }, "_debug"), t;
  }
  n(Rue, "_debug");
  function z4() {
    let t = Je("fs");
    return z4 = /* @__PURE__ */ n(function() {
      return t;
    }, "_fs"), t;
  }
  n(z4, "_fs");
  function ya() {
    let t = Je("path");
    return ya = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(ya, "_path");
  function que() {
    let t = vG();
    return que = /* @__PURE__ */ n(function() {
      return t;
    }, "_json"), t;
  }
  n(que, "_json");
  function Uue() {
    let t = pa();
    return Uue = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(Uue, "_gensync");
  var Kue = qh(), S9t = c_(), Vue = Q2(), P9t = X4(), E9t = tL(), Ro = Uh(), A9t = dP();
  Je("module");
  var v9t = bu(), C9t = sp(), G4 = Rue()("babel:config:loading:files:configuration"), Wue = rc.ROOT_CONFIG_FILENAMES = ["babel.config.js", "\
babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts"], w9t = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc\
.mjs", ".babelrc.json", ".babelrc.cts"], I9t = ".babelignore", N9t = (0, Kue.makeWeakCache)(/* @__PURE__ */ n(function* (e, s) {
    return yield* [], {
      options: (0, v9t.endHiddenCallStack)(e)((0, S9t.makeConfigAPI)(s)),
      cacheNeedsConfiguration: !s.configured()
    };
  }, "runConfig"));
  function* k9t(t, e) {
    if (!z4().existsSync(t)) return null;
    let s = yield* (0, P9t.default)(t, (yield* (0, C9t.isAsync)()) ? "auto" : "require", "You appear to be using a native ECMAScript module \
configuration file, which is only supported when running Babel asynchronously or when using the Node.js `--experimental-require-module` flag\
.", "You appear to be using a configuration file that contains top-level await, which is only supported when running Babel asynchronously."),
    r = !1;
    if (typeof s == "function" && ({
      options: s,
      cacheNeedsConfiguration: r
    } = yield* N9t(s, e)), !s || typeof s != "object" || Array.isArray(s))
      throw new Ro.default("Configuration should be an exported JavaScript object.", t);
    if (typeof s.then == "function")
      throw s.catch == null || s.catch(() => {
      }), new Ro.default("You appear to be using an async configuration, which your current version of Babel does not support. We may add su\
pport 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 synch\
ronously return your config.", t);
    return r && q9t(t), D9t(s, t);
  }
  n(k9t, "readConfigCode");
  var jue = /* @__PURE__ */ new WeakMap();
  function D9t(t, e) {
    let s = jue.get(t);
    s || jue.set(t, s = /* @__PURE__ */ new Map());
    let r = s.get(e);
    return r || (r = {
      filepath: e,
      dirname: ya().dirname(e),
      options: t
    }, s.set(e, r)), r;
  }
  n(D9t, "buildConfigFileObject");
  var O9t = (0, Kue.makeWeakCacheSync)((t) => {
    let e = t.options.babel;
    if (e === void 0) return null;
    if (typeof e != "object" || Array.isArray(e) || e === null)
      throw new Ro.default(".babel property must be an object", t.filepath);
    return {
      filepath: t.filepath,
      dirname: t.dirname,
      options: e
    };
  }), _9t = (0, Vue.makeStaticFileCache)((t, e) => {
    let s;
    try {
      s = que().parse(e);
    } catch (r) {
      throw new Ro.default(`Error while parsing config - ${r.message}`, t);
    }
    if (!s) throw new Ro.default("No config detected", t);
    if (typeof s != "object")
      throw new Ro.default(`Config returned typeof ${typeof s}`, t);
    if (Array.isArray(s))
      throw new Ro.default("Expected config object but found array", t);
    return delete s.$schema, {
      filepath: t,
      dirname: ya().dirname(t),
      options: s
    };
  }), L9t = (0, Vue.makeStaticFileCache)((t, e) => {
    let s = ya().dirname(t), r = e.split(`
`).map((i) => i.replace(/#.*$/, "").trim()).filter(Boolean);
    for (let i of r)
      if (i[0] === "!")
        throw new Ro.default("Negation of file paths is not supported.", t);
    return {
      filepath: t,
      dirname: ya().dirname(t),
      ignore: r.map((i) => (0, E9t.default)(i, s))
    };
  });
  function B9t(t) {
    let e = t;
    for (; ; ) {
      for (let r of Wue)
        if (z4().existsSync(ya().join(e, r)))
          return e;
      let s = ya().dirname(e);
      if (e === s) break;
      e = s;
    }
    return null;
  }
  n(B9t, "findConfigUpwards");
  function* M9t(t, e, s) {
    let r = null, i = null, a = ya().dirname(t.filepath);
    for (let l of t.directories) {
      if (!r) {
        var o;
        r = yield* $ue(w9t, l, e, s, ((o = t.pkg) == null ? void 0 : o.dirname) === l ? O9t(t.pkg) : null);
      }
      if (!i) {
        let u = ya().join(l, I9t);
        i = yield* L9t(u), i && G4("Found ignore %o from %o.", i.filepath, a);
      }
    }
    return {
      config: r,
      ignore: i
    };
  }
  n(M9t, "findRelativeConfig");
  function F9t(t, e, s) {
    return $ue(Wue, t, e, s);
  }
  n(F9t, "findRootConfig");
  function* $ue(t, e, s, r, i = null) {
    let o = (yield* Uue().all(t.map((l) => Hue(ya().join(e, l), s, r)))).reduce((l, u) => {
      if (u && l)
        throw new Ro.default(`Multiple configuration files found. Please remove one:
 - ${ya().basename(l.filepath)}
 - ${u.filepath}
from ${e}`);
      return u || l;
    }, i);
    return o && G4("Found configuration %o from %o.", o.filepath, e), o;
  }
  n($ue, "loadOneConfig");
  function* j9t(t, e, s, r) {
    let i = (((o, l) => (o = o.split("."), l = l.split("."), +o[0] > +l[0] || o[0] == l[0] && +o[1] >= +l[1]))(process.versions.node, "8.9") ?
    Je.resolve : (o, {
      paths: [l]
    }, u = Je("module")) => {
      let c = u._findPath(o, u._nodeModulePaths(l).concat(l));
      if (c) return c;
      throw c = new Error(`Cannot resolve module '${o}'`), c.code = "MODULE_NOT_FOUND", c;
    })(t, {
      paths: [e]
    }), a = yield* Hue(i, s, r);
    if (!a)
      throw new Ro.default("Config file contains no configuration data", i);
    return G4("Loaded config %o from %o.", t, e), a;
  }
  n(j9t, "loadConfig");
  function Hue(t, e, s) {
    switch (ya().extname(t)) {
      case ".js":
      case ".cjs":
      case ".mjs":
      case ".ts":
      case ".cts":
      case ".mts":
        return k9t(t, {
          envName: e,
          caller: s
        });
      default:
        return _9t(t);
    }
  }
  n(Hue, "readConfig");
  function* R9t(t) {
    let e = process.env.BABEL_SHOW_CONFIG_FOR;
    if (e != null) {
      let s = ya().resolve(t, e);
      if (!(yield* A9t.stat(s)).isFile())
        throw new Error(`${s}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`);
      return s;
    }
    return null;
  }
  n(R9t, "resolveShowConfigPath");
  function q9t(t) {
    throw new Ro.default(`Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured
for various types of caching, using the first param of their handler functions:

module.exports = function(api) {
  // The API exposes the following:

  // Cache the returned value forever and don't call this function again.
  api.cache(true);

  // Don't cache at all. Not recommended because it will be very slow.
  api.cache(false);

  // Cached based on the value of some function. If this function returns a value different from
  // a previously-encountered value, the plugins will re-evaluate.
  var env = api.cache(() => process.env.NODE_ENV);

  // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for
  // any possible NODE_ENV value that might come up during plugin execution.
  var isProd = api.cache(() => process.env.NODE_ENV === "production");

  // .cache(fn) will perform a linear search though instances to find the matching plugin based
  // based on previous instantiated plugins. If you want to recreate the plugin and discard the
  // previous instance whenever something changes, you may use:
  var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production");

  // Note, we also expose the following more-verbose versions of the above examples:
  api.cache.forever(); // api.cache(true)
  api.cache.never();   // api.cache(false)
  api.cache.using(fn); // api.cache(fn)

  // Return the value that will be cached.
  return { };
};`, t);
  }
  n(q9t, "throwConfigError");
});

// ../node_modules/@babel/core/lib/vendor/import-meta-resolve.js
var Tce = g((b1) => {
  "use strict";
  Object.defineProperty(b1, "__esModule", {
    value: !0
  });
  b1.moduleResolve = gce;
  b1.resolve = O7t;
  function Cl() {
    let t = Je("assert");
    return Cl = /* @__PURE__ */ n(function() {
      return t;
    }, "_assert"), t;
  }
  n(Cl, "_assert");
  function ET() {
    let t = U9t(Je("fs"), !0);
    return ET = /* @__PURE__ */ n(function() {
      return t;
    }, "_fs"), t;
  }
  n(ET, "_fs");
  function Lp() {
    let t = Je("process");
    return Lp = /* @__PURE__ */ n(function() {
      return t;
    }, "_process"), t;
  }
  n(Lp, "_process");
  function Et() {
    let t = Je("url");
    return Et = /* @__PURE__ */ n(function() {
      return t;
    }, "_url"), t;
  }
  n(Et, "_url");
  function y1() {
    let t = Je("path");
    return y1 = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(y1, "_path");
  function g1() {
    let t = Je("module");
    return g1 = /* @__PURE__ */ n(function() {
      return t;
    }, "_module"), t;
  }
  n(g1, "_module");
  function ace() {
    let t = Je("v8");
    return ace = /* @__PURE__ */ n(function() {
      return t;
    }, "_v"), t;
  }
  n(ace, "_v");
  function PT() {
    let t = Je("util");
    return PT = /* @__PURE__ */ n(function() {
      return t;
    }, "_util"), t;
  }
  n(PT, "_util");
  function oce(t) {
    if (typeof WeakMap != "function") return null;
    var e = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakMap();
    return (oce = /* @__PURE__ */ n(function(r) {
      return r ? s : e;
    }, "_getRequireWildcardCache"))(t);
  }
  n(oce, "_getRequireWildcardCache");
  function U9t(t, e) {
    if (!e && t && t.__esModule) return t;
    if (t === null || typeof t != "object" && typeof t != "function") return { default: t };
    var s = oce(e);
    if (s && s.has(t)) return s.get(t);
    var r = { __proto__: null }, i = Object.defineProperty && Object.getOwnPropertyDescriptor;
    for (var a in t) if (a !== "default" && {}.hasOwnProperty.call(t, a)) {
      var o = i ? Object.getOwnPropertyDescriptor(t, a) : null;
      o && (o.get || o.set) ? Object.defineProperty(r, a, o) : r[a] = t[a];
    }
    return r.default = t, s && s.set(t, r), r;
  }
  n(U9t, "_interopRequireWildcard");
  var K9t = {}.hasOwnProperty, V9t = /^([A-Z][a-z\d]*)+$/, W9t = /* @__PURE__ */ new Set(["string", "function", "number", "object", "Functio\
n", "Object", "boolean", "bigint", "symbol"]), Qi = {};
  function Q4(t, e = "and") {
    return t.length < 3 ? t.join(` ${e} `) : `${t.slice(0, -1).join(", ")}, ${e} ${t[t.length - 1]}`;
  }
  n(Q4, "formatList");
  var lce = /* @__PURE__ */ new Map(), $9t = "__node_internal_", Yue;
  Qi.ERR_INVALID_ARG_TYPE = eo("ERR_INVALID_ARG_TYPE", (t, e, s) => {
    Cl()(typeof t == "string", "'name' must be a string"), Array.isArray(e) || (e = [e]);
    let r = "The ";
    if (t.endsWith(" argument"))
      r += `${t} `;
    else {
      let l = t.includes(".") ? "property" : "argument";
      r += `"${t}" ${l} `;
    }
    r += "must be ";
    let i = [], a = [], o = [];
    for (let l of e)
      Cl()(typeof l == "string", "All expected entries have to be of type string"), W9t.has(l) ? i.push(l.toLowerCase()) : V9t.exec(l) === null ?
      (Cl()(l !== "object", 'The value "object" should be written as "Object"'), o.push(l)) : a.push(l);
    if (a.length > 0) {
      let l = i.indexOf("object");
      l !== -1 && (i.slice(l, 1), a.push("Object"));
    }
    return i.length > 0 && (r += `${i.length > 1 ? "one of type" : "of type"} ${Q4(i, "or")}`, (a.length > 0 || o.length > 0) && (r += " or ")),
    a.length > 0 && (r += `an instance of ${Q4(a, "or")}`, o.length > 0 && (r += " or ")), o.length > 0 && (o.length > 1 ? r += `one of ${Q4(
    o, "or")}` : (o[0].toLowerCase() !== o[0] && (r += "an "), r += `${o[0]}`)), r += `. Received ${z9t(s)}`, r;
  }, TypeError);
  Qi.ERR_INVALID_MODULE_SPECIFIER = eo("ERR_INVALID_MODULE_SPECIFIER", (t, e, s = void 0) => `Invalid module "${t}" ${e}${s ? ` imported fro\
m ${s}` : ""}`, TypeError);
  Qi.ERR_INVALID_PACKAGE_CONFIG = eo("ERR_INVALID_PACKAGE_CONFIG", (t, e, s) => `Invalid package config ${t}${e ? ` while importing ${e}` : ""}${s ?
  `. ${s}` : ""}`, Error);
  Qi.ERR_INVALID_PACKAGE_TARGET = eo("ERR_INVALID_PACKAGE_TARGET", (t, e, s, r = !1, i = void 0) => {
    let a = typeof s == "string" && !r && s.length > 0 && !s.startsWith("./");
    return e === "." ? (Cl()(r === !1), `Invalid "exports" main target ${JSON.stringify(s)} defined in the package config ${t}package.json${i ?
    ` imported from ${i}` : ""}${a ? '; targets must start with "./"' : ""}`) : `Invalid "${r ? "imports" : "exports"}" target ${JSON.stringify(
    s)} defined for '${e}' in the package config ${t}package.json${i ? ` imported from ${i}` : ""}${a ? '; targets must start with "./"' : ""}`;
  }, Error);
  Qi.ERR_MODULE_NOT_FOUND = eo("ERR_MODULE_NOT_FOUND", (t, e, s = !1) => `Cannot find ${s ? "module" : "package"} '${t}' imported from ${e}`,
  Error);
  Qi.ERR_NETWORK_IMPORT_DISALLOWED = eo("ERR_NETWORK_IMPORT_DISALLOWED", "import of '%s' by %s is not supported: %s", Error);
  Qi.ERR_PACKAGE_IMPORT_NOT_DEFINED = eo("ERR_PACKAGE_IMPORT_NOT_DEFINED", (t, e, s) => `Package import specifier "${t}" is not defined${e ?
  ` in package ${e}package.json` : ""} imported from ${s}`, TypeError);
  Qi.ERR_PACKAGE_PATH_NOT_EXPORTED = eo("ERR_PACKAGE_PATH_NOT_EXPORTED", (t, e, s = void 0) => e === "." ? `No "exports" main defined in ${t}\
package.json${s ? ` imported from ${s}` : ""}` : `Package subpath '${e}' is not defined by "exports" in ${t}package.json${s ? ` imported fro\
m ${s}` : ""}`, Error);
  Qi.ERR_UNSUPPORTED_DIR_IMPORT = eo("ERR_UNSUPPORTED_DIR_IMPORT", "Directory import '%s' is not supported resolving ES modules imported fro\
m %s", Error);
  Qi.ERR_UNSUPPORTED_RESOLVE_REQUEST = eo("ERR_UNSUPPORTED_RESOLVE_REQUEST", 'Failed to resolve module specifier "%s" from "%s": Invalid rel\
ative URL or base scheme is not hierarchical.', TypeError);
  Qi.ERR_UNKNOWN_FILE_EXTENSION = eo("ERR_UNKNOWN_FILE_EXTENSION", (t, e) => `Unknown file extension "${t}" for ${e}`, TypeError);
  Qi.ERR_INVALID_ARG_VALUE = eo("ERR_INVALID_ARG_VALUE", (t, e, s = "is invalid") => {
    let r = (0, PT().inspect)(e);
    return r.length > 128 && (r = `${r.slice(0, 128)}...`), `The ${t.includes(".") ? "property" : "argument"} '${t}' ${s}. Received ${r}`;
  }, TypeError);
  function eo(t, e, s) {
    return lce.set(t, e), H9t(s, t);
  }
  n(eo, "createError");
  function H9t(t, e) {
    return s;
    function s(...r) {
      let i = Error.stackTraceLimit;
      sj() && (Error.stackTraceLimit = 0);
      let a = new t();
      sj() && (Error.stackTraceLimit = i);
      let o = X9t(e, r, a);
      return Object.defineProperties(a, {
        message: {
          value: o,
          enumerable: !1,
          writable: !0,
          configurable: !0
        },
        toString: {
          value() {
            return `${this.name} [${e}]: ${this.message}`;
          },
          enumerable: !1,
          writable: !0,
          configurable: !0
        }
      }), Y9t(a), a.code = e, a;
    }
  }
  n(H9t, "makeNodeErrorWithCode");
  function sj() {
    try {
      if (ace().startupSnapshot.isBuildingSnapshot())
        return !1;
    } catch {
    }
    let t = Object.getOwnPropertyDescriptor(Error, "stackTraceLimit");
    return t === void 0 ? Object.isExtensible(Error) : K9t.call(t, "writable") && t.writable !== void 0 ? t.writable : t.set !== void 0;
  }
  n(sj, "isErrorStackTraceLimitWritable");
  function J9t(t) {
    let e = $9t + t.name;
    return Object.defineProperty(t, "name", {
      value: e
    }), t;
  }
  n(J9t, "hideStackFrames");
  var Y9t = J9t(function(t) {
    let e = sj();
    return e && (Yue = Error.stackTraceLimit, Error.stackTraceLimit = Number.POSITIVE_INFINITY), Error.captureStackTrace(t), e && (Error.stackTraceLimit =
    Yue), t;
  });
  function X9t(t, e, s) {
    let r = lce.get(t);
    if (Cl()(r !== void 0, "expected `message` to be found"), typeof r == "function")
      return Cl()(r.length <= e.length, `Code: ${t}; The provided arguments length (${e.length}) does not match the required ones (${r.length}\
).`), Reflect.apply(r, s, e);
    let i = /%[dfijoOs]/g, a = 0;
    for (; i.exec(r) !== null; ) a++;
    return Cl()(a === e.length, `Code: ${t}; The provided arguments length (${e.length}) does not match the required ones (${a}).`), e.length ===
    0 ? r : (e.unshift(r), Reflect.apply(PT().format, null, e));
  }
  n(X9t, "getMessage");
  function z9t(t) {
    if (t == null)
      return String(t);
    if (typeof t == "function" && t.name)
      return `function ${t.name}`;
    if (typeof t == "object")
      return t.constructor && t.constructor.name ? `an instance of ${t.constructor.name}` : `${(0, PT().inspect)(t, {
        depth: -1
      })}`;
    let e = (0, PT().inspect)(t, {
      colors: !1
    });
    return e.length > 28 && (e = `${e.slice(0, 25)}...`), `type ${typeof t} (${e})`;
  }
  n(z9t, "determineSpecificType");
  var xT = {}.hasOwnProperty, {
    ERR_INVALID_PACKAGE_CONFIG: G9t
  } = Qi, Xue = /* @__PURE__ */ new Map();
  function uce(t, {
    base: e,
    specifier: s
  }) {
    let r = Xue.get(t);
    if (r)
      return r;
    let i;
    try {
      i = ET().default.readFileSync(y1().toNamespacedPath(t), "utf8");
    } catch (o) {
      let l = o;
      if (l.code !== "ENOENT")
        throw l;
    }
    let a = {
      exists: !1,
      pjsonPath: t,
      main: void 0,
      name: void 0,
      type: "none",
      exports: void 0,
      imports: void 0
    };
    if (i !== void 0) {
      let o;
      try {
        o = JSON.parse(i);
      } catch (l) {
        let u = l, c = new G9t(t, (e ? `"${s}" from ` : "") + (0, Et().fileURLToPath)(e || s), u.message);
        throw c.cause = u, c;
      }
      a.exists = !0, xT.call(o, "name") && typeof o.name == "string" && (a.name = o.name), xT.call(o, "main") && typeof o.main == "string" &&
      (a.main = o.main), xT.call(o, "exports") && (a.exports = o.exports), xT.call(o, "imports") && (a.imports = o.imports), xT.call(o, "typ\
e") && (o.type === "commonjs" || o.type === "module") && (a.type = o.type);
    }
    return Xue.set(t, a), a;
  }
  n(uce, "read");
  function rj(t) {
    let e = new URL("package.json", t);
    for (; !e.pathname.endsWith("node_modules/package.json"); ) {
      let i = uce((0, Et().fileURLToPath)(e), {
        specifier: t
      });
      if (i.exists)
        return i;
      let a = e;
      if (e = new URL("../package.json", e), e.pathname === a.pathname)
        break;
    }
    return {
      pjsonPath: (0, Et().fileURLToPath)(e),
      exists: !1,
      type: "none"
    };
  }
  n(rj, "getPackageScopeConfig");
  function zue(t) {
    return rj(t).type;
  }
  n(zue, "getPackageType");
  var {
    ERR_UNKNOWN_FILE_EXTENSION: Q9t
  } = Qi, Z9t = {}.hasOwnProperty, e7t = {
    __proto__: null,
    ".cjs": "commonjs",
    ".js": "module",
    ".json": "json",
    ".mjs": "module"
  };
  function t7t(t) {
    return t && /\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(t) ? "module" : t === "application/json" ? "json" : null;
  }
  n(t7t, "mimeToFormat");
  var Gue = {
    __proto__: null,
    "data:": s7t,
    "file:": i7t,
    "http:": Que,
    "https:": Que,
    "node:"() {
      return "builtin";
    }
  };
  function s7t(t) {
    let {
      1: e
    } = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(t.pathname) || [null, null, null];
    return t7t(e);
  }
  n(s7t, "getDataProtocolModuleFormat");
  function r7t(t) {
    let e = t.pathname, s = e.length;
    for (; s--; ) {
      let r = e.codePointAt(s);
      if (r === 47)
        return "";
      if (r === 46)
        return e.codePointAt(s - 1) === 47 ? "" : e.slice(s);
    }
    return "";
  }
  n(r7t, "extname");
  function i7t(t, e, s) {
    let r = r7t(t);
    if (r === ".js") {
      let o = zue(t);
      return o !== "none" ? o : "commonjs";
    }
    if (r === "") {
      let o = zue(t);
      return o === "none" || o === "commonjs" ? "commonjs" : "module";
    }
    let i = e7t[r];
    if (i) return i;
    if (s)
      return;
    let a = (0, Et().fileURLToPath)(t);
    throw new Q9t(r, a);
  }
  n(i7t, "getFileProtocolModuleFormat");
  function Que() {
  }
  n(Que, "getHttpProtocolModuleFormat");
  function cce(t, e) {
    let s = t.protocol;
    return Z9t.call(Gue, s) && Gue[s](t, e, !0) || null;
  }
  n(cce, "defaultGetFormatWithoutErrors");
  var {
    ERR_INVALID_ARG_VALUE: n7t
  } = Qi, pce = Object.freeze(["node", "import"]), a7t = new Set(pce);
  function o7t() {
    return pce;
  }
  n(o7t, "getDefaultConditions");
  function l7t() {
    return a7t;
  }
  n(l7t, "getDefaultConditionsSet");
  function u7t(t) {
    if (t !== void 0 && t !== o7t()) {
      if (!Array.isArray(t))
        throw new n7t("conditions", t, "expected an array");
      return new Set(t);
    }
    return l7t();
  }
  n(u7t, "getConditionsSet");
  var d1 = RegExp.prototype[Symbol.replace], {
    ERR_NETWORK_IMPORT_DISALLOWED: Z4,
    ERR_INVALID_MODULE_SPECIFIER: T1,
    ERR_INVALID_PACKAGE_CONFIG: hce,
    ERR_INVALID_PACKAGE_TARGET: c7t,
    ERR_MODULE_NOT_FOUND: ij,
    ERR_PACKAGE_IMPORT_NOT_DEFINED: p7t,
    ERR_PACKAGE_PATH_NOT_EXPORTED: h7t,
    ERR_UNSUPPORTED_DIR_IMPORT: f7t,
    ERR_UNSUPPORTED_RESOLVE_REQUEST: Zue
  } = Qi, fce = {}.hasOwnProperty, ece = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i,
  tce = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,
  d7t = /^\.|%|\\/, m1 = /\*/g, m7t = /%2f|%5c/i, sce = /* @__PURE__ */ new Set(), y7t = /[/\\]{2}/;
  function rce(t, e, s, r, i, a, o) {
    if (Lp().noDeprecation)
      return;
    let l = (0, Et().fileURLToPath)(r), u = y7t.exec(o ? t : e) !== null;
    Lp().emitWarning(`Use of deprecated ${u ? "double slash" : "leading or trailing slash matching"} resolving "${t}" for module request "${e}\
" ${e === s ? "" : `matched to "${s}" `}in the "${i ? "imports" : "exports"}" field module resolution of the package at ${l}${a ? ` imported\
 from ${(0, Et().fileURLToPath)(a)}` : ""}.`, "DeprecationWarning", "DEP0166");
  }
  n(rce, "emitInvalidSegmentDeprecation");
  function ice(t, e, s, r) {
    if (Lp().noDeprecation || cce(t, {
      parentURL: s.href
    }) !== "module") return;
    let a = (0, Et().fileURLToPath)(t.href), o = (0, Et().fileURLToPath)(new (Et()).URL(".", e)), l = (0, Et().fileURLToPath)(s);
    r ? y1().resolve(o, r) !== a && Lp().emitWarning(`Package ${o} has a "main" field set to "${r}", excluding the full filename and extensi\
on to the resolved file at "${a.slice(o.length)}", imported from ${l}.
 Automatic extension resolution of the "main" field is deprecated for ES modules.`, "DeprecationWarning", "DEP0151") : Lp().emitWarning(`No \
"main" or "exports" field defined in the package.json for ${o} resolving the main entry point "${a.slice(o.length)}", imported from ${l}.
Default "index" lookups for the main are deprecated for ES modules.`, "DeprecationWarning", "DEP0151");
  }
  n(ice, "emitLegacyIndexDeprecation");
  function dce(t) {
    try {
      return (0, ET().statSync)(t);
    } catch {
    }
  }
  n(dce, "tryStatSync");
  function ej(t) {
    let e = (0, ET().statSync)(t, {
      throwIfNoEntry: !1
    }), s = e ? e.isFile() : void 0;
    return s ?? !1;
  }
  n(ej, "fileExists");
  function g7t(t, e, s) {
    let r;
    if (e.main !== void 0) {
      if (r = new (Et()).URL(e.main, t), ej(r)) return r;
      let o = [`./${e.main}.js`, `./${e.main}.json`, `./${e.main}.node`, `./${e.main}/index.js`, `./${e.main}/index.json`, `./${e.main}/inde\
x.node`], l = -1;
      for (; ++l < o.length && (r = new (Et()).URL(o[l], t), !ej(r)); )
        r = void 0;
      if (r)
        return ice(r, t, s, e.main), r;
    }
    let i = ["./index.js", "./index.json", "./index.node"], a = -1;
    for (; ++a < i.length && (r = new (Et()).URL(i[a], t), !ej(r)); )
      r = void 0;
    if (r)
      return ice(r, t, s, e.main), r;
    throw new ij((0, Et().fileURLToPath)(new (Et()).URL(".", t)), (0, Et().fileURLToPath)(s));
  }
  n(g7t, "legacyMainResolve");
  function T7t(t, e, s) {
    if (m7t.exec(t.pathname) !== null)
      throw new T1(t.pathname, 'must not include encoded "/" or "\\" characters', (0, Et().fileURLToPath)(e));
    let r;
    try {
      r = (0, Et().fileURLToPath)(t);
    } catch (a) {
      let o = a;
      throw Object.defineProperty(o, "input", {
        value: String(t)
      }), Object.defineProperty(o, "module", {
        value: String(e)
      }), o;
    }
    let i = dce(r.endsWith("/") ? r.slice(-1) : r);
    if (i && i.isDirectory()) {
      let a = new f7t(r, (0, Et().fileURLToPath)(e));
      throw a.url = String(t), a;
    }
    if (!i || !i.isFile()) {
      let a = new ij(r || t.pathname, e && (0, Et().fileURLToPath)(e), !0);
      throw a.url = String(t), a;
    }
    if (!s) {
      let a = (0, ET().realpathSync)(r), {
        search: o,
        hash: l
      } = t;
      t = (0, Et().pathToFileURL)(a + (r.endsWith(y1().sep) ? "/" : "")), t.search = o, t.hash = l;
    }
    return t;
  }
  n(T7t, "finalizeResolution");
  function b7t(t, e, s) {
    return new p7t(t, e && (0, Et().fileURLToPath)(new (Et()).URL(".", e)), (0, Et().fileURLToPath)(s));
  }
  n(b7t, "importNotDefined");
  function tj(t, e, s) {
    return new h7t((0, Et().fileURLToPath)(new (Et()).URL(".", e)), t, s && (0, Et().fileURLToPath)(s));
  }
  n(tj, "exportsNotFound");
  function x7t(t, e, s, r, i) {
    let a = `request is not a valid match in pattern "${e}" for the "${r ? "imports" : "exports"}" resolution of ${(0, Et().fileURLToPath)(s)}`;
    throw new T1(t, a, i && (0, Et().fileURLToPath)(i));
  }
  n(x7t, "throwInvalidSubpath");
  function ST(t, e, s, r, i) {
    return e = typeof e == "object" && e !== null ? JSON.stringify(e, null, "") : `${e}`, new c7t((0, Et().fileURLToPath)(new (Et()).URL(".",
    s)), t, e, r, i && (0, Et().fileURLToPath)(i));
  }
  n(ST, "invalidPackageTarget");
  function S7t(t, e, s, r, i, a, o, l, u) {
    if (e !== "" && !a && t[t.length - 1] !== "/") throw ST(s, t, r, o, i);
    if (!t.startsWith("./")) {
      if (o && !t.startsWith("../") && !t.startsWith("/")) {
        let f = !1;
        try {
          new (Et()).URL(t), f = !0;
        } catch {
        }
        if (!f) {
          let d = a ? d1.call(m1, t, () => e) : t + e;
          return yce(d, r, u);
        }
      }
      throw ST(s, t, r, o, i);
    }
    if (ece.exec(t.slice(2)) !== null)
      if (tce.exec(t.slice(2)) === null) {
        if (!l) {
          let f = a ? s.replace("*", () => e) : s + e, d = a ? d1.call(m1, t, () => e) : t;
          rce(d, f, s, r, o, i, !0);
        }
      } else
        throw ST(s, t, r, o, i);
    let c = new (Et()).URL(t, r), p = c.pathname, h = new (Et()).URL(".", r).pathname;
    if (!p.startsWith(h)) throw ST(s, t, r, o, i);
    if (e === "") return c;
    if (ece.exec(e) !== null) {
      let f = a ? s.replace("*", () => e) : s + e;
      if (tce.exec(e) === null) {
        if (!l) {
          let d = a ? d1.call(m1, t, () => e) : t;
          rce(d, f, s, r, o, i, !1);
        }
      } else
        x7t(f, s, r, o, i);
    }
    return a ? new (Et()).URL(d1.call(m1, c.href, () => e)) : new (Et()).URL(e, c);
  }
  n(S7t, "resolvePackageTargetString");
  function P7t(t) {
    let e = Number(t);
    return `${e}` !== t ? !1 : e >= 0 && e < 4294967295;
  }
  n(P7t, "isArrayIndex");
  function sy(t, e, s, r, i, a, o, l, u) {
    if (typeof e == "string")
      return S7t(e, s, r, t, i, a, o, l, u);
    if (Array.isArray(e)) {
      let c = e;
      if (c.length === 0) return null;
      let p, h = -1;
      for (; ++h < c.length; ) {
        let f = c[h], d;
        try {
          d = sy(t, f, s, r, i, a, o, l, u);
        } catch (m) {
          let y = m;
          if (p = y, y.code === "ERR_INVALID_PACKAGE_TARGET") continue;
          throw m;
        }
        if (d !== void 0) {
          if (d === null) {
            p = null;
            continue;
          }
          return d;
        }
      }
      if (p == null)
        return null;
      throw p;
    }
    if (typeof e == "object" && e !== null) {
      let c = Object.getOwnPropertyNames(e), p = -1;
      for (; ++p < c.length; ) {
        let h = c[p];
        if (P7t(h))
          throw new hce((0, Et().fileURLToPath)(t), i, '"exports" cannot contain numeric property keys.');
      }
      for (p = -1; ++p < c.length; ) {
        let h = c[p];
        if (h === "default" || u && u.has(h)) {
          let f = e[h], d = sy(t, f, s, r, i, a, o, l, u);
          if (d === void 0) continue;
          return d;
        }
      }
      return null;
    }
    if (e === null)
      return null;
    throw ST(r, e, t, o, i);
  }
  n(sy, "resolvePackageTarget");
  function E7t(t, e, s) {
    if (typeof t == "string" || Array.isArray(t)) return !0;
    if (typeof t != "object" || t === null) return !1;
    let r = Object.getOwnPropertyNames(t), i = !1, a = 0, o = -1;
    for (; ++o < r.length; ) {
      let l = r[o], u = l === "" || l[0] !== ".";
      if (a++ === 0)
        i = u;
      else if (i !== u)
        throw new hce((0, Et().fileURLToPath)(e), s, `"exports" cannot contain some keys starting with '.' and some not. The exports object \
must either be an object of package subpath keys or an object of main entry condition name keys only.`);
    }
    return i;
  }
  n(E7t, "isConditionalExportsMainSugar");
  function A7t(t, e, s) {
    if (Lp().noDeprecation)
      return;
    let r = (0, Et().fileURLToPath)(e);
    sce.has(r + "|" + t) || (sce.add(r + "|" + t), Lp().emitWarning(`Use of deprecated trailing slash pattern mapping "${t}" in the "exports\
" field module resolution of the package at ${r}${s ? ` imported from ${(0, Et().fileURLToPath)(s)}` : ""}. Mapping specifiers ending in "/"\
 is no longer supported.`, "DeprecationWarning", "DEP0155"));
  }
  n(A7t, "emitTrailingSlashPatternDeprecation");
  function nce(t, e, s, r, i) {
    let a = s.exports;
    if (E7t(a, t, r) && (a = {
      ".": a
    }), fce.call(a, e) && !e.includes("*") && !e.endsWith("/")) {
      let p = a[e], h = sy(t, p, "", e, r, !1, !1, !1, i);
      if (h == null)
        throw tj(e, t, r);
      return h;
    }
    let o = "", l = "", u = Object.getOwnPropertyNames(a), c = -1;
    for (; ++c < u.length; ) {
      let p = u[c], h = p.indexOf("*");
      if (h !== -1 && e.startsWith(p.slice(0, h))) {
        e.endsWith("/") && A7t(e, t, r);
        let f = p.slice(h + 1);
        e.length >= p.length && e.endsWith(f) && mce(o, p) === 1 && p.lastIndexOf("*") === h && (o = p, l = e.slice(h, e.length - f.length));
      }
    }
    if (o) {
      let p = a[o], h = sy(t, p, l, o, r, !0, !1, e.endsWith("/"), i);
      if (h == null)
        throw tj(e, t, r);
      return h;
    }
    throw tj(e, t, r);
  }
  n(nce, "packageExportsResolve");
  function mce(t, e) {
    let s = t.indexOf("*"), r = e.indexOf("*"), i = s === -1 ? t.length : s + 1, a = r === -1 ? e.length : r + 1;
    return i > a ? -1 : a > i || s === -1 ? 1 : r === -1 || t.length > e.length ? -1 : e.length > t.length ? 1 : 0;
  }
  n(mce, "patternKeyCompare");
  function v7t(t, e, s) {
    if (t === "#" || t.startsWith("#/") || t.endsWith("/")) {
      let a = "is not a valid internal imports specifier name";
      throw new T1(t, a, (0, Et().fileURLToPath)(e));
    }
    let r, i = rj(e);
    if (i.exists) {
      r = (0, Et().pathToFileURL)(i.pjsonPath);
      let a = i.imports;
      if (a)
        if (fce.call(a, t) && !t.includes("*")) {
          let o = sy(r, a[t], "", t, e, !1, !0, !1, s);
          if (o != null)
            return o;
        } else {
          let o = "", l = "", u = Object.getOwnPropertyNames(a), c = -1;
          for (; ++c < u.length; ) {
            let p = u[c], h = p.indexOf("*");
            if (h !== -1 && t.startsWith(p.slice(0, -1))) {
              let f = p.slice(h + 1);
              t.length >= p.length && t.endsWith(f) && mce(o, p) === 1 && p.lastIndexOf("*") === h && (o = p, l = t.slice(h, t.length - f.length));
            }
          }
          if (o) {
            let p = a[o], h = sy(r, p, l, o, e, !0, !0, !1, s);
            if (h != null)
              return h;
          }
        }
    }
    throw b7t(t, r, e);
  }
  n(v7t, "packageImportsResolve");
  function C7t(t, e) {
    let s = t.indexOf("/"), r = !0, i = !1;
    t[0] === "@" && (i = !0, s === -1 || t.length === 0 ? r = !1 : s = t.indexOf("/", s + 1));
    let a = s === -1 ? t : t.slice(0, s);
    if (d7t.exec(a) !== null && (r = !1), !r)
      throw new T1(t, "is not a valid package name", (0, Et().fileURLToPath)(e));
    let o = "." + (s === -1 ? "" : t.slice(s));
    return {
      packageName: a,
      packageSubpath: o,
      isScoped: i
    };
  }
  n(C7t, "parsePackageName");
  function yce(t, e, s) {
    if (g1().builtinModules.includes(t))
      return new (Et()).URL("node:" + t);
    let {
      packageName: r,
      packageSubpath: i,
      isScoped: a
    } = C7t(t, e), o = rj(e);
    if (o.exists) {
      let p = (0, Et().pathToFileURL)(o.pjsonPath);
      if (o.name === r && o.exports !== void 0 && o.exports !== null)
        return nce(p, i, o, e, s);
    }
    let l = new (Et()).URL("./node_modules/" + r + "/package.json", e), u = (0, Et().fileURLToPath)(l), c;
    do {
      let p = dce(u.slice(0, -13));
      if (!p || !p.isDirectory()) {
        c = u, l = new (Et()).URL((a ? "../../../../node_modules/" : "../../../node_modules/") + r + "/package.json", l), u = (0, Et().fileURLToPath)(
        l);
        continue;
      }
      let h = uce(u, {
        base: e,
        specifier: t
      });
      return h.exports !== void 0 && h.exports !== null ? nce(l, i, h, e, s) : i === "." ? g7t(l, h, e) : new (Et()).URL(i, l);
    } while (u.length !== c.length);
    throw new ij(r, (0, Et().fileURLToPath)(e), !1);
  }
  n(yce, "packageResolve");
  function w7t(t) {
    return t[0] === "." && (t.length === 1 || t[1] === "/" || t[1] === "." && (t.length === 2 || t[2] === "/"));
  }
  n(w7t, "isRelativeSpecifier");
  function nj(t) {
    return t === "" ? !1 : t[0] === "/" ? !0 : w7t(t);
  }
  n(nj, "shouldBeTreatedAsRelativeOrAbsolutePath");
  function gce(t, e, s, r) {
    let i = e.protocol, o = i === "data:" || i === "http:" || i === "https:", l;
    if (nj(t))
      try {
        l = new (Et()).URL(t, e);
      } catch (u) {
        let c = new Zue(t, e);
        throw c.cause = u, c;
      }
    else if (i === "file:" && t[0] === "#")
      l = v7t(t, e, s);
    else
      try {
        l = new (Et()).URL(t);
      } catch (u) {
        if (o && !g1().builtinModules.includes(t)) {
          let c = new Zue(t, e);
          throw c.cause = u, c;
        }
        l = yce(t, e, s);
      }
    return Cl()(l !== void 0, "expected to be defined"), l.protocol !== "file:" ? l : T7t(l, e, r);
  }
  n(gce, "moduleResolve");
  function I7t(t, e, s) {
    if (s) {
      let r = s.protocol;
      if (r === "http:" || r === "https:") {
        if (nj(t)) {
          let i = e?.protocol;
          if (i && i !== "https:" && i !== "http:")
            throw new Z4(t, s, "remote imports cannot import from a local location.");
          return {
            url: e?.href || ""
          };
        }
        throw g1().builtinModules.includes(t) ? new Z4(t, s, "remote imports cannot import from a local location.") : new Z4(t, s, "only rel\
ative and absolute specifiers are supported.");
      }
    }
  }
  n(I7t, "checkIfDisallowedImport");
  function N7t(t) {
    return !!(t && typeof t == "object" && "href" in t && typeof t.href == "string" && "protocol" in t && typeof t.protocol == "string" && t.
    href && t.protocol);
  }
  n(N7t, "isURL");
  function k7t(t) {
    if (t !== void 0 && typeof t != "string" && !N7t(t))
      throw new Qi.ERR_INVALID_ARG_TYPE("parentURL", ["string", "URL"], t);
  }
  n(k7t, "throwIfInvalidParentURL");
  function D7t(t, e = {}) {
    let {
      parentURL: s
    } = e;
    Cl()(s !== void 0, "expected `parentURL` to be defined"), k7t(s);
    let r;
    if (s)
      try {
        r = new (Et()).URL(s);
      } catch {
      }
    let i, a;
    try {
      if (i = nj(t) ? new (Et()).URL(t, r) : new (Et()).URL(t), a = i.protocol, a === "data:")
        return {
          url: i.href,
          format: null
        };
    } catch {
    }
    let o = I7t(t, i, r);
    if (o) return o;
    if (a === void 0 && i && (a = i.protocol), a === "node:")
      return {
        url: t
      };
    if (i && i.protocol === "node:") return {
      url: t
    };
    let l = u7t(e.conditions), u = gce(t, new (Et()).URL(s), l, !1);
    return {
      url: u.href,
      format: cce(u, {
        parentURL: s
      })
    };
  }
  n(D7t, "defaultResolve");
  function O7t(t, e) {
    if (!e)
      throw new Error("Please pass `parent`: `import-meta-resolve` cannot ponyfill that");
    try {
      return D7t(t, {
        parentURL: e
      }).url;
    } catch (s) {
      let r = s;
      if ((r.code === "ERR_UNSUPPORTED_DIR_IMPORT" || r.code === "ERR_MODULE_NOT_FOUND") && typeof r.url == "string")
        return r.url;
      throw s;
    }
  }
  n(O7t, "resolve");
});

// ../node_modules/@babel/core/lib/config/files/plugins.js
var wce = g((Bp) => {
  "use strict";
  Object.defineProperty(Bp, "__esModule", {
    value: !0
  });
  Bp.loadPlugin = W7t;
  Bp.loadPreset = $7t;
  Bp.resolvePreset = Bp.resolvePlugin = void 0;
  function xce() {
    let t = go();
    return xce = /* @__PURE__ */ n(function() {
      return t;
    }, "_debug"), t;
  }
  n(xce, "_debug");
  function lj() {
    let t = Je("path");
    return lj = /* @__PURE__ */ n(function() {
      return t;
    }, "_path"), t;
  }
  n(lj, "_path");
  var uj = sp(), Sce = X4();
  function oj() {
    let t = Je("url");
    return oj = /* @__PURE__ */ n(function() {
      return t;
    }, "_url"), t;
  }
  n(oj, "_url");
  var _7t = Tce();
  Je("module");
  function Pce() {
    let t = Je("fs");
    return Pce = /* @__PURE__ */ n(function() {
      return t;
    }, "_fs"), t;
  }
  n(Pce, "_fs");
  var Ece = xce()("babel:config:loading:files:plugins"), L7t = /^module:/, B7t = /^(?!@|module:|[^/]+\/|babel-plugin-)/, M7t = /^(?!@|module:|[^/]+\/|babel-preset-)/,
  F7t = /^(@babel\/)(?!plugin-|[^/]+\/)/, j7t = /^(@babel\/)(?!preset-|[^/]+\/)/, R7t = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/,
  q7t = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/, U7t = /^(@(?!babel$)[^/]+)$/, K7t = Bp.resolvePlugin = vce.bind(null,
  "plugin"), V7t = Bp.resolvePreset = vce.bind(null, "preset");
  function* W7t(t, e) {
    let {
      filepath: s,
      loader: r
    } = K7t(t, e, yield* (0, uj.isAsync)()), i = yield* Cce("plugin", r, s);
    return Ece("Loaded plugin %o from %o.", t, e), {
      filepath: s,
      value: i
    };
  }
  n(W7t, "loadPlugin");
  function* $7t(t, e) {
    let {
      filepath: s,
      loader: r
    } = V7t(t, e, yield* (0, uj.isAsync)()), i = yield* Cce("preset", r, s);
    return Ece("Loaded preset %o from %o.", t, e), {
      filepath: s,
      value: i
    };
  }
  n($7t, "loadPreset");
  function aj(t, e) {
    if (lj().isAbsolute(e)) return e;
    let s = t === "preset";
    return e.replace(s ? M7t : B7t, `babel-${t}-`).replace(s ? j7t : F7t, `$1${t}-`).replace(s ? q7t : R7t, `$1babel-${t}-`).replace(U7t, `$\
1/babel-${t}`).replace(L7t, "");
  }
  n(aj, "standardizeName");
  function* Ace(t, e) {
    let s = aj(t, e), {
      error: r,
      value: i
    } = yield s;
    if (!r) return i;
    if (r.code !== "MODULE_NOT_FOUND") throw r;
    s !== e && !(yield e).error && (r.message += `
- If you want to resolve "${e}", use "module:${e}"`), (yield aj(t, "@babel/" + e)).error || (r.message += `
- Did you mean "@babel/${e}"?`);
    let a = t === "preset" ? "plugin" : "preset";
    if ((yield aj(a, e)).error || (r.message += `
- Did you accidentally pass a ${a} as a ${t}?`), t === "plugin") {
      let o = s.replace("-proposal-", "-transform-");
      o !== s && !(yield o).error && (r.message += `
- Did you mean "${o}"?`);
    }
    throw r.message += `

Make sure that all the Babel plugins and presets you are using
are defined as dependencies or devDependencies in your package.json
file. It's possible that the missing plugin is loaded by a preset
you are using that forgot to add the plugin to its dependencies: you
can workaround this problem by explicitly adding the missing package
to your top-level package.json.
`, r;
  }
  n(Ace, "resolveAlternativesHelper");
  function H7t(t, e) {
    try {
      return e ? {
        error: null,
        value: (((s, r) => (s = s.split("."), r = r.split("."), +s[0] > +r[0] || s[0] == r[0] && +s[1] >= +r[1]))(process.versions.node, "8.\
9") ? Je.resolve : (s, {
          paths: [r]
        }, i = Je("module")) => {
          let a = i._findPath(s, i._nodeModulePaths(r).concat(r));
          if (a) return a;
          throw a = new Error(`Cannot resolve module '${s}'`), a.code = "MODULE_NOT_FOUND", a;
        })(t, {
          paths: [e]
        })
      } : {
        error: null,
        value: Je.resolve(t)
      };
    } catch (s) {
      return {
        error: s,
        value: null
      };
    }
  }
  n(H7t, "tryRequireResolve");
  function J7t(t, e) {
    try {
      return {
        error: null,
        value: (0, _7t.resolve)(t, e)
      };
    } catch (s) {
      return {
        error: s,
        value: null
      };
    }
  }
  n(J7t, "tryImportMetaResolve");
  function bce(t, e, s) {
    let r = Ace(t, e), i = r.next();
    for (; !i.done; )
      i = r.next(H7t(i.value, s));
    return {
      loader: "require",
      filepath: i.value
    };
  }
  n(bce, "resolveStandardizedNameForRequire");
  function Y7t(t, e, s) {
    let r = (0, oj().pathToFileURL)(lj().join(s, "./babel-virtual-resolve-base.js")).href, i = Ace(t, e), a = i.next();
    for (; !a.done; )
      a = i.next(J7t(a.value, r));
    return {
      loader: "auto",
      filepath: (0, oj().fileURLToPath)(a.value)
    };
  }
  n(Y7t, "resolveStandardizedNameForImport");
  function vce(t, e, s, r) {
    if (!Sce.supportsESM || !r)
      return bce(t, e, s);
    try {
      let i = Y7t(t, e, s);
      if (!(0, Pce().existsSync)(i.filepath))
        throw Object.assign(new Error(`Could not resolve "${e}" in file ${s}.`), {
          type: "MODULE_NOT_FOUND"
        });
      return i;
    } catch (i) {
      try {
        return bce(t, e, s);
      } catch (a) {
        throw i.type === "MODULE_NOT_FOUND" ? i : a.type === "MODULE_NOT_FOUND" ? a : i;
      }
    }
  }
  n(vce, "resolveStandardizedName");
  x1 = /* @__PURE__ */ new Set();
  var x1;
  function* Cce(t, e, s) {
    if (!(yield* (0, uj.isAsync)()) && x1.has(s))
      throw new Error(`Reentrant ${t} detected trying to load "${s}". This module is not ignored and is trying to load itself while compilin\
g itself, leading to a dependency cycle. We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.`);
    try {
      return x1.add(s), yield* (0, Sce.default)(s, e, `You appear to be using a native ECMAScript module ${t}, which is only supported when \
running Babel asynchronously or when using the Node.js \`--experimental-require-module\` flag.`, `You appear to be using a ${t} that contain\
s top-level await, which is only supported when running Babel asynchronously.`, !0);
    } catch (r) {
      throw r.message = `[BABEL]: ${r.message} (While processing: ${s})`, r;
    } finally {
      x1.delete(s);
    }
  }
  n(Cce, "requireModule");
});

// ../node_modules/@babel/core/lib/config/files/index.js
var f0 = g((ga) => {
  "use strict";
  Object.defineProperty(ga, "__esModule", {
    value: !0
  });
  Object.defineProperty(ga, "ROOT_CONFIG_FILENAMES", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ry.ROOT_CONFIG_FILENAMES;
    }, "get")
  });
  Object.defineProperty(ga, "findConfigUpwards", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ry.findConfigUpwards;
    }, "get")
  });
  Object.defineProperty(ga, "findPackageData", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X7t.findPackageData;
    }, "get")
  });
  Object.defineProperty(ga, "findRelativeConfig", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ry.findRelativeConfig;
    }, "get")
  });
  Object.defineProperty(ga, "findRootConfig", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ry.findRootConfig;
    }, "get")
  });
  Object.defineProperty(ga, "loadConfig", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ry.loadConfig;
    }, "get")
  });
  Object.defineProperty(ga, "loadPlugin", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return S1.loadPlugin;
    }, "get")
  });
  Object.defineProperty(ga, "loadPreset", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return S1.loadPreset;
    }, "get")
  });
  Object.defineProperty(ga, "resolvePlugin", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return S1.resolvePlugin;
    }, "get")
  });
  Object.defineProperty(ga, "resolvePreset", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return S1.resolvePreset;
    }, "get")
  });
  Object.defineProperty(ga, "resolveShowConfigPath", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ry.resolveShowConfigPath;
    }, "get")
  });
  var X7t = dG(), ry = Jue(), S1 = wce();
});

// ../node_modules/@babel/core/lib/transform.js
var Nce = g((iy) => {
  "use strict";
  Object.defineProperty(iy, "__esModule", {
    value: !0
  });
  iy.transform = void 0;
  iy.transformAsync = Z7t;
  iy.transformSync = Q7t;
  function Ice() {
    let t = pa();
    return Ice = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(Ice, "_gensync");
  var z7t = fm(), G7t = fE(), P1 = bu(), E1 = Ice()(/* @__PURE__ */ n(function* (e, s) {
    let r = yield* (0, z7t.default)(s);
    return r === null ? null : yield* (0, G7t.run)(r, e);
  }, "transform")), NGs = iy.transform = /* @__PURE__ */ n(function(e, s, r) {
    let i, a;
    if (typeof s == "function" ? (a = s, i = void 0) : (i = s, a = r), a === void 0)
      return (0, P1.beginHiddenCallStack)(E1.sync)(e, i);
    (0, P1.beginHiddenCallStack)(E1.errback)(e, i, a);
  }, "transform");
  function Q7t(...t) {
    return (0, P1.beginHiddenCallStack)(E1.sync)(...t);
  }
  n(Q7t, "transformSync");
  function Z7t(...t) {
    return (0, P1.beginHiddenCallStack)(E1.async)(...t);
  }
  n(Z7t, "transformAsync");
});

// ../node_modules/@babel/core/lib/transform-ast.js
var Dce = g((ny) => {
  "use strict";
  Object.defineProperty(ny, "__esModule", {
    value: !0
  });
  ny.transformFromAst = void 0;
  ny.transformFromAstAsync = rqt;
  ny.transformFromAstSync = sqt;
  function kce() {
    let t = pa();
    return kce = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(kce, "_gensync");
  var eqt = fm(), tqt = fE(), A1 = bu(), v1 = kce()(function* (t, e, s) {
    let r = yield* (0, eqt.default)(s);
    if (r === null) return null;
    if (!t) throw new Error("No AST given");
    return yield* (0, tqt.run)(r, e, t);
  }), OGs = ny.transformFromAst = /* @__PURE__ */ n(function(e, s, r, i) {
    let a, o;
    if (typeof r == "function" ? (o = r, a = void 0) : (a = r, o = i), o === void 0)
      return (0, A1.beginHiddenCallStack)(v1.sync)(e, s, a);
    (0, A1.beginHiddenCallStack)(v1.errback)(e, s, a, o);
  }, "transformFromAst");
  function sqt(...t) {
    return (0, A1.beginHiddenCallStack)(v1.sync)(...t);
  }
  n(sqt, "transformFromAstSync");
  function rqt(...t) {
    return (0, A1.beginHiddenCallStack)(v1.async)(...t);
  }
  n(rqt, "transformFromAstAsync");
});

// ../node_modules/@babel/core/lib/parse.js
var _ce = g((ay) => {
  "use strict";
  Object.defineProperty(ay, "__esModule", {
    value: !0
  });
  ay.parse = void 0;
  ay.parseAsync = lqt;
  ay.parseSync = oqt;
  function Oce() {
    let t = pa();
    return Oce = /* @__PURE__ */ n(function() {
      return t;
    }, "_gensync"), t;
  }
  n(Oce, "_gensync");
  var iqt = fm(), nqt = _L(), aqt = IL(), C1 = bu(), w1 = Oce()(/* @__PURE__ */ n(function* (e, s) {
    let r = yield* (0, iqt.default)(s);
    return r === null ? null : yield* (0, nqt.default)(r.passes, (0, aqt.default)(r), e);
  }, "parse")), BGs = ay.parse = /* @__PURE__ */ n(function(e, s, r) {
    if (typeof s == "function" && (r = s, s = void 0), r === void 0)
      return (0, C1.beginHiddenCallStack)(w1.sync)(e, s);
    (0, C1.beginHiddenCallStack)(w1.errback)(e, s, r);
  }, "parse");
  function oqt(...t) {
    return (0, C1.beginHiddenCallStack)(w1.sync)(...t);
  }
  n(oqt, "parseSync");
  function lqt(...t) {
    return (0, C1.beginHiddenCallStack)(w1.async)(...t);
  }
  n(lqt, "parseAsync");
});

// ../node_modules/@babel/core/lib/index.js
var ai = g((ts) => {
  "use strict";
  Object.defineProperty(ts, "__esModule", {
    value: !0
  });
  ts.DEFAULT_EXTENSIONS = void 0;
  Object.defineProperty(ts, "File", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return uqt.default;
    }, "get")
  });
  Object.defineProperty(ts, "buildExternalHelpers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return cqt.default;
    }, "get")
  });
  Object.defineProperty(ts, "createConfigItem", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.createConfigItem;
    }, "get")
  });
  Object.defineProperty(ts, "createConfigItemAsync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.createConfigItemAsync;
    }, "get")
  });
  Object.defineProperty(ts, "createConfigItemSync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.createConfigItemSync;
    }, "get")
  });
  Object.defineProperty(ts, "getEnv", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return pqt.getEnv;
    }, "get")
  });
  Object.defineProperty(ts, "loadOptions", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.loadOptions;
    }, "get")
  });
  Object.defineProperty(ts, "loadOptionsAsync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.loadOptionsAsync;
    }, "get")
  });
  Object.defineProperty(ts, "loadOptionsSync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.loadOptionsSync;
    }, "get")
  });
  Object.defineProperty(ts, "loadPartialConfig", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.loadPartialConfig;
    }, "get")
  });
  Object.defineProperty(ts, "loadPartialConfigAsync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.loadPartialConfigAsync;
    }, "get")
  });
  Object.defineProperty(ts, "loadPartialConfigSync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wl.loadPartialConfigSync;
    }, "get")
  });
  Object.defineProperty(ts, "parse", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fj.parse;
    }, "get")
  });
  Object.defineProperty(ts, "parseAsync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fj.parseAsync;
    }, "get")
  });
  Object.defineProperty(ts, "parseSync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fj.parseSync;
    }, "get")
  });
  ts.resolvePreset = ts.resolvePlugin = void 0;
  Object.defineProperty(ts, "template", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return jce().default;
    }, "get")
  });
  Object.defineProperty(ts, "tokTypes", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Mce().tokTypes;
    }, "get")
  });
  Object.defineProperty(ts, "transform", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return cj.transform;
    }, "get")
  });
  Object.defineProperty(ts, "transformAsync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return cj.transformAsync;
    }, "get")
  });
  Object.defineProperty(ts, "transformFile", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return pj.transformFile;
    }, "get")
  });
  Object.defineProperty(ts, "transformFileAsync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return pj.transformFileAsync;
    }, "get")
  });
  Object.defineProperty(ts, "transformFileSync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return pj.transformFileSync;
    }, "get")
  });
  Object.defineProperty(ts, "transformFromAst", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return hj.transformFromAst;
    }, "get")
  });
  Object.defineProperty(ts, "transformFromAstAsync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return hj.transformFromAstAsync;
    }, "get")
  });
  Object.defineProperty(ts, "transformFromAstSync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return hj.transformFromAstSync;
    }, "get")
  });
  Object.defineProperty(ts, "transformSync", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return cj.transformSync;
    }, "get")
  });
  Object.defineProperty(ts, "traverse", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Fce().default;
    }, "get")
  });
  ts.version = ts.types = void 0;
  var uqt = F2(), cqt = Uz(), Lce = f0(), pqt = yL();
  function Bce() {
    let t = fe();
    return Bce = /* @__PURE__ */ n(function() {
      return t;
    }, "_types"), t;
  }
  n(Bce, "_types");
  Object.defineProperty(ts, "types", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Bce();
    }, "get")
  });
  function Mce() {
    let t = Qx();
    return Mce = /* @__PURE__ */ n(function() {
      return t;
    }, "_parser"), t;
  }
  n(Mce, "_parser");
  function Fce() {
    let t = Yl();
    return Fce = /* @__PURE__ */ n(function() {
      return t;
    }, "_traverse"), t;
  }
  n(Fce, "_traverse");
  function jce() {
    let t = Jl();
    return jce = /* @__PURE__ */ n(function() {
      return t;
    }, "_template"), t;
  }
  n(jce, "_template");
  var wl = fm(), cj = Nce(), pj = XL(), hj = Dce(), fj = _ce(), jGs = ts.version = "7.26.9", hqt = /* @__PURE__ */ n((t, e) => Lce.resolvePlugin(
  t, e, !1).filepath, "resolvePlugin");
  ts.resolvePlugin = hqt;
  var fqt = /* @__PURE__ */ n((t, e) => Lce.resolvePreset(t, e, !1).filepath, "resolvePreset");
  ts.resolvePreset = fqt;
  var RGs = ts.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]);
  ts.OptionManager = class {
    static {
      n(this, "OptionManager");
    }
    init(e) {
      return (0, wl.loadOptionsSync)(e);
    }
  }, ts.Plugin = /* @__PURE__ */ n(function(e) {
    throw new Error(`The (${e}) Babel 5 plugin is being run with an unsupported Babel version.`);
  }, "Plugin");
});

// ../node_modules/@babel/generator/lib/source-map.js
var Rce = g((I1) => {
  "use strict";
  Object.defineProperty(I1, "__esModule", {
    value: !0
  });
  I1.default = void 0;
  var Mp = fh(), dj = Oc(), mj = class {
    static {
      n(this, "SourceMap");
    }
    constructor(e, s) {
      var r;
      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;
      let i = this._map = new Mp.GenMapping({
        sourceRoot: e.sourceRoot
      });
      if (this._sourceFileName = (r = e.sourceFileName) == null ? void 0 : r.replace(/\\/g, "/"), this._rawMappings = void 0, e.inputSourceMap) {
        this._inputMap = new dj.TraceMap(e.inputSourceMap);
        let o = this._inputMap.resolvedSources;
        if (o.length)
          for (let l = 0; l < o.length; l++) {
            var a;
            (0, Mp.setSourceContent)(i, o[l], (a = this._inputMap.sourcesContent) == null ? void 0 : a[l]);
          }
      }
      if (typeof s == "string" && !e.inputSourceMap)
        (0, Mp.setSourceContent)(i, this._sourceFileName, s);
      else if (typeof s == "object")
        for (let o of Object.keys(s))
          (0, Mp.setSourceContent)(i, o.replace(/\\/g, "/"), s[o]);
    }
    get() {
      return (0, Mp.toEncodedMap)(this._map);
    }
    getDecoded() {
      return (0, Mp.toDecodedMap)(this._map);
    }
    getRawMappings() {
      return this._rawMappings || (this._rawMappings = (0, Mp.allMappings)(this._map));
    }
    mark(e, s, r, i, a, o) {
      var l;
      this._rawMappings = void 0;
      let u;
      if (s != null)
        if (this._inputMap) {
          if (u = (0, dj.originalPositionFor)(this._inputMap, {
            line: s,
            column: r
          }), !u.name && a) {
            let c = (0, dj.originalPositionFor)(this._inputMap, a);
            c.name && (i = c.name);
          }
        } else
          u = {
            source: o?.replace(/\\/g, "/") || this._sourceFileName,
            line: s,
            column: r
          };
      (0, Mp.maybeAddMapping)(this._map, {
        name: i,
        generated: e,
        source: (l = u) == null ? void 0 : l.source,
        original: u
      });
    }
  };
  I1.default = mj;
});

// ../node_modules/@babel/generator/lib/buffer.js
var qce = g((N1) => {
  "use strict";
  Object.defineProperty(N1, "__esModule", {
    value: !0
  });
  N1.default = void 0;
  var yj = class {
    static {
      n(this, "Buffer");
    }
    constructor(e, s) {
      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 = e, this._indentChar = s;
      for (let r = 0; r < 64; r++)
        this._fastIndentations.push(s.repeat(r));
      this._allocQueue();
    }
    _allocQueue() {
      let e = this._queue;
      for (let s = 0; s < 16; s++)
        e.push({
          char: 0,
          repeat: 1,
          line: void 0,
          column: void 0,
          identifierName: void 0,
          identifierNamePos: void 0,
          filename: ""
        });
    }
    _pushQueue(e, s, r, i, a) {
      let o = this._queueCursor;
      o === this._queue.length && this._allocQueue();
      let l = this._queue[o];
      l.char = e, l.repeat = s, l.line = r, l.column = i, 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();
      let e = this._map, s = {
        code: (this._buf + this._str).trimRight(),
        decodedMap: e?.getDecoded(),
        get __mergedMap() {
          return this.map;
        },
        get map() {
          let r = e ? e.get() : null;
          return s.map = r, r;
        },
        set map(r) {
          Object.defineProperty(s, "map", {
            value: r,
            writable: !0
          });
        },
        get rawMappings() {
          let r = e?.getRawMappings();
          return s.rawMappings = r, r;
        },
        set rawMappings(r) {
          Object.defineProperty(s, "rawMappings", {
            value: r,
            writable: !0
          });
        }
      };
      return s;
    }
    append(e, s) {
      this._flush(), this._append(e, this._sourcePosition, s);
    }
    appendChar(e) {
      this._flush(), this._appendChar(e, 1, this._sourcePosition);
    }
    queue(e) {
      if (e === 10)
        for (; this._queueCursor !== 0; ) {
          let r = this._queue[this._queueCursor - 1].char;
          if (r !== 32 && r !== 9)
            break;
          this._queueCursor--;
        }
      let s = this._sourcePosition;
      this._pushQueue(e, 1, s.line, s.column, s.filename);
    }
    queueIndentation(e) {
      e !== 0 && this._pushQueue(-1, e, void 0, void 0, void 0);
    }
    _flush() {
      let e = this._queueCursor, s = this._queue;
      for (let r = 0; r < e; r++) {
        let i = s[r];
        this._appendChar(i.char, i.repeat, i);
      }
      this._queueCursor = 0;
    }
    _appendChar(e, s, r) {
      if (this._last = e, e === -1) {
        let i = this._fastIndentations[s];
        i !== void 0 ? this._str += i : this._str += s > 1 ? this._indentChar.repeat(s) : this._indentChar;
      } else
        this._str += s > 1 ? String.fromCharCode(e).repeat(s) : String.fromCharCode(e);
      e !== 10 ? (this._mark(r.line, r.column, r.identifierName, r.identifierNamePos, r.filename), this._position.column += s) : (this._position.
      line++, this._position.column = 0), this._canMarkIdName && (r.identifierName = void 0, r.identifierNamePos = void 0);
    }
    _append(e, s, r) {
      let i = e.length, a = this._position;
      if (this._last = e.charCodeAt(i - 1), ++this._appendCount > 4096 ? (+this._str, this._buf += this._str, this._str = e, this._appendCount =
      0) : this._str += e, !r && !this._map) {
        a.column += i;
        return;
      }
      let {
        column: o,
        identifierName: l,
        identifierNamePos: u,
        filename: c
      } = s, p = s.line;
      (l != null || u != null) && this._canMarkIdName && (s.identifierName = void 0, s.identifierNamePos = void 0);
      let h = e.indexOf(`
`), f = 0;
      for (h !== 0 && this._mark(p, o, l, u, c); h !== -1; )
        a.line++, a.column = 0, f = h + 1, f < i && p !== void 0 && this._mark(++p, 0, null, null, c), h = e.indexOf(`
`, f);
      a.column += i - f;
    }
    _mark(e, s, r, i, a) {
      var o;
      (o = this._map) == null || o.mark(this._position, e, s, r, i, a);
    }
    removeTrailingNewline() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 10 && this._queueCursor--;
    }
    removeLastSemicolon() {
      let e = this._queueCursor;
      e !== 0 && this._queue[e - 1].char === 59 && this._queueCursor--;
    }
    getLastChar() {
      let e = this._queueCursor;
      return e !== 0 ? this._queue[e - 1].char : this._last;
    }
    getNewlineCount() {
      let e = this._queueCursor, s = 0;
      if (e === 0) return this._last === 10 ? 1 : 0;
      for (let r = e - 1; r >= 0 && this._queue[r].char === 10; r--)
        s++;
      return s === e && this._last === 10 ? s + 1 : s;
    }
    endsWithCharAndNewline() {
      let e = this._queue, s = this._queueCursor;
      if (s !== 0)
        return e[s - 1].char !== 10 ? void 0 : s > 1 ? e[s - 2].char : this._last;
    }
    hasContent() {
      return this._queueCursor !== 0 || !!this._last;
    }
    exactSource(e, s) {
      if (!this._map) {
        s();
        return;
      }
      this.source("start", e);
      let r = e.identifierName, i = this._sourcePosition;
      r && (this._canMarkIdName = !1, i.identifierName = r), s(), r && (this._canMarkIdName = !0, i.identifierName = void 0, i.identifierNamePos =
      void 0), this.source("end", e);
    }
    source(e, s) {
      this._map && this._normalizePosition(e, s, 0);
    }
    sourceWithOffset(e, s, r) {
      this._map && this._normalizePosition(e, s, r);
    }
    _normalizePosition(e, s, r) {
      let i = s[e], a = this._sourcePosition;
      i && (a.line = i.line, a.column = Math.max(i.column + r, 0), a.filename = s.filename);
    }
    getCurrentColumn() {
      let e = this._queue, s = this._queueCursor, r = -1, i = 0;
      for (let a = 0; a < s; a++) {
        let o = e[a];
        o.char === 10 && (r = i), i += o.repeat;
      }
      return r === -1 ? this._position.column + i : i - 1 - r;
    }
    getCurrentLine() {
      let e = 0, s = this._queue;
      for (let r = 0; r < this._queueCursor; r++)
        s[r].char === 10 && e++;
      return this._position.line + e;
    }
  };
  N1.default = yj;
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/utils/shallowEqual.js
var k1 = g((gj) => {
  "use strict";
  Object.defineProperty(gj, "__esModule", {
    value: !0
  });
  gj.default = dqt;
  function dqt(t, e) {
    let s = Object.keys(e);
    for (let r of s)
      if (t[r] !== e[r])
        return !1;
    return !0;
  }
  n(dqt, "shallowEqual");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/utils/deprecationWarning.js
var AT = g((Tj) => {
  "use strict";
  Object.defineProperty(Tj, "__esModule", {
    value: !0
  });
  Tj.default = mqt;
  var Uce = /* @__PURE__ */ new Set();
  function mqt(t, e, s = "") {
    if (Uce.has(t)) return;
    Uce.add(t);
    let {
      internal: r,
      trace: i
    } = yqt(1, 2);
    r || console.warn(`${s}\`${t}\` has been deprecated, please migrate to \`${e}\`
${i}`);
  }
  n(mqt, "deprecationWarning");
  function yqt(t, e) {
    let {
      stackTraceLimit: s,
      prepareStackTrace: r
    } = Error, i;
    if (Error.stackTraceLimit = 1 + t + e, Error.prepareStackTrace = function(o, l) {
      i = l;
    }, new Error().stack, Error.stackTraceLimit = s, Error.prepareStackTrace = r, !i) return {
      internal: !1,
      trace: ""
    };
    let a = i.slice(1 + t, 1 + t + e);
    return {
      internal: /[\\/]@babel[\\/]/.test(a[1].getFileName()),
      trace: a.map((o) => `    at ${o}`).join(`
`)
    };
  }
  n(yqt, "captureShortStackTrace");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/generated/index.js
var di = g((N) => {
  "use strict";
  Object.defineProperty(N, "__esModule", {
    value: !0
  });
  N.isAccessor = D$t;
  N.isAnyTypeAnnotation = GUt;
  N.isArgumentPlaceholder = CVt;
  N.isArrayExpression = gqt;
  N.isArrayPattern = mUt;
  N.isArrayTypeAnnotation = QUt;
  N.isArrowFunctionExpression = yUt;
  N.isAssignmentExpression = Tqt;
  N.isAssignmentPattern = dUt;
  N.isAwaitExpression = RUt;
  N.isBigIntLiteral = UUt;
  N.isBinary = e$t;
  N.isBinaryExpression = bqt;
  N.isBindExpression = wVt;
  N.isBlock = r$t;
  N.isBlockParent = s$t;
  N.isBlockStatement = Eqt;
  N.isBooleanLiteral = Wqt;
  N.isBooleanLiteralTypeAnnotation = eKt;
  N.isBooleanTypeAnnotation = ZUt;
  N.isBreakStatement = Aqt;
  N.isCallExpression = vqt;
  N.isCatchClause = Cqt;
  N.isClass = I$t;
  N.isClassAccessorProperty = HUt;
  N.isClassBody = gUt;
  N.isClassDeclaration = bUt;
  N.isClassExpression = TUt;
  N.isClassImplements = sKt;
  N.isClassMethod = DUt;
  N.isClassPrivateMethod = YUt;
  N.isClassPrivateProperty = JUt;
  N.isClassProperty = $Ut;
  N.isCompletionStatement = a$t;
  N.isConditional = o$t;
  N.isConditionalExpression = wqt;
  N.isContinueStatement = Iqt;
  N.isDebuggerStatement = Nqt;
  N.isDecimalLiteral = LVt;
  N.isDeclaration = y$t;
  N.isDeclareClass = rKt;
  N.isDeclareExportAllDeclaration = hKt;
  N.isDeclareExportDeclaration = pKt;
  N.isDeclareFunction = iKt;
  N.isDeclareInterface = nKt;
  N.isDeclareModule = aKt;
  N.isDeclareModuleExports = oKt;
  N.isDeclareOpaqueType = uKt;
  N.isDeclareTypeAlias = lKt;
  N.isDeclareVariable = cKt;
  N.isDeclaredPredicate = fKt;
  N.isDecorator = NVt;
  N.isDirective = Sqt;
  N.isDirectiveLiteral = Pqt;
  N.isDoExpression = kVt;
  N.isDoWhileStatement = kqt;
  N.isEmptyStatement = Dqt;
  N.isEmptyTypeAnnotation = AKt;
  N.isEnumBody = j$t;
  N.isEnumBooleanBody = QKt;
  N.isEnumBooleanMember = sVt;
  N.isEnumDeclaration = GKt;
  N.isEnumDefaultedMember = nVt;
  N.isEnumMember = R$t;
  N.isEnumNumberBody = ZKt;
  N.isEnumNumberMember = rVt;
  N.isEnumStringBody = eVt;
  N.isEnumStringMember = iVt;
  N.isEnumSymbolBody = tVt;
  N.isExistsTypeAnnotation = dKt;
  N.isExportAllDeclaration = xUt;
  N.isExportDeclaration = N$t;
  N.isExportDefaultDeclaration = SUt;
  N.isExportDefaultSpecifier = DVt;
  N.isExportNamedDeclaration = PUt;
  N.isExportNamespaceSpecifier = KUt;
  N.isExportSpecifier = EUt;
  N.isExpression = ZWt;
  N.isExpressionStatement = Oqt;
  N.isExpressionWrapper = c$t;
  N.isFile = _qt;
  N.isFlow = _$t;
  N.isFlowBaseAnnotation = B$t;
  N.isFlowDeclaration = M$t;
  N.isFlowPredicate = F$t;
  N.isFlowType = L$t;
  N.isFor = p$t;
  N.isForInStatement = Lqt;
  N.isForOfStatement = AUt;
  N.isForStatement = Bqt;
  N.isForXStatement = h$t;
  N.isFunction = f$t;
  N.isFunctionDeclaration = Mqt;
  N.isFunctionExpression = Fqt;
  N.isFunctionParent = d$t;
  N.isFunctionTypeAnnotation = mKt;
  N.isFunctionTypeParam = yKt;
  N.isGenericTypeAnnotation = gKt;
  N.isIdentifier = jqt;
  N.isIfStatement = Rqt;
  N.isImmutable = S$t;
  N.isImport = qUt;
  N.isImportAttribute = IVt;
  N.isImportDeclaration = vUt;
  N.isImportDefaultSpecifier = CUt;
  N.isImportExpression = NUt;
  N.isImportNamespaceSpecifier = wUt;
  N.isImportOrExportDeclaration = Kce;
  N.isImportSpecifier = IUt;
  N.isIndexedAccessType = aVt;
  N.isInferredPredicate = TKt;
  N.isInterfaceDeclaration = xKt;
  N.isInterfaceExtends = bKt;
  N.isInterfaceTypeAnnotation = SKt;
  N.isInterpreterDirective = xqt;
  N.isIntersectionTypeAnnotation = PKt;
  N.isJSX = q$t;
  N.isJSXAttribute = lVt;
  N.isJSXClosingElement = uVt;
  N.isJSXClosingFragment = PVt;
  N.isJSXElement = cVt;
  N.isJSXEmptyExpression = pVt;
  N.isJSXExpressionContainer = hVt;
  N.isJSXFragment = xVt;
  N.isJSXIdentifier = dVt;
  N.isJSXMemberExpression = mVt;
  N.isJSXNamespacedName = yVt;
  N.isJSXOpeningElement = gVt;
  N.isJSXOpeningFragment = SVt;
  N.isJSXSpreadAttribute = TVt;
  N.isJSXSpreadChild = fVt;
  N.isJSXText = bVt;
  N.isLVal = T$t;
  N.isLabeledStatement = qqt;
  N.isLiteral = x$t;
  N.isLogicalExpression = Hqt;
  N.isLoop = l$t;
  N.isMemberExpression = Jqt;
  N.isMetaProperty = kUt;
  N.isMethod = E$t;
  N.isMiscellaneous = U$t;
  N.isMixedTypeAnnotation = EKt;
  N.isModuleDeclaration = z$t;
  N.isModuleExpression = BVt;
  N.isModuleSpecifier = k$t;
  N.isNewExpression = Yqt;
  N.isNoop = EVt;
  N.isNullLiteral = Vqt;
  N.isNullLiteralTypeAnnotation = tKt;
  N.isNullableTypeAnnotation = vKt;
  N.isNumberLiteral = H$t;
  N.isNumberLiteralTypeAnnotation = CKt;
  N.isNumberTypeAnnotation = wKt;
  N.isNumericLiteral = Kqt;
  N.isObjectExpression = zqt;
  N.isObjectMember = A$t;
  N.isObjectMethod = Gqt;
  N.isObjectPattern = OUt;
  N.isObjectProperty = Qqt;
  N.isObjectTypeAnnotation = IKt;
  N.isObjectTypeCallProperty = kKt;
  N.isObjectTypeIndexer = DKt;
  N.isObjectTypeInternalSlot = NKt;
  N.isObjectTypeProperty = OKt;
  N.isObjectTypeSpreadProperty = _Kt;
  N.isOpaqueType = LKt;
  N.isOptionalCallExpression = WUt;
  N.isOptionalIndexedAccessType = oVt;
  N.isOptionalMemberExpression = VUt;
  N.isParenthesizedExpression = sUt;
  N.isPattern = w$t;
  N.isPatternLike = g$t;
  N.isPipelineBareFunction = jVt;
  N.isPipelinePrimaryTopicReference = RVt;
  N.isPipelineTopicExpression = FVt;
  N.isPlaceholder = AVt;
  N.isPrivate = O$t;
  N.isPrivateName = XUt;
  N.isProgram = Xqt;
  N.isProperty = v$t;
  N.isPureish = m$t;
  N.isQualifiedTypeIdentifier = BKt;
  N.isRecordExpression = OVt;
  N.isRegExpLiteral = $qt;
  N.isRegexLiteral = J$t;
  N.isRestElement = Zqt;
  N.isRestProperty = Y$t;
  N.isReturnStatement = eUt;
  N.isScopable = t$t;
  N.isSequenceExpression = tUt;
  N.isSpreadElement = _Ut;
  N.isSpreadProperty = X$t;
  N.isStandardized = QWt;
  N.isStatement = i$t;
  N.isStaticBlock = zUt;
  N.isStringLiteral = Uqt;
  N.isStringLiteralTypeAnnotation = MKt;
  N.isStringTypeAnnotation = FKt;
  N.isSuper = LUt;
  N.isSwitchCase = rUt;
  N.isSwitchStatement = iUt;
  N.isSymbolTypeAnnotation = jKt;
  N.isTSAnyKeyword = XVt;
  N.isTSArrayType = mWt;
  N.isTSAsExpression = LWt;
  N.isTSBaseType = $$t;
  N.isTSBigIntKeyword = GVt;
  N.isTSBooleanKeyword = zVt;
  N.isTSCallSignatureDeclaration = WVt;
  N.isTSConditionalType = PWt;
  N.isTSConstructSignatureDeclaration = $Vt;
  N.isTSConstructorType = cWt;
  N.isTSDeclareFunction = UVt;
  N.isTSDeclareMethod = KVt;
  N.isTSEntityName = b$t;
  N.isTSEnumBody = FWt;
  N.isTSEnumDeclaration = jWt;
  N.isTSEnumMember = RWt;
  N.isTSExportAssignment = HWt;
  N.isTSExpressionWithTypeArguments = NWt;
  N.isTSExternalModuleReference = WWt;
  N.isTSFunctionType = uWt;
  N.isTSImportEqualsDeclaration = VWt;
  N.isTSImportType = KWt;
  N.isTSIndexSignature = YVt;
  N.isTSIndexedAccessType = CWt;
  N.isTSInferType = EWt;
  N.isTSInstantiationExpression = _Wt;
  N.isTSInterfaceBody = DWt;
  N.isTSInterfaceDeclaration = kWt;
  N.isTSIntersectionType = SWt;
  N.isTSIntrinsicKeyword = QVt;
  N.isTSLiteralType = IWt;
  N.isTSMappedType = wWt;
  N.isTSMethodSignature = JVt;
  N.isTSModuleBlock = UWt;
  N.isTSModuleDeclaration = qWt;
  N.isTSNamedTupleMember = bWt;
  N.isTSNamespaceExportDeclaration = JWt;
  N.isTSNeverKeyword = ZVt;
  N.isTSNonNullExpression = $Wt;
  N.isTSNullKeyword = eWt;
  N.isTSNumberKeyword = tWt;
  N.isTSObjectKeyword = sWt;
  N.isTSOptionalType = gWt;
  N.isTSParameterProperty = qVt;
  N.isTSParenthesizedType = AWt;
  N.isTSPropertySignature = HVt;
  N.isTSQualifiedName = VVt;
  N.isTSRestType = TWt;
  N.isTSSatisfiesExpression = BWt;
  N.isTSStringKeyword = rWt;
  N.isTSSymbolKeyword = iWt;
  N.isTSThisType = lWt;
  N.isTSTupleType = yWt;
  N.isTSType = W$t;
  N.isTSTypeAliasDeclaration = OWt;
  N.isTSTypeAnnotation = YWt;
  N.isTSTypeAssertion = MWt;
  N.isTSTypeElement = V$t;
  N.isTSTypeLiteral = dWt;
  N.isTSTypeOperator = vWt;
  N.isTSTypeParameter = GWt;
  N.isTSTypeParameterDeclaration = zWt;
  N.isTSTypeParameterInstantiation = XWt;
  N.isTSTypePredicate = hWt;
  N.isTSTypeQuery = fWt;
  N.isTSTypeReference = pWt;
  N.isTSUndefinedKeyword = nWt;
  N.isTSUnionType = xWt;
  N.isTSUnknownKeyword = aWt;
  N.isTSVoidKeyword = oWt;
  N.isTaggedTemplateExpression = BUt;
  N.isTemplateElement = MUt;
  N.isTemplateLiteral = FUt;
  N.isTerminatorless = n$t;
  N.isThisExpression = nUt;
  N.isThisTypeAnnotation = RKt;
  N.isThrowStatement = aUt;
  N.isTopicReference = MVt;
  N.isTryStatement = oUt;
  N.isTupleExpression = _Vt;
  N.isTupleTypeAnnotation = qKt;
  N.isTypeAlias = KKt;
  N.isTypeAnnotation = VKt;
  N.isTypeCastExpression = WKt;
  N.isTypeParameter = $Kt;
  N.isTypeParameterDeclaration = HKt;
  N.isTypeParameterInstantiation = JKt;
  N.isTypeScript = K$t;
  N.isTypeofTypeAnnotation = UKt;
  N.isUnaryExpression = lUt;
  N.isUnaryLike = C$t;
  N.isUnionTypeAnnotation = YKt;
  N.isUpdateExpression = uUt;
  N.isUserWhitespacable = P$t;
  N.isV8IntrinsicIdentifier = vVt;
  N.isVariableDeclaration = cUt;
  N.isVariableDeclarator = pUt;
  N.isVariance = XKt;
  N.isVoidTypeAnnotation = zKt;
  N.isWhile = u$t;
  N.isWhileStatement = hUt;
  N.isWithStatement = fUt;
  N.isYieldExpression = jUt;
  var F = k1(), vT = AT();
  function gqt(t, e) {
    return !t || t.type !== "ArrayExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(gqt, "isArrayExpression");
  function Tqt(t, e) {
    return !t || t.type !== "AssignmentExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Tqt, "isAssignmentExpression");
  function bqt(t, e) {
    return !t || t.type !== "BinaryExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(bqt, "isBinaryExpression");
  function xqt(t, e) {
    return !t || t.type !== "InterpreterDirective" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(xqt, "isInterpreterDirective");
  function Sqt(t, e) {
    return !t || t.type !== "Directive" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Sqt, "isDirective");
  function Pqt(t, e) {
    return !t || t.type !== "DirectiveLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Pqt, "isDirectiveLiteral");
  function Eqt(t, e) {
    return !t || t.type !== "BlockStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Eqt, "isBlockStatement");
  function Aqt(t, e) {
    return !t || t.type !== "BreakStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Aqt, "isBreakStatement");
  function vqt(t, e) {
    return !t || t.type !== "CallExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(vqt, "isCallExpression");
  function Cqt(t, e) {
    return !t || t.type !== "CatchClause" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Cqt, "isCatchClause");
  function wqt(t, e) {
    return !t || t.type !== "ConditionalExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(wqt, "isConditionalExpression");
  function Iqt(t, e) {
    return !t || t.type !== "ContinueStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Iqt, "isContinueStatement");
  function Nqt(t, e) {
    return !t || t.type !== "DebuggerStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Nqt, "isDebuggerStatement");
  function kqt(t, e) {
    return !t || t.type !== "DoWhileStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(kqt, "isDoWhileStatement");
  function Dqt(t, e) {
    return !t || t.type !== "EmptyStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Dqt, "isEmptyStatement");
  function Oqt(t, e) {
    return !t || t.type !== "ExpressionStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Oqt, "isExpressionStatement");
  function _qt(t, e) {
    return !t || t.type !== "File" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(_qt, "isFile");
  function Lqt(t, e) {
    return !t || t.type !== "ForInStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Lqt, "isForInStatement");
  function Bqt(t, e) {
    return !t || t.type !== "ForStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Bqt, "isForStatement");
  function Mqt(t, e) {
    return !t || t.type !== "FunctionDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Mqt, "isFunctionDeclaration");
  function Fqt(t, e) {
    return !t || t.type !== "FunctionExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Fqt, "isFunctionExpression");
  function jqt(t, e) {
    return !t || t.type !== "Identifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(jqt, "isIdentifier");
  function Rqt(t, e) {
    return !t || t.type !== "IfStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Rqt, "isIfStatement");
  function qqt(t, e) {
    return !t || t.type !== "LabeledStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(qqt, "isLabeledStatement");
  function Uqt(t, e) {
    return !t || t.type !== "StringLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Uqt, "isStringLiteral");
  function Kqt(t, e) {
    return !t || t.type !== "NumericLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Kqt, "isNumericLiteral");
  function Vqt(t, e) {
    return !t || t.type !== "NullLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Vqt, "isNullLiteral");
  function Wqt(t, e) {
    return !t || t.type !== "BooleanLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Wqt, "isBooleanLiteral");
  function $qt(t, e) {
    return !t || t.type !== "RegExpLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n($qt, "isRegExpLiteral");
  function Hqt(t, e) {
    return !t || t.type !== "LogicalExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Hqt, "isLogicalExpression");
  function Jqt(t, e) {
    return !t || t.type !== "MemberExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Jqt, "isMemberExpression");
  function Yqt(t, e) {
    return !t || t.type !== "NewExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Yqt, "isNewExpression");
  function Xqt(t, e) {
    return !t || t.type !== "Program" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Xqt, "isProgram");
  function zqt(t, e) {
    return !t || t.type !== "ObjectExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(zqt, "isObjectExpression");
  function Gqt(t, e) {
    return !t || t.type !== "ObjectMethod" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Gqt, "isObjectMethod");
  function Qqt(t, e) {
    return !t || t.type !== "ObjectProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Qqt, "isObjectProperty");
  function Zqt(t, e) {
    return !t || t.type !== "RestElement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Zqt, "isRestElement");
  function eUt(t, e) {
    return !t || t.type !== "ReturnStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(eUt, "isReturnStatement");
  function tUt(t, e) {
    return !t || t.type !== "SequenceExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(tUt, "isSequenceExpression");
  function sUt(t, e) {
    return !t || t.type !== "ParenthesizedExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(sUt, "isParenthesizedExpression");
  function rUt(t, e) {
    return !t || t.type !== "SwitchCase" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(rUt, "isSwitchCase");
  function iUt(t, e) {
    return !t || t.type !== "SwitchStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(iUt, "isSwitchStatement");
  function nUt(t, e) {
    return !t || t.type !== "ThisExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(nUt, "isThisExpression");
  function aUt(t, e) {
    return !t || t.type !== "ThrowStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(aUt, "isThrowStatement");
  function oUt(t, e) {
    return !t || t.type !== "TryStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(oUt, "isTryStatement");
  function lUt(t, e) {
    return !t || t.type !== "UnaryExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(lUt, "isUnaryExpression");
  function uUt(t, e) {
    return !t || t.type !== "UpdateExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(uUt, "isUpdateExpression");
  function cUt(t, e) {
    return !t || t.type !== "VariableDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(cUt, "isVariableDeclaration");
  function pUt(t, e) {
    return !t || t.type !== "VariableDeclarator" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(pUt, "isVariableDeclarator");
  function hUt(t, e) {
    return !t || t.type !== "WhileStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(hUt, "isWhileStatement");
  function fUt(t, e) {
    return !t || t.type !== "WithStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(fUt, "isWithStatement");
  function dUt(t, e) {
    return !t || t.type !== "AssignmentPattern" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(dUt, "isAssignmentPattern");
  function mUt(t, e) {
    return !t || t.type !== "ArrayPattern" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(mUt, "isArrayPattern");
  function yUt(t, e) {
    return !t || t.type !== "ArrowFunctionExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(yUt, "isArrowFunctionExpression");
  function gUt(t, e) {
    return !t || t.type !== "ClassBody" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(gUt, "isClassBody");
  function TUt(t, e) {
    return !t || t.type !== "ClassExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(TUt, "isClassExpression");
  function bUt(t, e) {
    return !t || t.type !== "ClassDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(bUt, "isClassDeclaration");
  function xUt(t, e) {
    return !t || t.type !== "ExportAllDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(xUt, "isExportAllDeclaration");
  function SUt(t, e) {
    return !t || t.type !== "ExportDefaultDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(SUt, "isExportDefaultDeclaration");
  function PUt(t, e) {
    return !t || t.type !== "ExportNamedDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(PUt, "isExportNamedDeclaration");
  function EUt(t, e) {
    return !t || t.type !== "ExportSpecifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(EUt, "isExportSpecifier");
  function AUt(t, e) {
    return !t || t.type !== "ForOfStatement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(AUt, "isForOfStatement");
  function vUt(t, e) {
    return !t || t.type !== "ImportDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(vUt, "isImportDeclaration");
  function CUt(t, e) {
    return !t || t.type !== "ImportDefaultSpecifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(CUt, "isImportDefaultSpecifier");
  function wUt(t, e) {
    return !t || t.type !== "ImportNamespaceSpecifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(wUt, "isImportNamespaceSpecifier");
  function IUt(t, e) {
    return !t || t.type !== "ImportSpecifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(IUt, "isImportSpecifier");
  function NUt(t, e) {
    return !t || t.type !== "ImportExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(NUt, "isImportExpression");
  function kUt(t, e) {
    return !t || t.type !== "MetaProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(kUt, "isMetaProperty");
  function DUt(t, e) {
    return !t || t.type !== "ClassMethod" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(DUt, "isClassMethod");
  function OUt(t, e) {
    return !t || t.type !== "ObjectPattern" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(OUt, "isObjectPattern");
  function _Ut(t, e) {
    return !t || t.type !== "SpreadElement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(_Ut, "isSpreadElement");
  function LUt(t, e) {
    return !t || t.type !== "Super" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(LUt, "isSuper");
  function BUt(t, e) {
    return !t || t.type !== "TaggedTemplateExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(BUt, "isTaggedTemplateExpression");
  function MUt(t, e) {
    return !t || t.type !== "TemplateElement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(MUt, "isTemplateElement");
  function FUt(t, e) {
    return !t || t.type !== "TemplateLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(FUt, "isTemplateLiteral");
  function jUt(t, e) {
    return !t || t.type !== "YieldExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(jUt, "isYieldExpression");
  function RUt(t, e) {
    return !t || t.type !== "AwaitExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(RUt, "isAwaitExpression");
  function qUt(t, e) {
    return !t || t.type !== "Import" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(qUt, "isImport");
  function UUt(t, e) {
    return !t || t.type !== "BigIntLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(UUt, "isBigIntLiteral");
  function KUt(t, e) {
    return !t || t.type !== "ExportNamespaceSpecifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(KUt, "isExportNamespaceSpecifier");
  function VUt(t, e) {
    return !t || t.type !== "OptionalMemberExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(VUt, "isOptionalMemberExpression");
  function WUt(t, e) {
    return !t || t.type !== "OptionalCallExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(WUt, "isOptionalCallExpression");
  function $Ut(t, e) {
    return !t || t.type !== "ClassProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n($Ut, "isClassProperty");
  function HUt(t, e) {
    return !t || t.type !== "ClassAccessorProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(HUt, "isClassAccessorProperty");
  function JUt(t, e) {
    return !t || t.type !== "ClassPrivateProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(JUt, "isClassPrivateProperty");
  function YUt(t, e) {
    return !t || t.type !== "ClassPrivateMethod" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(YUt, "isClassPrivateMethod");
  function XUt(t, e) {
    return !t || t.type !== "PrivateName" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(XUt, "isPrivateName");
  function zUt(t, e) {
    return !t || t.type !== "StaticBlock" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(zUt, "isStaticBlock");
  function GUt(t, e) {
    return !t || t.type !== "AnyTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(GUt, "isAnyTypeAnnotation");
  function QUt(t, e) {
    return !t || t.type !== "ArrayTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(QUt, "isArrayTypeAnnotation");
  function ZUt(t, e) {
    return !t || t.type !== "BooleanTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(ZUt, "isBooleanTypeAnnotation");
  function eKt(t, e) {
    return !t || t.type !== "BooleanLiteralTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(eKt, "isBooleanLiteralTypeAnnotation");
  function tKt(t, e) {
    return !t || t.type !== "NullLiteralTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(tKt, "isNullLiteralTypeAnnotation");
  function sKt(t, e) {
    return !t || t.type !== "ClassImplements" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(sKt, "isClassImplements");
  function rKt(t, e) {
    return !t || t.type !== "DeclareClass" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(rKt, "isDeclareClass");
  function iKt(t, e) {
    return !t || t.type !== "DeclareFunction" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(iKt, "isDeclareFunction");
  function nKt(t, e) {
    return !t || t.type !== "DeclareInterface" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(nKt, "isDeclareInterface");
  function aKt(t, e) {
    return !t || t.type !== "DeclareModule" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(aKt, "isDeclareModule");
  function oKt(t, e) {
    return !t || t.type !== "DeclareModuleExports" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(oKt, "isDeclareModuleExports");
  function lKt(t, e) {
    return !t || t.type !== "DeclareTypeAlias" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(lKt, "isDeclareTypeAlias");
  function uKt(t, e) {
    return !t || t.type !== "DeclareOpaqueType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(uKt, "isDeclareOpaqueType");
  function cKt(t, e) {
    return !t || t.type !== "DeclareVariable" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(cKt, "isDeclareVariable");
  function pKt(t, e) {
    return !t || t.type !== "DeclareExportDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(pKt, "isDeclareExportDeclaration");
  function hKt(t, e) {
    return !t || t.type !== "DeclareExportAllDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(hKt, "isDeclareExportAllDeclaration");
  function fKt(t, e) {
    return !t || t.type !== "DeclaredPredicate" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(fKt, "isDeclaredPredicate");
  function dKt(t, e) {
    return !t || t.type !== "ExistsTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(dKt, "isExistsTypeAnnotation");
  function mKt(t, e) {
    return !t || t.type !== "FunctionTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(mKt, "isFunctionTypeAnnotation");
  function yKt(t, e) {
    return !t || t.type !== "FunctionTypeParam" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(yKt, "isFunctionTypeParam");
  function gKt(t, e) {
    return !t || t.type !== "GenericTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(gKt, "isGenericTypeAnnotation");
  function TKt(t, e) {
    return !t || t.type !== "InferredPredicate" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(TKt, "isInferredPredicate");
  function bKt(t, e) {
    return !t || t.type !== "InterfaceExtends" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(bKt, "isInterfaceExtends");
  function xKt(t, e) {
    return !t || t.type !== "InterfaceDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(xKt, "isInterfaceDeclaration");
  function SKt(t, e) {
    return !t || t.type !== "InterfaceTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(SKt, "isInterfaceTypeAnnotation");
  function PKt(t, e) {
    return !t || t.type !== "IntersectionTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(PKt, "isIntersectionTypeAnnotation");
  function EKt(t, e) {
    return !t || t.type !== "MixedTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(EKt, "isMixedTypeAnnotation");
  function AKt(t, e) {
    return !t || t.type !== "EmptyTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(AKt, "isEmptyTypeAnnotation");
  function vKt(t, e) {
    return !t || t.type !== "NullableTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(vKt, "isNullableTypeAnnotation");
  function CKt(t, e) {
    return !t || t.type !== "NumberLiteralTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(CKt, "isNumberLiteralTypeAnnotation");
  function wKt(t, e) {
    return !t || t.type !== "NumberTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(wKt, "isNumberTypeAnnotation");
  function IKt(t, e) {
    return !t || t.type !== "ObjectTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(IKt, "isObjectTypeAnnotation");
  function NKt(t, e) {
    return !t || t.type !== "ObjectTypeInternalSlot" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(NKt, "isObjectTypeInternalSlot");
  function kKt(t, e) {
    return !t || t.type !== "ObjectTypeCallProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(kKt, "isObjectTypeCallProperty");
  function DKt(t, e) {
    return !t || t.type !== "ObjectTypeIndexer" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(DKt, "isObjectTypeIndexer");
  function OKt(t, e) {
    return !t || t.type !== "ObjectTypeProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(OKt, "isObjectTypeProperty");
  function _Kt(t, e) {
    return !t || t.type !== "ObjectTypeSpreadProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(_Kt, "isObjectTypeSpreadProperty");
  function LKt(t, e) {
    return !t || t.type !== "OpaqueType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(LKt, "isOpaqueType");
  function BKt(t, e) {
    return !t || t.type !== "QualifiedTypeIdentifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(BKt, "isQualifiedTypeIdentifier");
  function MKt(t, e) {
    return !t || t.type !== "StringLiteralTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(MKt, "isStringLiteralTypeAnnotation");
  function FKt(t, e) {
    return !t || t.type !== "StringTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(FKt, "isStringTypeAnnotation");
  function jKt(t, e) {
    return !t || t.type !== "SymbolTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(jKt, "isSymbolTypeAnnotation");
  function RKt(t, e) {
    return !t || t.type !== "ThisTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(RKt, "isThisTypeAnnotation");
  function qKt(t, e) {
    return !t || t.type !== "TupleTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(qKt, "isTupleTypeAnnotation");
  function UKt(t, e) {
    return !t || t.type !== "TypeofTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(UKt, "isTypeofTypeAnnotation");
  function KKt(t, e) {
    return !t || t.type !== "TypeAlias" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(KKt, "isTypeAlias");
  function VKt(t, e) {
    return !t || t.type !== "TypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(VKt, "isTypeAnnotation");
  function WKt(t, e) {
    return !t || t.type !== "TypeCastExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(WKt, "isTypeCastExpression");
  function $Kt(t, e) {
    return !t || t.type !== "TypeParameter" ? !1 : e == null || (0, F.default)(t, e);
  }
  n($Kt, "isTypeParameter");
  function HKt(t, e) {
    return !t || t.type !== "TypeParameterDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(HKt, "isTypeParameterDeclaration");
  function JKt(t, e) {
    return !t || t.type !== "TypeParameterInstantiation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(JKt, "isTypeParameterInstantiation");
  function YKt(t, e) {
    return !t || t.type !== "UnionTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(YKt, "isUnionTypeAnnotation");
  function XKt(t, e) {
    return !t || t.type !== "Variance" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(XKt, "isVariance");
  function zKt(t, e) {
    return !t || t.type !== "VoidTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(zKt, "isVoidTypeAnnotation");
  function GKt(t, e) {
    return !t || t.type !== "EnumDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(GKt, "isEnumDeclaration");
  function QKt(t, e) {
    return !t || t.type !== "EnumBooleanBody" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(QKt, "isEnumBooleanBody");
  function ZKt(t, e) {
    return !t || t.type !== "EnumNumberBody" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(ZKt, "isEnumNumberBody");
  function eVt(t, e) {
    return !t || t.type !== "EnumStringBody" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(eVt, "isEnumStringBody");
  function tVt(t, e) {
    return !t || t.type !== "EnumSymbolBody" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(tVt, "isEnumSymbolBody");
  function sVt(t, e) {
    return !t || t.type !== "EnumBooleanMember" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(sVt, "isEnumBooleanMember");
  function rVt(t, e) {
    return !t || t.type !== "EnumNumberMember" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(rVt, "isEnumNumberMember");
  function iVt(t, e) {
    return !t || t.type !== "EnumStringMember" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(iVt, "isEnumStringMember");
  function nVt(t, e) {
    return !t || t.type !== "EnumDefaultedMember" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(nVt, "isEnumDefaultedMember");
  function aVt(t, e) {
    return !t || t.type !== "IndexedAccessType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(aVt, "isIndexedAccessType");
  function oVt(t, e) {
    return !t || t.type !== "OptionalIndexedAccessType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(oVt, "isOptionalIndexedAccessType");
  function lVt(t, e) {
    return !t || t.type !== "JSXAttribute" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(lVt, "isJSXAttribute");
  function uVt(t, e) {
    return !t || t.type !== "JSXClosingElement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(uVt, "isJSXClosingElement");
  function cVt(t, e) {
    return !t || t.type !== "JSXElement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(cVt, "isJSXElement");
  function pVt(t, e) {
    return !t || t.type !== "JSXEmptyExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(pVt, "isJSXEmptyExpression");
  function hVt(t, e) {
    return !t || t.type !== "JSXExpressionContainer" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(hVt, "isJSXExpressionContainer");
  function fVt(t, e) {
    return !t || t.type !== "JSXSpreadChild" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(fVt, "isJSXSpreadChild");
  function dVt(t, e) {
    return !t || t.type !== "JSXIdentifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(dVt, "isJSXIdentifier");
  function mVt(t, e) {
    return !t || t.type !== "JSXMemberExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(mVt, "isJSXMemberExpression");
  function yVt(t, e) {
    return !t || t.type !== "JSXNamespacedName" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(yVt, "isJSXNamespacedName");
  function gVt(t, e) {
    return !t || t.type !== "JSXOpeningElement" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(gVt, "isJSXOpeningElement");
  function TVt(t, e) {
    return !t || t.type !== "JSXSpreadAttribute" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(TVt, "isJSXSpreadAttribute");
  function bVt(t, e) {
    return !t || t.type !== "JSXText" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(bVt, "isJSXText");
  function xVt(t, e) {
    return !t || t.type !== "JSXFragment" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(xVt, "isJSXFragment");
  function SVt(t, e) {
    return !t || t.type !== "JSXOpeningFragment" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(SVt, "isJSXOpeningFragment");
  function PVt(t, e) {
    return !t || t.type !== "JSXClosingFragment" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(PVt, "isJSXClosingFragment");
  function EVt(t, e) {
    return !t || t.type !== "Noop" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(EVt, "isNoop");
  function AVt(t, e) {
    return !t || t.type !== "Placeholder" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(AVt, "isPlaceholder");
  function vVt(t, e) {
    return !t || t.type !== "V8IntrinsicIdentifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(vVt, "isV8IntrinsicIdentifier");
  function CVt(t, e) {
    return !t || t.type !== "ArgumentPlaceholder" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(CVt, "isArgumentPlaceholder");
  function wVt(t, e) {
    return !t || t.type !== "BindExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(wVt, "isBindExpression");
  function IVt(t, e) {
    return !t || t.type !== "ImportAttribute" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(IVt, "isImportAttribute");
  function NVt(t, e) {
    return !t || t.type !== "Decorator" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(NVt, "isDecorator");
  function kVt(t, e) {
    return !t || t.type !== "DoExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(kVt, "isDoExpression");
  function DVt(t, e) {
    return !t || t.type !== "ExportDefaultSpecifier" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(DVt, "isExportDefaultSpecifier");
  function OVt(t, e) {
    return !t || t.type !== "RecordExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(OVt, "isRecordExpression");
  function _Vt(t, e) {
    return !t || t.type !== "TupleExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(_Vt, "isTupleExpression");
  function LVt(t, e) {
    return !t || t.type !== "DecimalLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(LVt, "isDecimalLiteral");
  function BVt(t, e) {
    return !t || t.type !== "ModuleExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(BVt, "isModuleExpression");
  function MVt(t, e) {
    return !t || t.type !== "TopicReference" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(MVt, "isTopicReference");
  function FVt(t, e) {
    return !t || t.type !== "PipelineTopicExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(FVt, "isPipelineTopicExpression");
  function jVt(t, e) {
    return !t || t.type !== "PipelineBareFunction" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(jVt, "isPipelineBareFunction");
  function RVt(t, e) {
    return !t || t.type !== "PipelinePrimaryTopicReference" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(RVt, "isPipelinePrimaryTopicReference");
  function qVt(t, e) {
    return !t || t.type !== "TSParameterProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(qVt, "isTSParameterProperty");
  function UVt(t, e) {
    return !t || t.type !== "TSDeclareFunction" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(UVt, "isTSDeclareFunction");
  function KVt(t, e) {
    return !t || t.type !== "TSDeclareMethod" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(KVt, "isTSDeclareMethod");
  function VVt(t, e) {
    return !t || t.type !== "TSQualifiedName" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(VVt, "isTSQualifiedName");
  function WVt(t, e) {
    return !t || t.type !== "TSCallSignatureDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(WVt, "isTSCallSignatureDeclaration");
  function $Vt(t, e) {
    return !t || t.type !== "TSConstructSignatureDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n($Vt, "isTSConstructSignatureDeclaration");
  function HVt(t, e) {
    return !t || t.type !== "TSPropertySignature" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(HVt, "isTSPropertySignature");
  function JVt(t, e) {
    return !t || t.type !== "TSMethodSignature" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(JVt, "isTSMethodSignature");
  function YVt(t, e) {
    return !t || t.type !== "TSIndexSignature" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(YVt, "isTSIndexSignature");
  function XVt(t, e) {
    return !t || t.type !== "TSAnyKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(XVt, "isTSAnyKeyword");
  function zVt(t, e) {
    return !t || t.type !== "TSBooleanKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(zVt, "isTSBooleanKeyword");
  function GVt(t, e) {
    return !t || t.type !== "TSBigIntKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(GVt, "isTSBigIntKeyword");
  function QVt(t, e) {
    return !t || t.type !== "TSIntrinsicKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(QVt, "isTSIntrinsicKeyword");
  function ZVt(t, e) {
    return !t || t.type !== "TSNeverKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(ZVt, "isTSNeverKeyword");
  function eWt(t, e) {
    return !t || t.type !== "TSNullKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(eWt, "isTSNullKeyword");
  function tWt(t, e) {
    return !t || t.type !== "TSNumberKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(tWt, "isTSNumberKeyword");
  function sWt(t, e) {
    return !t || t.type !== "TSObjectKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(sWt, "isTSObjectKeyword");
  function rWt(t, e) {
    return !t || t.type !== "TSStringKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(rWt, "isTSStringKeyword");
  function iWt(t, e) {
    return !t || t.type !== "TSSymbolKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(iWt, "isTSSymbolKeyword");
  function nWt(t, e) {
    return !t || t.type !== "TSUndefinedKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(nWt, "isTSUndefinedKeyword");
  function aWt(t, e) {
    return !t || t.type !== "TSUnknownKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(aWt, "isTSUnknownKeyword");
  function oWt(t, e) {
    return !t || t.type !== "TSVoidKeyword" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(oWt, "isTSVoidKeyword");
  function lWt(t, e) {
    return !t || t.type !== "TSThisType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(lWt, "isTSThisType");
  function uWt(t, e) {
    return !t || t.type !== "TSFunctionType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(uWt, "isTSFunctionType");
  function cWt(t, e) {
    return !t || t.type !== "TSConstructorType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(cWt, "isTSConstructorType");
  function pWt(t, e) {
    return !t || t.type !== "TSTypeReference" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(pWt, "isTSTypeReference");
  function hWt(t, e) {
    return !t || t.type !== "TSTypePredicate" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(hWt, "isTSTypePredicate");
  function fWt(t, e) {
    return !t || t.type !== "TSTypeQuery" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(fWt, "isTSTypeQuery");
  function dWt(t, e) {
    return !t || t.type !== "TSTypeLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(dWt, "isTSTypeLiteral");
  function mWt(t, e) {
    return !t || t.type !== "TSArrayType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(mWt, "isTSArrayType");
  function yWt(t, e) {
    return !t || t.type !== "TSTupleType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(yWt, "isTSTupleType");
  function gWt(t, e) {
    return !t || t.type !== "TSOptionalType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(gWt, "isTSOptionalType");
  function TWt(t, e) {
    return !t || t.type !== "TSRestType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(TWt, "isTSRestType");
  function bWt(t, e) {
    return !t || t.type !== "TSNamedTupleMember" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(bWt, "isTSNamedTupleMember");
  function xWt(t, e) {
    return !t || t.type !== "TSUnionType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(xWt, "isTSUnionType");
  function SWt(t, e) {
    return !t || t.type !== "TSIntersectionType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(SWt, "isTSIntersectionType");
  function PWt(t, e) {
    return !t || t.type !== "TSConditionalType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(PWt, "isTSConditionalType");
  function EWt(t, e) {
    return !t || t.type !== "TSInferType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(EWt, "isTSInferType");
  function AWt(t, e) {
    return !t || t.type !== "TSParenthesizedType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(AWt, "isTSParenthesizedType");
  function vWt(t, e) {
    return !t || t.type !== "TSTypeOperator" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(vWt, "isTSTypeOperator");
  function CWt(t, e) {
    return !t || t.type !== "TSIndexedAccessType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(CWt, "isTSIndexedAccessType");
  function wWt(t, e) {
    return !t || t.type !== "TSMappedType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(wWt, "isTSMappedType");
  function IWt(t, e) {
    return !t || t.type !== "TSLiteralType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(IWt, "isTSLiteralType");
  function NWt(t, e) {
    return !t || t.type !== "TSExpressionWithTypeArguments" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(NWt, "isTSExpressionWithTypeArguments");
  function kWt(t, e) {
    return !t || t.type !== "TSInterfaceDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(kWt, "isTSInterfaceDeclaration");
  function DWt(t, e) {
    return !t || t.type !== "TSInterfaceBody" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(DWt, "isTSInterfaceBody");
  function OWt(t, e) {
    return !t || t.type !== "TSTypeAliasDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(OWt, "isTSTypeAliasDeclaration");
  function _Wt(t, e) {
    return !t || t.type !== "TSInstantiationExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(_Wt, "isTSInstantiationExpression");
  function LWt(t, e) {
    return !t || t.type !== "TSAsExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(LWt, "isTSAsExpression");
  function BWt(t, e) {
    return !t || t.type !== "TSSatisfiesExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(BWt, "isTSSatisfiesExpression");
  function MWt(t, e) {
    return !t || t.type !== "TSTypeAssertion" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(MWt, "isTSTypeAssertion");
  function FWt(t, e) {
    return !t || t.type !== "TSEnumBody" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(FWt, "isTSEnumBody");
  function jWt(t, e) {
    return !t || t.type !== "TSEnumDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(jWt, "isTSEnumDeclaration");
  function RWt(t, e) {
    return !t || t.type !== "TSEnumMember" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(RWt, "isTSEnumMember");
  function qWt(t, e) {
    return !t || t.type !== "TSModuleDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(qWt, "isTSModuleDeclaration");
  function UWt(t, e) {
    return !t || t.type !== "TSModuleBlock" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(UWt, "isTSModuleBlock");
  function KWt(t, e) {
    return !t || t.type !== "TSImportType" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(KWt, "isTSImportType");
  function VWt(t, e) {
    return !t || t.type !== "TSImportEqualsDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(VWt, "isTSImportEqualsDeclaration");
  function WWt(t, e) {
    return !t || t.type !== "TSExternalModuleReference" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(WWt, "isTSExternalModuleReference");
  function $Wt(t, e) {
    return !t || t.type !== "TSNonNullExpression" ? !1 : e == null || (0, F.default)(t, e);
  }
  n($Wt, "isTSNonNullExpression");
  function HWt(t, e) {
    return !t || t.type !== "TSExportAssignment" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(HWt, "isTSExportAssignment");
  function JWt(t, e) {
    return !t || t.type !== "TSNamespaceExportDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(JWt, "isTSNamespaceExportDeclaration");
  function YWt(t, e) {
    return !t || t.type !== "TSTypeAnnotation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(YWt, "isTSTypeAnnotation");
  function XWt(t, e) {
    return !t || t.type !== "TSTypeParameterInstantiation" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(XWt, "isTSTypeParameterInstantiation");
  function zWt(t, e) {
    return !t || t.type !== "TSTypeParameterDeclaration" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(zWt, "isTSTypeParameterDeclaration");
  function GWt(t, e) {
    return !t || t.type !== "TSTypeParameter" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(GWt, "isTSTypeParameter");
  function QWt(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Identifier":
          case "StringLiteral":
          case "BlockStatement":
          case "ClassBody":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(QWt, "isStandardized");
  function ZWt(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Expression":
          case "Identifier":
          case "StringLiteral":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(ZWt, "isExpression");
  function e$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BinaryExpression":
      case "LogicalExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(e$t, "isBinary");
  function t$t(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(t$t, "isScopable");
  function s$t(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(s$t, "isBlockParent");
  function r$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BlockStatement":
      case "Program":
      case "TSModuleBlock":
        break;
      case "Placeholder":
        if (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(r$t, "isBlock");
  function i$t(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Statement":
          case "Declaration":
          case "BlockStatement":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(i$t, "isStatement");
  function n$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BreakStatement":
      case "ContinueStatement":
      case "ReturnStatement":
      case "ThrowStatement":
      case "YieldExpression":
      case "AwaitExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(n$t, "isTerminatorless");
  function a$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BreakStatement":
      case "ContinueStatement":
      case "ReturnStatement":
      case "ThrowStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(a$t, "isCompletionStatement");
  function o$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ConditionalExpression":
      case "IfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(o$t, "isConditional");
  function l$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForStatement":
      case "WhileStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(l$t, "isLoop");
  function u$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DoWhileStatement":
      case "WhileStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(u$t, "isWhile");
  function c$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExpressionStatement":
      case "ParenthesizedExpression":
      case "TypeCastExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(c$t, "isExpressionWrapper");
  function p$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ForInStatement":
      case "ForStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(p$t, "isFor");
  function h$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ForInStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(h$t, "isForXStatement");
  function f$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "ObjectMethod":
      case "ArrowFunctionExpression":
      case "ClassMethod":
      case "ClassPrivateMethod":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(f$t, "isFunction");
  function d$t(t, e) {
    if (!t) return !1;
    switch (t.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, F.default)(t, e);
  }
  n(d$t, "isFunctionParent");
  function m$t(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(m$t, "isPureish");
  function y$t(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "Declaration") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(y$t, "isDeclaration");
  function g$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Identifier":
      case "RestElement":
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        break;
      case "Placeholder":
        switch (t.expectedNode) {
          case "Pattern":
          case "Identifier":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(g$t, "isPatternLike");
  function T$t(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Pattern":
          case "Identifier":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(T$t, "isLVal");
  function b$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Identifier":
      case "TSQualifiedName":
        break;
      case "Placeholder":
        if (t.expectedNode === "Identifier") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(b$t, "isTSEntityName");
  function x$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "StringLiteral":
      case "NumericLiteral":
      case "NullLiteral":
      case "BooleanLiteral":
      case "RegExpLiteral":
      case "TemplateLiteral":
      case "BigIntLiteral":
      case "DecimalLiteral":
        break;
      case "Placeholder":
        if (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(x$t, "isLiteral");
  function S$t(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(S$t, "isImmutable");
  function P$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ObjectProperty":
      case "ObjectTypeInternalSlot":
      case "ObjectTypeCallProperty":
      case "ObjectTypeIndexer":
      case "ObjectTypeProperty":
      case "ObjectTypeSpreadProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(P$t, "isUserWhitespacable");
  function E$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ClassMethod":
      case "ClassPrivateMethod":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(E$t, "isMethod");
  function A$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ObjectProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(A$t, "isObjectMember");
  function v$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectProperty":
      case "ClassProperty":
      case "ClassAccessorProperty":
      case "ClassPrivateProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(v$t, "isProperty");
  function C$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "UnaryExpression":
      case "SpreadElement":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(C$t, "isUnaryLike");
  function w$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
        break;
      case "Placeholder":
        if (t.expectedNode === "Pattern") break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(w$t, "isPattern");
  function I$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassExpression":
      case "ClassDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(I$t, "isClass");
  function Kce(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
      case "ImportDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(Kce, "isImportOrExportDeclaration");
  function N$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(N$t, "isExportDeclaration");
  function k$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportSpecifier":
      case "ImportDefaultSpecifier":
      case "ImportNamespaceSpecifier":
      case "ImportSpecifier":
      case "ExportNamespaceSpecifier":
      case "ExportDefaultSpecifier":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(k$t, "isModuleSpecifier");
  function D$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassAccessorProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(D$t, "isAccessor");
  function O$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
      case "PrivateName":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(O$t, "isPrivate");
  function _$t(t, e) {
    if (!t) return !1;
    switch (t.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, F.default)(t, e);
  }
  n(_$t, "isFlow");
  function L$t(t, e) {
    if (!t) return !1;
    switch (t.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, F.default)(t, e);
  }
  n(L$t, "isFlowType");
  function B$t(t, e) {
    if (!t) return !1;
    switch (t.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, F.default)(t, e);
  }
  n(B$t, "isFlowBaseAnnotation");
  function M$t(t, e) {
    if (!t) return !1;
    switch (t.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, F.default)(t, e);
  }
  n(M$t, "isFlowDeclaration");
  function F$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DeclaredPredicate":
      case "InferredPredicate":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(F$t, "isFlowPredicate");
  function j$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "EnumBooleanBody":
      case "EnumNumberBody":
      case "EnumStringBody":
      case "EnumSymbolBody":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(j$t, "isEnumBody");
  function R$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "EnumBooleanMember":
      case "EnumNumberMember":
      case "EnumStringMember":
      case "EnumDefaultedMember":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(R$t, "isEnumMember");
  function q$t(t, e) {
    if (!t) return !1;
    switch (t.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, F.default)(t, e);
  }
  n(q$t, "isJSX");
  function U$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Noop":
      case "Placeholder":
      case "V8IntrinsicIdentifier":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(U$t, "isMiscellaneous");
  function K$t(t, e) {
    if (!t) return !1;
    switch (t.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 "TSEnumBody":
      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, F.default)(t, e);
  }
  n(K$t, "isTypeScript");
  function V$t(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "TSCallSignatureDeclaration":
      case "TSConstructSignatureDeclaration":
      case "TSPropertySignature":
      case "TSMethodSignature":
      case "TSIndexSignature":
        break;
      default:
        return !1;
    }
    return e == null || (0, F.default)(t, e);
  }
  n(V$t, "isTSTypeElement");
  function W$t(t, e) {
    if (!t) return !1;
    switch (t.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, F.default)(t, e);
  }
  n(W$t, "isTSType");
  function $$t(t, e) {
    if (!t) return !1;
    switch (t.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, F.default)(t, e);
  }
  n($$t, "isTSBaseType");
  function H$t(t, e) {
    return (0, vT.default)("isNumberLiteral", "isNumericLiteral"), !t || t.type !== "NumberLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(H$t, "isNumberLiteral");
  function J$t(t, e) {
    return (0, vT.default)("isRegexLiteral", "isRegExpLiteral"), !t || t.type !== "RegexLiteral" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(J$t, "isRegexLiteral");
  function Y$t(t, e) {
    return (0, vT.default)("isRestProperty", "isRestElement"), !t || t.type !== "RestProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(Y$t, "isRestProperty");
  function X$t(t, e) {
    return (0, vT.default)("isSpreadProperty", "isSpreadElement"), !t || t.type !== "SpreadProperty" ? !1 : e == null || (0, F.default)(t, e);
  }
  n(X$t, "isSpreadProperty");
  function z$t(t, e) {
    return (0, vT.default)("isModuleDeclaration", "isImportOrExportDeclaration"), Kce(t, e);
  }
  n(z$t, "isModuleDeclaration");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/matchesPattern.js
var xj = g((bj) => {
  "use strict";
  Object.defineProperty(bj, "__esModule", {
    value: !0
  });
  bj.default = G$t;
  var CT = di();
  function G$t(t, e, s) {
    if (!(0, CT.isMemberExpression)(t)) return !1;
    let r = Array.isArray(e) ? e : e.split("."), i = [], a;
    for (a = t; (0, CT.isMemberExpression)(a); a = a.object)
      i.push(a.property);
    if (i.push(a), i.length < r.length || !s && i.length > r.length) return !1;
    for (let o = 0, l = i.length - 1; o < r.length; o++, l--) {
      let u = i[l], c;
      if ((0, CT.isIdentifier)(u))
        c = u.name;
      else if ((0, CT.isStringLiteral)(u))
        c = u.value;
      else if ((0, CT.isThisExpression)(u))
        c = "this";
      else
        return !1;
      if (r[o] !== c) return !1;
    }
    return !0;
  }
  n(G$t, "matchesPattern");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js
var Pj = g((Sj) => {
  "use strict";
  Object.defineProperty(Sj, "__esModule", {
    value: !0
  });
  Sj.default = Z$t;
  var Q$t = xj();
  function Z$t(t, e) {
    let s = t.split(".");
    return (r) => (0, Q$t.default)(r, s, e);
  }
  n(Z$t, "buildMatchMemberExpression");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isReactComponent.js
var Vce = g((D1) => {
  "use strict";
  Object.defineProperty(D1, "__esModule", {
    value: !0
  });
  D1.default = void 0;
  var eHt = Pj(), tHt = (0, eHt.default)("React.Component"), rQs = D1.default = tHt;
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isCompatTag.js
var Wce = g((Ej) => {
  "use strict";
  Object.defineProperty(Ej, "__esModule", {
    value: !0
  });
  Ej.default = sHt;
  function sHt(t) {
    return !!t && /^[a-z]/.test(t);
  }
  n(sHt, "isCompatTag");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isType.js
var O1 = g((Aj) => {
  "use strict";
  Object.defineProperty(Aj, "__esModule", {
    value: !0
  });
  Aj.default = rHt;
  var $ce = to();
  function rHt(t, e) {
    if (t === e) return !0;
    if (t == null || $ce.ALIAS_KEYS[e]) return !1;
    let s = $ce.FLIPPED_ALIAS_KEYS[e];
    if (s) {
      if (s[0] === t) return !0;
      for (let r of s)
        if (t === r) return !0;
    }
    return !1;
  }
  n(rHt, "isType");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isPlaceholderType.js
var Cj = g((vj) => {
  "use strict";
  Object.defineProperty(vj, "__esModule", {
    value: !0
  });
  vj.default = nHt;
  var iHt = to();
  function nHt(t, e) {
    if (t === e) return !0;
    let s = iHt.PLACEHOLDERS_ALIAS[t];
    if (s) {
      for (let r of s)
        if (e === r) return !0;
    }
    return !1;
  }
  n(nHt, "isPlaceholderType");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/is.js
var oy = g((wj) => {
  "use strict";
  Object.defineProperty(wj, "__esModule", {
    value: !0
  });
  wj.default = cHt;
  var aHt = k1(), oHt = O1(), lHt = Cj(), uHt = to();
  function cHt(t, e, s) {
    return e ? (0, oHt.default)(e.type, t) ? s === void 0 ? !0 : (0, aHt.default)(e, s) : !s && e.type === "Placeholder" && t in uHt.FLIPPED_ALIAS_KEYS ?
    (0, lHt.default)(e.expectedNode, t) : !1 : !1;
  }
  n(cHt, "is");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isValidIdentifier.js
var ly = g((Nj) => {
  "use strict";
  Object.defineProperty(Nj, "__esModule", {
    value: !0
  });
  Nj.default = pHt;
  var Ij = xa();
  function pHt(t, e = !0) {
    return typeof t != "string" || e && ((0, Ij.isKeyword)(t) || (0, Ij.isStrictReservedWord)(t, !0)) ? !1 : (0, Ij.isIdentifierName)(t);
  }
  n(pHt, "isValidIdentifier");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/constants/index.js
var Fp = g((Zt) => {
  "use strict";
  Object.defineProperty(Zt, "__esModule", {
    value: !0
  });
  Zt.UPDATE_OPERATORS = Zt.UNARY_OPERATORS = Zt.STRING_UNARY_OPERATORS = Zt.STATEMENT_OR_BLOCK_KEYS = Zt.NUMBER_UNARY_OPERATORS = Zt.NUMBER_BINARY_OPERATORS =
  Zt.NOT_LOCAL_BINDING = Zt.LOGICAL_OPERATORS = Zt.INHERIT_KEYS = Zt.FOR_INIT_KEYS = Zt.FLATTENABLE_KEYS = Zt.EQUALITY_BINARY_OPERATORS = Zt.
  COMPARISON_BINARY_OPERATORS = Zt.COMMENT_KEYS = Zt.BOOLEAN_UNARY_OPERATORS = Zt.BOOLEAN_NUMBER_BINARY_OPERATORS = Zt.BOOLEAN_BINARY_OPERATORS =
  Zt.BLOCK_SCOPED_SYMBOL = Zt.BINARY_OPERATORS = Zt.ASSIGNMENT_OPERATORS = void 0;
  var mQs = Zt.STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"], yQs = Zt.FLATTENABLE_KEYS = ["body", "expressions"], gQs = Zt.
  FOR_INIT_KEYS = ["left", "init"], TQs = Zt.COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"], hHt = Zt.LOGICAL_OPERATORS =
  ["||", "&&", "??"], bQs = Zt.UPDATE_OPERATORS = ["++", "--"], fHt = Zt.BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="], dHt = Zt.
  EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="], mHt = Zt.COMPARISON_BINARY_OPERATORS = [...dHt, "in", "instanceof"], yHt = Zt.BOOLEAN_BINARY_OPERATORS =
  [...mHt, ...fHt], Hce = Zt.NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"], xQs = Zt.BINARY_OPERATORS =
  ["+", ...Hce, ...yHt, "|>"], SQs = Zt.ASSIGNMENT_OPERATORS = ["=", "+=", ...Hce.map((t) => t + "="), ...hHt.map((t) => t + "=")], gHt = Zt.
  BOOLEAN_UNARY_OPERATORS = ["delete", "!"], THt = Zt.NUMBER_UNARY_OPERATORS = ["+", "-", "~"], bHt = Zt.STRING_UNARY_OPERATORS = ["typeof"],
  PQs = Zt.UNARY_OPERATORS = ["void", "throw", ...gHt, ...THt, ...bHt], EQs = Zt.INHERIT_KEYS = {
    optional: ["typeAnnotation", "typeParameters", "returnType"],
    force: ["start", "loc", "end"]
  }, AQs = Zt.BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped"), vQs = Zt.NOT_LOCAL_BINDING = Symbol.for("should not be consid\
ered a local binding");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/utils.js
var Il = g((Ks) => {
  "use strict";
  Object.defineProperty(Ks, "__esModule", {
    value: !0
  });
  Ks.VISITOR_KEYS = Ks.NODE_PARENT_VALIDATIONS = Ks.NODE_FIELDS = Ks.FLIPPED_ALIAS_KEYS = Ks.DEPRECATED_KEYS = Ks.BUILDER_KEYS = Ks.ALIAS_KEYS =
  void 0;
  Ks.arrayOf = Yce;
  Ks.arrayOfType = Xce;
  Ks.assertEach = zce;
  Ks.assertNodeOrValueType = DHt;
  Ks.assertNodeType = B1;
  Ks.assertOneOf = kHt;
  Ks.assertOptionalChainStart = _Ht;
  Ks.assertShape = OHt;
  Ks.assertValueType = _j;
  Ks.chain = Gce;
  Ks.default = Qce;
  Ks.defineAliasedType = MHt;
  Ks.validate = Oj;
  Ks.validateArrayOfType = NHt;
  Ks.validateOptional = wHt;
  Ks.validateOptionalType = IHt;
  Ks.validateType = CHt;
  var Jce = oy(), L1 = M1(), xHt = Ks.VISITOR_KEYS = {}, SHt = Ks.ALIAS_KEYS = {}, kj = Ks.FLIPPED_ALIAS_KEYS = {}, PHt = Ks.NODE_FIELDS = {},
  EHt = Ks.BUILDER_KEYS = {}, AHt = Ks.DEPRECATED_KEYS = {}, vHt = Ks.NODE_PARENT_VALIDATIONS = {};
  function _1(t) {
    return Array.isArray(t) ? "array" : t === null ? "null" : typeof t;
  }
  n(_1, "getType");
  function Oj(t) {
    return {
      validate: t
    };
  }
  n(Oj, "validate");
  function CHt(...t) {
    return Oj(B1(...t));
  }
  n(CHt, "validateType");
  function wHt(t) {
    return {
      validate: t,
      optional: !0
    };
  }
  n(wHt, "validateOptional");
  function IHt(...t) {
    return {
      validate: B1(...t),
      optional: !0
    };
  }
  n(IHt, "validateOptionalType");
  function Yce(t) {
    return Gce(_j("array"), zce(t));
  }
  n(Yce, "arrayOf");
  function Xce(...t) {
    return Yce(B1(...t));
  }
  n(Xce, "arrayOfType");
  function NHt(...t) {
    return Oj(Xce(...t));
  }
  n(NHt, "validateArrayOfType");
  function zce(t) {
    let e = process.env.BABEL_TYPES_8_BREAKING ? L1.validateChild : () => {
    };
    function s(r, i, a) {
      if (Array.isArray(a))
        for (let o = 0; o < a.length; o++) {
          let l = `${i}[${o}]`, u = a[o];
          t(r, l, u), e(r, l, u);
        }
    }
    return n(s, "validator"), s.each = t, s;
  }
  n(zce, "assertEach");
  function kHt(...t) {
    function e(s, r, i) {
      if (!t.includes(i))
        throw new TypeError(`Property ${r} expected value to be one of ${JSON.stringify(t)} but got ${JSON.stringify(i)}`);
    }
    return n(e, "validate"), e.oneOf = t, e;
  }
  n(kHt, "assertOneOf");
  function B1(...t) {
    function e(s, r, i) {
      for (let a of t)
        if ((0, Jce.default)(a, i)) {
          (0, L1.validateChild)(s, r, i);
          return;
        }
      throw new TypeError(`Property ${r} of ${s.type} expected node to be of a type ${JSON.stringify(t)} but instead got ${JSON.stringify(i?.
      type)}`);
    }
    return n(e, "validate"), e.oneOfNodeTypes = t, e;
  }
  n(B1, "assertNodeType");
  function DHt(...t) {
    function e(s, r, i) {
      for (let a of t)
        if (_1(i) === a || (0, Jce.default)(a, i)) {
          (0, L1.validateChild)(s, r, i);
          return;
        }
      throw new TypeError(`Property ${r} of ${s.type} expected node to be of a type ${JSON.stringify(t)} but instead got ${JSON.stringify(i?.
      type)}`);
    }
    return n(e, "validate"), e.oneOfNodeOrValueTypes = t, e;
  }
  n(DHt, "assertNodeOrValueType");
  function _j(t) {
    function e(s, r, i) {
      if (!(_1(i) === t))
        throw new TypeError(`Property ${r} expected type of ${t} but got ${_1(i)}`);
    }
    return n(e, "validate"), e.type = t, e;
  }
  n(_j, "assertValueType");
  function OHt(t) {
    function e(s, r, i) {
      let a = [];
      for (let o of Object.keys(t))
        try {
          (0, L1.validateField)(s, o, i[o], t[o]);
        } catch (l) {
          if (l instanceof TypeError) {
            a.push(l.message);
            continue;
          }
          throw l;
        }
      if (a.length)
        throw new TypeError(`Property ${r} of ${s.type} expected to have the following:
${a.join(`
`)}`);
    }
    return n(e, "validate"), e.shapeOf = t, e;
  }
  n(OHt, "assertShape");
  function _Ht() {
    function t(e) {
      var s;
      let r = e;
      for (; e; ) {
        let {
          type: i
        } = r;
        if (i === "OptionalCallExpression") {
          if (r.optional) return;
          r = r.callee;
          continue;
        }
        if (i === "OptionalMemberExpression") {
          if (r.optional) return;
          r = r.object;
          continue;
        }
        break;
      }
      throw new TypeError(`Non-optional ${e.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chai\
n from ${(s = r) == null ? void 0 : s.type}`);
    }
    return n(t, "validate"), t;
  }
  n(_Ht, "assertOptionalChainStart");
  function Gce(...t) {
    function e(...s) {
      for (let r of t)
        r(...s);
    }
    if (n(e, "validate"), e.chainOf = t, t.length >= 2 && "type" in t[0] && t[0].type === "array" && !("each" in t[1]))
      throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');
    return e;
  }
  n(Gce, "chain");
  var LHt = /* @__PURE__ */ new Set(["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"]), BHt = /* @__PURE__ */ new Set(
  ["default", "optional", "deprecated", "validate"]), Dj = {};
  function MHt(...t) {
    return (e, s = {}) => {
      let r = s.aliases;
      if (!r) {
        var i, a;
        s.inherits && (r = (i = Dj[s.inherits].aliases) == null ? void 0 : i.slice()), (a = r) != null || (r = []), s.aliases = r;
      }
      let o = t.filter((l) => !r.includes(l));
      r.unshift(...o), Qce(e, s);
    };
  }
  n(MHt, "defineAliasedType");
  function Qce(t, e = {}) {
    let s = e.inherits && Dj[e.inherits] || {}, r = e.fields;
    if (!r && (r = {}, s.fields)) {
      let l = Object.getOwnPropertyNames(s.fields);
      for (let u of l) {
        let c = s.fields[u], p = c.default;
        if (Array.isArray(p) ? p.length > 0 : p && typeof p == "object")
          throw new Error("field defaults can only be primitives or empty arrays currently");
        r[u] = {
          default: Array.isArray(p) ? [] : p,
          optional: c.optional,
          deprecated: c.deprecated,
          validate: c.validate
        };
      }
    }
    let i = e.visitor || s.visitor || [], a = e.aliases || s.aliases || [], o = e.builder || s.builder || e.visitor || [];
    for (let l of Object.keys(e))
      if (!LHt.has(l))
        throw new Error(`Unknown type option "${l}" on ${t}`);
    e.deprecatedAlias && (AHt[e.deprecatedAlias] = t);
    for (let l of i.concat(o))
      r[l] = r[l] || {};
    for (let l of Object.keys(r)) {
      let u = r[l];
      u.default !== void 0 && !o.includes(l) && (u.optional = !0), u.default === void 0 ? u.default = null : !u.validate && u.default != null &&
      (u.validate = _j(_1(u.default)));
      for (let c of Object.keys(u))
        if (!BHt.has(c))
          throw new Error(`Unknown field key "${c}" on ${t}.${l}`);
    }
    xHt[t] = e.visitor = i, EHt[t] = e.builder = o, PHt[t] = e.fields = r, SHt[t] = e.aliases = a, a.forEach((l) => {
      kj[l] = kj[l] || [], kj[l].push(t);
    }), e.validate && (vHt[t] = e.validate), Dj[t] = e;
  }
  n(Qce, "defineType");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/core.js
var IT = g((un) => {
  "use strict";
  Object.defineProperty(un, "__esModule", {
    value: !0
  });
  un.patternLikeCommon = un.importAttributes = un.functionTypeAnnotationCommon = un.functionDeclarationCommon = un.functionCommon = un.classMethodOrPropertyCommon =
  un.classMethodOrDeclareMethodCommon = void 0;
  var qn = oy(), FHt = ly(), Zce = xa(), jHt = bb(), wT = Fp(), U = Il(), Me = (0, U.defineAliasedType)("Standardized");
  Me("ArrayExpression", {
    fields: {
      elements: {
        validate: (0, U.arrayOf)((0, U.assertNodeOrValueType)("null", "Expression", "SpreadElement")),
        default: process.env.BABEL_TYPES_8_BREAKING ? void 0 : []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  });
  Me("AssignmentExpression", {
    fields: {
      operator: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? Object.assign(function() {
          let t = (0, U.assertOneOf)(...wT.ASSIGNMENT_OPERATORS), e = (0, U.assertOneOf)("=");
          return function(s, r, i) {
            ((0, qn.default)("Pattern", s.left) ? e : t)(s, r, i);
          };
        }(), {
          type: "string"
        }) : (0, U.assertValueType)("string")
      },
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.assertNodeType)("Identifier", "MemberExpression", "OptionalMemberExpression", "\
ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, U.assertNodeType)(
        "LVal", "OptionalMemberExpression")
      },
      right: {
        validate: (0, U.assertNodeType)("Expression")
      }
    },
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Expression"]
  });
  Me("BinaryExpression", {
    builder: ["operator", "left", "right"],
    fields: {
      operator: {
        validate: (0, U.assertOneOf)(...wT.BINARY_OPERATORS)
      },
      left: {
        validate: function() {
          let t = (0, U.assertNodeType)("Expression"), e = (0, U.assertNodeType)("Expression", "PrivateName");
          return Object.assign(function(r, i, a) {
            (r.operator === "in" ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "PrivateName"]
          });
        }()
      },
      right: {
        validate: (0, U.assertNodeType)("Expression")
      }
    },
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"]
  });
  Me("InterpreterDirective", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, U.assertValueType)("string")
      }
    }
  });
  Me("Directive", {
    visitor: ["value"],
    fields: {
      value: {
        validate: (0, U.assertNodeType)("DirectiveLiteral")
      }
    }
  });
  Me("DirectiveLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, U.assertValueType)("string")
      }
    }
  });
  Me("BlockStatement", {
    builder: ["body", "directives"],
    visitor: ["directives", "body"],
    fields: {
      directives: {
        validate: (0, U.arrayOfType)("Directive"),
        default: []
      },
      body: (0, U.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "Block", "Statement"]
  });
  Me("BreakStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, U.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  });
  Me("CallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, U.assertNodeType)("Expression", "Super", "V8IntrinsicIdentifier")
      },
      arguments: (0, U.validateArrayOfType)("Expression", "SpreadElement", "ArgumentPlaceholder"),
      typeArguments: {
        validate: (0, U.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      optional: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      typeParameters: {
        validate: (0, U.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  Me("CatchClause", {
    visitor: ["param", "body"],
    fields: {
      param: {
        validate: (0, U.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"),
        optional: !0
      },
      body: {
        validate: (0, U.assertNodeType)("BlockStatement")
      }
    },
    aliases: ["Scopable", "BlockParent"]
  });
  Me("ConditionalExpression", {
    visitor: ["test", "consequent", "alternate"],
    fields: {
      test: {
        validate: (0, U.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, U.assertNodeType)("Expression")
      },
      alternate: {
        validate: (0, U.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression", "Conditional"]
  });
  Me("ContinueStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, U.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  });
  Me("DebuggerStatement", {
    aliases: ["Statement"]
  });
  Me("DoWhileStatement", {
    builder: ["test", "body"],
    visitor: ["body", "test"],
    fields: {
      test: {
        validate: (0, U.assertNodeType)("Expression")
      },
      body: {
        validate: (0, U.assertNodeType)("Statement")
      }
    },
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"]
  });
  Me("EmptyStatement", {
    aliases: ["Statement"]
  });
  Me("ExpressionStatement", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, U.assertNodeType)("Expression")
      }
    },
    aliases: ["Statement", "ExpressionWrapper"]
  });
  Me("File", {
    builder: ["program", "comments", "tokens"],
    visitor: ["program"],
    fields: {
      program: {
        validate: (0, U.assertNodeType)("Program")
      },
      comments: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.assertEach)((0, U.assertNodeType)("CommentBlock", "CommentLine")) : Object.assign(
        () => {
        }, {
          each: {
            oneOfNodeTypes: ["CommentBlock", "CommentLine"]
          }
        }),
        optional: !0
      },
      tokens: {
        validate: (0, U.assertEach)(Object.assign(() => {
        }, {
          type: "any"
        })),
        optional: !0
      }
    }
  });
  Me("ForInStatement", {
    visitor: ["left", "right", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "Array\
Pattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, U.assertNodeType)("Var\
iableDeclaration", "LVal")
      },
      right: {
        validate: (0, U.assertNodeType)("Expression")
      },
      body: {
        validate: (0, U.assertNodeType)("Statement")
      }
    }
  });
  Me("ForStatement", {
    visitor: ["init", "test", "update", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"],
    fields: {
      init: {
        validate: (0, U.assertNodeType)("VariableDeclaration", "Expression"),
        optional: !0
      },
      test: {
        validate: (0, U.assertNodeType)("Expression"),
        optional: !0
      },
      update: {
        validate: (0, U.assertNodeType)("Expression"),
        optional: !0
      },
      body: {
        validate: (0, U.assertNodeType)("Statement")
      }
    }
  });
  var uy = /* @__PURE__ */ n(() => ({
    params: (0, U.validateArrayOfType)("Identifier", "Pattern", "RestElement"),
    generator: {
      default: !1
    },
    async: {
      default: !1
    }
  }), "functionCommon");
  un.functionCommon = uy;
  var kf = /* @__PURE__ */ n(() => ({
    returnType: {
      validate: (0, U.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, U.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  }), "functionTypeAnnotationCommon");
  un.functionTypeAnnotationCommon = kf;
  var epe = /* @__PURE__ */ n(() => Object.assign({}, uy(), {
    declare: {
      validate: (0, U.assertValueType)("boolean"),
      optional: !0
    },
    id: {
      validate: (0, U.assertNodeType)("Identifier"),
      optional: !0
    }
  }), "functionDeclarationCommon");
  un.functionDeclarationCommon = epe;
  Me("FunctionDeclaration", {
    builder: ["id", "params", "body", "generator", "async"],
    visitor: ["id", "typeParameters", "params", "predicate", "returnType", "body"],
    fields: Object.assign({}, epe(), kf(), {
      body: {
        validate: (0, U.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, U.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    }),
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"],
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, U.assertNodeType)("Identifier");
      return function(e, s, r) {
        (0, qn.default)("ExportDefaultDeclaration", e) || t(r, "id", r.id);
      };
    }() : void 0
  });
  Me("FunctionExpression", {
    inherits: "FunctionDeclaration",
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, uy(), kf(), {
      id: {
        validate: (0, U.assertNodeType)("Identifier"),
        optional: !0
      },
      body: {
        validate: (0, U.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, U.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  var cy = /* @__PURE__ */ n(() => ({
    typeAnnotation: {
      validate: (0, U.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    optional: {
      validate: (0, U.assertValueType)("boolean"),
      optional: !0
    },
    decorators: {
      validate: (0, U.arrayOfType)("Decorator"),
      optional: !0
    }
  }), "patternLikeCommon");
  un.patternLikeCommon = cy;
  Me("Identifier", {
    builder: ["name"],
    visitor: ["typeAnnotation", "decorators"],
    aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"],
    fields: Object.assign({}, cy(), {
      name: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertValueType)("string"), Object.assign(function(t, e, s) {
          if (!(0, FHt.default)(s, !1))
            throw new TypeError(`"${s}" is not a valid identifier name`);
        }, {
          type: "string"
        })) : (0, U.assertValueType)("string")
      }
    }),
    validate: process.env.BABEL_TYPES_8_BREAKING ? function(t, e, s) {
      let r = /\.(\w+)$/.exec(e);
      if (!r) return;
      let [, i] = r, a = {
        computed: !1
      };
      if (i === "property") {
        if ((0, qn.default)("MemberExpression", t, a) || (0, qn.default)("OptionalMemberExpression", t, a)) return;
      } else if (i === "key") {
        if ((0, qn.default)("Property", t, a) || (0, qn.default)("Method", t, a)) return;
      } else if (i === "exported") {
        if ((0, qn.default)("ExportSpecifier", t)) return;
      } else if (i === "imported") {
        if ((0, qn.default)("ImportSpecifier", t, {
          imported: s
        })) return;
      } else if (i === "meta" && (0, qn.default)("MetaProperty", t, {
        meta: s
      }))
        return;
      if (((0, Zce.isKeyword)(s.name) || (0, Zce.isReservedWord)(s.name, !1)) && s.name !== "this")
        throw new TypeError(`"${s.name}" is not a valid identifier`);
    } : void 0
  });
  Me("IfStatement", {
    visitor: ["test", "consequent", "alternate"],
    aliases: ["Statement", "Conditional"],
    fields: {
      test: {
        validate: (0, U.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, U.assertNodeType)("Statement")
      },
      alternate: {
        optional: !0,
        validate: (0, U.assertNodeType)("Statement")
      }
    }
  });
  Me("LabeledStatement", {
    visitor: ["label", "body"],
    aliases: ["Statement"],
    fields: {
      label: {
        validate: (0, U.assertNodeType)("Identifier")
      },
      body: {
        validate: (0, U.assertNodeType)("Statement")
      }
    }
  });
  Me("StringLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, U.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Me("NumericLiteral", {
    builder: ["value"],
    deprecatedAlias: "NumberLiteral",
    fields: {
      value: {
        validate: (0, U.chain)((0, U.assertValueType)("number"), Object.assign(function(t, e, s) {
          if (1 / s < 0 || !Number.isFinite(s)) {
            let r = new Error(`NumericLiterals must be non-negative finite numbers. You can use t.valueToNode(${s}) instead.`);
          }
        }, {
          type: "number"
        }))
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Me("NullLiteral", {
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Me("BooleanLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, U.assertValueType)("boolean")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Me("RegExpLiteral", {
    builder: ["pattern", "flags"],
    deprecatedAlias: "RegexLiteral",
    aliases: ["Expression", "Pureish", "Literal"],
    fields: {
      pattern: {
        validate: (0, U.assertValueType)("string")
      },
      flags: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertValueType)("string"), Object.assign(function(t, e, s) {
          let r = /[^gimsuy]/.exec(s);
          if (r)
            throw new TypeError(`"${r[0]}" is not a valid RegExp flag`);
        }, {
          type: "string"
        })) : (0, U.assertValueType)("string"),
        default: ""
      }
    }
  });
  Me("LogicalExpression", {
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"],
    fields: {
      operator: {
        validate: (0, U.assertOneOf)(...wT.LOGICAL_OPERATORS)
      },
      left: {
        validate: (0, U.assertNodeType)("Expression")
      },
      right: {
        validate: (0, U.assertNodeType)("Expression")
      }
    }
  });
  Me("MemberExpression", {
    builder: ["object", "property", "computed", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["optional"]],
    visitor: ["object", "property"],
    aliases: ["Expression", "LVal"],
    fields: Object.assign({
      object: {
        validate: (0, U.assertNodeType)("Expression", "Super")
      },
      property: {
        validate: function() {
          let t = (0, U.assertNodeType)("Identifier", "PrivateName"), e = (0, U.assertNodeType)("Expression"), s = /* @__PURE__ */ n(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, "validator");
          return s.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"], s;
        }()
      },
      computed: {
        default: !1
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  Me("NewExpression", {
    inherits: "CallExpression"
  });
  Me("Program", {
    visitor: ["directives", "body"],
    builder: ["body", "directives", "sourceType", "interpreter"],
    fields: {
      sourceType: {
        validate: (0, U.assertOneOf)("script", "module"),
        default: "script"
      },
      interpreter: {
        validate: (0, U.assertNodeType)("InterpreterDirective"),
        default: null,
        optional: !0
      },
      directives: {
        validate: (0, U.arrayOfType)("Directive"),
        default: []
      },
      body: (0, U.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "Block"]
  });
  Me("ObjectExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: (0, U.validateArrayOfType)("ObjectMethod", "ObjectProperty", "SpreadElement")
    }
  });
  Me("ObjectMethod", {
    builder: ["kind", "key", "params", "body", "computed", "generator", "async"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    fields: Object.assign({}, uy(), kf(), {
      kind: Object.assign({
        validate: (0, U.assertOneOf)("method", "get", "set")
      }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
        default: "method"
      }),
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          let t = (0, U.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), e = (0, U.assertNodeType)("Expres\
sion"), s = /* @__PURE__ */ n(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, "validator");
          return s.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"], s;
        }()
      },
      decorators: {
        validate: (0, U.arrayOfType)("Decorator"),
        optional: !0
      },
      body: {
        validate: (0, U.assertNodeType)("BlockStatement")
      }
    }),
    aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"]
  });
  Me("ObjectProperty", {
    builder: ["key", "value", "computed", "shorthand", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["decorators"]],
    fields: {
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          let t = (0, U.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"), e = (0, U.
          assertNodeType)("Expression");
          return Object.assign(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"]
          });
        }()
      },
      value: {
        validate: (0, U.assertNodeType)("Expression", "PatternLike")
      },
      shorthand: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertValueType)("boolean"), Object.assign(function(t, e, s) {
          if (s) {
            if (t.computed)
              throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true");
            if (!(0, qn.default)("Identifier", t.key))
              throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier");
          }
        }, {
          type: "boolean"
        })) : (0, U.assertValueType)("boolean"),
        default: !1
      },
      decorators: {
        validate: (0, U.arrayOfType)("Decorator"),
        optional: !0
      }
    },
    visitor: ["key", "value", "decorators"],
    aliases: ["UserWhitespacable", "Property", "ObjectMember"],
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, U.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssert\
ion"), e = (0, U.assertNodeType)("Expression");
      return function(s, r, i) {
        ((0, qn.default)("ObjectPattern", s) ? t : e)(i, "value", i.value);
      };
    }() : void 0
  });
  Me("RestElement", {
    visitor: ["argument", "typeAnnotation"],
    builder: ["argument"],
    aliases: ["LVal", "PatternLike"],
    deprecatedAlias: "RestProperty",
    fields: Object.assign({}, cy(), {
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpressio\
n", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, U.assertNodeType)("LVal")
      }
    }),
    validate: process.env.BABEL_TYPES_8_BREAKING ? function(t, e) {
      let s = /(\w+)\[(\d+)\]/.exec(e);
      if (!s) throw new Error("Internal Babel error: malformed key.");
      let [, r, i] = s;
      if (t[r].length > +i + 1)
        throw new TypeError(`RestElement must be last element of ${r}`);
    } : void 0
  });
  Me("ReturnStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, U.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  Me("SequenceExpression", {
    visitor: ["expressions"],
    fields: {
      expressions: (0, U.validateArrayOfType)("Expression")
    },
    aliases: ["Expression"]
  });
  Me("ParenthesizedExpression", {
    visitor: ["expression"],
    aliases: ["Expression", "ExpressionWrapper"],
    fields: {
      expression: {
        validate: (0, U.assertNodeType)("Expression")
      }
    }
  });
  Me("SwitchCase", {
    visitor: ["test", "consequent"],
    fields: {
      test: {
        validate: (0, U.assertNodeType)("Expression"),
        optional: !0
      },
      consequent: (0, U.validateArrayOfType)("Statement")
    }
  });
  Me("SwitchStatement", {
    visitor: ["discriminant", "cases"],
    aliases: ["Statement", "BlockParent", "Scopable"],
    fields: {
      discriminant: {
        validate: (0, U.assertNodeType)("Expression")
      },
      cases: (0, U.validateArrayOfType)("SwitchCase")
    }
  });
  Me("ThisExpression", {
    aliases: ["Expression"]
  });
  Me("ThrowStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, U.assertNodeType)("Expression")
      }
    }
  });
  Me("TryStatement", {
    visitor: ["block", "handler", "finalizer"],
    aliases: ["Statement"],
    fields: {
      block: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertNodeType)("BlockStatement"), Object.assign(function(t) {
          if (!t.handler && !t.finalizer)
            throw new TypeError("TryStatement expects either a handler or finalizer, or both");
        }, {
          oneOfNodeTypes: ["BlockStatement"]
        })) : (0, U.assertNodeType)("BlockStatement")
      },
      handler: {
        optional: !0,
        validate: (0, U.assertNodeType)("CatchClause")
      },
      finalizer: {
        optional: !0,
        validate: (0, U.assertNodeType)("BlockStatement")
      }
    }
  });
  Me("UnaryExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !0
      },
      argument: {
        validate: (0, U.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, U.assertOneOf)(...wT.UNARY_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["UnaryLike", "Expression"]
  });
  Me("UpdateExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !1
      },
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.assertNodeType)("Identifier", "MemberExpression") : (0, U.assertNodeType)("Expr\
ession")
      },
      operator: {
        validate: (0, U.assertOneOf)(...wT.UPDATE_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["Expression"]
  });
  Me("VariableDeclaration", {
    builder: ["kind", "declarations"],
    visitor: ["declarations"],
    aliases: ["Statement", "Declaration"],
    fields: {
      declare: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      kind: {
        validate: (0, U.assertOneOf)("var", "let", "const", "using", "await using")
      },
      declarations: (0, U.validateArrayOfType)("VariableDeclarator")
    },
    validate: process.env.BABEL_TYPES_8_BREAKING ? (() => {
      let t = (0, U.assertNodeType)("Identifier");
      return function(e, s, r) {
        if ((0, qn.default)("ForXStatement", e, {
          left: r
        })) {
          if (r.declarations.length !== 1)
            throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${e.type}`);
        } else
          r.declarations.forEach((i) => {
            i.init || t(i, "id", i.id);
          });
      };
    })() : void 0
  });
  Me("VariableDeclarator", {
    visitor: ["id", "init"],
    fields: {
      id: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern") : (0, U.assertNodeType)(
        "LVal")
      },
      definite: {
        optional: !0,
        validate: (0, U.assertValueType)("boolean")
      },
      init: {
        optional: !0,
        validate: (0, U.assertNodeType)("Expression")
      }
    }
  });
  Me("WhileStatement", {
    visitor: ["test", "body"],
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"],
    fields: {
      test: {
        validate: (0, U.assertNodeType)("Expression")
      },
      body: {
        validate: (0, U.assertNodeType)("Statement")
      }
    }
  });
  Me("WithStatement", {
    visitor: ["object", "body"],
    aliases: ["Statement"],
    fields: {
      object: {
        validate: (0, U.assertNodeType)("Expression")
      },
      body: {
        validate: (0, U.assertNodeType)("Statement")
      }
    }
  });
  Me("AssignmentPattern", {
    visitor: ["left", "right", "decorators"],
    builder: ["left", "right"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, cy(), {
      left: {
        validate: (0, U.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExp\
ression", "TSTypeAssertion", "TSNonNullExpression")
      },
      right: {
        validate: (0, U.assertNodeType)("Expression")
      },
      decorators: {
        validate: (0, U.arrayOfType)("Decorator"),
        optional: !0
      }
    })
  });
  Me("ArrayPattern", {
    visitor: ["elements", "typeAnnotation"],
    builder: ["elements"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, cy(), {
      elements: {
        validate: (0, U.chain)((0, U.assertValueType)("array"), (0, U.assertEach)((0, U.assertNodeOrValueType)("null", "PatternLike", "LVal")))
      }
    })
  });
  Me("ArrowFunctionExpression", {
    builder: ["params", "body", "async"],
    visitor: ["typeParameters", "params", "predicate", "returnType", "body"],
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, uy(), kf(), {
      expression: {
        validate: (0, U.assertValueType)("boolean")
      },
      body: {
        validate: (0, U.assertNodeType)("BlockStatement", "Expression")
      },
      predicate: {
        validate: (0, U.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  Me("ClassBody", {
    visitor: ["body"],
    fields: {
      body: (0, U.validateArrayOfType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty",
      "TSDeclareMethod", "TSIndexSignature", "StaticBlock")
    }
  });
  Me("ClassExpression", {
    builder: ["id", "superClass", "body", "decorators"],
    visitor: ["decorators", "id", "typeParameters", "superClass", "superTypeParameters", "mixins", "implements", "body"],
    aliases: ["Scopable", "Class", "Expression"],
    fields: {
      id: {
        validate: (0, U.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, U.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, U.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, U.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, U.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, U.arrayOfType)("TSExpressionWithTypeArguments", "ClassImplements"),
        optional: !0
      },
      decorators: {
        validate: (0, U.arrayOfType)("Decorator"),
        optional: !0
      },
      mixins: {
        validate: (0, U.assertNodeType)("InterfaceExtends"),
        optional: !0
      }
    }
  });
  Me("ClassDeclaration", {
    inherits: "ClassExpression",
    aliases: ["Scopable", "Class", "Statement", "Declaration"],
    fields: {
      id: {
        validate: (0, U.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, U.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, U.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, U.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, U.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, U.arrayOfType)("TSExpressionWithTypeArguments", "ClassImplements"),
        optional: !0
      },
      decorators: {
        validate: (0, U.arrayOfType)("Decorator"),
        optional: !0
      },
      mixins: {
        validate: (0, U.assertNodeType)("InterfaceExtends"),
        optional: !0
      },
      declare: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      abstract: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      }
    },
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, U.assertNodeType)("Identifier");
      return function(e, s, r) {
        (0, qn.default)("ExportDefaultDeclaration", e) || t(r, "id", r.id);
      };
    }() : void 0
  });
  var Lj = un.importAttributes = {
    attributes: {
      optional: !0,
      validate: (0, U.arrayOfType)("ImportAttribute")
    },
    assertions: {
      deprecated: !0,
      optional: !0,
      validate: (0, U.arrayOfType)("ImportAttribute")
    }
  };
  Me("ExportAllDeclaration", {
    builder: ["source"],
    visitor: ["source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: Object.assign({
      source: {
        validate: (0, U.assertNodeType)("StringLiteral")
      },
      exportKind: (0, U.validateOptional)((0, U.assertOneOf)("type", "value"))
    }, Lj)
  });
  Me("ExportDefaultDeclaration", {
    visitor: ["declaration"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: (0, U.validateType)("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression"),
      exportKind: (0, U.validateOptional)((0, U.assertOneOf)("value"))
    }
  });
  Me("ExportNamedDeclaration", {
    builder: ["declaration", "specifiers", "source"],
    visitor: process.env ? ["declaration", "specifiers", "source", "attributes"] : ["declaration", "specifiers", "source", "attributes", "as\
sertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: Object.assign({
      declaration: {
        optional: !0,
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertNodeType)("Declaration"), Object.assign(function(t, e, s) {
          if (s && t.specifiers.length)
            throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration");
          if (s && t.source)
            throw new TypeError("Cannot export a declaration from a source");
        }, {
          oneOfNodeTypes: ["Declaration"]
        })) : (0, U.assertNodeType)("Declaration")
      }
    }, Lj, {
      specifiers: {
        default: [],
        validate: (0, U.arrayOf)(function() {
          let t = (0, U.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"), e = (0, U.assertNodeType)(
          "ExportSpecifier");
          return process.env.BABEL_TYPES_8_BREAKING ? Object.assign(function(s, r, i) {
            (s.source ? t : e)(s, r, i);
          }, {
            oneOfNodeTypes: ["ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"]
          }) : t;
        }())
      },
      source: {
        validate: (0, U.assertNodeType)("StringLiteral"),
        optional: !0
      },
      exportKind: (0, U.validateOptional)((0, U.assertOneOf)("type", "value"))
    })
  });
  Me("ExportSpecifier", {
    visitor: ["local", "exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, U.assertNodeType)("Identifier")
      },
      exported: {
        validate: (0, U.assertNodeType)("Identifier", "StringLiteral")
      },
      exportKind: {
        validate: (0, U.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  });
  Me("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, U.assertNodeType)("VariableDeclaration", "LVal");
          let t = (0, U.assertNodeType)("VariableDeclaration"), e = (0, U.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "\
ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression");
          return Object.assign(function(s, r, i) {
            (0, qn.default)("VariableDeclaration", i) ? t(s, r, i) : e(s, r, i);
          }, {
            oneOfNodeTypes: ["VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TS\
SatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression"]
          });
        }()
      },
      right: {
        validate: (0, U.assertNodeType)("Expression")
      },
      body: {
        validate: (0, U.assertNodeType)("Statement")
      },
      await: {
        default: !1
      }
    }
  });
  Me("ImportDeclaration", {
    builder: ["specifiers", "source"],
    visitor: ["specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration"],
    fields: Object.assign({}, Lj, {
      module: {
        optional: !0,
        validate: (0, U.assertValueType)("boolean")
      },
      phase: {
        default: null,
        validate: (0, U.assertOneOf)("source", "defer")
      },
      specifiers: (0, U.validateArrayOfType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"),
      source: {
        validate: (0, U.assertNodeType)("StringLiteral")
      },
      importKind: {
        validate: (0, U.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    })
  });
  Me("ImportDefaultSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, U.assertNodeType)("Identifier")
      }
    }
  });
  Me("ImportNamespaceSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, U.assertNodeType)("Identifier")
      }
    }
  });
  Me("ImportSpecifier", {
    visitor: ["imported", "local"],
    builder: ["local", "imported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, U.assertNodeType)("Identifier")
      },
      imported: {
        validate: (0, U.assertNodeType)("Identifier", "StringLiteral")
      },
      importKind: {
        validate: (0, U.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  });
  Me("ImportExpression", {
    visitor: ["source", "options"],
    aliases: ["Expression"],
    fields: {
      phase: {
        default: null,
        validate: (0, U.assertOneOf)("source", "defer")
      },
      source: {
        validate: (0, U.assertNodeType)("Expression")
      },
      options: {
        validate: (0, U.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  Me("MetaProperty", {
    visitor: ["meta", "property"],
    aliases: ["Expression"],
    fields: {
      meta: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertNodeType)("Identifier"), Object.assign(function(t, e, s) {
          let r;
          switch (s.name) {
            case "function":
              r = "sent";
              break;
            case "new":
              r = "target";
              break;
            case "import":
              r = "meta";
              break;
          }
          if (!(0, qn.default)("Identifier", t.property, {
            name: r
          }))
            throw new TypeError("Unrecognised MetaProperty");
        }, {
          oneOfNodeTypes: ["Identifier"]
        })) : (0, U.assertNodeType)("Identifier")
      },
      property: {
        validate: (0, U.assertNodeType)("Identifier")
      }
    }
  });
  var F1 = /* @__PURE__ */ n(() => ({
    abstract: {
      validate: (0, U.assertValueType)("boolean"),
      optional: !0
    },
    accessibility: {
      validate: (0, U.assertOneOf)("public", "private", "protected"),
      optional: !0
    },
    static: {
      default: !1
    },
    override: {
      default: !1
    },
    computed: {
      default: !1
    },
    optional: {
      validate: (0, U.assertValueType)("boolean"),
      optional: !0
    },
    key: {
      validate: (0, U.chain)(function() {
        let t = (0, U.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), e = (0, U.assertNodeType)("Expressi\
on");
        return function(s, r, i) {
          (s.computed ? e : t)(s, r, i);
        };
      }(), (0, U.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression"))
    }
  }), "classMethodOrPropertyCommon");
  un.classMethodOrPropertyCommon = F1;
  var Bj = /* @__PURE__ */ n(() => Object.assign({}, uy(), F1(), {
    params: (0, U.validateArrayOfType)("Identifier", "Pattern", "RestElement", "TSParameterProperty"),
    kind: {
      validate: (0, U.assertOneOf)("get", "set", "method", "constructor"),
      default: "method"
    },
    access: {
      validate: (0, U.chain)((0, U.assertValueType)("string"), (0, U.assertOneOf)("public", "private", "protected")),
      optional: !0
    },
    decorators: {
      validate: (0, U.arrayOfType)("Decorator"),
      optional: !0
    }
  }), "classMethodOrDeclareMethodCommon");
  un.classMethodOrDeclareMethodCommon = Bj;
  Me("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({}, Bj(), kf(), {
      body: {
        validate: (0, U.assertNodeType)("BlockStatement")
      }
    })
  });
  Me("ObjectPattern", {
    visitor: ["properties", "typeAnnotation", "decorators"],
    builder: ["properties"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, cy(), {
      properties: (0, U.validateArrayOfType)("RestElement", "ObjectProperty")
    })
  });
  Me("SpreadElement", {
    visitor: ["argument"],
    aliases: ["UnaryLike"],
    deprecatedAlias: "SpreadProperty",
    fields: {
      argument: {
        validate: (0, U.assertNodeType)("Expression")
      }
    }
  });
  Me("Super", {
    aliases: ["Expression"]
  });
  Me("TaggedTemplateExpression", {
    visitor: ["tag", "typeParameters", "quasi"],
    builder: ["tag", "quasi"],
    aliases: ["Expression"],
    fields: {
      tag: {
        validate: (0, U.assertNodeType)("Expression")
      },
      quasi: {
        validate: (0, U.assertNodeType)("TemplateLiteral")
      },
      typeParameters: {
        validate: (0, U.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  });
  Me("TemplateElement", {
    builder: ["value", "tail"],
    fields: {
      value: {
        validate: (0, U.chain)((0, U.assertShape)({
          raw: {
            validate: (0, U.assertValueType)("string")
          },
          cooked: {
            validate: (0, U.assertValueType)("string"),
            optional: !0
          }
        }), /* @__PURE__ */ n(function(e) {
          let s = e.value.raw, r = !1, i = /* @__PURE__ */ n(() => {
            throw new Error("Internal @babel/types error.");
          }, "error"), {
            str: a,
            firstInvalidLoc: o
          } = (0, jHt.readStringContents)("template", s, 0, 0, 0, {
            unterminated() {
              r = !0;
            },
            strictNumericEscape: i,
            invalidEscapeSequence: i,
            numericSeparatorInEscapeSequence: i,
            unexpectedNumericSeparator: i,
            invalidDigit: i,
            invalidCodePoint: i
          });
          if (!r) throw new Error("Invalid raw");
          e.value.cooked = o ? null : a;
        }, "templateElementCookedValidator"))
      },
      tail: {
        default: !1
      }
    }
  });
  Me("TemplateLiteral", {
    visitor: ["quasis", "expressions"],
    aliases: ["Expression", "Literal"],
    fields: {
      quasis: (0, U.validateArrayOfType)("TemplateElement"),
      expressions: {
        validate: (0, U.chain)((0, U.assertValueType)("array"), (0, U.assertEach)((0, U.assertNodeType)("Expression", "TSType")), function(t, e, s) {
          if (t.quasis.length !== s.length + 1)
            throw new TypeError(`Number of ${t.type} quasis should be exactly one more than the number of expressions.
Expected ${s.length + 1} quasis but got ${t.quasis.length}`);
        })
      }
    }
  });
  Me("YieldExpression", {
    builder: ["argument", "delegate"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      delegate: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertValueType)("boolean"), Object.assign(function(t, e, s) {
          if (s && !t.argument)
            throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument");
        }, {
          type: "boolean"
        })) : (0, U.assertValueType)("boolean"),
        default: !1
      },
      argument: {
        optional: !0,
        validate: (0, U.assertNodeType)("Expression")
      }
    }
  });
  Me("AwaitExpression", {
    builder: ["argument"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      argument: {
        validate: (0, U.assertNodeType)("Expression")
      }
    }
  });
  Me("Import", {
    aliases: ["Expression"]
  });
  Me("BigIntLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, U.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Me("ExportNamespaceSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, U.assertNodeType)("Identifier")
      }
    }
  });
  Me("OptionalMemberExpression", {
    builder: ["object", "property", "computed", "optional"],
    visitor: ["object", "property"],
    aliases: ["Expression"],
    fields: {
      object: {
        validate: (0, U.assertNodeType)("Expression")
      },
      property: {
        validate: function() {
          let t = (0, U.assertNodeType)("Identifier"), e = (0, U.assertNodeType)("Expression");
          return Object.assign(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier"]
          });
        }()
      },
      computed: {
        default: !1
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertValueType)("boolean"), (0, U.assertOptionalChainStart)()) : (0, U.
        assertValueType)("boolean")
      }
    }
  });
  Me("OptionalCallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments", "optional"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, U.assertNodeType)("Expression")
      },
      arguments: (0, U.validateArrayOfType)("Expression", "SpreadElement", "ArgumentPlaceholder"),
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, U.chain)((0, U.assertValueType)("boolean"), (0, U.assertOptionalChainStart)()) : (0, U.
        assertValueType)("boolean")
      },
      typeArguments: {
        validate: (0, U.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      typeParameters: {
        validate: (0, U.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  });
  Me("ClassProperty", {
    visitor: ["decorators", "variance", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property"],
    fields: Object.assign({}, F1(), {
      value: {
        validate: (0, U.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, U.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, U.arrayOfType)("Decorator"),
        optional: !0
      },
      readonly: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, U.assertNodeType)("Variance"),
        optional: !0
      }
    })
  });
  Me("ClassAccessorProperty", {
    visitor: ["decorators", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property", "Accessor"],
    fields: Object.assign({}, F1(), {
      key: {
        validate: (0, U.chain)(function() {
          let t = (0, U.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"), e = (0, U.assertNodeType)(
          "Expression");
          return function(s, r, i) {
            (s.computed ? e : t)(s, r, i);
          };
        }(), (0, U.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName"))
      },
      value: {
        validate: (0, U.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, U.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, U.arrayOfType)("Decorator"),
        optional: !0
      },
      readonly: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, U.assertNodeType)("Variance"),
        optional: !0
      }
    })
  });
  Me("ClassPrivateProperty", {
    visitor: ["decorators", "variance", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "decorators", "static"],
    aliases: ["Property", "Private"],
    fields: {
      key: {
        validate: (0, U.assertNodeType)("PrivateName")
      },
      value: {
        validate: (0, U.assertNodeType)("Expression"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, U.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, U.arrayOfType)("Decorator"),
        optional: !0
      },
      static: {
        validate: (0, U.assertValueType)("boolean"),
        default: !1
      },
      readonly: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      definite: {
        validate: (0, U.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, U.assertNodeType)("Variance"),
        optional: !0
      }
    }
  });
  Me("ClassPrivateMethod", {
    builder: ["kind", "key", "params", "body", "static"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"],
    fields: Object.assign({}, Bj(), kf(), {
      kind: {
        validate: (0, U.assertOneOf)("get", "set", "method"),
        default: "method"
      },
      key: {
        validate: (0, U.assertNodeType)("PrivateName")
      },
      body: {
        validate: (0, U.assertNodeType)("BlockStatement")
      }
    })
  });
  Me("PrivateName", {
    visitor: ["id"],
    aliases: ["Private"],
    fields: {
      id: {
        validate: (0, U.assertNodeType)("Identifier")
      }
    }
  });
  Me("StaticBlock", {
    visitor: ["body"],
    fields: {
      body: (0, U.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "FunctionParent"]
  });
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/flow.js
var spe = g(() => {
  "use strict";
  var tpe = IT(), ce = Il(), bt = (0, ce.defineAliasedType)("Flow"), Mj = /* @__PURE__ */ n((t) => {
    let e = t === "DeclareClass";
    bt(t, {
      builder: ["id", "typeParameters", "extends", "body"],
      visitor: ["id", "typeParameters", "extends", ...e ? ["mixins", "implements"] : [], "body"],
      aliases: ["FlowDeclaration", "Statement", "Declaration"],
      fields: Object.assign({
        id: (0, ce.validateType)("Identifier"),
        typeParameters: (0, ce.validateOptionalType)("TypeParameterDeclaration"),
        extends: (0, ce.validateOptional)((0, ce.arrayOfType)("InterfaceExtends"))
      }, e ? {
        mixins: (0, ce.validateOptional)((0, ce.arrayOfType)("InterfaceExtends")),
        implements: (0, ce.validateOptional)((0, ce.arrayOfType)("ClassImplements"))
      } : {}, {
        body: (0, ce.validateType)("ObjectTypeAnnotation")
      })
    });
  }, "defineInterfaceishType");
  bt("AnyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("ArrayTypeAnnotation", {
    visitor: ["elementType"],
    aliases: ["FlowType"],
    fields: {
      elementType: (0, ce.validateType)("FlowType")
    }
  });
  bt("BooleanTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("BooleanLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("NullLiteralTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("ClassImplements", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      typeParameters: (0, ce.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  Mj("DeclareClass");
  bt("DeclareFunction", {
    builder: ["id"],
    visitor: ["id", "predicate"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      predicate: (0, ce.validateOptionalType)("DeclaredPredicate")
    }
  });
  Mj("DeclareInterface");
  bt("DeclareModule", {
    builder: ["id", "body", "kind"],
    visitor: ["id", "body"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ce.validateType)("Identifier", "StringLiteral"),
      body: (0, ce.validateType)("BlockStatement"),
      kind: (0, ce.validateOptional)((0, ce.assertOneOf)("CommonJS", "ES"))
    }
  });
  bt("DeclareModuleExports", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      typeAnnotation: (0, ce.validateType)("TypeAnnotation")
    }
  });
  bt("DeclareTypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      typeParameters: (0, ce.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, ce.validateType)("FlowType")
    }
  });
  bt("DeclareOpaqueType", {
    visitor: ["id", "typeParameters", "supertype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      typeParameters: (0, ce.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, ce.validateOptionalType)("FlowType"),
      impltype: (0, ce.validateOptionalType)("FlowType")
    }
  });
  bt("DeclareVariable", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ce.validateType)("Identifier")
    }
  });
  bt("DeclareExportDeclaration", {
    visitor: ["declaration", "specifiers", "source", "attributes"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: Object.assign({
      declaration: (0, ce.validateOptionalType)("Flow"),
      specifiers: (0, ce.validateOptional)((0, ce.arrayOfType)("ExportSpecifier", "ExportNamespaceSpecifier")),
      source: (0, ce.validateOptionalType)("StringLiteral"),
      default: (0, ce.validateOptional)((0, ce.assertValueType)("boolean"))
    }, tpe.importAttributes)
  });
  bt("DeclareExportAllDeclaration", {
    visitor: ["source", "attributes"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: Object.assign({
      source: (0, ce.validateType)("StringLiteral"),
      exportKind: (0, ce.validateOptional)((0, ce.assertOneOf)("type", "value"))
    }, tpe.importAttributes)
  });
  bt("DeclaredPredicate", {
    visitor: ["value"],
    aliases: ["FlowPredicate"],
    fields: {
      value: (0, ce.validateType)("Flow")
    }
  });
  bt("ExistsTypeAnnotation", {
    aliases: ["FlowType"]
  });
  bt("FunctionTypeAnnotation", {
    builder: ["typeParameters", "params", "rest", "returnType"],
    visitor: ["typeParameters", "this", "params", "rest", "returnType"],
    aliases: ["FlowType"],
    fields: {
      typeParameters: (0, ce.validateOptionalType)("TypeParameterDeclaration"),
      params: (0, ce.validateArrayOfType)("FunctionTypeParam"),
      rest: (0, ce.validateOptionalType)("FunctionTypeParam"),
      this: (0, ce.validateOptionalType)("FunctionTypeParam"),
      returnType: (0, ce.validateType)("FlowType")
    }
  });
  bt("FunctionTypeParam", {
    visitor: ["name", "typeAnnotation"],
    fields: {
      name: (0, ce.validateOptionalType)("Identifier"),
      typeAnnotation: (0, ce.validateType)("FlowType"),
      optional: (0, ce.validateOptional)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("GenericTypeAnnotation", {
    visitor: ["id", "typeParameters"],
    aliases: ["FlowType"],
    fields: {
      id: (0, ce.validateType)("Identifier", "QualifiedTypeIdentifier"),
      typeParameters: (0, ce.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  bt("InferredPredicate", {
    aliases: ["FlowPredicate"]
  });
  bt("InterfaceExtends", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, ce.validateType)("Identifier", "QualifiedTypeIdentifier"),
      typeParameters: (0, ce.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  Mj("InterfaceDeclaration");
  bt("InterfaceTypeAnnotation", {
    visitor: ["extends", "body"],
    aliases: ["FlowType"],
    fields: {
      extends: (0, ce.validateOptional)((0, ce.arrayOfType)("InterfaceExtends")),
      body: (0, ce.validateType)("ObjectTypeAnnotation")
    }
  });
  bt("IntersectionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, ce.validate)((0, ce.arrayOfType)("FlowType"))
    }
  });
  bt("MixedTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("EmptyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("NullableTypeAnnotation", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowType"],
    fields: {
      typeAnnotation: (0, ce.validateType)("FlowType")
    }
  });
  bt("NumberLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, ce.validate)((0, ce.assertValueType)("number"))
    }
  });
  bt("NumberTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("ObjectTypeAnnotation", {
    visitor: ["properties", "indexers", "callProperties", "internalSlots"],
    aliases: ["FlowType"],
    builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"],
    fields: {
      properties: (0, ce.validate)((0, ce.arrayOfType)("ObjectTypeProperty", "ObjectTypeSpreadProperty")),
      indexers: {
        validate: (0, ce.arrayOfType)("ObjectTypeIndexer"),
        optional: !0,
        default: []
      },
      callProperties: {
        validate: (0, ce.arrayOfType)("ObjectTypeCallProperty"),
        optional: !0,
        default: []
      },
      internalSlots: {
        validate: (0, ce.arrayOfType)("ObjectTypeInternalSlot"),
        optional: !0,
        default: []
      },
      exact: {
        validate: (0, ce.assertValueType)("boolean"),
        default: !1
      },
      inexact: (0, ce.validateOptional)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("ObjectTypeInternalSlot", {
    visitor: ["id", "value"],
    builder: ["id", "value", "optional", "static", "method"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      value: (0, ce.validateType)("FlowType"),
      optional: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      static: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      method: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("ObjectTypeCallProperty", {
    visitor: ["value"],
    aliases: ["UserWhitespacable"],
    fields: {
      value: (0, ce.validateType)("FlowType"),
      static: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("ObjectTypeIndexer", {
    visitor: ["variance", "id", "key", "value"],
    builder: ["id", "key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, ce.validateOptionalType)("Identifier"),
      key: (0, ce.validateType)("FlowType"),
      value: (0, ce.validateType)("FlowType"),
      static: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      variance: (0, ce.validateOptionalType)("Variance")
    }
  });
  bt("ObjectTypeProperty", {
    visitor: ["key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      key: (0, ce.validateType)("Identifier", "StringLiteral"),
      value: (0, ce.validateType)("FlowType"),
      kind: (0, ce.validate)((0, ce.assertOneOf)("init", "get", "set")),
      static: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      proto: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      optional: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      variance: (0, ce.validateOptionalType)("Variance"),
      method: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("ObjectTypeSpreadProperty", {
    visitor: ["argument"],
    aliases: ["UserWhitespacable"],
    fields: {
      argument: (0, ce.validateType)("FlowType")
    }
  });
  bt("OpaqueType", {
    visitor: ["id", "typeParameters", "supertype", "impltype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      typeParameters: (0, ce.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, ce.validateOptionalType)("FlowType"),
      impltype: (0, ce.validateType)("FlowType")
    }
  });
  bt("QualifiedTypeIdentifier", {
    visitor: ["qualification", "id"],
    builder: ["id", "qualification"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      qualification: (0, ce.validateType)("Identifier", "QualifiedTypeIdentifier")
    }
  });
  bt("StringLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, ce.validate)((0, ce.assertValueType)("string"))
    }
  });
  bt("StringTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("SymbolTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("ThisTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("TupleTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, ce.validate)((0, ce.arrayOfType)("FlowType"))
    }
  });
  bt("TypeofTypeAnnotation", {
    visitor: ["argument"],
    aliases: ["FlowType"],
    fields: {
      argument: (0, ce.validateType)("FlowType")
    }
  });
  bt("TypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      typeParameters: (0, ce.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, ce.validateType)("FlowType")
    }
  });
  bt("TypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, ce.validateType)("FlowType")
    }
  });
  bt("TypeCastExpression", {
    visitor: ["expression", "typeAnnotation"],
    aliases: ["ExpressionWrapper", "Expression"],
    fields: {
      expression: (0, ce.validateType)("Expression"),
      typeAnnotation: (0, ce.validateType)("TypeAnnotation")
    }
  });
  bt("TypeParameter", {
    visitor: ["bound", "default", "variance"],
    fields: {
      name: (0, ce.validate)((0, ce.assertValueType)("string")),
      bound: (0, ce.validateOptionalType)("TypeAnnotation"),
      default: (0, ce.validateOptionalType)("FlowType"),
      variance: (0, ce.validateOptionalType)("Variance")
    }
  });
  bt("TypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, ce.validate)((0, ce.arrayOfType)("TypeParameter"))
    }
  });
  bt("TypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, ce.validate)((0, ce.arrayOfType)("FlowType"))
    }
  });
  bt("UnionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, ce.validate)((0, ce.arrayOfType)("FlowType"))
    }
  });
  bt("Variance", {
    builder: ["kind"],
    fields: {
      kind: (0, ce.validate)((0, ce.assertOneOf)("minus", "plus"))
    }
  });
  bt("VoidTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  bt("EnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      body: (0, ce.validateType)("EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody")
    }
  });
  bt("EnumBooleanBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      members: (0, ce.validateArrayOfType)("EnumBooleanMember"),
      hasUnknownMembers: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("EnumNumberBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      members: (0, ce.validateArrayOfType)("EnumNumberMember"),
      hasUnknownMembers: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("EnumStringBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, ce.validate)((0, ce.assertValueType)("boolean")),
      members: (0, ce.validateArrayOfType)("EnumStringMember", "EnumDefaultedMember"),
      hasUnknownMembers: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("EnumSymbolBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      members: (0, ce.validateArrayOfType)("EnumDefaultedMember"),
      hasUnknownMembers: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
  bt("EnumBooleanMember", {
    aliases: ["EnumMember"],
    builder: ["id"],
    visitor: ["id", "init"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      init: (0, ce.validateType)("BooleanLiteral")
    }
  });
  bt("EnumNumberMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      init: (0, ce.validateType)("NumericLiteral")
    }
  });
  bt("EnumStringMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, ce.validateType)("Identifier"),
      init: (0, ce.validateType)("StringLiteral")
    }
  });
  bt("EnumDefaultedMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, ce.validateType)("Identifier")
    }
  });
  bt("IndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, ce.validateType)("FlowType"),
      indexType: (0, ce.validateType)("FlowType")
    }
  });
  bt("OptionalIndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, ce.validateType)("FlowType"),
      indexType: (0, ce.validateType)("FlowType"),
      optional: (0, ce.validate)((0, ce.assertValueType)("boolean"))
    }
  });
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/jsx.js
var rpe = g(() => {
  "use strict";
  var Wr = Il(), Un = (0, Wr.defineAliasedType)("JSX");
  Un("JSXAttribute", {
    visitor: ["name", "value"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, Wr.assertNodeType)("JSXIdentifier", "JSXNamespacedName")
      },
      value: {
        optional: !0,
        validate: (0, Wr.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer")
      }
    }
  });
  Un("JSXClosingElement", {
    visitor: ["name"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, Wr.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      }
    }
  });
  Un("JSXElement", {
    builder: ["openingElement", "closingElement", "children", "selfClosing"],
    visitor: ["openingElement", "children", "closingElement"],
    aliases: ["Immutable", "Expression"],
    fields: Object.assign({
      openingElement: {
        validate: (0, Wr.assertNodeType)("JSXOpeningElement")
      },
      closingElement: {
        optional: !0,
        validate: (0, Wr.assertNodeType)("JSXClosingElement")
      },
      children: (0, Wr.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
    }, {
      selfClosing: {
        validate: (0, Wr.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  Un("JSXEmptyExpression", {});
  Un("JSXExpressionContainer", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, Wr.assertNodeType)("Expression", "JSXEmptyExpression")
      }
    }
  });
  Un("JSXSpreadChild", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, Wr.assertNodeType)("Expression")
      }
    }
  });
  Un("JSXIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, Wr.assertValueType)("string")
      }
    }
  });
  Un("JSXMemberExpression", {
    visitor: ["object", "property"],
    fields: {
      object: {
        validate: (0, Wr.assertNodeType)("JSXMemberExpression", "JSXIdentifier")
      },
      property: {
        validate: (0, Wr.assertNodeType)("JSXIdentifier")
      }
    }
  });
  Un("JSXNamespacedName", {
    visitor: ["namespace", "name"],
    fields: {
      namespace: {
        validate: (0, Wr.assertNodeType)("JSXIdentifier")
      },
      name: {
        validate: (0, Wr.assertNodeType)("JSXIdentifier")
      }
    }
  });
  Un("JSXOpeningElement", {
    builder: ["name", "attributes", "selfClosing"],
    visitor: ["name", "typeParameters", "typeArguments", "attributes"],
    aliases: ["Immutable"],
    fields: Object.assign({
      name: {
        validate: (0, Wr.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      },
      selfClosing: {
        default: !1
      },
      attributes: (0, Wr.validateArrayOfType)("JSXAttribute", "JSXSpreadAttribute"),
      typeArguments: {
        validate: (0, Wr.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      typeParameters: {
        validate: (0, Wr.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  });
  Un("JSXSpreadAttribute", {
    visitor: ["argument"],
    fields: {
      argument: {
        validate: (0, Wr.assertNodeType)("Expression")
      }
    }
  });
  Un("JSXText", {
    aliases: ["Immutable"],
    builder: ["value"],
    fields: {
      value: {
        validate: (0, Wr.assertValueType)("string")
      }
    }
  });
  Un("JSXFragment", {
    builder: ["openingFragment", "closingFragment", "children"],
    visitor: ["openingFragment", "children", "closingFragment"],
    aliases: ["Immutable", "Expression"],
    fields: {
      openingFragment: {
        validate: (0, Wr.assertNodeType)("JSXOpeningFragment")
      },
      closingFragment: {
        validate: (0, Wr.assertNodeType)("JSXClosingFragment")
      },
      children: (0, Wr.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
    }
  });
  Un("JSXOpeningFragment", {
    aliases: ["Immutable"]
  });
  Un("JSXClosingFragment", {
    aliases: ["Immutable"]
  });
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/placeholders.js
var Rj = g((jp) => {
  "use strict";
  Object.defineProperty(jp, "__esModule", {
    value: !0
  });
  jp.PLACEHOLDERS_FLIPPED_ALIAS = jp.PLACEHOLDERS_ALIAS = jp.PLACEHOLDERS = void 0;
  var RHt = Il(), qHt = jp.PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "Class\
Body", "Pattern"], jj = jp.PLACEHOLDERS_ALIAS = {
    Declaration: ["Statement"],
    Pattern: ["PatternLike", "LVal"]
  };
  for (let t of qHt) {
    let e = RHt.ALIAS_KEYS[t];
    e != null && e.length && (jj[t] = e);
  }
  var Fj = jp.PLACEHOLDERS_FLIPPED_ALIAS = {};
  Object.keys(jj).forEach((t) => {
    jj[t].forEach((e) => {
      hasOwnProperty.call(Fj, e) || (Fj[e] = []), Fj[e].push(t);
    });
  });
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/misc.js
var ipe = g(() => {
  "use strict";
  var j1 = Il(), UHt = Rj(), KHt = IT(), qj = (0, j1.defineAliasedType)("Miscellaneous");
  qj("Noop", {
    visitor: []
  });
  qj("Placeholder", {
    visitor: [],
    builder: ["expectedNode", "name"],
    fields: Object.assign({
      name: {
        validate: (0, j1.assertNodeType)("Identifier")
      },
      expectedNode: {
        validate: (0, j1.assertOneOf)(...UHt.PLACEHOLDERS)
      }
    }, (0, KHt.patternLikeCommon)())
  });
  qj("V8IntrinsicIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, j1.assertValueType)("string")
      }
    }
  });
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/experimental.js
var npe = g(() => {
  "use strict";
  var xr = Il();
  (0, xr.default)("ArgumentPlaceholder", {});
  (0, xr.default)("BindExpression", {
    visitor: ["object", "callee"],
    aliases: ["Expression"],
    fields: process.env.BABEL_TYPES_8_BREAKING ? {
      object: {
        validate: (0, xr.assertNodeType)("Expression")
      },
      callee: {
        validate: (0, xr.assertNodeType)("Expression")
      }
    } : {
      object: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      },
      callee: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      }
    }
  });
  (0, xr.default)("ImportAttribute", {
    visitor: ["key", "value"],
    fields: {
      key: {
        validate: (0, xr.assertNodeType)("Identifier", "StringLiteral")
      },
      value: {
        validate: (0, xr.assertNodeType)("StringLiteral")
      }
    }
  });
  (0, xr.default)("Decorator", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, xr.assertNodeType)("Expression")
      }
    }
  });
  (0, xr.default)("DoExpression", {
    visitor: ["body"],
    builder: ["body", "async"],
    aliases: ["Expression"],
    fields: {
      body: {
        validate: (0, xr.assertNodeType)("BlockStatement")
      },
      async: {
        validate: (0, xr.assertValueType)("boolean"),
        default: !1
      }
    }
  });
  (0, xr.default)("ExportDefaultSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, xr.assertNodeType)("Identifier")
      }
    }
  });
  (0, xr.default)("RecordExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: (0, xr.validateArrayOfType)("ObjectProperty", "SpreadElement")
    }
  });
  (0, xr.default)("TupleExpression", {
    fields: {
      elements: {
        validate: (0, xr.arrayOfType)("Expression", "SpreadElement"),
        default: []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  });
  (0, xr.default)("DecimalLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, xr.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  (0, xr.default)("ModuleExpression", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, xr.assertNodeType)("Program")
      }
    },
    aliases: ["Expression"]
  });
  (0, xr.default)("TopicReference", {
    aliases: ["Expression"]
  });
  (0, xr.default)("PipelineTopicExpression", {
    builder: ["expression"],
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, xr.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  });
  (0, xr.default)("PipelineBareFunction", {
    builder: ["callee"],
    visitor: ["callee"],
    fields: {
      callee: {
        validate: (0, xr.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  });
  (0, xr.default)("PipelinePrimaryTopicReference", {
    aliases: ["Expression"]
  });
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/typescript.js
var fpe = g(() => {
  "use strict";
  var xe = Il(), ape = IT(), VHt = oy(), Rt = (0, xe.defineAliasedType)("TypeScript"), na = (0, xe.assertValueType)("boolean"), ope = /* @__PURE__ */ n(
  () => ({
    returnType: {
      validate: (0, xe.assertNodeType)("TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, xe.assertNodeType)("TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  }), "tSFunctionTypeAnnotationCommon");
  Rt("TSParameterProperty", {
    aliases: ["LVal"],
    visitor: ["parameter"],
    fields: {
      accessibility: {
        validate: (0, xe.assertOneOf)("public", "private", "protected"),
        optional: !0
      },
      readonly: {
        validate: (0, xe.assertValueType)("boolean"),
        optional: !0
      },
      parameter: {
        validate: (0, xe.assertNodeType)("Identifier", "AssignmentPattern")
      },
      override: {
        validate: (0, xe.assertValueType)("boolean"),
        optional: !0
      },
      decorators: {
        validate: (0, xe.arrayOfType)("Decorator"),
        optional: !0
      }
    }
  });
  Rt("TSDeclareFunction", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, ape.functionDeclarationCommon)(), ope())
  });
  Rt("TSDeclareMethod", {
    visitor: ["decorators", "key", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, ape.classMethodOrDeclareMethodCommon)(), ope())
  });
  Rt("TSQualifiedName", {
    aliases: ["TSEntityName"],
    visitor: ["left", "right"],
    fields: {
      left: (0, xe.validateType)("TSEntityName"),
      right: (0, xe.validateType)("Identifier")
    }
  });
  var R1 = /* @__PURE__ */ n(() => ({
    typeParameters: (0, xe.validateOptionalType)("TSTypeParameterDeclaration"),
    parameters: (0, xe.validateArrayOfType)("ArrayPattern", "Identifier", "ObjectPattern", "RestElement"),
    typeAnnotation: (0, xe.validateOptionalType)("TSTypeAnnotation")
  }), "signatureDeclarationCommon"), lpe = {
    aliases: ["TSTypeElement"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"],
    fields: R1()
  };
  Rt("TSCallSignatureDeclaration", lpe);
  Rt("TSConstructSignatureDeclaration", lpe);
  var upe = /* @__PURE__ */ n(() => ({
    key: (0, xe.validateType)("Expression"),
    computed: {
      default: !1
    },
    optional: (0, xe.validateOptional)(na)
  }), "namedTypeElementCommon");
  Rt("TSPropertySignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeAnnotation"],
    fields: Object.assign({}, upe(), {
      readonly: (0, xe.validateOptional)(na),
      typeAnnotation: (0, xe.validateOptionalType)("TSTypeAnnotation"),
      kind: {
        validate: (0, xe.assertOneOf)("get", "set")
      }
    })
  });
  Rt("TSMethodSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeParameters", "parameters", "typeAnnotation"],
    fields: Object.assign({}, R1(), upe(), {
      kind: {
        validate: (0, xe.assertOneOf)("method", "get", "set")
      }
    })
  });
  Rt("TSIndexSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["parameters", "typeAnnotation"],
    fields: {
      readonly: (0, xe.validateOptional)(na),
      static: (0, xe.validateOptional)(na),
      parameters: (0, xe.validateArrayOfType)("Identifier"),
      typeAnnotation: (0, xe.validateOptionalType)("TSTypeAnnotation")
    }
  });
  var WHt = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeywor\
d", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"];
  for (let t of WHt)
    Rt(t, {
      aliases: ["TSType", "TSBaseType"],
      visitor: [],
      fields: {}
    });
  Rt("TSThisType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: [],
    fields: {}
  });
  var cpe = {
    aliases: ["TSType"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"]
  };
  Rt("TSFunctionType", Object.assign({}, cpe, {
    fields: R1()
  }));
  Rt("TSConstructorType", Object.assign({}, cpe, {
    fields: Object.assign({}, R1(), {
      abstract: (0, xe.validateOptional)(na)
    })
  }));
  Rt("TSTypeReference", {
    aliases: ["TSType"],
    visitor: ["typeName", "typeParameters"],
    fields: {
      typeName: (0, xe.validateType)("TSEntityName"),
      typeParameters: (0, xe.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  Rt("TSTypePredicate", {
    aliases: ["TSType"],
    visitor: ["parameterName", "typeAnnotation"],
    builder: ["parameterName", "typeAnnotation", "asserts"],
    fields: {
      parameterName: (0, xe.validateType)("Identifier", "TSThisType"),
      typeAnnotation: (0, xe.validateOptionalType)("TSTypeAnnotation"),
      asserts: (0, xe.validateOptional)(na)
    }
  });
  Rt("TSTypeQuery", {
    aliases: ["TSType"],
    visitor: ["exprName", "typeParameters"],
    fields: {
      exprName: (0, xe.validateType)("TSEntityName", "TSImportType"),
      typeParameters: (0, xe.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  Rt("TSTypeLiteral", {
    aliases: ["TSType"],
    visitor: ["members"],
    fields: {
      members: (0, xe.validateArrayOfType)("TSTypeElement")
    }
  });
  Rt("TSArrayType", {
    aliases: ["TSType"],
    visitor: ["elementType"],
    fields: {
      elementType: (0, xe.validateType)("TSType")
    }
  });
  Rt("TSTupleType", {
    aliases: ["TSType"],
    visitor: ["elementTypes"],
    fields: {
      elementTypes: (0, xe.validateArrayOfType)("TSType", "TSNamedTupleMember")
    }
  });
  Rt("TSOptionalType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, xe.validateType)("TSType")
    }
  });
  Rt("TSRestType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, xe.validateType)("TSType")
    }
  });
  Rt("TSNamedTupleMember", {
    visitor: ["label", "elementType"],
    builder: ["label", "elementType", "optional"],
    fields: {
      label: (0, xe.validateType)("Identifier"),
      optional: {
        validate: na,
        default: !1
      },
      elementType: (0, xe.validateType)("TSType")
    }
  });
  var ppe = {
    aliases: ["TSType"],
    visitor: ["types"],
    fields: {
      types: (0, xe.validateArrayOfType)("TSType")
    }
  };
  Rt("TSUnionType", ppe);
  Rt("TSIntersectionType", ppe);
  Rt("TSConditionalType", {
    aliases: ["TSType"],
    visitor: ["checkType", "extendsType", "trueType", "falseType"],
    fields: {
      checkType: (0, xe.validateType)("TSType"),
      extendsType: (0, xe.validateType)("TSType"),
      trueType: (0, xe.validateType)("TSType"),
      falseType: (0, xe.validateType)("TSType")
    }
  });
  Rt("TSInferType", {
    aliases: ["TSType"],
    visitor: ["typeParameter"],
    fields: {
      typeParameter: (0, xe.validateType)("TSTypeParameter")
    }
  });
  Rt("TSParenthesizedType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, xe.validateType)("TSType")
    }
  });
  Rt("TSTypeOperator", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      operator: (0, xe.validate)((0, xe.assertValueType)("string")),
      typeAnnotation: (0, xe.validateType)("TSType")
    }
  });
  Rt("TSIndexedAccessType", {
    aliases: ["TSType"],
    visitor: ["objectType", "indexType"],
    fields: {
      objectType: (0, xe.validateType)("TSType"),
      indexType: (0, xe.validateType)("TSType")
    }
  });
  Rt("TSMappedType", {
    aliases: ["TSType"],
    visitor: ["typeParameter", "nameType", "typeAnnotation"],
    builder: ["typeParameter", "typeAnnotation", "nameType"],
    fields: Object.assign({}, {
      typeParameter: (0, xe.validateType)("TSTypeParameter")
    }, {
      readonly: (0, xe.validateOptional)((0, xe.assertOneOf)(!0, !1, "+", "-")),
      optional: (0, xe.validateOptional)((0, xe.assertOneOf)(!0, !1, "+", "-")),
      typeAnnotation: (0, xe.validateOptionalType)("TSType"),
      nameType: (0, xe.validateOptionalType)("TSType")
    })
  });
  Rt("TSLiteralType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: ["literal"],
    fields: {
      literal: {
        validate: function() {
          let t = (0, xe.assertNodeType)("NumericLiteral", "BigIntLiteral"), e = (0, xe.assertOneOf)("-"), s = (0, xe.assertNodeType)("Numer\
icLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral");
          function r(i, a, o) {
            (0, VHt.default)("UnaryExpression", o) ? (e(o, "operator", o.operator), t(o, "argument", o.argument)) : s(i, a, o);
          }
          return n(r, "validator"), r.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiter\
al", "UnaryExpression"], r;
        }()
      }
    }
  });
  Rt("TSExpressionWithTypeArguments", {
    aliases: ["TSType"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, xe.validateType)("TSEntityName"),
      typeParameters: (0, xe.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  Rt("TSInterfaceDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "extends", "body"],
    fields: {
      declare: (0, xe.validateOptional)(na),
      id: (0, xe.validateType)("Identifier"),
      typeParameters: (0, xe.validateOptionalType)("TSTypeParameterDeclaration"),
      extends: (0, xe.validateOptional)((0, xe.arrayOfType)("TSExpressionWithTypeArguments")),
      body: (0, xe.validateType)("TSInterfaceBody")
    }
  });
  Rt("TSInterfaceBody", {
    visitor: ["body"],
    fields: {
      body: (0, xe.validateArrayOfType)("TSTypeElement")
    }
  });
  Rt("TSTypeAliasDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "typeAnnotation"],
    fields: {
      declare: (0, xe.validateOptional)(na),
      id: (0, xe.validateType)("Identifier"),
      typeParameters: (0, xe.validateOptionalType)("TSTypeParameterDeclaration"),
      typeAnnotation: (0, xe.validateType)("TSType")
    }
  });
  Rt("TSInstantiationExpression", {
    aliases: ["Expression"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, xe.validateType)("Expression"),
      typeParameters: (0, xe.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  var hpe = {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression", "typeAnnotation"],
    fields: {
      expression: (0, xe.validateType)("Expression"),
      typeAnnotation: (0, xe.validateType)("TSType")
    }
  };
  Rt("TSAsExpression", hpe);
  Rt("TSSatisfiesExpression", hpe);
  Rt("TSTypeAssertion", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["typeAnnotation", "expression"],
    fields: {
      typeAnnotation: (0, xe.validateType)("TSType"),
      expression: (0, xe.validateType)("Expression")
    }
  });
  Rt("TSEnumBody", {
    visitor: ["members"],
    fields: {
      members: (0, xe.validateArrayOfType)("TSEnumMember")
    }
  });
  Rt("TSEnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "members"],
    fields: {
      declare: (0, xe.validateOptional)(na),
      const: (0, xe.validateOptional)(na),
      id: (0, xe.validateType)("Identifier"),
      members: (0, xe.validateArrayOfType)("TSEnumMember"),
      initializer: (0, xe.validateOptionalType)("Expression"),
      body: (0, xe.validateOptionalType)("TSEnumBody")
    }
  });
  Rt("TSEnumMember", {
    visitor: ["id", "initializer"],
    fields: {
      id: (0, xe.validateType)("Identifier", "StringLiteral"),
      initializer: (0, xe.validateOptionalType)("Expression")
    }
  });
  Rt("TSModuleDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: Object.assign({
      kind: {
        validate: (0, xe.assertOneOf)("global", "module", "namespace")
      },
      declare: (0, xe.validateOptional)(na)
    }, {
      global: (0, xe.validateOptional)(na)
    }, {
      id: (0, xe.validateType)("Identifier", "StringLiteral"),
      body: (0, xe.validateType)("TSModuleBlock", "TSModuleDeclaration")
    })
  });
  Rt("TSModuleBlock", {
    aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"],
    visitor: ["body"],
    fields: {
      body: (0, xe.validateArrayOfType)("Statement")
    }
  });
  Rt("TSImportType", {
    aliases: ["TSType"],
    builder: ["argument", "qualifier", "typeParameters"],
    visitor: ["argument", "options", "qualifier", "typeParameters"],
    fields: {
      argument: (0, xe.validateType)("StringLiteral"),
      qualifier: (0, xe.validateOptionalType)("TSEntityName"),
      typeParameters: (0, xe.validateOptionalType)("TSTypeParameterInstantiation"),
      options: {
        validate: (0, xe.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  Rt("TSImportEqualsDeclaration", {
    aliases: ["Statement"],
    visitor: ["id", "moduleReference"],
    fields: {
      isExport: (0, xe.validate)(na),
      id: (0, xe.validateType)("Identifier"),
      moduleReference: (0, xe.validateType)("TSEntityName", "TSExternalModuleReference"),
      importKind: {
        validate: (0, xe.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  });
  Rt("TSExternalModuleReference", {
    visitor: ["expression"],
    fields: {
      expression: (0, xe.validateType)("StringLiteral")
    }
  });
  Rt("TSNonNullExpression", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression"],
    fields: {
      expression: (0, xe.validateType)("Expression")
    }
  });
  Rt("TSExportAssignment", {
    aliases: ["Statement"],
    visitor: ["expression"],
    fields: {
      expression: (0, xe.validateType)("Expression")
    }
  });
  Rt("TSNamespaceExportDeclaration", {
    aliases: ["Statement"],
    visitor: ["id"],
    fields: {
      id: (0, xe.validateType)("Identifier")
    }
  });
  Rt("TSTypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: {
        validate: (0, xe.assertNodeType)("TSType")
      }
    }
  });
  Rt("TSTypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, xe.validateArrayOfType)("TSType")
    }
  });
  Rt("TSTypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, xe.validateArrayOfType)("TSTypeParameter")
    }
  });
  Rt("TSTypeParameter", {
    builder: ["constraint", "default", "name"],
    visitor: ["constraint", "default"],
    fields: {
      name: {
        validate: (0, xe.assertValueType)("string")
      },
      in: {
        validate: (0, xe.assertValueType)("boolean"),
        optional: !0
      },
      out: {
        validate: (0, xe.assertValueType)("boolean"),
        optional: !0
      },
      const: {
        validate: (0, xe.assertValueType)("boolean"),
        optional: !0
      },
      constraint: {
        validate: (0, xe.assertNodeType)("TSType"),
        optional: !0
      },
      default: {
        validate: (0, xe.assertNodeType)("TSType"),
        optional: !0
      }
    }
  });
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/deprecated-aliases.js
var dpe = g((q1) => {
  "use strict";
  Object.defineProperty(q1, "__esModule", {
    value: !0
  });
  q1.DEPRECATED_ALIASES = void 0;
  var WQs = q1.DEPRECATED_ALIASES = {
    ModuleDeclaration: "ImportOrExportDeclaration"
  };
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/definitions/index.js
var to = g((Kn) => {
  "use strict";
  Object.defineProperty(Kn, "__esModule", {
    value: !0
  });
  Object.defineProperty(Kn, "ALIAS_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return so.ALIAS_KEYS;
    }, "get")
  });
  Object.defineProperty(Kn, "BUILDER_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return so.BUILDER_KEYS;
    }, "get")
  });
  Object.defineProperty(Kn, "DEPRECATED_ALIASES", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Uj.DEPRECATED_ALIASES;
    }, "get")
  });
  Object.defineProperty(Kn, "DEPRECATED_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return so.DEPRECATED_KEYS;
    }, "get")
  });
  Object.defineProperty(Kn, "FLIPPED_ALIAS_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return so.FLIPPED_ALIAS_KEYS;
    }, "get")
  });
  Object.defineProperty(Kn, "NODE_FIELDS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return so.NODE_FIELDS;
    }, "get")
  });
  Object.defineProperty(Kn, "NODE_PARENT_VALIDATIONS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return so.NODE_PARENT_VALIDATIONS;
    }, "get")
  });
  Object.defineProperty(Kn, "PLACEHOLDERS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Kj.PLACEHOLDERS;
    }, "get")
  });
  Object.defineProperty(Kn, "PLACEHOLDERS_ALIAS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Kj.PLACEHOLDERS_ALIAS;
    }, "get")
  });
  Object.defineProperty(Kn, "PLACEHOLDERS_FLIPPED_ALIAS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Kj.PLACEHOLDERS_FLIPPED_ALIAS;
    }, "get")
  });
  Kn.TYPES = void 0;
  Object.defineProperty(Kn, "VISITOR_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return so.VISITOR_KEYS;
    }, "get")
  });
  IT();
  spe();
  rpe();
  ipe();
  npe();
  fpe();
  var so = Il(), Kj = Rj(), Uj = dpe();
  Object.keys(Uj.DEPRECATED_ALIASES).forEach((t) => {
    so.FLIPPED_ALIAS_KEYS[t] = so.FLIPPED_ALIAS_KEYS[Uj.DEPRECATED_ALIASES[t]];
  });
  var HQs = Kn.TYPES = [].concat(Object.keys(so.VISITOR_KEYS), Object.keys(so.FLIPPED_ALIAS_KEYS), Object.keys(so.DEPRECATED_KEYS));
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/validate.js
var M1 = g((py) => {
  "use strict";
  Object.defineProperty(py, "__esModule", {
    value: !0
  });
  py.default = $Ht;
  py.validateChild = ype;
  py.validateField = mpe;
  py.validateInternal = HHt;
  var NT = to();
  function $Ht(t, e, s) {
    if (!t) return;
    let r = NT.NODE_FIELDS[t.type];
    if (!r) return;
    let i = r[e];
    mpe(t, e, s, i), ype(t, e, s);
  }
  n($Ht, "validate");
  function HHt(t, e, s, r, i) {
    if (t != null && t.validate && !(t.optional && r == null) && (t.validate(e, s, r), i)) {
      var a;
      let o = r.type;
      if (o == null) return;
      (a = NT.NODE_PARENT_VALIDATIONS[o]) == null || a.call(NT.NODE_PARENT_VALIDATIONS, e, s, r);
    }
  }
  n(HHt, "validateInternal");
  function mpe(t, e, s, r) {
    r != null && r.validate && (r.optional && s == null || r.validate(t, e, s));
  }
  n(mpe, "validateField");
  function ype(t, e, s) {
    var r;
    let i = s?.type;
    i != null && ((r = NT.NODE_PARENT_VALIDATIONS[i]) == null || r.call(NT.NODE_PARENT_VALIDATIONS, t, e, s));
  }
  n(ype, "validateChild");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/index.js
var Vn = g((v) => {
  "use strict";
  Object.defineProperty(v, "__esModule", {
    value: !0
  });
  v.anyTypeAnnotation = vYt;
  v.argumentPlaceholder = ezt;
  v.arrayExpression = XHt;
  v.arrayPattern = WJt;
  v.arrayTypeAnnotation = CYt;
  v.arrowFunctionExpression = $Jt;
  v.assignmentExpression = zHt;
  v.assignmentPattern = VJt;
  v.awaitExpression = fYt;
  v.bigIntLiteral = mYt;
  v.binaryExpression = GHt;
  v.bindExpression = tzt;
  v.blockStatement = tJt;
  v.booleanLiteral = SJt;
  v.booleanLiteralTypeAnnotation = IYt;
  v.booleanTypeAnnotation = wYt;
  v.breakStatement = sJt;
  v.callExpression = rJt;
  v.catchClause = iJt;
  v.classAccessorProperty = xYt;
  v.classBody = HJt;
  v.classDeclaration = YJt;
  v.classExpression = JJt;
  v.classImplements = kYt;
  v.classMethod = aYt;
  v.classPrivateMethod = PYt;
  v.classPrivateProperty = SYt;
  v.classProperty = bYt;
  v.conditionalExpression = nJt;
  v.continueStatement = aJt;
  v.debuggerStatement = oJt;
  v.decimalLiteral = lzt;
  v.declareClass = DYt;
  v.declareExportAllDeclaration = qYt;
  v.declareExportDeclaration = RYt;
  v.declareFunction = OYt;
  v.declareInterface = _Yt;
  v.declareModule = LYt;
  v.declareModuleExports = BYt;
  v.declareOpaqueType = FYt;
  v.declareTypeAlias = MYt;
  v.declareVariable = jYt;
  v.declaredPredicate = UYt;
  v.decorator = rzt;
  v.directive = ZHt;
  v.directiveLiteral = eJt;
  v.doExpression = izt;
  v.doWhileStatement = lJt;
  v.emptyStatement = uJt;
  v.emptyTypeAnnotation = QYt;
  v.enumBooleanBody = CXt;
  v.enumBooleanMember = kXt;
  v.enumDeclaration = vXt;
  v.enumDefaultedMember = _Xt;
  v.enumNumberBody = wXt;
  v.enumNumberMember = DXt;
  v.enumStringBody = IXt;
  v.enumStringMember = OXt;
  v.enumSymbolBody = NXt;
  v.existsTypeAnnotation = KYt;
  v.exportAllDeclaration = XJt;
  v.exportDefaultDeclaration = zJt;
  v.exportDefaultSpecifier = nzt;
  v.exportNamedDeclaration = GJt;
  v.exportNamespaceSpecifier = yYt;
  v.exportSpecifier = QJt;
  v.expressionStatement = cJt;
  v.file = pJt;
  v.forInStatement = hJt;
  v.forOfStatement = ZJt;
  v.forStatement = fJt;
  v.functionDeclaration = dJt;
  v.functionExpression = mJt;
  v.functionTypeAnnotation = VYt;
  v.functionTypeParam = WYt;
  v.genericTypeAnnotation = $Yt;
  v.identifier = yJt;
  v.ifStatement = gJt;
  v.import = dYt;
  v.importAttribute = szt;
  v.importDeclaration = eYt;
  v.importDefaultSpecifier = tYt;
  v.importExpression = iYt;
  v.importNamespaceSpecifier = sYt;
  v.importSpecifier = rYt;
  v.indexedAccessType = LXt;
  v.inferredPredicate = HYt;
  v.interfaceDeclaration = YYt;
  v.interfaceExtends = JYt;
  v.interfaceTypeAnnotation = XYt;
  v.interpreterDirective = QHt;
  v.intersectionTypeAnnotation = zYt;
  v.jSXAttribute = v.jsxAttribute = MXt;
  v.jSXClosingElement = v.jsxClosingElement = FXt;
  v.jSXClosingFragment = v.jsxClosingFragment = zXt;
  v.jSXElement = v.jsxElement = jXt;
  v.jSXEmptyExpression = v.jsxEmptyExpression = RXt;
  v.jSXExpressionContainer = v.jsxExpressionContainer = qXt;
  v.jSXFragment = v.jsxFragment = YXt;
  v.jSXIdentifier = v.jsxIdentifier = KXt;
  v.jSXMemberExpression = v.jsxMemberExpression = VXt;
  v.jSXNamespacedName = v.jsxNamespacedName = WXt;
  v.jSXOpeningElement = v.jsxOpeningElement = $Xt;
  v.jSXOpeningFragment = v.jsxOpeningFragment = XXt;
  v.jSXSpreadAttribute = v.jsxSpreadAttribute = HXt;
  v.jSXSpreadChild = v.jsxSpreadChild = UXt;
  v.jSXText = v.jsxText = JXt;
  v.labeledStatement = TJt;
  v.logicalExpression = PJt;
  v.memberExpression = EJt;
  v.metaProperty = nYt;
  v.mixedTypeAnnotation = GYt;
  v.moduleExpression = uzt;
  v.newExpression = AJt;
  v.noop = GXt;
  v.nullLiteral = xJt;
  v.nullLiteralTypeAnnotation = NYt;
  v.nullableTypeAnnotation = ZYt;
  v.numberLiteral = CGt;
  v.numberLiteralTypeAnnotation = eXt;
  v.numberTypeAnnotation = tXt;
  v.numericLiteral = gpe;
  v.objectExpression = CJt;
  v.objectMethod = wJt;
  v.objectPattern = oYt;
  v.objectProperty = IJt;
  v.objectTypeAnnotation = sXt;
  v.objectTypeCallProperty = iXt;
  v.objectTypeIndexer = nXt;
  v.objectTypeInternalSlot = rXt;
  v.objectTypeProperty = aXt;
  v.objectTypeSpreadProperty = oXt;
  v.opaqueType = lXt;
  v.optionalCallExpression = TYt;
  v.optionalIndexedAccessType = BXt;
  v.optionalMemberExpression = gYt;
  v.parenthesizedExpression = DJt;
  v.pipelineBareFunction = hzt;
  v.pipelinePrimaryTopicReference = fzt;
  v.pipelineTopicExpression = pzt;
  v.placeholder = QXt;
  v.privateName = EYt;
  v.program = vJt;
  v.qualifiedTypeIdentifier = uXt;
  v.recordExpression = azt;
  v.regExpLiteral = Tpe;
  v.regexLiteral = wGt;
  v.restElement = bpe;
  v.restProperty = IGt;
  v.returnStatement = NJt;
  v.sequenceExpression = kJt;
  v.spreadElement = xpe;
  v.spreadProperty = NGt;
  v.staticBlock = AYt;
  v.stringLiteral = bJt;
  v.stringLiteralTypeAnnotation = cXt;
  v.stringTypeAnnotation = pXt;
  v.super = lYt;
  v.switchCase = OJt;
  v.switchStatement = _Jt;
  v.symbolTypeAnnotation = hXt;
  v.taggedTemplateExpression = uYt;
  v.templateElement = cYt;
  v.templateLiteral = pYt;
  v.thisExpression = LJt;
  v.thisTypeAnnotation = fXt;
  v.throwStatement = BJt;
  v.topicReference = czt;
  v.tryStatement = MJt;
  v.tSAnyKeyword = v.tsAnyKeyword = Ezt;
  v.tSArrayType = v.tsArrayType = Vzt;
  v.tSAsExpression = v.tsAsExpression = lGt;
  v.tSBigIntKeyword = v.tsBigIntKeyword = vzt;
  v.tSBooleanKeyword = v.tsBooleanKeyword = Azt;
  v.tSCallSignatureDeclaration = v.tsCallSignatureDeclaration = Tzt;
  v.tSConditionalType = v.tsConditionalType = zzt;
  v.tSConstructSignatureDeclaration = v.tsConstructSignatureDeclaration = bzt;
  v.tSConstructorType = v.tsConstructorType = jzt;
  v.tSDeclareFunction = v.tsDeclareFunction = mzt;
  v.tSDeclareMethod = v.tsDeclareMethod = yzt;
  v.tSEnumBody = v.tsEnumBody = pGt;
  v.tSEnumDeclaration = v.tsEnumDeclaration = hGt;
  v.tSEnumMember = v.tsEnumMember = fGt;
  v.tSExportAssignment = v.tsExportAssignment = xGt;
  v.tSExpressionWithTypeArguments = v.tsExpressionWithTypeArguments = rGt;
  v.tSExternalModuleReference = v.tsExternalModuleReference = TGt;
  v.tSFunctionType = v.tsFunctionType = Fzt;
  v.tSImportEqualsDeclaration = v.tsImportEqualsDeclaration = gGt;
  v.tSImportType = v.tsImportType = yGt;
  v.tSIndexSignature = v.tsIndexSignature = Pzt;
  v.tSIndexedAccessType = v.tsIndexedAccessType = eGt;
  v.tSInferType = v.tsInferType = Gzt;
  v.tSInstantiationExpression = v.tsInstantiationExpression = oGt;
  v.tSInterfaceBody = v.tsInterfaceBody = nGt;
  v.tSInterfaceDeclaration = v.tsInterfaceDeclaration = iGt;
  v.tSIntersectionType = v.tsIntersectionType = Xzt;
  v.tSIntrinsicKeyword = v.tsIntrinsicKeyword = Czt;
  v.tSLiteralType = v.tsLiteralType = sGt;
  v.tSMappedType = v.tsMappedType = tGt;
  v.tSMethodSignature = v.tsMethodSignature = Szt;
  v.tSModuleBlock = v.tsModuleBlock = mGt;
  v.tSModuleDeclaration = v.tsModuleDeclaration = dGt;
  v.tSNamedTupleMember = v.tsNamedTupleMember = Jzt;
  v.tSNamespaceExportDeclaration = v.tsNamespaceExportDeclaration = SGt;
  v.tSNeverKeyword = v.tsNeverKeyword = wzt;
  v.tSNonNullExpression = v.tsNonNullExpression = bGt;
  v.tSNullKeyword = v.tsNullKeyword = Izt;
  v.tSNumberKeyword = v.tsNumberKeyword = Nzt;
  v.tSObjectKeyword = v.tsObjectKeyword = kzt;
  v.tSOptionalType = v.tsOptionalType = $zt;
  v.tSParameterProperty = v.tsParameterProperty = dzt;
  v.tSParenthesizedType = v.tsParenthesizedType = Qzt;
  v.tSPropertySignature = v.tsPropertySignature = xzt;
  v.tSQualifiedName = v.tsQualifiedName = gzt;
  v.tSRestType = v.tsRestType = Hzt;
  v.tSSatisfiesExpression = v.tsSatisfiesExpression = uGt;
  v.tSStringKeyword = v.tsStringKeyword = Dzt;
  v.tSSymbolKeyword = v.tsSymbolKeyword = Ozt;
  v.tSThisType = v.tsThisType = Mzt;
  v.tSTupleType = v.tsTupleType = Wzt;
  v.tSTypeAliasDeclaration = v.tsTypeAliasDeclaration = aGt;
  v.tSTypeAnnotation = v.tsTypeAnnotation = PGt;
  v.tSTypeAssertion = v.tsTypeAssertion = cGt;
  v.tSTypeLiteral = v.tsTypeLiteral = Kzt;
  v.tSTypeOperator = v.tsTypeOperator = Zzt;
  v.tSTypeParameter = v.tsTypeParameter = vGt;
  v.tSTypeParameterDeclaration = v.tsTypeParameterDeclaration = AGt;
  v.tSTypeParameterInstantiation = v.tsTypeParameterInstantiation = EGt;
  v.tSTypePredicate = v.tsTypePredicate = qzt;
  v.tSTypeQuery = v.tsTypeQuery = Uzt;
  v.tSTypeReference = v.tsTypeReference = Rzt;
  v.tSUndefinedKeyword = v.tsUndefinedKeyword = _zt;
  v.tSUnionType = v.tsUnionType = Yzt;
  v.tSUnknownKeyword = v.tsUnknownKeyword = Lzt;
  v.tSVoidKeyword = v.tsVoidKeyword = Bzt;
  v.tupleExpression = ozt;
  v.tupleTypeAnnotation = dXt;
  v.typeAlias = yXt;
  v.typeAnnotation = gXt;
  v.typeCastExpression = TXt;
  v.typeParameter = bXt;
  v.typeParameterDeclaration = xXt;
  v.typeParameterInstantiation = SXt;
  v.typeofTypeAnnotation = mXt;
  v.unaryExpression = FJt;
  v.unionTypeAnnotation = PXt;
  v.updateExpression = jJt;
  v.v8IntrinsicIdentifier = ZXt;
  v.variableDeclaration = RJt;
  v.variableDeclarator = qJt;
  v.variance = EXt;
  v.voidTypeAnnotation = AXt;
  v.whileStatement = UJt;
  v.withStatement = KJt;
  v.yieldExpression = hYt;
  var JHt = M1(), U1 = AT(), YHt = Il(), {
    validateInternal: S
  } = JHt, {
    NODE_FIELDS: ie
  } = YHt;
  function XHt(t = []) {
    let e = {
      type: "ArrayExpression",
      elements: t
    }, s = ie.ArrayExpression;
    return S(s.elements, e, "elements", t, 1), e;
  }
  n(XHt, "arrayExpression");
  function zHt(t, e, s) {
    let r = {
      type: "AssignmentExpression",
      operator: t,
      left: e,
      right: s
    }, i = ie.AssignmentExpression;
    return S(i.operator, r, "operator", t), S(i.left, r, "left", e, 1), S(i.right, r, "right", s, 1), r;
  }
  n(zHt, "assignmentExpression");
  function GHt(t, e, s) {
    let r = {
      type: "BinaryExpression",
      operator: t,
      left: e,
      right: s
    }, i = ie.BinaryExpression;
    return S(i.operator, r, "operator", t), S(i.left, r, "left", e, 1), S(i.right, r, "right", s, 1), r;
  }
  n(GHt, "binaryExpression");
  function QHt(t) {
    let e = {
      type: "InterpreterDirective",
      value: t
    }, s = ie.InterpreterDirective;
    return S(s.value, e, "value", t), e;
  }
  n(QHt, "interpreterDirective");
  function ZHt(t) {
    let e = {
      type: "Directive",
      value: t
    }, s = ie.Directive;
    return S(s.value, e, "value", t, 1), e;
  }
  n(ZHt, "directive");
  function eJt(t) {
    let e = {
      type: "DirectiveLiteral",
      value: t
    }, s = ie.DirectiveLiteral;
    return S(s.value, e, "value", t), e;
  }
  n(eJt, "directiveLiteral");
  function tJt(t, e = []) {
    let s = {
      type: "BlockStatement",
      body: t,
      directives: e
    }, r = ie.BlockStatement;
    return S(r.body, s, "body", t, 1), S(r.directives, s, "directives", e, 1), s;
  }
  n(tJt, "blockStatement");
  function sJt(t = null) {
    let e = {
      type: "BreakStatement",
      label: t
    }, s = ie.BreakStatement;
    return S(s.label, e, "label", t, 1), e;
  }
  n(sJt, "breakStatement");
  function rJt(t, e) {
    let s = {
      type: "CallExpression",
      callee: t,
      arguments: e
    }, r = ie.CallExpression;
    return S(r.callee, s, "callee", t, 1), S(r.arguments, s, "arguments", e, 1), s;
  }
  n(rJt, "callExpression");
  function iJt(t = null, e) {
    let s = {
      type: "CatchClause",
      param: t,
      body: e
    }, r = ie.CatchClause;
    return S(r.param, s, "param", t, 1), S(r.body, s, "body", e, 1), s;
  }
  n(iJt, "catchClause");
  function nJt(t, e, s) {
    let r = {
      type: "ConditionalExpression",
      test: t,
      consequent: e,
      alternate: s
    }, i = ie.ConditionalExpression;
    return S(i.test, r, "test", t, 1), S(i.consequent, r, "consequent", e, 1), S(i.alternate, r, "alternate", s, 1), r;
  }
  n(nJt, "conditionalExpression");
  function aJt(t = null) {
    let e = {
      type: "ContinueStatement",
      label: t
    }, s = ie.ContinueStatement;
    return S(s.label, e, "label", t, 1), e;
  }
  n(aJt, "continueStatement");
  function oJt() {
    return {
      type: "DebuggerStatement"
    };
  }
  n(oJt, "debuggerStatement");
  function lJt(t, e) {
    let s = {
      type: "DoWhileStatement",
      test: t,
      body: e
    }, r = ie.DoWhileStatement;
    return S(r.test, s, "test", t, 1), S(r.body, s, "body", e, 1), s;
  }
  n(lJt, "doWhileStatement");
  function uJt() {
    return {
      type: "EmptyStatement"
    };
  }
  n(uJt, "emptyStatement");
  function cJt(t) {
    let e = {
      type: "ExpressionStatement",
      expression: t
    }, s = ie.ExpressionStatement;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(cJt, "expressionStatement");
  function pJt(t, e = null, s = null) {
    let r = {
      type: "File",
      program: t,
      comments: e,
      tokens: s
    }, i = ie.File;
    return S(i.program, r, "program", t, 1), S(i.comments, r, "comments", e, 1), S(i.tokens, r, "tokens", s), r;
  }
  n(pJt, "file");
  function hJt(t, e, s) {
    let r = {
      type: "ForInStatement",
      left: t,
      right: e,
      body: s
    }, i = ie.ForInStatement;
    return S(i.left, r, "left", t, 1), S(i.right, r, "right", e, 1), S(i.body, r, "body", s, 1), r;
  }
  n(hJt, "forInStatement");
  function fJt(t = null, e = null, s = null, r) {
    let i = {
      type: "ForStatement",
      init: t,
      test: e,
      update: s,
      body: r
    }, a = ie.ForStatement;
    return S(a.init, i, "init", t, 1), S(a.test, i, "test", e, 1), S(a.update, i, "update", s, 1), S(a.body, i, "body", r, 1), i;
  }
  n(fJt, "forStatement");
  function dJt(t = null, e, s, r = !1, i = !1) {
    let a = {
      type: "FunctionDeclaration",
      id: t,
      params: e,
      body: s,
      generator: r,
      async: i
    }, o = ie.FunctionDeclaration;
    return S(o.id, a, "id", t, 1), S(o.params, a, "params", e, 1), S(o.body, a, "body", s, 1), S(o.generator, a, "generator", r), S(o.async,
    a, "async", i), a;
  }
  n(dJt, "functionDeclaration");
  function mJt(t = null, e, s, r = !1, i = !1) {
    let a = {
      type: "FunctionExpression",
      id: t,
      params: e,
      body: s,
      generator: r,
      async: i
    }, o = ie.FunctionExpression;
    return S(o.id, a, "id", t, 1), S(o.params, a, "params", e, 1), S(o.body, a, "body", s, 1), S(o.generator, a, "generator", r), S(o.async,
    a, "async", i), a;
  }
  n(mJt, "functionExpression");
  function yJt(t) {
    let e = {
      type: "Identifier",
      name: t
    }, s = ie.Identifier;
    return S(s.name, e, "name", t), e;
  }
  n(yJt, "identifier");
  function gJt(t, e, s = null) {
    let r = {
      type: "IfStatement",
      test: t,
      consequent: e,
      alternate: s
    }, i = ie.IfStatement;
    return S(i.test, r, "test", t, 1), S(i.consequent, r, "consequent", e, 1), S(i.alternate, r, "alternate", s, 1), r;
  }
  n(gJt, "ifStatement");
  function TJt(t, e) {
    let s = {
      type: "LabeledStatement",
      label: t,
      body: e
    }, r = ie.LabeledStatement;
    return S(r.label, s, "label", t, 1), S(r.body, s, "body", e, 1), s;
  }
  n(TJt, "labeledStatement");
  function bJt(t) {
    let e = {
      type: "StringLiteral",
      value: t
    }, s = ie.StringLiteral;
    return S(s.value, e, "value", t), e;
  }
  n(bJt, "stringLiteral");
  function gpe(t) {
    let e = {
      type: "NumericLiteral",
      value: t
    }, s = ie.NumericLiteral;
    return S(s.value, e, "value", t), e;
  }
  n(gpe, "numericLiteral");
  function xJt() {
    return {
      type: "NullLiteral"
    };
  }
  n(xJt, "nullLiteral");
  function SJt(t) {
    let e = {
      type: "BooleanLiteral",
      value: t
    }, s = ie.BooleanLiteral;
    return S(s.value, e, "value", t), e;
  }
  n(SJt, "booleanLiteral");
  function Tpe(t, e = "") {
    let s = {
      type: "RegExpLiteral",
      pattern: t,
      flags: e
    }, r = ie.RegExpLiteral;
    return S(r.pattern, s, "pattern", t), S(r.flags, s, "flags", e), s;
  }
  n(Tpe, "regExpLiteral");
  function PJt(t, e, s) {
    let r = {
      type: "LogicalExpression",
      operator: t,
      left: e,
      right: s
    }, i = ie.LogicalExpression;
    return S(i.operator, r, "operator", t), S(i.left, r, "left", e, 1), S(i.right, r, "right", s, 1), r;
  }
  n(PJt, "logicalExpression");
  function EJt(t, e, s = !1, r = null) {
    let i = {
      type: "MemberExpression",
      object: t,
      property: e,
      computed: s,
      optional: r
    }, a = ie.MemberExpression;
    return S(a.object, i, "object", t, 1), S(a.property, i, "property", e, 1), S(a.computed, i, "computed", s), S(a.optional, i, "optional",
    r), i;
  }
  n(EJt, "memberExpression");
  function AJt(t, e) {
    let s = {
      type: "NewExpression",
      callee: t,
      arguments: e
    }, r = ie.NewExpression;
    return S(r.callee, s, "callee", t, 1), S(r.arguments, s, "arguments", e, 1), s;
  }
  n(AJt, "newExpression");
  function vJt(t, e = [], s = "script", r = null) {
    let i = {
      type: "Program",
      body: t,
      directives: e,
      sourceType: s,
      interpreter: r
    }, a = ie.Program;
    return S(a.body, i, "body", t, 1), S(a.directives, i, "directives", e, 1), S(a.sourceType, i, "sourceType", s), S(a.interpreter, i, "int\
erpreter", r, 1), i;
  }
  n(vJt, "program");
  function CJt(t) {
    let e = {
      type: "ObjectExpression",
      properties: t
    }, s = ie.ObjectExpression;
    return S(s.properties, e, "properties", t, 1), e;
  }
  n(CJt, "objectExpression");
  function wJt(t = "method", e, s, r, i = !1, a = !1, o = !1) {
    let l = {
      type: "ObjectMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      computed: i,
      generator: a,
      async: o
    }, u = ie.ObjectMethod;
    return S(u.kind, l, "kind", t), S(u.key, l, "key", e, 1), S(u.params, l, "params", s, 1), S(u.body, l, "body", r, 1), S(u.computed, l, "\
computed", i), S(u.generator, l, "generator", a), S(u.async, l, "async", o), l;
  }
  n(wJt, "objectMethod");
  function IJt(t, e, s = !1, r = !1, i = null) {
    let a = {
      type: "ObjectProperty",
      key: t,
      value: e,
      computed: s,
      shorthand: r,
      decorators: i
    }, o = ie.ObjectProperty;
    return S(o.key, a, "key", t, 1), S(o.value, a, "value", e, 1), S(o.computed, a, "computed", s), S(o.shorthand, a, "shorthand", r), S(o.decorators,
    a, "decorators", i, 1), a;
  }
  n(IJt, "objectProperty");
  function bpe(t) {
    let e = {
      type: "RestElement",
      argument: t
    }, s = ie.RestElement;
    return S(s.argument, e, "argument", t, 1), e;
  }
  n(bpe, "restElement");
  function NJt(t = null) {
    let e = {
      type: "ReturnStatement",
      argument: t
    }, s = ie.ReturnStatement;
    return S(s.argument, e, "argument", t, 1), e;
  }
  n(NJt, "returnStatement");
  function kJt(t) {
    let e = {
      type: "SequenceExpression",
      expressions: t
    }, s = ie.SequenceExpression;
    return S(s.expressions, e, "expressions", t, 1), e;
  }
  n(kJt, "sequenceExpression");
  function DJt(t) {
    let e = {
      type: "ParenthesizedExpression",
      expression: t
    }, s = ie.ParenthesizedExpression;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(DJt, "parenthesizedExpression");
  function OJt(t = null, e) {
    let s = {
      type: "SwitchCase",
      test: t,
      consequent: e
    }, r = ie.SwitchCase;
    return S(r.test, s, "test", t, 1), S(r.consequent, s, "consequent", e, 1), s;
  }
  n(OJt, "switchCase");
  function _Jt(t, e) {
    let s = {
      type: "SwitchStatement",
      discriminant: t,
      cases: e
    }, r = ie.SwitchStatement;
    return S(r.discriminant, s, "discriminant", t, 1), S(r.cases, s, "cases", e, 1), s;
  }
  n(_Jt, "switchStatement");
  function LJt() {
    return {
      type: "ThisExpression"
    };
  }
  n(LJt, "thisExpression");
  function BJt(t) {
    let e = {
      type: "ThrowStatement",
      argument: t
    }, s = ie.ThrowStatement;
    return S(s.argument, e, "argument", t, 1), e;
  }
  n(BJt, "throwStatement");
  function MJt(t, e = null, s = null) {
    let r = {
      type: "TryStatement",
      block: t,
      handler: e,
      finalizer: s
    }, i = ie.TryStatement;
    return S(i.block, r, "block", t, 1), S(i.handler, r, "handler", e, 1), S(i.finalizer, r, "finalizer", s, 1), r;
  }
  n(MJt, "tryStatement");
  function FJt(t, e, s = !0) {
    let r = {
      type: "UnaryExpression",
      operator: t,
      argument: e,
      prefix: s
    }, i = ie.UnaryExpression;
    return S(i.operator, r, "operator", t), S(i.argument, r, "argument", e, 1), S(i.prefix, r, "prefix", s), r;
  }
  n(FJt, "unaryExpression");
  function jJt(t, e, s = !1) {
    let r = {
      type: "UpdateExpression",
      operator: t,
      argument: e,
      prefix: s
    }, i = ie.UpdateExpression;
    return S(i.operator, r, "operator", t), S(i.argument, r, "argument", e, 1), S(i.prefix, r, "prefix", s), r;
  }
  n(jJt, "updateExpression");
  function RJt(t, e) {
    let s = {
      type: "VariableDeclaration",
      kind: t,
      declarations: e
    }, r = ie.VariableDeclaration;
    return S(r.kind, s, "kind", t), S(r.declarations, s, "declarations", e, 1), s;
  }
  n(RJt, "variableDeclaration");
  function qJt(t, e = null) {
    let s = {
      type: "VariableDeclarator",
      id: t,
      init: e
    }, r = ie.VariableDeclarator;
    return S(r.id, s, "id", t, 1), S(r.init, s, "init", e, 1), s;
  }
  n(qJt, "variableDeclarator");
  function UJt(t, e) {
    let s = {
      type: "WhileStatement",
      test: t,
      body: e
    }, r = ie.WhileStatement;
    return S(r.test, s, "test", t, 1), S(r.body, s, "body", e, 1), s;
  }
  n(UJt, "whileStatement");
  function KJt(t, e) {
    let s = {
      type: "WithStatement",
      object: t,
      body: e
    }, r = ie.WithStatement;
    return S(r.object, s, "object", t, 1), S(r.body, s, "body", e, 1), s;
  }
  n(KJt, "withStatement");
  function VJt(t, e) {
    let s = {
      type: "AssignmentPattern",
      left: t,
      right: e
    }, r = ie.AssignmentPattern;
    return S(r.left, s, "left", t, 1), S(r.right, s, "right", e, 1), s;
  }
  n(VJt, "assignmentPattern");
  function WJt(t) {
    let e = {
      type: "ArrayPattern",
      elements: t
    }, s = ie.ArrayPattern;
    return S(s.elements, e, "elements", t, 1), e;
  }
  n(WJt, "arrayPattern");
  function $Jt(t, e, s = !1) {
    let r = {
      type: "ArrowFunctionExpression",
      params: t,
      body: e,
      async: s,
      expression: null
    }, i = ie.ArrowFunctionExpression;
    return S(i.params, r, "params", t, 1), S(i.body, r, "body", e, 1), S(i.async, r, "async", s), r;
  }
  n($Jt, "arrowFunctionExpression");
  function HJt(t) {
    let e = {
      type: "ClassBody",
      body: t
    }, s = ie.ClassBody;
    return S(s.body, e, "body", t, 1), e;
  }
  n(HJt, "classBody");
  function JJt(t = null, e = null, s, r = null) {
    let i = {
      type: "ClassExpression",
      id: t,
      superClass: e,
      body: s,
      decorators: r
    }, a = ie.ClassExpression;
    return S(a.id, i, "id", t, 1), S(a.superClass, i, "superClass", e, 1), S(a.body, i, "body", s, 1), S(a.decorators, i, "decorators", r, 1),
    i;
  }
  n(JJt, "classExpression");
  function YJt(t = null, e = null, s, r = null) {
    let i = {
      type: "ClassDeclaration",
      id: t,
      superClass: e,
      body: s,
      decorators: r
    }, a = ie.ClassDeclaration;
    return S(a.id, i, "id", t, 1), S(a.superClass, i, "superClass", e, 1), S(a.body, i, "body", s, 1), S(a.decorators, i, "decorators", r, 1),
    i;
  }
  n(YJt, "classDeclaration");
  function XJt(t) {
    let e = {
      type: "ExportAllDeclaration",
      source: t
    }, s = ie.ExportAllDeclaration;
    return S(s.source, e, "source", t, 1), e;
  }
  n(XJt, "exportAllDeclaration");
  function zJt(t) {
    let e = {
      type: "ExportDefaultDeclaration",
      declaration: t
    }, s = ie.ExportDefaultDeclaration;
    return S(s.declaration, e, "declaration", t, 1), e;
  }
  n(zJt, "exportDefaultDeclaration");
  function GJt(t = null, e = [], s = null) {
    let r = {
      type: "ExportNamedDeclaration",
      declaration: t,
      specifiers: e,
      source: s
    }, i = ie.ExportNamedDeclaration;
    return S(i.declaration, r, "declaration", t, 1), S(i.specifiers, r, "specifiers", e, 1), S(i.source, r, "source", s, 1), r;
  }
  n(GJt, "exportNamedDeclaration");
  function QJt(t, e) {
    let s = {
      type: "ExportSpecifier",
      local: t,
      exported: e
    }, r = ie.ExportSpecifier;
    return S(r.local, s, "local", t, 1), S(r.exported, s, "exported", e, 1), s;
  }
  n(QJt, "exportSpecifier");
  function ZJt(t, e, s, r = !1) {
    let i = {
      type: "ForOfStatement",
      left: t,
      right: e,
      body: s,
      await: r
    }, a = ie.ForOfStatement;
    return S(a.left, i, "left", t, 1), S(a.right, i, "right", e, 1), S(a.body, i, "body", s, 1), S(a.await, i, "await", r), i;
  }
  n(ZJt, "forOfStatement");
  function eYt(t, e) {
    let s = {
      type: "ImportDeclaration",
      specifiers: t,
      source: e
    }, r = ie.ImportDeclaration;
    return S(r.specifiers, s, "specifiers", t, 1), S(r.source, s, "source", e, 1), s;
  }
  n(eYt, "importDeclaration");
  function tYt(t) {
    let e = {
      type: "ImportDefaultSpecifier",
      local: t
    }, s = ie.ImportDefaultSpecifier;
    return S(s.local, e, "local", t, 1), e;
  }
  n(tYt, "importDefaultSpecifier");
  function sYt(t) {
    let e = {
      type: "ImportNamespaceSpecifier",
      local: t
    }, s = ie.ImportNamespaceSpecifier;
    return S(s.local, e, "local", t, 1), e;
  }
  n(sYt, "importNamespaceSpecifier");
  function rYt(t, e) {
    let s = {
      type: "ImportSpecifier",
      local: t,
      imported: e
    }, r = ie.ImportSpecifier;
    return S(r.local, s, "local", t, 1), S(r.imported, s, "imported", e, 1), s;
  }
  n(rYt, "importSpecifier");
  function iYt(t, e = null) {
    let s = {
      type: "ImportExpression",
      source: t,
      options: e
    }, r = ie.ImportExpression;
    return S(r.source, s, "source", t, 1), S(r.options, s, "options", e, 1), s;
  }
  n(iYt, "importExpression");
  function nYt(t, e) {
    let s = {
      type: "MetaProperty",
      meta: t,
      property: e
    }, r = ie.MetaProperty;
    return S(r.meta, s, "meta", t, 1), S(r.property, s, "property", e, 1), s;
  }
  n(nYt, "metaProperty");
  function aYt(t = "method", e, s, r, i = !1, a = !1, o = !1, l = !1) {
    let u = {
      type: "ClassMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      computed: i,
      static: a,
      generator: o,
      async: l
    }, c = ie.ClassMethod;
    return S(c.kind, u, "kind", t), S(c.key, u, "key", e, 1), S(c.params, u, "params", s, 1), S(c.body, u, "body", r, 1), S(c.computed, u, "\
computed", i), S(c.static, u, "static", a), S(c.generator, u, "generator", o), S(c.async, u, "async", l), u;
  }
  n(aYt, "classMethod");
  function oYt(t) {
    let e = {
      type: "ObjectPattern",
      properties: t
    }, s = ie.ObjectPattern;
    return S(s.properties, e, "properties", t, 1), e;
  }
  n(oYt, "objectPattern");
  function xpe(t) {
    let e = {
      type: "SpreadElement",
      argument: t
    }, s = ie.SpreadElement;
    return S(s.argument, e, "argument", t, 1), e;
  }
  n(xpe, "spreadElement");
  function lYt() {
    return {
      type: "Super"
    };
  }
  n(lYt, "_super");
  function uYt(t, e) {
    let s = {
      type: "TaggedTemplateExpression",
      tag: t,
      quasi: e
    }, r = ie.TaggedTemplateExpression;
    return S(r.tag, s, "tag", t, 1), S(r.quasi, s, "quasi", e, 1), s;
  }
  n(uYt, "taggedTemplateExpression");
  function cYt(t, e = !1) {
    let s = {
      type: "TemplateElement",
      value: t,
      tail: e
    }, r = ie.TemplateElement;
    return S(r.value, s, "value", t), S(r.tail, s, "tail", e), s;
  }
  n(cYt, "templateElement");
  function pYt(t, e) {
    let s = {
      type: "TemplateLiteral",
      quasis: t,
      expressions: e
    }, r = ie.TemplateLiteral;
    return S(r.quasis, s, "quasis", t, 1), S(r.expressions, s, "expressions", e, 1), s;
  }
  n(pYt, "templateLiteral");
  function hYt(t = null, e = !1) {
    let s = {
      type: "YieldExpression",
      argument: t,
      delegate: e
    }, r = ie.YieldExpression;
    return S(r.argument, s, "argument", t, 1), S(r.delegate, s, "delegate", e), s;
  }
  n(hYt, "yieldExpression");
  function fYt(t) {
    let e = {
      type: "AwaitExpression",
      argument: t
    }, s = ie.AwaitExpression;
    return S(s.argument, e, "argument", t, 1), e;
  }
  n(fYt, "awaitExpression");
  function dYt() {
    return {
      type: "Import"
    };
  }
  n(dYt, "_import");
  function mYt(t) {
    let e = {
      type: "BigIntLiteral",
      value: t
    }, s = ie.BigIntLiteral;
    return S(s.value, e, "value", t), e;
  }
  n(mYt, "bigIntLiteral");
  function yYt(t) {
    let e = {
      type: "ExportNamespaceSpecifier",
      exported: t
    }, s = ie.ExportNamespaceSpecifier;
    return S(s.exported, e, "exported", t, 1), e;
  }
  n(yYt, "exportNamespaceSpecifier");
  function gYt(t, e, s = !1, r) {
    let i = {
      type: "OptionalMemberExpression",
      object: t,
      property: e,
      computed: s,
      optional: r
    }, a = ie.OptionalMemberExpression;
    return S(a.object, i, "object", t, 1), S(a.property, i, "property", e, 1), S(a.computed, i, "computed", s), S(a.optional, i, "optional",
    r), i;
  }
  n(gYt, "optionalMemberExpression");
  function TYt(t, e, s) {
    let r = {
      type: "OptionalCallExpression",
      callee: t,
      arguments: e,
      optional: s
    }, i = ie.OptionalCallExpression;
    return S(i.callee, r, "callee", t, 1), S(i.arguments, r, "arguments", e, 1), S(i.optional, r, "optional", s), r;
  }
  n(TYt, "optionalCallExpression");
  function bYt(t, e = null, s = null, r = null, i = !1, a = !1) {
    let o = {
      type: "ClassProperty",
      key: t,
      value: e,
      typeAnnotation: s,
      decorators: r,
      computed: i,
      static: a
    }, l = ie.ClassProperty;
    return S(l.key, o, "key", t, 1), S(l.value, o, "value", e, 1), S(l.typeAnnotation, o, "typeAnnotation", s, 1), S(l.decorators, o, "decor\
ators", r, 1), S(l.computed, o, "computed", i), S(l.static, o, "static", a), o;
  }
  n(bYt, "classProperty");
  function xYt(t, e = null, s = null, r = null, i = !1, a = !1) {
    let o = {
      type: "ClassAccessorProperty",
      key: t,
      value: e,
      typeAnnotation: s,
      decorators: r,
      computed: i,
      static: a
    }, l = ie.ClassAccessorProperty;
    return S(l.key, o, "key", t, 1), S(l.value, o, "value", e, 1), S(l.typeAnnotation, o, "typeAnnotation", s, 1), S(l.decorators, o, "decor\
ators", r, 1), S(l.computed, o, "computed", i), S(l.static, o, "static", a), o;
  }
  n(xYt, "classAccessorProperty");
  function SYt(t, e = null, s = null, r = !1) {
    let i = {
      type: "ClassPrivateProperty",
      key: t,
      value: e,
      decorators: s,
      static: r
    }, a = ie.ClassPrivateProperty;
    return S(a.key, i, "key", t, 1), S(a.value, i, "value", e, 1), S(a.decorators, i, "decorators", s, 1), S(a.static, i, "static", r), i;
  }
  n(SYt, "classPrivateProperty");
  function PYt(t = "method", e, s, r, i = !1) {
    let a = {
      type: "ClassPrivateMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      static: i
    }, o = ie.ClassPrivateMethod;
    return S(o.kind, a, "kind", t), S(o.key, a, "key", e, 1), S(o.params, a, "params", s, 1), S(o.body, a, "body", r, 1), S(o.static, a, "st\
atic", i), a;
  }
  n(PYt, "classPrivateMethod");
  function EYt(t) {
    let e = {
      type: "PrivateName",
      id: t
    }, s = ie.PrivateName;
    return S(s.id, e, "id", t, 1), e;
  }
  n(EYt, "privateName");
  function AYt(t) {
    let e = {
      type: "StaticBlock",
      body: t
    }, s = ie.StaticBlock;
    return S(s.body, e, "body", t, 1), e;
  }
  n(AYt, "staticBlock");
  function vYt() {
    return {
      type: "AnyTypeAnnotation"
    };
  }
  n(vYt, "anyTypeAnnotation");
  function CYt(t) {
    let e = {
      type: "ArrayTypeAnnotation",
      elementType: t
    }, s = ie.ArrayTypeAnnotation;
    return S(s.elementType, e, "elementType", t, 1), e;
  }
  n(CYt, "arrayTypeAnnotation");
  function wYt() {
    return {
      type: "BooleanTypeAnnotation"
    };
  }
  n(wYt, "booleanTypeAnnotation");
  function IYt(t) {
    let e = {
      type: "BooleanLiteralTypeAnnotation",
      value: t
    }, s = ie.BooleanLiteralTypeAnnotation;
    return S(s.value, e, "value", t), e;
  }
  n(IYt, "booleanLiteralTypeAnnotation");
  function NYt() {
    return {
      type: "NullLiteralTypeAnnotation"
    };
  }
  n(NYt, "nullLiteralTypeAnnotation");
  function kYt(t, e = null) {
    let s = {
      type: "ClassImplements",
      id: t,
      typeParameters: e
    }, r = ie.ClassImplements;
    return S(r.id, s, "id", t, 1), S(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(kYt, "classImplements");
  function DYt(t, e = null, s = null, r) {
    let i = {
      type: "DeclareClass",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = ie.DeclareClass;
    return S(a.id, i, "id", t, 1), S(a.typeParameters, i, "typeParameters", e, 1), S(a.extends, i, "extends", s, 1), S(a.body, i, "body", r,
    1), i;
  }
  n(DYt, "declareClass");
  function OYt(t) {
    let e = {
      type: "DeclareFunction",
      id: t
    }, s = ie.DeclareFunction;
    return S(s.id, e, "id", t, 1), e;
  }
  n(OYt, "declareFunction");
  function _Yt(t, e = null, s = null, r) {
    let i = {
      type: "DeclareInterface",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = ie.DeclareInterface;
    return S(a.id, i, "id", t, 1), S(a.typeParameters, i, "typeParameters", e, 1), S(a.extends, i, "extends", s, 1), S(a.body, i, "body", r,
    1), i;
  }
  n(_Yt, "declareInterface");
  function LYt(t, e, s = null) {
    let r = {
      type: "DeclareModule",
      id: t,
      body: e,
      kind: s
    }, i = ie.DeclareModule;
    return S(i.id, r, "id", t, 1), S(i.body, r, "body", e, 1), S(i.kind, r, "kind", s), r;
  }
  n(LYt, "declareModule");
  function BYt(t) {
    let e = {
      type: "DeclareModuleExports",
      typeAnnotation: t
    }, s = ie.DeclareModuleExports;
    return S(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(BYt, "declareModuleExports");
  function MYt(t, e = null, s) {
    let r = {
      type: "DeclareTypeAlias",
      id: t,
      typeParameters: e,
      right: s
    }, i = ie.DeclareTypeAlias;
    return S(i.id, r, "id", t, 1), S(i.typeParameters, r, "typeParameters", e, 1), S(i.right, r, "right", s, 1), r;
  }
  n(MYt, "declareTypeAlias");
  function FYt(t, e = null, s = null) {
    let r = {
      type: "DeclareOpaqueType",
      id: t,
      typeParameters: e,
      supertype: s
    }, i = ie.DeclareOpaqueType;
    return S(i.id, r, "id", t, 1), S(i.typeParameters, r, "typeParameters", e, 1), S(i.supertype, r, "supertype", s, 1), r;
  }
  n(FYt, "declareOpaqueType");
  function jYt(t) {
    let e = {
      type: "DeclareVariable",
      id: t
    }, s = ie.DeclareVariable;
    return S(s.id, e, "id", t, 1), e;
  }
  n(jYt, "declareVariable");
  function RYt(t = null, e = null, s = null, r = null) {
    let i = {
      type: "DeclareExportDeclaration",
      declaration: t,
      specifiers: e,
      source: s,
      attributes: r
    }, a = ie.DeclareExportDeclaration;
    return S(a.declaration, i, "declaration", t, 1), S(a.specifiers, i, "specifiers", e, 1), S(a.source, i, "source", s, 1), S(a.attributes,
    i, "attributes", r, 1), i;
  }
  n(RYt, "declareExportDeclaration");
  function qYt(t, e = null) {
    let s = {
      type: "DeclareExportAllDeclaration",
      source: t,
      attributes: e
    }, r = ie.DeclareExportAllDeclaration;
    return S(r.source, s, "source", t, 1), S(r.attributes, s, "attributes", e, 1), s;
  }
  n(qYt, "declareExportAllDeclaration");
  function UYt(t) {
    let e = {
      type: "DeclaredPredicate",
      value: t
    }, s = ie.DeclaredPredicate;
    return S(s.value, e, "value", t, 1), e;
  }
  n(UYt, "declaredPredicate");
  function KYt() {
    return {
      type: "ExistsTypeAnnotation"
    };
  }
  n(KYt, "existsTypeAnnotation");
  function VYt(t = null, e, s = null, r) {
    let i = {
      type: "FunctionTypeAnnotation",
      typeParameters: t,
      params: e,
      rest: s,
      returnType: r
    }, a = ie.FunctionTypeAnnotation;
    return S(a.typeParameters, i, "typeParameters", t, 1), S(a.params, i, "params", e, 1), S(a.rest, i, "rest", s, 1), S(a.returnType, i, "r\
eturnType", r, 1), i;
  }
  n(VYt, "functionTypeAnnotation");
  function WYt(t = null, e) {
    let s = {
      type: "FunctionTypeParam",
      name: t,
      typeAnnotation: e
    }, r = ie.FunctionTypeParam;
    return S(r.name, s, "name", t, 1), S(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(WYt, "functionTypeParam");
  function $Yt(t, e = null) {
    let s = {
      type: "GenericTypeAnnotation",
      id: t,
      typeParameters: e
    }, r = ie.GenericTypeAnnotation;
    return S(r.id, s, "id", t, 1), S(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n($Yt, "genericTypeAnnotation");
  function HYt() {
    return {
      type: "InferredPredicate"
    };
  }
  n(HYt, "inferredPredicate");
  function JYt(t, e = null) {
    let s = {
      type: "InterfaceExtends",
      id: t,
      typeParameters: e
    }, r = ie.InterfaceExtends;
    return S(r.id, s, "id", t, 1), S(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(JYt, "interfaceExtends");
  function YYt(t, e = null, s = null, r) {
    let i = {
      type: "InterfaceDeclaration",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = ie.InterfaceDeclaration;
    return S(a.id, i, "id", t, 1), S(a.typeParameters, i, "typeParameters", e, 1), S(a.extends, i, "extends", s, 1), S(a.body, i, "body", r,
    1), i;
  }
  n(YYt, "interfaceDeclaration");
  function XYt(t = null, e) {
    let s = {
      type: "InterfaceTypeAnnotation",
      extends: t,
      body: e
    }, r = ie.InterfaceTypeAnnotation;
    return S(r.extends, s, "extends", t, 1), S(r.body, s, "body", e, 1), s;
  }
  n(XYt, "interfaceTypeAnnotation");
  function zYt(t) {
    let e = {
      type: "IntersectionTypeAnnotation",
      types: t
    }, s = ie.IntersectionTypeAnnotation;
    return S(s.types, e, "types", t, 1), e;
  }
  n(zYt, "intersectionTypeAnnotation");
  function GYt() {
    return {
      type: "MixedTypeAnnotation"
    };
  }
  n(GYt, "mixedTypeAnnotation");
  function QYt() {
    return {
      type: "EmptyTypeAnnotation"
    };
  }
  n(QYt, "emptyTypeAnnotation");
  function ZYt(t) {
    let e = {
      type: "NullableTypeAnnotation",
      typeAnnotation: t
    }, s = ie.NullableTypeAnnotation;
    return S(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(ZYt, "nullableTypeAnnotation");
  function eXt(t) {
    let e = {
      type: "NumberLiteralTypeAnnotation",
      value: t
    }, s = ie.NumberLiteralTypeAnnotation;
    return S(s.value, e, "value", t), e;
  }
  n(eXt, "numberLiteralTypeAnnotation");
  function tXt() {
    return {
      type: "NumberTypeAnnotation"
    };
  }
  n(tXt, "numberTypeAnnotation");
  function sXt(t, e = [], s = [], r = [], i = !1) {
    let a = {
      type: "ObjectTypeAnnotation",
      properties: t,
      indexers: e,
      callProperties: s,
      internalSlots: r,
      exact: i
    }, o = ie.ObjectTypeAnnotation;
    return S(o.properties, a, "properties", t, 1), S(o.indexers, a, "indexers", e, 1), S(o.callProperties, a, "callProperties", s, 1), S(o.internalSlots,
    a, "internalSlots", r, 1), S(o.exact, a, "exact", i), a;
  }
  n(sXt, "objectTypeAnnotation");
  function rXt(t, e, s, r, i) {
    let a = {
      type: "ObjectTypeInternalSlot",
      id: t,
      value: e,
      optional: s,
      static: r,
      method: i
    }, o = ie.ObjectTypeInternalSlot;
    return S(o.id, a, "id", t, 1), S(o.value, a, "value", e, 1), S(o.optional, a, "optional", s), S(o.static, a, "static", r), S(o.method, a,
    "method", i), a;
  }
  n(rXt, "objectTypeInternalSlot");
  function iXt(t) {
    let e = {
      type: "ObjectTypeCallProperty",
      value: t,
      static: null
    }, s = ie.ObjectTypeCallProperty;
    return S(s.value, e, "value", t, 1), e;
  }
  n(iXt, "objectTypeCallProperty");
  function nXt(t = null, e, s, r = null) {
    let i = {
      type: "ObjectTypeIndexer",
      id: t,
      key: e,
      value: s,
      variance: r,
      static: null
    }, a = ie.ObjectTypeIndexer;
    return S(a.id, i, "id", t, 1), S(a.key, i, "key", e, 1), S(a.value, i, "value", s, 1), S(a.variance, i, "variance", r, 1), i;
  }
  n(nXt, "objectTypeIndexer");
  function aXt(t, e, s = null) {
    let r = {
      type: "ObjectTypeProperty",
      key: t,
      value: e,
      variance: s,
      kind: null,
      method: null,
      optional: null,
      proto: null,
      static: null
    }, i = ie.ObjectTypeProperty;
    return S(i.key, r, "key", t, 1), S(i.value, r, "value", e, 1), S(i.variance, r, "variance", s, 1), r;
  }
  n(aXt, "objectTypeProperty");
  function oXt(t) {
    let e = {
      type: "ObjectTypeSpreadProperty",
      argument: t
    }, s = ie.ObjectTypeSpreadProperty;
    return S(s.argument, e, "argument", t, 1), e;
  }
  n(oXt, "objectTypeSpreadProperty");
  function lXt(t, e = null, s = null, r) {
    let i = {
      type: "OpaqueType",
      id: t,
      typeParameters: e,
      supertype: s,
      impltype: r
    }, a = ie.OpaqueType;
    return S(a.id, i, "id", t, 1), S(a.typeParameters, i, "typeParameters", e, 1), S(a.supertype, i, "supertype", s, 1), S(a.impltype, i, "i\
mpltype", r, 1), i;
  }
  n(lXt, "opaqueType");
  function uXt(t, e) {
    let s = {
      type: "QualifiedTypeIdentifier",
      id: t,
      qualification: e
    }, r = ie.QualifiedTypeIdentifier;
    return S(r.id, s, "id", t, 1), S(r.qualification, s, "qualification", e, 1), s;
  }
  n(uXt, "qualifiedTypeIdentifier");
  function cXt(t) {
    let e = {
      type: "StringLiteralTypeAnnotation",
      value: t
    }, s = ie.StringLiteralTypeAnnotation;
    return S(s.value, e, "value", t), e;
  }
  n(cXt, "stringLiteralTypeAnnotation");
  function pXt() {
    return {
      type: "StringTypeAnnotation"
    };
  }
  n(pXt, "stringTypeAnnotation");
  function hXt() {
    return {
      type: "SymbolTypeAnnotation"
    };
  }
  n(hXt, "symbolTypeAnnotation");
  function fXt() {
    return {
      type: "ThisTypeAnnotation"
    };
  }
  n(fXt, "thisTypeAnnotation");
  function dXt(t) {
    let e = {
      type: "TupleTypeAnnotation",
      types: t
    }, s = ie.TupleTypeAnnotation;
    return S(s.types, e, "types", t, 1), e;
  }
  n(dXt, "tupleTypeAnnotation");
  function mXt(t) {
    let e = {
      type: "TypeofTypeAnnotation",
      argument: t
    }, s = ie.TypeofTypeAnnotation;
    return S(s.argument, e, "argument", t, 1), e;
  }
  n(mXt, "typeofTypeAnnotation");
  function yXt(t, e = null, s) {
    let r = {
      type: "TypeAlias",
      id: t,
      typeParameters: e,
      right: s
    }, i = ie.TypeAlias;
    return S(i.id, r, "id", t, 1), S(i.typeParameters, r, "typeParameters", e, 1), S(i.right, r, "right", s, 1), r;
  }
  n(yXt, "typeAlias");
  function gXt(t) {
    let e = {
      type: "TypeAnnotation",
      typeAnnotation: t
    }, s = ie.TypeAnnotation;
    return S(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(gXt, "typeAnnotation");
  function TXt(t, e) {
    let s = {
      type: "TypeCastExpression",
      expression: t,
      typeAnnotation: e
    }, r = ie.TypeCastExpression;
    return S(r.expression, s, "expression", t, 1), S(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(TXt, "typeCastExpression");
  function bXt(t = null, e = null, s = null) {
    let r = {
      type: "TypeParameter",
      bound: t,
      default: e,
      variance: s,
      name: null
    }, i = ie.TypeParameter;
    return S(i.bound, r, "bound", t, 1), S(i.default, r, "default", e, 1), S(i.variance, r, "variance", s, 1), r;
  }
  n(bXt, "typeParameter");
  function xXt(t) {
    let e = {
      type: "TypeParameterDeclaration",
      params: t
    }, s = ie.TypeParameterDeclaration;
    return S(s.params, e, "params", t, 1), e;
  }
  n(xXt, "typeParameterDeclaration");
  function SXt(t) {
    let e = {
      type: "TypeParameterInstantiation",
      params: t
    }, s = ie.TypeParameterInstantiation;
    return S(s.params, e, "params", t, 1), e;
  }
  n(SXt, "typeParameterInstantiation");
  function PXt(t) {
    let e = {
      type: "UnionTypeAnnotation",
      types: t
    }, s = ie.UnionTypeAnnotation;
    return S(s.types, e, "types", t, 1), e;
  }
  n(PXt, "unionTypeAnnotation");
  function EXt(t) {
    let e = {
      type: "Variance",
      kind: t
    }, s = ie.Variance;
    return S(s.kind, e, "kind", t), e;
  }
  n(EXt, "variance");
  function AXt() {
    return {
      type: "VoidTypeAnnotation"
    };
  }
  n(AXt, "voidTypeAnnotation");
  function vXt(t, e) {
    let s = {
      type: "EnumDeclaration",
      id: t,
      body: e
    }, r = ie.EnumDeclaration;
    return S(r.id, s, "id", t, 1), S(r.body, s, "body", e, 1), s;
  }
  n(vXt, "enumDeclaration");
  function CXt(t) {
    let e = {
      type: "EnumBooleanBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = ie.EnumBooleanBody;
    return S(s.members, e, "members", t, 1), e;
  }
  n(CXt, "enumBooleanBody");
  function wXt(t) {
    let e = {
      type: "EnumNumberBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = ie.EnumNumberBody;
    return S(s.members, e, "members", t, 1), e;
  }
  n(wXt, "enumNumberBody");
  function IXt(t) {
    let e = {
      type: "EnumStringBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = ie.EnumStringBody;
    return S(s.members, e, "members", t, 1), e;
  }
  n(IXt, "enumStringBody");
  function NXt(t) {
    let e = {
      type: "EnumSymbolBody",
      members: t,
      hasUnknownMembers: null
    }, s = ie.EnumSymbolBody;
    return S(s.members, e, "members", t, 1), e;
  }
  n(NXt, "enumSymbolBody");
  function kXt(t) {
    let e = {
      type: "EnumBooleanMember",
      id: t,
      init: null
    }, s = ie.EnumBooleanMember;
    return S(s.id, e, "id", t, 1), e;
  }
  n(kXt, "enumBooleanMember");
  function DXt(t, e) {
    let s = {
      type: "EnumNumberMember",
      id: t,
      init: e
    }, r = ie.EnumNumberMember;
    return S(r.id, s, "id", t, 1), S(r.init, s, "init", e, 1), s;
  }
  n(DXt, "enumNumberMember");
  function OXt(t, e) {
    let s = {
      type: "EnumStringMember",
      id: t,
      init: e
    }, r = ie.EnumStringMember;
    return S(r.id, s, "id", t, 1), S(r.init, s, "init", e, 1), s;
  }
  n(OXt, "enumStringMember");
  function _Xt(t) {
    let e = {
      type: "EnumDefaultedMember",
      id: t
    }, s = ie.EnumDefaultedMember;
    return S(s.id, e, "id", t, 1), e;
  }
  n(_Xt, "enumDefaultedMember");
  function LXt(t, e) {
    let s = {
      type: "IndexedAccessType",
      objectType: t,
      indexType: e
    }, r = ie.IndexedAccessType;
    return S(r.objectType, s, "objectType", t, 1), S(r.indexType, s, "indexType", e, 1), s;
  }
  n(LXt, "indexedAccessType");
  function BXt(t, e) {
    let s = {
      type: "OptionalIndexedAccessType",
      objectType: t,
      indexType: e,
      optional: null
    }, r = ie.OptionalIndexedAccessType;
    return S(r.objectType, s, "objectType", t, 1), S(r.indexType, s, "indexType", e, 1), s;
  }
  n(BXt, "optionalIndexedAccessType");
  function MXt(t, e = null) {
    let s = {
      type: "JSXAttribute",
      name: t,
      value: e
    }, r = ie.JSXAttribute;
    return S(r.name, s, "name", t, 1), S(r.value, s, "value", e, 1), s;
  }
  n(MXt, "jsxAttribute");
  function FXt(t) {
    let e = {
      type: "JSXClosingElement",
      name: t
    }, s = ie.JSXClosingElement;
    return S(s.name, e, "name", t, 1), e;
  }
  n(FXt, "jsxClosingElement");
  function jXt(t, e = null, s, r = null) {
    let i = {
      type: "JSXElement",
      openingElement: t,
      closingElement: e,
      children: s,
      selfClosing: r
    }, a = ie.JSXElement;
    return S(a.openingElement, i, "openingElement", t, 1), S(a.closingElement, i, "closingElement", e, 1), S(a.children, i, "children", s, 1),
    S(a.selfClosing, i, "selfClosing", r), i;
  }
  n(jXt, "jsxElement");
  function RXt() {
    return {
      type: "JSXEmptyExpression"
    };
  }
  n(RXt, "jsxEmptyExpression");
  function qXt(t) {
    let e = {
      type: "JSXExpressionContainer",
      expression: t
    }, s = ie.JSXExpressionContainer;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(qXt, "jsxExpressionContainer");
  function UXt(t) {
    let e = {
      type: "JSXSpreadChild",
      expression: t
    }, s = ie.JSXSpreadChild;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(UXt, "jsxSpreadChild");
  function KXt(t) {
    let e = {
      type: "JSXIdentifier",
      name: t
    }, s = ie.JSXIdentifier;
    return S(s.name, e, "name", t), e;
  }
  n(KXt, "jsxIdentifier");
  function VXt(t, e) {
    let s = {
      type: "JSXMemberExpression",
      object: t,
      property: e
    }, r = ie.JSXMemberExpression;
    return S(r.object, s, "object", t, 1), S(r.property, s, "property", e, 1), s;
  }
  n(VXt, "jsxMemberExpression");
  function WXt(t, e) {
    let s = {
      type: "JSXNamespacedName",
      namespace: t,
      name: e
    }, r = ie.JSXNamespacedName;
    return S(r.namespace, s, "namespace", t, 1), S(r.name, s, "name", e, 1), s;
  }
  n(WXt, "jsxNamespacedName");
  function $Xt(t, e, s = !1) {
    let r = {
      type: "JSXOpeningElement",
      name: t,
      attributes: e,
      selfClosing: s
    }, i = ie.JSXOpeningElement;
    return S(i.name, r, "name", t, 1), S(i.attributes, r, "attributes", e, 1), S(i.selfClosing, r, "selfClosing", s), r;
  }
  n($Xt, "jsxOpeningElement");
  function HXt(t) {
    let e = {
      type: "JSXSpreadAttribute",
      argument: t
    }, s = ie.JSXSpreadAttribute;
    return S(s.argument, e, "argument", t, 1), e;
  }
  n(HXt, "jsxSpreadAttribute");
  function JXt(t) {
    let e = {
      type: "JSXText",
      value: t
    }, s = ie.JSXText;
    return S(s.value, e, "value", t), e;
  }
  n(JXt, "jsxText");
  function YXt(t, e, s) {
    let r = {
      type: "JSXFragment",
      openingFragment: t,
      closingFragment: e,
      children: s
    }, i = ie.JSXFragment;
    return S(i.openingFragment, r, "openingFragment", t, 1), S(i.closingFragment, r, "closingFragment", e, 1), S(i.children, r, "children", s,
    1), r;
  }
  n(YXt, "jsxFragment");
  function XXt() {
    return {
      type: "JSXOpeningFragment"
    };
  }
  n(XXt, "jsxOpeningFragment");
  function zXt() {
    return {
      type: "JSXClosingFragment"
    };
  }
  n(zXt, "jsxClosingFragment");
  function GXt() {
    return {
      type: "Noop"
    };
  }
  n(GXt, "noop");
  function QXt(t, e) {
    let s = {
      type: "Placeholder",
      expectedNode: t,
      name: e
    }, r = ie.Placeholder;
    return S(r.expectedNode, s, "expectedNode", t), S(r.name, s, "name", e, 1), s;
  }
  n(QXt, "placeholder");
  function ZXt(t) {
    let e = {
      type: "V8IntrinsicIdentifier",
      name: t
    }, s = ie.V8IntrinsicIdentifier;
    return S(s.name, e, "name", t), e;
  }
  n(ZXt, "v8IntrinsicIdentifier");
  function ezt() {
    return {
      type: "ArgumentPlaceholder"
    };
  }
  n(ezt, "argumentPlaceholder");
  function tzt(t, e) {
    let s = {
      type: "BindExpression",
      object: t,
      callee: e
    }, r = ie.BindExpression;
    return S(r.object, s, "object", t, 1), S(r.callee, s, "callee", e, 1), s;
  }
  n(tzt, "bindExpression");
  function szt(t, e) {
    let s = {
      type: "ImportAttribute",
      key: t,
      value: e
    }, r = ie.ImportAttribute;
    return S(r.key, s, "key", t, 1), S(r.value, s, "value", e, 1), s;
  }
  n(szt, "importAttribute");
  function rzt(t) {
    let e = {
      type: "Decorator",
      expression: t
    }, s = ie.Decorator;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(rzt, "decorator");
  function izt(t, e = !1) {
    let s = {
      type: "DoExpression",
      body: t,
      async: e
    }, r = ie.DoExpression;
    return S(r.body, s, "body", t, 1), S(r.async, s, "async", e), s;
  }
  n(izt, "doExpression");
  function nzt(t) {
    let e = {
      type: "ExportDefaultSpecifier",
      exported: t
    }, s = ie.ExportDefaultSpecifier;
    return S(s.exported, e, "exported", t, 1), e;
  }
  n(nzt, "exportDefaultSpecifier");
  function azt(t) {
    let e = {
      type: "RecordExpression",
      properties: t
    }, s = ie.RecordExpression;
    return S(s.properties, e, "properties", t, 1), e;
  }
  n(azt, "recordExpression");
  function ozt(t = []) {
    let e = {
      type: "TupleExpression",
      elements: t
    }, s = ie.TupleExpression;
    return S(s.elements, e, "elements", t, 1), e;
  }
  n(ozt, "tupleExpression");
  function lzt(t) {
    let e = {
      type: "DecimalLiteral",
      value: t
    }, s = ie.DecimalLiteral;
    return S(s.value, e, "value", t), e;
  }
  n(lzt, "decimalLiteral");
  function uzt(t) {
    let e = {
      type: "ModuleExpression",
      body: t
    }, s = ie.ModuleExpression;
    return S(s.body, e, "body", t, 1), e;
  }
  n(uzt, "moduleExpression");
  function czt() {
    return {
      type: "TopicReference"
    };
  }
  n(czt, "topicReference");
  function pzt(t) {
    let e = {
      type: "PipelineTopicExpression",
      expression: t
    }, s = ie.PipelineTopicExpression;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(pzt, "pipelineTopicExpression");
  function hzt(t) {
    let e = {
      type: "PipelineBareFunction",
      callee: t
    }, s = ie.PipelineBareFunction;
    return S(s.callee, e, "callee", t, 1), e;
  }
  n(hzt, "pipelineBareFunction");
  function fzt() {
    return {
      type: "PipelinePrimaryTopicReference"
    };
  }
  n(fzt, "pipelinePrimaryTopicReference");
  function dzt(t) {
    let e = {
      type: "TSParameterProperty",
      parameter: t
    }, s = ie.TSParameterProperty;
    return S(s.parameter, e, "parameter", t, 1), e;
  }
  n(dzt, "tsParameterProperty");
  function mzt(t = null, e = null, s, r = null) {
    let i = {
      type: "TSDeclareFunction",
      id: t,
      typeParameters: e,
      params: s,
      returnType: r
    }, a = ie.TSDeclareFunction;
    return S(a.id, i, "id", t, 1), S(a.typeParameters, i, "typeParameters", e, 1), S(a.params, i, "params", s, 1), S(a.returnType, i, "retur\
nType", r, 1), i;
  }
  n(mzt, "tsDeclareFunction");
  function yzt(t = null, e, s = null, r, i = null) {
    let a = {
      type: "TSDeclareMethod",
      decorators: t,
      key: e,
      typeParameters: s,
      params: r,
      returnType: i
    }, o = ie.TSDeclareMethod;
    return S(o.decorators, a, "decorators", t, 1), S(o.key, a, "key", e, 1), S(o.typeParameters, a, "typeParameters", s, 1), S(o.params, a, "\
params", r, 1), S(o.returnType, a, "returnType", i, 1), a;
  }
  n(yzt, "tsDeclareMethod");
  function gzt(t, e) {
    let s = {
      type: "TSQualifiedName",
      left: t,
      right: e
    }, r = ie.TSQualifiedName;
    return S(r.left, s, "left", t, 1), S(r.right, s, "right", e, 1), s;
  }
  n(gzt, "tsQualifiedName");
  function Tzt(t = null, e, s = null) {
    let r = {
      type: "TSCallSignatureDeclaration",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = ie.TSCallSignatureDeclaration;
    return S(i.typeParameters, r, "typeParameters", t, 1), S(i.parameters, r, "parameters", e, 1), S(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(Tzt, "tsCallSignatureDeclaration");
  function bzt(t = null, e, s = null) {
    let r = {
      type: "TSConstructSignatureDeclaration",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = ie.TSConstructSignatureDeclaration;
    return S(i.typeParameters, r, "typeParameters", t, 1), S(i.parameters, r, "parameters", e, 1), S(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(bzt, "tsConstructSignatureDeclaration");
  function xzt(t, e = null) {
    let s = {
      type: "TSPropertySignature",
      key: t,
      typeAnnotation: e,
      kind: null
    }, r = ie.TSPropertySignature;
    return S(r.key, s, "key", t, 1), S(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(xzt, "tsPropertySignature");
  function Szt(t, e = null, s, r = null) {
    let i = {
      type: "TSMethodSignature",
      key: t,
      typeParameters: e,
      parameters: s,
      typeAnnotation: r,
      kind: null
    }, a = ie.TSMethodSignature;
    return S(a.key, i, "key", t, 1), S(a.typeParameters, i, "typeParameters", e, 1), S(a.parameters, i, "parameters", s, 1), S(a.typeAnnotation,
    i, "typeAnnotation", r, 1), i;
  }
  n(Szt, "tsMethodSignature");
  function Pzt(t, e = null) {
    let s = {
      type: "TSIndexSignature",
      parameters: t,
      typeAnnotation: e
    }, r = ie.TSIndexSignature;
    return S(r.parameters, s, "parameters", t, 1), S(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(Pzt, "tsIndexSignature");
  function Ezt() {
    return {
      type: "TSAnyKeyword"
    };
  }
  n(Ezt, "tsAnyKeyword");
  function Azt() {
    return {
      type: "TSBooleanKeyword"
    };
  }
  n(Azt, "tsBooleanKeyword");
  function vzt() {
    return {
      type: "TSBigIntKeyword"
    };
  }
  n(vzt, "tsBigIntKeyword");
  function Czt() {
    return {
      type: "TSIntrinsicKeyword"
    };
  }
  n(Czt, "tsIntrinsicKeyword");
  function wzt() {
    return {
      type: "TSNeverKeyword"
    };
  }
  n(wzt, "tsNeverKeyword");
  function Izt() {
    return {
      type: "TSNullKeyword"
    };
  }
  n(Izt, "tsNullKeyword");
  function Nzt() {
    return {
      type: "TSNumberKeyword"
    };
  }
  n(Nzt, "tsNumberKeyword");
  function kzt() {
    return {
      type: "TSObjectKeyword"
    };
  }
  n(kzt, "tsObjectKeyword");
  function Dzt() {
    return {
      type: "TSStringKeyword"
    };
  }
  n(Dzt, "tsStringKeyword");
  function Ozt() {
    return {
      type: "TSSymbolKeyword"
    };
  }
  n(Ozt, "tsSymbolKeyword");
  function _zt() {
    return {
      type: "TSUndefinedKeyword"
    };
  }
  n(_zt, "tsUndefinedKeyword");
  function Lzt() {
    return {
      type: "TSUnknownKeyword"
    };
  }
  n(Lzt, "tsUnknownKeyword");
  function Bzt() {
    return {
      type: "TSVoidKeyword"
    };
  }
  n(Bzt, "tsVoidKeyword");
  function Mzt() {
    return {
      type: "TSThisType"
    };
  }
  n(Mzt, "tsThisType");
  function Fzt(t = null, e, s = null) {
    let r = {
      type: "TSFunctionType",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = ie.TSFunctionType;
    return S(i.typeParameters, r, "typeParameters", t, 1), S(i.parameters, r, "parameters", e, 1), S(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(Fzt, "tsFunctionType");
  function jzt(t = null, e, s = null) {
    let r = {
      type: "TSConstructorType",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = ie.TSConstructorType;
    return S(i.typeParameters, r, "typeParameters", t, 1), S(i.parameters, r, "parameters", e, 1), S(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(jzt, "tsConstructorType");
  function Rzt(t, e = null) {
    let s = {
      type: "TSTypeReference",
      typeName: t,
      typeParameters: e
    }, r = ie.TSTypeReference;
    return S(r.typeName, s, "typeName", t, 1), S(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(Rzt, "tsTypeReference");
  function qzt(t, e = null, s = null) {
    let r = {
      type: "TSTypePredicate",
      parameterName: t,
      typeAnnotation: e,
      asserts: s
    }, i = ie.TSTypePredicate;
    return S(i.parameterName, r, "parameterName", t, 1), S(i.typeAnnotation, r, "typeAnnotation", e, 1), S(i.asserts, r, "asserts", s), r;
  }
  n(qzt, "tsTypePredicate");
  function Uzt(t, e = null) {
    let s = {
      type: "TSTypeQuery",
      exprName: t,
      typeParameters: e
    }, r = ie.TSTypeQuery;
    return S(r.exprName, s, "exprName", t, 1), S(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(Uzt, "tsTypeQuery");
  function Kzt(t) {
    let e = {
      type: "TSTypeLiteral",
      members: t
    }, s = ie.TSTypeLiteral;
    return S(s.members, e, "members", t, 1), e;
  }
  n(Kzt, "tsTypeLiteral");
  function Vzt(t) {
    let e = {
      type: "TSArrayType",
      elementType: t
    }, s = ie.TSArrayType;
    return S(s.elementType, e, "elementType", t, 1), e;
  }
  n(Vzt, "tsArrayType");
  function Wzt(t) {
    let e = {
      type: "TSTupleType",
      elementTypes: t
    }, s = ie.TSTupleType;
    return S(s.elementTypes, e, "elementTypes", t, 1), e;
  }
  n(Wzt, "tsTupleType");
  function $zt(t) {
    let e = {
      type: "TSOptionalType",
      typeAnnotation: t
    }, s = ie.TSOptionalType;
    return S(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n($zt, "tsOptionalType");
  function Hzt(t) {
    let e = {
      type: "TSRestType",
      typeAnnotation: t
    }, s = ie.TSRestType;
    return S(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(Hzt, "tsRestType");
  function Jzt(t, e, s = !1) {
    let r = {
      type: "TSNamedTupleMember",
      label: t,
      elementType: e,
      optional: s
    }, i = ie.TSNamedTupleMember;
    return S(i.label, r, "label", t, 1), S(i.elementType, r, "elementType", e, 1), S(i.optional, r, "optional", s), r;
  }
  n(Jzt, "tsNamedTupleMember");
  function Yzt(t) {
    let e = {
      type: "TSUnionType",
      types: t
    }, s = ie.TSUnionType;
    return S(s.types, e, "types", t, 1), e;
  }
  n(Yzt, "tsUnionType");
  function Xzt(t) {
    let e = {
      type: "TSIntersectionType",
      types: t
    }, s = ie.TSIntersectionType;
    return S(s.types, e, "types", t, 1), e;
  }
  n(Xzt, "tsIntersectionType");
  function zzt(t, e, s, r) {
    let i = {
      type: "TSConditionalType",
      checkType: t,
      extendsType: e,
      trueType: s,
      falseType: r
    }, a = ie.TSConditionalType;
    return S(a.checkType, i, "checkType", t, 1), S(a.extendsType, i, "extendsType", e, 1), S(a.trueType, i, "trueType", s, 1), S(a.falseType,
    i, "falseType", r, 1), i;
  }
  n(zzt, "tsConditionalType");
  function Gzt(t) {
    let e = {
      type: "TSInferType",
      typeParameter: t
    }, s = ie.TSInferType;
    return S(s.typeParameter, e, "typeParameter", t, 1), e;
  }
  n(Gzt, "tsInferType");
  function Qzt(t) {
    let e = {
      type: "TSParenthesizedType",
      typeAnnotation: t
    }, s = ie.TSParenthesizedType;
    return S(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(Qzt, "tsParenthesizedType");
  function Zzt(t) {
    let e = {
      type: "TSTypeOperator",
      typeAnnotation: t,
      operator: null
    }, s = ie.TSTypeOperator;
    return S(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(Zzt, "tsTypeOperator");
  function eGt(t, e) {
    let s = {
      type: "TSIndexedAccessType",
      objectType: t,
      indexType: e
    }, r = ie.TSIndexedAccessType;
    return S(r.objectType, s, "objectType", t, 1), S(r.indexType, s, "indexType", e, 1), s;
  }
  n(eGt, "tsIndexedAccessType");
  function tGt(t, e = null, s = null) {
    let r = {
      type: "TSMappedType",
      typeParameter: t,
      typeAnnotation: e,
      nameType: s
    }, i = ie.TSMappedType;
    return S(i.typeParameter, r, "typeParameter", t, 1), S(i.typeAnnotation, r, "typeAnnotation", e, 1), S(i.nameType, r, "nameType", s, 1),
    r;
  }
  n(tGt, "tsMappedType");
  function sGt(t) {
    let e = {
      type: "TSLiteralType",
      literal: t
    }, s = ie.TSLiteralType;
    return S(s.literal, e, "literal", t, 1), e;
  }
  n(sGt, "tsLiteralType");
  function rGt(t, e = null) {
    let s = {
      type: "TSExpressionWithTypeArguments",
      expression: t,
      typeParameters: e
    }, r = ie.TSExpressionWithTypeArguments;
    return S(r.expression, s, "expression", t, 1), S(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(rGt, "tsExpressionWithTypeArguments");
  function iGt(t, e = null, s = null, r) {
    let i = {
      type: "TSInterfaceDeclaration",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = ie.TSInterfaceDeclaration;
    return S(a.id, i, "id", t, 1), S(a.typeParameters, i, "typeParameters", e, 1), S(a.extends, i, "extends", s, 1), S(a.body, i, "body", r,
    1), i;
  }
  n(iGt, "tsInterfaceDeclaration");
  function nGt(t) {
    let e = {
      type: "TSInterfaceBody",
      body: t
    }, s = ie.TSInterfaceBody;
    return S(s.body, e, "body", t, 1), e;
  }
  n(nGt, "tsInterfaceBody");
  function aGt(t, e = null, s) {
    let r = {
      type: "TSTypeAliasDeclaration",
      id: t,
      typeParameters: e,
      typeAnnotation: s
    }, i = ie.TSTypeAliasDeclaration;
    return S(i.id, r, "id", t, 1), S(i.typeParameters, r, "typeParameters", e, 1), S(i.typeAnnotation, r, "typeAnnotation", s, 1), r;
  }
  n(aGt, "tsTypeAliasDeclaration");
  function oGt(t, e = null) {
    let s = {
      type: "TSInstantiationExpression",
      expression: t,
      typeParameters: e
    }, r = ie.TSInstantiationExpression;
    return S(r.expression, s, "expression", t, 1), S(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(oGt, "tsInstantiationExpression");
  function lGt(t, e) {
    let s = {
      type: "TSAsExpression",
      expression: t,
      typeAnnotation: e
    }, r = ie.TSAsExpression;
    return S(r.expression, s, "expression", t, 1), S(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(lGt, "tsAsExpression");
  function uGt(t, e) {
    let s = {
      type: "TSSatisfiesExpression",
      expression: t,
      typeAnnotation: e
    }, r = ie.TSSatisfiesExpression;
    return S(r.expression, s, "expression", t, 1), S(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(uGt, "tsSatisfiesExpression");
  function cGt(t, e) {
    let s = {
      type: "TSTypeAssertion",
      typeAnnotation: t,
      expression: e
    }, r = ie.TSTypeAssertion;
    return S(r.typeAnnotation, s, "typeAnnotation", t, 1), S(r.expression, s, "expression", e, 1), s;
  }
  n(cGt, "tsTypeAssertion");
  function pGt(t) {
    let e = {
      type: "TSEnumBody",
      members: t
    }, s = ie.TSEnumBody;
    return S(s.members, e, "members", t, 1), e;
  }
  n(pGt, "tsEnumBody");
  function hGt(t, e) {
    let s = {
      type: "TSEnumDeclaration",
      id: t,
      members: e
    }, r = ie.TSEnumDeclaration;
    return S(r.id, s, "id", t, 1), S(r.members, s, "members", e, 1), s;
  }
  n(hGt, "tsEnumDeclaration");
  function fGt(t, e = null) {
    let s = {
      type: "TSEnumMember",
      id: t,
      initializer: e
    }, r = ie.TSEnumMember;
    return S(r.id, s, "id", t, 1), S(r.initializer, s, "initializer", e, 1), s;
  }
  n(fGt, "tsEnumMember");
  function dGt(t, e) {
    let s = {
      type: "TSModuleDeclaration",
      id: t,
      body: e,
      kind: null
    }, r = ie.TSModuleDeclaration;
    return S(r.id, s, "id", t, 1), S(r.body, s, "body", e, 1), s;
  }
  n(dGt, "tsModuleDeclaration");
  function mGt(t) {
    let e = {
      type: "TSModuleBlock",
      body: t
    }, s = ie.TSModuleBlock;
    return S(s.body, e, "body", t, 1), e;
  }
  n(mGt, "tsModuleBlock");
  function yGt(t, e = null, s = null) {
    let r = {
      type: "TSImportType",
      argument: t,
      qualifier: e,
      typeParameters: s
    }, i = ie.TSImportType;
    return S(i.argument, r, "argument", t, 1), S(i.qualifier, r, "qualifier", e, 1), S(i.typeParameters, r, "typeParameters", s, 1), r;
  }
  n(yGt, "tsImportType");
  function gGt(t, e) {
    let s = {
      type: "TSImportEqualsDeclaration",
      id: t,
      moduleReference: e,
      isExport: null
    }, r = ie.TSImportEqualsDeclaration;
    return S(r.id, s, "id", t, 1), S(r.moduleReference, s, "moduleReference", e, 1), s;
  }
  n(gGt, "tsImportEqualsDeclaration");
  function TGt(t) {
    let e = {
      type: "TSExternalModuleReference",
      expression: t
    }, s = ie.TSExternalModuleReference;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(TGt, "tsExternalModuleReference");
  function bGt(t) {
    let e = {
      type: "TSNonNullExpression",
      expression: t
    }, s = ie.TSNonNullExpression;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(bGt, "tsNonNullExpression");
  function xGt(t) {
    let e = {
      type: "TSExportAssignment",
      expression: t
    }, s = ie.TSExportAssignment;
    return S(s.expression, e, "expression", t, 1), e;
  }
  n(xGt, "tsExportAssignment");
  function SGt(t) {
    let e = {
      type: "TSNamespaceExportDeclaration",
      id: t
    }, s = ie.TSNamespaceExportDeclaration;
    return S(s.id, e, "id", t, 1), e;
  }
  n(SGt, "tsNamespaceExportDeclaration");
  function PGt(t) {
    let e = {
      type: "TSTypeAnnotation",
      typeAnnotation: t
    }, s = ie.TSTypeAnnotation;
    return S(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(PGt, "tsTypeAnnotation");
  function EGt(t) {
    let e = {
      type: "TSTypeParameterInstantiation",
      params: t
    }, s = ie.TSTypeParameterInstantiation;
    return S(s.params, e, "params", t, 1), e;
  }
  n(EGt, "tsTypeParameterInstantiation");
  function AGt(t) {
    let e = {
      type: "TSTypeParameterDeclaration",
      params: t
    }, s = ie.TSTypeParameterDeclaration;
    return S(s.params, e, "params", t, 1), e;
  }
  n(AGt, "tsTypeParameterDeclaration");
  function vGt(t = null, e = null, s) {
    let r = {
      type: "TSTypeParameter",
      constraint: t,
      default: e,
      name: s
    }, i = ie.TSTypeParameter;
    return S(i.constraint, r, "constraint", t, 1), S(i.default, r, "default", e, 1), S(i.name, r, "name", s), r;
  }
  n(vGt, "tsTypeParameter");
  function CGt(t) {
    return (0, U1.default)("NumberLiteral", "NumericLiteral", "The node type "), gpe(t);
  }
  n(CGt, "NumberLiteral");
  function wGt(t, e = "") {
    return (0, U1.default)("RegexLiteral", "RegExpLiteral", "The node type "), Tpe(t, e);
  }
  n(wGt, "RegexLiteral");
  function IGt(t) {
    return (0, U1.default)("RestProperty", "RestElement", "The node type "), bpe(t);
  }
  n(IGt, "RestProperty");
  function NGt(t) {
    return (0, U1.default)("SpreadProperty", "SpreadElement", "The node type "), xpe(t);
  }
  n(NGt, "SpreadProperty");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js
var Spe = g((Vj) => {
  "use strict";
  Object.defineProperty(Vj, "__esModule", {
    value: !0
  });
  Vj.default = OGt;
  var kGt = Vn(), DGt = Wn();
  function OGt(t, e) {
    let s = t.value.split(/\r\n|\n|\r/), r = 0;
    for (let a = 0; a < s.length; a++)
      /[^ \t]/.exec(s[a]) && (r = a);
    let i = "";
    for (let a = 0; a < s.length; a++) {
      let o = s[a], l = a === 0, u = a === s.length - 1, c = a === r, p = o.replace(/\t/g, " ");
      l || (p = p.replace(/^ +/, "")), u || (p = p.replace(/ +$/, "")), p && (c || (p += " "), i += p);
    }
    i && e.push((0, DGt.inherits)((0, kGt.stringLiteral)(i), t));
  }
  n(OGt, "cleanJSXElementLiteralChild");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/builders/react/buildChildren.js
var Ppe = g(($j) => {
  "use strict";
  Object.defineProperty($j, "__esModule", {
    value: !0
  });
  $j.default = LGt;
  var Wj = di(), _Gt = Spe();
  function LGt(t) {
    let e = [];
    for (let s = 0; s < t.children.length; s++) {
      let r = t.children[s];
      if ((0, Wj.isJSXText)(r)) {
        (0, _Gt.default)(r, e);
        continue;
      }
      (0, Wj.isJSXExpressionContainer)(r) && (r = r.expression), !(0, Wj.isJSXEmptyExpression)(r) && e.push(r);
    }
    return e;
  }
  n(LGt, "buildChildren");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isNode.js
var Jj = g((Hj) => {
  "use strict";
  Object.defineProperty(Hj, "__esModule", {
    value: !0
  });
  Hj.default = MGt;
  var BGt = to();
  function MGt(t) {
    return !!(t && BGt.VISITOR_KEYS[t.type]);
  }
  n(MGt, "isNode");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/asserts/assertNode.js
var Epe = g((Yj) => {
  "use strict";
  Object.defineProperty(Yj, "__esModule", {
    value: !0
  });
  Yj.default = jGt;
  var FGt = Jj();
  function jGt(t) {
    if (!(0, FGt.default)(t)) {
      var e;
      let s = (e = t?.type) != null ? e : JSON.stringify(t);
      throw new TypeError(`Not a valid node of type "${s}"`);
    }
  }
  n(jGt, "assertNode");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/asserts/generated/index.js
var Ape = g((k) => {
  "use strict";
  Object.defineProperty(k, "__esModule", {
    value: !0
  });
  k.assertAccessor = trs;
  k.assertAnyTypeAnnotation = xZt;
  k.assertArgumentPlaceholder = Xes;
  k.assertArrayExpression = qGt;
  k.assertArrayPattern = jQt;
  k.assertArrayTypeAnnotation = SZt;
  k.assertArrowFunctionExpression = RQt;
  k.assertAssignmentExpression = UGt;
  k.assertAssignmentPattern = FQt;
  k.assertAwaitExpression = lZt;
  k.assertBigIntLiteral = cZt;
  k.assertBinary = Ess;
  k.assertBinaryExpression = KGt;
  k.assertBindExpression = zes;
  k.assertBlock = Css;
  k.assertBlockParent = vss;
  k.assertBlockStatement = HGt;
  k.assertBooleanLiteral = fQt;
  k.assertBooleanLiteralTypeAnnotation = EZt;
  k.assertBooleanTypeAnnotation = PZt;
  k.assertBreakStatement = JGt;
  k.assertCallExpression = YGt;
  k.assertCatchClause = XGt;
  k.assertClass = Gss;
  k.assertClassAccessorProperty = mZt;
  k.assertClassBody = qQt;
  k.assertClassDeclaration = KQt;
  k.assertClassExpression = UQt;
  k.assertClassImplements = vZt;
  k.assertClassMethod = eZt;
  k.assertClassPrivateMethod = gZt;
  k.assertClassPrivateProperty = yZt;
  k.assertClassProperty = dZt;
  k.assertCompletionStatement = Nss;
  k.assertConditional = kss;
  k.assertConditionalExpression = zGt;
  k.assertContinueStatement = GGt;
  k.assertDebuggerStatement = QGt;
  k.assertDecimalLiteral = rts;
  k.assertDeclaration = Rss;
  k.assertDeclareClass = CZt;
  k.assertDeclareExportAllDeclaration = BZt;
  k.assertDeclareExportDeclaration = LZt;
  k.assertDeclareFunction = wZt;
  k.assertDeclareInterface = IZt;
  k.assertDeclareModule = NZt;
  k.assertDeclareModuleExports = kZt;
  k.assertDeclareOpaqueType = OZt;
  k.assertDeclareTypeAlias = DZt;
  k.assertDeclareVariable = _Zt;
  k.assertDeclaredPredicate = MZt;
  k.assertDecorator = Qes;
  k.assertDirective = WGt;
  k.assertDirectiveLiteral = $Gt;
  k.assertDoExpression = Zes;
  k.assertDoWhileStatement = ZGt;
  k.assertEmptyStatement = eQt;
  k.assertEmptyTypeAnnotation = JZt;
  k.assertEnumBody = lrs;
  k.assertEnumBooleanBody = Ses;
  k.assertEnumBooleanMember = ves;
  k.assertEnumDeclaration = xes;
  k.assertEnumDefaultedMember = Ies;
  k.assertEnumMember = urs;
  k.assertEnumNumberBody = Pes;
  k.assertEnumNumberMember = Ces;
  k.assertEnumStringBody = Ees;
  k.assertEnumStringMember = wes;
  k.assertEnumSymbolBody = Aes;
  k.assertExistsTypeAnnotation = FZt;
  k.assertExportAllDeclaration = VQt;
  k.assertExportDeclaration = Zss;
  k.assertExportDefaultDeclaration = WQt;
  k.assertExportDefaultSpecifier = ets;
  k.assertExportNamedDeclaration = $Qt;
  k.assertExportNamespaceSpecifier = pZt;
  k.assertExportSpecifier = HQt;
  k.assertExpression = Pss;
  k.assertExpressionStatement = tQt;
  k.assertExpressionWrapper = _ss;
  k.assertFile = sQt;
  k.assertFlow = rrs;
  k.assertFlowBaseAnnotation = nrs;
  k.assertFlowDeclaration = ars;
  k.assertFlowPredicate = ors;
  k.assertFlowType = irs;
  k.assertFor = Lss;
  k.assertForInStatement = rQt;
  k.assertForOfStatement = JQt;
  k.assertForStatement = iQt;
  k.assertForXStatement = Bss;
  k.assertFunction = Mss;
  k.assertFunctionDeclaration = nQt;
  k.assertFunctionExpression = aQt;
  k.assertFunctionParent = Fss;
  k.assertFunctionTypeAnnotation = jZt;
  k.assertFunctionTypeParam = RZt;
  k.assertGenericTypeAnnotation = qZt;
  k.assertIdentifier = oQt;
  k.assertIfStatement = lQt;
  k.assertImmutable = Wss;
  k.assertImport = uZt;
  k.assertImportAttribute = Ges;
  k.assertImportDeclaration = YQt;
  k.assertImportDefaultSpecifier = XQt;
  k.assertImportExpression = QQt;
  k.assertImportNamespaceSpecifier = zQt;
  k.assertImportOrExportDeclaration = Qss;
  k.assertImportSpecifier = GQt;
  k.assertIndexedAccessType = Nes;
  k.assertInferredPredicate = UZt;
  k.assertInterfaceDeclaration = VZt;
  k.assertInterfaceExtends = KZt;
  k.assertInterfaceTypeAnnotation = WZt;
  k.assertInterpreterDirective = VGt;
  k.assertIntersectionTypeAnnotation = $Zt;
  k.assertJSX = crs;
  k.assertJSXAttribute = Des;
  k.assertJSXClosingElement = Oes;
  k.assertJSXClosingFragment = $es;
  k.assertJSXElement = _es;
  k.assertJSXEmptyExpression = Les;
  k.assertJSXExpressionContainer = Bes;
  k.assertJSXFragment = Ves;
  k.assertJSXIdentifier = Fes;
  k.assertJSXMemberExpression = jes;
  k.assertJSXNamespacedName = Res;
  k.assertJSXOpeningElement = qes;
  k.assertJSXOpeningFragment = Wes;
  k.assertJSXSpreadAttribute = Ues;
  k.assertJSXSpreadChild = Mes;
  k.assertJSXText = Kes;
  k.assertLVal = Uss;
  k.assertLabeledStatement = uQt;
  k.assertLiteral = Vss;
  k.assertLogicalExpression = mQt;
  k.assertLoop = Dss;
  k.assertMemberExpression = yQt;
  k.assertMetaProperty = ZQt;
  k.assertMethod = Hss;
  k.assertMiscellaneous = prs;
  k.assertMixedTypeAnnotation = HZt;
  k.assertModuleDeclaration = xrs;
  k.assertModuleExpression = its;
  k.assertModuleSpecifier = ers;
  k.assertNewExpression = gQt;
  k.assertNoop = Hes;
  k.assertNullLiteral = hQt;
  k.assertNullLiteralTypeAnnotation = AZt;
  k.assertNullableTypeAnnotation = YZt;
  k.assertNumberLiteral = yrs;
  k.assertNumberLiteralTypeAnnotation = XZt;
  k.assertNumberTypeAnnotation = zZt;
  k.assertNumericLiteral = pQt;
  k.assertObjectExpression = bQt;
  k.assertObjectMember = Jss;
  k.assertObjectMethod = xQt;
  k.assertObjectPattern = tZt;
  k.assertObjectProperty = SQt;
  k.assertObjectTypeAnnotation = GZt;
  k.assertObjectTypeCallProperty = ZZt;
  k.assertObjectTypeIndexer = ees;
  k.assertObjectTypeInternalSlot = QZt;
  k.assertObjectTypeProperty = tes;
  k.assertObjectTypeSpreadProperty = ses;
  k.assertOpaqueType = res;
  k.assertOptionalCallExpression = fZt;
  k.assertOptionalIndexedAccessType = kes;
  k.assertOptionalMemberExpression = hZt;
  k.assertParenthesizedExpression = vQt;
  k.assertPattern = zss;
  k.assertPatternLike = qss;
  k.assertPipelineBareFunction = ots;
  k.assertPipelinePrimaryTopicReference = lts;
  k.assertPipelineTopicExpression = ats;
  k.assertPlaceholder = Jes;
  k.assertPrivate = srs;
  k.assertPrivateName = TZt;
  k.assertProgram = TQt;
  k.assertProperty = Yss;
  k.assertPureish = jss;
  k.assertQualifiedTypeIdentifier = ies;
  k.assertRecordExpression = tts;
  k.assertRegExpLiteral = dQt;
  k.assertRegexLiteral = grs;
  k.assertRestElement = PQt;
  k.assertRestProperty = Trs;
  k.assertReturnStatement = EQt;
  k.assertScopable = Ass;
  k.assertSequenceExpression = AQt;
  k.assertSpreadElement = sZt;
  k.assertSpreadProperty = brs;
  k.assertStandardized = Sss;
  k.assertStatement = wss;
  k.assertStaticBlock = bZt;
  k.assertStringLiteral = cQt;
  k.assertStringLiteralTypeAnnotation = nes;
  k.assertStringTypeAnnotation = aes;
  k.assertSuper = rZt;
  k.assertSwitchCase = CQt;
  k.assertSwitchStatement = wQt;
  k.assertSymbolTypeAnnotation = oes;
  k.assertTSAnyKeyword = Tts;
  k.assertTSArrayType = jts;
  k.assertTSAsExpression = rss;
  k.assertTSBaseType = mrs;
  k.assertTSBigIntKeyword = xts;
  k.assertTSBooleanKeyword = bts;
  k.assertTSCallSignatureDeclaration = fts;
  k.assertTSConditionalType = $ts;
  k.assertTSConstructSignatureDeclaration = dts;
  k.assertTSConstructorType = _ts;
  k.assertTSDeclareFunction = cts;
  k.assertTSDeclareMethod = pts;
  k.assertTSEntityName = Kss;
  k.assertTSEnumBody = ass;
  k.assertTSEnumDeclaration = oss;
  k.assertTSEnumMember = lss;
  k.assertTSExportAssignment = mss;
  k.assertTSExpressionWithTypeArguments = Qts;
  k.assertTSExternalModuleReference = fss;
  k.assertTSFunctionType = Ots;
  k.assertTSImportEqualsDeclaration = hss;
  k.assertTSImportType = pss;
  k.assertTSIndexSignature = gts;
  k.assertTSIndexedAccessType = Xts;
  k.assertTSInferType = Hts;
  k.assertTSInstantiationExpression = sss;
  k.assertTSInterfaceBody = ess;
  k.assertTSInterfaceDeclaration = Zts;
  k.assertTSIntersectionType = Wts;
  k.assertTSIntrinsicKeyword = Sts;
  k.assertTSLiteralType = Gts;
  k.assertTSMappedType = zts;
  k.assertTSMethodSignature = yts;
  k.assertTSModuleBlock = css;
  k.assertTSModuleDeclaration = uss;
  k.assertTSNamedTupleMember = Kts;
  k.assertTSNamespaceExportDeclaration = yss;
  k.assertTSNeverKeyword = Pts;
  k.assertTSNonNullExpression = dss;
  k.assertTSNullKeyword = Ets;
  k.assertTSNumberKeyword = Ats;
  k.assertTSObjectKeyword = vts;
  k.assertTSOptionalType = qts;
  k.assertTSParameterProperty = uts;
  k.assertTSParenthesizedType = Jts;
  k.assertTSPropertySignature = mts;
  k.assertTSQualifiedName = hts;
  k.assertTSRestType = Uts;
  k.assertTSSatisfiesExpression = iss;
  k.assertTSStringKeyword = Cts;
  k.assertTSSymbolKeyword = wts;
  k.assertTSThisType = Dts;
  k.assertTSTupleType = Rts;
  k.assertTSType = drs;
  k.assertTSTypeAliasDeclaration = tss;
  k.assertTSTypeAnnotation = gss;
  k.assertTSTypeAssertion = nss;
  k.assertTSTypeElement = frs;
  k.assertTSTypeLiteral = Fts;
  k.assertTSTypeOperator = Yts;
  k.assertTSTypeParameter = xss;
  k.assertTSTypeParameterDeclaration = bss;
  k.assertTSTypeParameterInstantiation = Tss;
  k.assertTSTypePredicate = Bts;
  k.assertTSTypeQuery = Mts;
  k.assertTSTypeReference = Lts;
  k.assertTSUndefinedKeyword = Its;
  k.assertTSUnionType = Vts;
  k.assertTSUnknownKeyword = Nts;
  k.assertTSVoidKeyword = kts;
  k.assertTaggedTemplateExpression = iZt;
  k.assertTemplateElement = nZt;
  k.assertTemplateLiteral = aZt;
  k.assertTerminatorless = Iss;
  k.assertThisExpression = IQt;
  k.assertThisTypeAnnotation = les;
  k.assertThrowStatement = NQt;
  k.assertTopicReference = nts;
  k.assertTryStatement = kQt;
  k.assertTupleExpression = sts;
  k.assertTupleTypeAnnotation = ues;
  k.assertTypeAlias = pes;
  k.assertTypeAnnotation = hes;
  k.assertTypeCastExpression = fes;
  k.assertTypeParameter = des;
  k.assertTypeParameterDeclaration = mes;
  k.assertTypeParameterInstantiation = yes;
  k.assertTypeScript = hrs;
  k.assertTypeofTypeAnnotation = ces;
  k.assertUnaryExpression = DQt;
  k.assertUnaryLike = Xss;
  k.assertUnionTypeAnnotation = ges;
  k.assertUpdateExpression = OQt;
  k.assertUserWhitespacable = $ss;
  k.assertV8IntrinsicIdentifier = Yes;
  k.assertVariableDeclaration = _Qt;
  k.assertVariableDeclarator = LQt;
  k.assertVariance = Tes;
  k.assertVoidTypeAnnotation = bes;
  k.assertWhile = Oss;
  k.assertWhileStatement = BQt;
  k.assertWithStatement = MQt;
  k.assertYieldExpression = oZt;
  var RGt = oy(), kT = AT();
  function B(t, e, s) {
    if (!(0, RGt.default)(t, e, s))
      throw new Error(`Expected type "${t}" with option ${JSON.stringify(s)}, but instead got "${e.type}".`);
  }
  n(B, "assert");
  function qGt(t, e) {
    B("ArrayExpression", t, e);
  }
  n(qGt, "assertArrayExpression");
  function UGt(t, e) {
    B("AssignmentExpression", t, e);
  }
  n(UGt, "assertAssignmentExpression");
  function KGt(t, e) {
    B("BinaryExpression", t, e);
  }
  n(KGt, "assertBinaryExpression");
  function VGt(t, e) {
    B("InterpreterDirective", t, e);
  }
  n(VGt, "assertInterpreterDirective");
  function WGt(t, e) {
    B("Directive", t, e);
  }
  n(WGt, "assertDirective");
  function $Gt(t, e) {
    B("DirectiveLiteral", t, e);
  }
  n($Gt, "assertDirectiveLiteral");
  function HGt(t, e) {
    B("BlockStatement", t, e);
  }
  n(HGt, "assertBlockStatement");
  function JGt(t, e) {
    B("BreakStatement", t, e);
  }
  n(JGt, "assertBreakStatement");
  function YGt(t, e) {
    B("CallExpression", t, e);
  }
  n(YGt, "assertCallExpression");
  function XGt(t, e) {
    B("CatchClause", t, e);
  }
  n(XGt, "assertCatchClause");
  function zGt(t, e) {
    B("ConditionalExpression", t, e);
  }
  n(zGt, "assertConditionalExpression");
  function GGt(t, e) {
    B("ContinueStatement", t, e);
  }
  n(GGt, "assertContinueStatement");
  function QGt(t, e) {
    B("DebuggerStatement", t, e);
  }
  n(QGt, "assertDebuggerStatement");
  function ZGt(t, e) {
    B("DoWhileStatement", t, e);
  }
  n(ZGt, "assertDoWhileStatement");
  function eQt(t, e) {
    B("EmptyStatement", t, e);
  }
  n(eQt, "assertEmptyStatement");
  function tQt(t, e) {
    B("ExpressionStatement", t, e);
  }
  n(tQt, "assertExpressionStatement");
  function sQt(t, e) {
    B("File", t, e);
  }
  n(sQt, "assertFile");
  function rQt(t, e) {
    B("ForInStatement", t, e);
  }
  n(rQt, "assertForInStatement");
  function iQt(t, e) {
    B("ForStatement", t, e);
  }
  n(iQt, "assertForStatement");
  function nQt(t, e) {
    B("FunctionDeclaration", t, e);
  }
  n(nQt, "assertFunctionDeclaration");
  function aQt(t, e) {
    B("FunctionExpression", t, e);
  }
  n(aQt, "assertFunctionExpression");
  function oQt(t, e) {
    B("Identifier", t, e);
  }
  n(oQt, "assertIdentifier");
  function lQt(t, e) {
    B("IfStatement", t, e);
  }
  n(lQt, "assertIfStatement");
  function uQt(t, e) {
    B("LabeledStatement", t, e);
  }
  n(uQt, "assertLabeledStatement");
  function cQt(t, e) {
    B("StringLiteral", t, e);
  }
  n(cQt, "assertStringLiteral");
  function pQt(t, e) {
    B("NumericLiteral", t, e);
  }
  n(pQt, "assertNumericLiteral");
  function hQt(t, e) {
    B("NullLiteral", t, e);
  }
  n(hQt, "assertNullLiteral");
  function fQt(t, e) {
    B("BooleanLiteral", t, e);
  }
  n(fQt, "assertBooleanLiteral");
  function dQt(t, e) {
    B("RegExpLiteral", t, e);
  }
  n(dQt, "assertRegExpLiteral");
  function mQt(t, e) {
    B("LogicalExpression", t, e);
  }
  n(mQt, "assertLogicalExpression");
  function yQt(t, e) {
    B("MemberExpression", t, e);
  }
  n(yQt, "assertMemberExpression");
  function gQt(t, e) {
    B("NewExpression", t, e);
  }
  n(gQt, "assertNewExpression");
  function TQt(t, e) {
    B("Program", t, e);
  }
  n(TQt, "assertProgram");
  function bQt(t, e) {
    B("ObjectExpression", t, e);
  }
  n(bQt, "assertObjectExpression");
  function xQt(t, e) {
    B("ObjectMethod", t, e);
  }
  n(xQt, "assertObjectMethod");
  function SQt(t, e) {
    B("ObjectProperty", t, e);
  }
  n(SQt, "assertObjectProperty");
  function PQt(t, e) {
    B("RestElement", t, e);
  }
  n(PQt, "assertRestElement");
  function EQt(t, e) {
    B("ReturnStatement", t, e);
  }
  n(EQt, "assertReturnStatement");
  function AQt(t, e) {
    B("SequenceExpression", t, e);
  }
  n(AQt, "assertSequenceExpression");
  function vQt(t, e) {
    B("ParenthesizedExpression", t, e);
  }
  n(vQt, "assertParenthesizedExpression");
  function CQt(t, e) {
    B("SwitchCase", t, e);
  }
  n(CQt, "assertSwitchCase");
  function wQt(t, e) {
    B("SwitchStatement", t, e);
  }
  n(wQt, "assertSwitchStatement");
  function IQt(t, e) {
    B("ThisExpression", t, e);
  }
  n(IQt, "assertThisExpression");
  function NQt(t, e) {
    B("ThrowStatement", t, e);
  }
  n(NQt, "assertThrowStatement");
  function kQt(t, e) {
    B("TryStatement", t, e);
  }
  n(kQt, "assertTryStatement");
  function DQt(t, e) {
    B("UnaryExpression", t, e);
  }
  n(DQt, "assertUnaryExpression");
  function OQt(t, e) {
    B("UpdateExpression", t, e);
  }
  n(OQt, "assertUpdateExpression");
  function _Qt(t, e) {
    B("VariableDeclaration", t, e);
  }
  n(_Qt, "assertVariableDeclaration");
  function LQt(t, e) {
    B("VariableDeclarator", t, e);
  }
  n(LQt, "assertVariableDeclarator");
  function BQt(t, e) {
    B("WhileStatement", t, e);
  }
  n(BQt, "assertWhileStatement");
  function MQt(t, e) {
    B("WithStatement", t, e);
  }
  n(MQt, "assertWithStatement");
  function FQt(t, e) {
    B("AssignmentPattern", t, e);
  }
  n(FQt, "assertAssignmentPattern");
  function jQt(t, e) {
    B("ArrayPattern", t, e);
  }
  n(jQt, "assertArrayPattern");
  function RQt(t, e) {
    B("ArrowFunctionExpression", t, e);
  }
  n(RQt, "assertArrowFunctionExpression");
  function qQt(t, e) {
    B("ClassBody", t, e);
  }
  n(qQt, "assertClassBody");
  function UQt(t, e) {
    B("ClassExpression", t, e);
  }
  n(UQt, "assertClassExpression");
  function KQt(t, e) {
    B("ClassDeclaration", t, e);
  }
  n(KQt, "assertClassDeclaration");
  function VQt(t, e) {
    B("ExportAllDeclaration", t, e);
  }
  n(VQt, "assertExportAllDeclaration");
  function WQt(t, e) {
    B("ExportDefaultDeclaration", t, e);
  }
  n(WQt, "assertExportDefaultDeclaration");
  function $Qt(t, e) {
    B("ExportNamedDeclaration", t, e);
  }
  n($Qt, "assertExportNamedDeclaration");
  function HQt(t, e) {
    B("ExportSpecifier", t, e);
  }
  n(HQt, "assertExportSpecifier");
  function JQt(t, e) {
    B("ForOfStatement", t, e);
  }
  n(JQt, "assertForOfStatement");
  function YQt(t, e) {
    B("ImportDeclaration", t, e);
  }
  n(YQt, "assertImportDeclaration");
  function XQt(t, e) {
    B("ImportDefaultSpecifier", t, e);
  }
  n(XQt, "assertImportDefaultSpecifier");
  function zQt(t, e) {
    B("ImportNamespaceSpecifier", t, e);
  }
  n(zQt, "assertImportNamespaceSpecifier");
  function GQt(t, e) {
    B("ImportSpecifier", t, e);
  }
  n(GQt, "assertImportSpecifier");
  function QQt(t, e) {
    B("ImportExpression", t, e);
  }
  n(QQt, "assertImportExpression");
  function ZQt(t, e) {
    B("MetaProperty", t, e);
  }
  n(ZQt, "assertMetaProperty");
  function eZt(t, e) {
    B("ClassMethod", t, e);
  }
  n(eZt, "assertClassMethod");
  function tZt(t, e) {
    B("ObjectPattern", t, e);
  }
  n(tZt, "assertObjectPattern");
  function sZt(t, e) {
    B("SpreadElement", t, e);
  }
  n(sZt, "assertSpreadElement");
  function rZt(t, e) {
    B("Super", t, e);
  }
  n(rZt, "assertSuper");
  function iZt(t, e) {
    B("TaggedTemplateExpression", t, e);
  }
  n(iZt, "assertTaggedTemplateExpression");
  function nZt(t, e) {
    B("TemplateElement", t, e);
  }
  n(nZt, "assertTemplateElement");
  function aZt(t, e) {
    B("TemplateLiteral", t, e);
  }
  n(aZt, "assertTemplateLiteral");
  function oZt(t, e) {
    B("YieldExpression", t, e);
  }
  n(oZt, "assertYieldExpression");
  function lZt(t, e) {
    B("AwaitExpression", t, e);
  }
  n(lZt, "assertAwaitExpression");
  function uZt(t, e) {
    B("Import", t, e);
  }
  n(uZt, "assertImport");
  function cZt(t, e) {
    B("BigIntLiteral", t, e);
  }
  n(cZt, "assertBigIntLiteral");
  function pZt(t, e) {
    B("ExportNamespaceSpecifier", t, e);
  }
  n(pZt, "assertExportNamespaceSpecifier");
  function hZt(t, e) {
    B("OptionalMemberExpression", t, e);
  }
  n(hZt, "assertOptionalMemberExpression");
  function fZt(t, e) {
    B("OptionalCallExpression", t, e);
  }
  n(fZt, "assertOptionalCallExpression");
  function dZt(t, e) {
    B("ClassProperty", t, e);
  }
  n(dZt, "assertClassProperty");
  function mZt(t, e) {
    B("ClassAccessorProperty", t, e);
  }
  n(mZt, "assertClassAccessorProperty");
  function yZt(t, e) {
    B("ClassPrivateProperty", t, e);
  }
  n(yZt, "assertClassPrivateProperty");
  function gZt(t, e) {
    B("ClassPrivateMethod", t, e);
  }
  n(gZt, "assertClassPrivateMethod");
  function TZt(t, e) {
    B("PrivateName", t, e);
  }
  n(TZt, "assertPrivateName");
  function bZt(t, e) {
    B("StaticBlock", t, e);
  }
  n(bZt, "assertStaticBlock");
  function xZt(t, e) {
    B("AnyTypeAnnotation", t, e);
  }
  n(xZt, "assertAnyTypeAnnotation");
  function SZt(t, e) {
    B("ArrayTypeAnnotation", t, e);
  }
  n(SZt, "assertArrayTypeAnnotation");
  function PZt(t, e) {
    B("BooleanTypeAnnotation", t, e);
  }
  n(PZt, "assertBooleanTypeAnnotation");
  function EZt(t, e) {
    B("BooleanLiteralTypeAnnotation", t, e);
  }
  n(EZt, "assertBooleanLiteralTypeAnnotation");
  function AZt(t, e) {
    B("NullLiteralTypeAnnotation", t, e);
  }
  n(AZt, "assertNullLiteralTypeAnnotation");
  function vZt(t, e) {
    B("ClassImplements", t, e);
  }
  n(vZt, "assertClassImplements");
  function CZt(t, e) {
    B("DeclareClass", t, e);
  }
  n(CZt, "assertDeclareClass");
  function wZt(t, e) {
    B("DeclareFunction", t, e);
  }
  n(wZt, "assertDeclareFunction");
  function IZt(t, e) {
    B("DeclareInterface", t, e);
  }
  n(IZt, "assertDeclareInterface");
  function NZt(t, e) {
    B("DeclareModule", t, e);
  }
  n(NZt, "assertDeclareModule");
  function kZt(t, e) {
    B("DeclareModuleExports", t, e);
  }
  n(kZt, "assertDeclareModuleExports");
  function DZt(t, e) {
    B("DeclareTypeAlias", t, e);
  }
  n(DZt, "assertDeclareTypeAlias");
  function OZt(t, e) {
    B("DeclareOpaqueType", t, e);
  }
  n(OZt, "assertDeclareOpaqueType");
  function _Zt(t, e) {
    B("DeclareVariable", t, e);
  }
  n(_Zt, "assertDeclareVariable");
  function LZt(t, e) {
    B("DeclareExportDeclaration", t, e);
  }
  n(LZt, "assertDeclareExportDeclaration");
  function BZt(t, e) {
    B("DeclareExportAllDeclaration", t, e);
  }
  n(BZt, "assertDeclareExportAllDeclaration");
  function MZt(t, e) {
    B("DeclaredPredicate", t, e);
  }
  n(MZt, "assertDeclaredPredicate");
  function FZt(t, e) {
    B("ExistsTypeAnnotation", t, e);
  }
  n(FZt, "assertExistsTypeAnnotation");
  function jZt(t, e) {
    B("FunctionTypeAnnotation", t, e);
  }
  n(jZt, "assertFunctionTypeAnnotation");
  function RZt(t, e) {
    B("FunctionTypeParam", t, e);
  }
  n(RZt, "assertFunctionTypeParam");
  function qZt(t, e) {
    B("GenericTypeAnnotation", t, e);
  }
  n(qZt, "assertGenericTypeAnnotation");
  function UZt(t, e) {
    B("InferredPredicate", t, e);
  }
  n(UZt, "assertInferredPredicate");
  function KZt(t, e) {
    B("InterfaceExtends", t, e);
  }
  n(KZt, "assertInterfaceExtends");
  function VZt(t, e) {
    B("InterfaceDeclaration", t, e);
  }
  n(VZt, "assertInterfaceDeclaration");
  function WZt(t, e) {
    B("InterfaceTypeAnnotation", t, e);
  }
  n(WZt, "assertInterfaceTypeAnnotation");
  function $Zt(t, e) {
    B("IntersectionTypeAnnotation", t, e);
  }
  n($Zt, "assertIntersectionTypeAnnotation");
  function HZt(t, e) {
    B("MixedTypeAnnotation", t, e);
  }
  n(HZt, "assertMixedTypeAnnotation");
  function JZt(t, e) {
    B("EmptyTypeAnnotation", t, e);
  }
  n(JZt, "assertEmptyTypeAnnotation");
  function YZt(t, e) {
    B("NullableTypeAnnotation", t, e);
  }
  n(YZt, "assertNullableTypeAnnotation");
  function XZt(t, e) {
    B("NumberLiteralTypeAnnotation", t, e);
  }
  n(XZt, "assertNumberLiteralTypeAnnotation");
  function zZt(t, e) {
    B("NumberTypeAnnotation", t, e);
  }
  n(zZt, "assertNumberTypeAnnotation");
  function GZt(t, e) {
    B("ObjectTypeAnnotation", t, e);
  }
  n(GZt, "assertObjectTypeAnnotation");
  function QZt(t, e) {
    B("ObjectTypeInternalSlot", t, e);
  }
  n(QZt, "assertObjectTypeInternalSlot");
  function ZZt(t, e) {
    B("ObjectTypeCallProperty", t, e);
  }
  n(ZZt, "assertObjectTypeCallProperty");
  function ees(t, e) {
    B("ObjectTypeIndexer", t, e);
  }
  n(ees, "assertObjectTypeIndexer");
  function tes(t, e) {
    B("ObjectTypeProperty", t, e);
  }
  n(tes, "assertObjectTypeProperty");
  function ses(t, e) {
    B("ObjectTypeSpreadProperty", t, e);
  }
  n(ses, "assertObjectTypeSpreadProperty");
  function res(t, e) {
    B("OpaqueType", t, e);
  }
  n(res, "assertOpaqueType");
  function ies(t, e) {
    B("QualifiedTypeIdentifier", t, e);
  }
  n(ies, "assertQualifiedTypeIdentifier");
  function nes(t, e) {
    B("StringLiteralTypeAnnotation", t, e);
  }
  n(nes, "assertStringLiteralTypeAnnotation");
  function aes(t, e) {
    B("StringTypeAnnotation", t, e);
  }
  n(aes, "assertStringTypeAnnotation");
  function oes(t, e) {
    B("SymbolTypeAnnotation", t, e);
  }
  n(oes, "assertSymbolTypeAnnotation");
  function les(t, e) {
    B("ThisTypeAnnotation", t, e);
  }
  n(les, "assertThisTypeAnnotation");
  function ues(t, e) {
    B("TupleTypeAnnotation", t, e);
  }
  n(ues, "assertTupleTypeAnnotation");
  function ces(t, e) {
    B("TypeofTypeAnnotation", t, e);
  }
  n(ces, "assertTypeofTypeAnnotation");
  function pes(t, e) {
    B("TypeAlias", t, e);
  }
  n(pes, "assertTypeAlias");
  function hes(t, e) {
    B("TypeAnnotation", t, e);
  }
  n(hes, "assertTypeAnnotation");
  function fes(t, e) {
    B("TypeCastExpression", t, e);
  }
  n(fes, "assertTypeCastExpression");
  function des(t, e) {
    B("TypeParameter", t, e);
  }
  n(des, "assertTypeParameter");
  function mes(t, e) {
    B("TypeParameterDeclaration", t, e);
  }
  n(mes, "assertTypeParameterDeclaration");
  function yes(t, e) {
    B("TypeParameterInstantiation", t, e);
  }
  n(yes, "assertTypeParameterInstantiation");
  function ges(t, e) {
    B("UnionTypeAnnotation", t, e);
  }
  n(ges, "assertUnionTypeAnnotation");
  function Tes(t, e) {
    B("Variance", t, e);
  }
  n(Tes, "assertVariance");
  function bes(t, e) {
    B("VoidTypeAnnotation", t, e);
  }
  n(bes, "assertVoidTypeAnnotation");
  function xes(t, e) {
    B("EnumDeclaration", t, e);
  }
  n(xes, "assertEnumDeclaration");
  function Ses(t, e) {
    B("EnumBooleanBody", t, e);
  }
  n(Ses, "assertEnumBooleanBody");
  function Pes(t, e) {
    B("EnumNumberBody", t, e);
  }
  n(Pes, "assertEnumNumberBody");
  function Ees(t, e) {
    B("EnumStringBody", t, e);
  }
  n(Ees, "assertEnumStringBody");
  function Aes(t, e) {
    B("EnumSymbolBody", t, e);
  }
  n(Aes, "assertEnumSymbolBody");
  function ves(t, e) {
    B("EnumBooleanMember", t, e);
  }
  n(ves, "assertEnumBooleanMember");
  function Ces(t, e) {
    B("EnumNumberMember", t, e);
  }
  n(Ces, "assertEnumNumberMember");
  function wes(t, e) {
    B("EnumStringMember", t, e);
  }
  n(wes, "assertEnumStringMember");
  function Ies(t, e) {
    B("EnumDefaultedMember", t, e);
  }
  n(Ies, "assertEnumDefaultedMember");
  function Nes(t, e) {
    B("IndexedAccessType", t, e);
  }
  n(Nes, "assertIndexedAccessType");
  function kes(t, e) {
    B("OptionalIndexedAccessType", t, e);
  }
  n(kes, "assertOptionalIndexedAccessType");
  function Des(t, e) {
    B("JSXAttribute", t, e);
  }
  n(Des, "assertJSXAttribute");
  function Oes(t, e) {
    B("JSXClosingElement", t, e);
  }
  n(Oes, "assertJSXClosingElement");
  function _es(t, e) {
    B("JSXElement", t, e);
  }
  n(_es, "assertJSXElement");
  function Les(t, e) {
    B("JSXEmptyExpression", t, e);
  }
  n(Les, "assertJSXEmptyExpression");
  function Bes(t, e) {
    B("JSXExpressionContainer", t, e);
  }
  n(Bes, "assertJSXExpressionContainer");
  function Mes(t, e) {
    B("JSXSpreadChild", t, e);
  }
  n(Mes, "assertJSXSpreadChild");
  function Fes(t, e) {
    B("JSXIdentifier", t, e);
  }
  n(Fes, "assertJSXIdentifier");
  function jes(t, e) {
    B("JSXMemberExpression", t, e);
  }
  n(jes, "assertJSXMemberExpression");
  function Res(t, e) {
    B("JSXNamespacedName", t, e);
  }
  n(Res, "assertJSXNamespacedName");
  function qes(t, e) {
    B("JSXOpeningElement", t, e);
  }
  n(qes, "assertJSXOpeningElement");
  function Ues(t, e) {
    B("JSXSpreadAttribute", t, e);
  }
  n(Ues, "assertJSXSpreadAttribute");
  function Kes(t, e) {
    B("JSXText", t, e);
  }
  n(Kes, "assertJSXText");
  function Ves(t, e) {
    B("JSXFragment", t, e);
  }
  n(Ves, "assertJSXFragment");
  function Wes(t, e) {
    B("JSXOpeningFragment", t, e);
  }
  n(Wes, "assertJSXOpeningFragment");
  function $es(t, e) {
    B("JSXClosingFragment", t, e);
  }
  n($es, "assertJSXClosingFragment");
  function Hes(t, e) {
    B("Noop", t, e);
  }
  n(Hes, "assertNoop");
  function Jes(t, e) {
    B("Placeholder", t, e);
  }
  n(Jes, "assertPlaceholder");
  function Yes(t, e) {
    B("V8IntrinsicIdentifier", t, e);
  }
  n(Yes, "assertV8IntrinsicIdentifier");
  function Xes(t, e) {
    B("ArgumentPlaceholder", t, e);
  }
  n(Xes, "assertArgumentPlaceholder");
  function zes(t, e) {
    B("BindExpression", t, e);
  }
  n(zes, "assertBindExpression");
  function Ges(t, e) {
    B("ImportAttribute", t, e);
  }
  n(Ges, "assertImportAttribute");
  function Qes(t, e) {
    B("Decorator", t, e);
  }
  n(Qes, "assertDecorator");
  function Zes(t, e) {
    B("DoExpression", t, e);
  }
  n(Zes, "assertDoExpression");
  function ets(t, e) {
    B("ExportDefaultSpecifier", t, e);
  }
  n(ets, "assertExportDefaultSpecifier");
  function tts(t, e) {
    B("RecordExpression", t, e);
  }
  n(tts, "assertRecordExpression");
  function sts(t, e) {
    B("TupleExpression", t, e);
  }
  n(sts, "assertTupleExpression");
  function rts(t, e) {
    B("DecimalLiteral", t, e);
  }
  n(rts, "assertDecimalLiteral");
  function its(t, e) {
    B("ModuleExpression", t, e);
  }
  n(its, "assertModuleExpression");
  function nts(t, e) {
    B("TopicReference", t, e);
  }
  n(nts, "assertTopicReference");
  function ats(t, e) {
    B("PipelineTopicExpression", t, e);
  }
  n(ats, "assertPipelineTopicExpression");
  function ots(t, e) {
    B("PipelineBareFunction", t, e);
  }
  n(ots, "assertPipelineBareFunction");
  function lts(t, e) {
    B("PipelinePrimaryTopicReference", t, e);
  }
  n(lts, "assertPipelinePrimaryTopicReference");
  function uts(t, e) {
    B("TSParameterProperty", t, e);
  }
  n(uts, "assertTSParameterProperty");
  function cts(t, e) {
    B("TSDeclareFunction", t, e);
  }
  n(cts, "assertTSDeclareFunction");
  function pts(t, e) {
    B("TSDeclareMethod", t, e);
  }
  n(pts, "assertTSDeclareMethod");
  function hts(t, e) {
    B("TSQualifiedName", t, e);
  }
  n(hts, "assertTSQualifiedName");
  function fts(t, e) {
    B("TSCallSignatureDeclaration", t, e);
  }
  n(fts, "assertTSCallSignatureDeclaration");
  function dts(t, e) {
    B("TSConstructSignatureDeclaration", t, e);
  }
  n(dts, "assertTSConstructSignatureDeclaration");
  function mts(t, e) {
    B("TSPropertySignature", t, e);
  }
  n(mts, "assertTSPropertySignature");
  function yts(t, e) {
    B("TSMethodSignature", t, e);
  }
  n(yts, "assertTSMethodSignature");
  function gts(t, e) {
    B("TSIndexSignature", t, e);
  }
  n(gts, "assertTSIndexSignature");
  function Tts(t, e) {
    B("TSAnyKeyword", t, e);
  }
  n(Tts, "assertTSAnyKeyword");
  function bts(t, e) {
    B("TSBooleanKeyword", t, e);
  }
  n(bts, "assertTSBooleanKeyword");
  function xts(t, e) {
    B("TSBigIntKeyword", t, e);
  }
  n(xts, "assertTSBigIntKeyword");
  function Sts(t, e) {
    B("TSIntrinsicKeyword", t, e);
  }
  n(Sts, "assertTSIntrinsicKeyword");
  function Pts(t, e) {
    B("TSNeverKeyword", t, e);
  }
  n(Pts, "assertTSNeverKeyword");
  function Ets(t, e) {
    B("TSNullKeyword", t, e);
  }
  n(Ets, "assertTSNullKeyword");
  function Ats(t, e) {
    B("TSNumberKeyword", t, e);
  }
  n(Ats, "assertTSNumberKeyword");
  function vts(t, e) {
    B("TSObjectKeyword", t, e);
  }
  n(vts, "assertTSObjectKeyword");
  function Cts(t, e) {
    B("TSStringKeyword", t, e);
  }
  n(Cts, "assertTSStringKeyword");
  function wts(t, e) {
    B("TSSymbolKeyword", t, e);
  }
  n(wts, "assertTSSymbolKeyword");
  function Its(t, e) {
    B("TSUndefinedKeyword", t, e);
  }
  n(Its, "assertTSUndefinedKeyword");
  function Nts(t, e) {
    B("TSUnknownKeyword", t, e);
  }
  n(Nts, "assertTSUnknownKeyword");
  function kts(t, e) {
    B("TSVoidKeyword", t, e);
  }
  n(kts, "assertTSVoidKeyword");
  function Dts(t, e) {
    B("TSThisType", t, e);
  }
  n(Dts, "assertTSThisType");
  function Ots(t, e) {
    B("TSFunctionType", t, e);
  }
  n(Ots, "assertTSFunctionType");
  function _ts(t, e) {
    B("TSConstructorType", t, e);
  }
  n(_ts, "assertTSConstructorType");
  function Lts(t, e) {
    B("TSTypeReference", t, e);
  }
  n(Lts, "assertTSTypeReference");
  function Bts(t, e) {
    B("TSTypePredicate", t, e);
  }
  n(Bts, "assertTSTypePredicate");
  function Mts(t, e) {
    B("TSTypeQuery", t, e);
  }
  n(Mts, "assertTSTypeQuery");
  function Fts(t, e) {
    B("TSTypeLiteral", t, e);
  }
  n(Fts, "assertTSTypeLiteral");
  function jts(t, e) {
    B("TSArrayType", t, e);
  }
  n(jts, "assertTSArrayType");
  function Rts(t, e) {
    B("TSTupleType", t, e);
  }
  n(Rts, "assertTSTupleType");
  function qts(t, e) {
    B("TSOptionalType", t, e);
  }
  n(qts, "assertTSOptionalType");
  function Uts(t, e) {
    B("TSRestType", t, e);
  }
  n(Uts, "assertTSRestType");
  function Kts(t, e) {
    B("TSNamedTupleMember", t, e);
  }
  n(Kts, "assertTSNamedTupleMember");
  function Vts(t, e) {
    B("TSUnionType", t, e);
  }
  n(Vts, "assertTSUnionType");
  function Wts(t, e) {
    B("TSIntersectionType", t, e);
  }
  n(Wts, "assertTSIntersectionType");
  function $ts(t, e) {
    B("TSConditionalType", t, e);
  }
  n($ts, "assertTSConditionalType");
  function Hts(t, e) {
    B("TSInferType", t, e);
  }
  n(Hts, "assertTSInferType");
  function Jts(t, e) {
    B("TSParenthesizedType", t, e);
  }
  n(Jts, "assertTSParenthesizedType");
  function Yts(t, e) {
    B("TSTypeOperator", t, e);
  }
  n(Yts, "assertTSTypeOperator");
  function Xts(t, e) {
    B("TSIndexedAccessType", t, e);
  }
  n(Xts, "assertTSIndexedAccessType");
  function zts(t, e) {
    B("TSMappedType", t, e);
  }
  n(zts, "assertTSMappedType");
  function Gts(t, e) {
    B("TSLiteralType", t, e);
  }
  n(Gts, "assertTSLiteralType");
  function Qts(t, e) {
    B("TSExpressionWithTypeArguments", t, e);
  }
  n(Qts, "assertTSExpressionWithTypeArguments");
  function Zts(t, e) {
    B("TSInterfaceDeclaration", t, e);
  }
  n(Zts, "assertTSInterfaceDeclaration");
  function ess(t, e) {
    B("TSInterfaceBody", t, e);
  }
  n(ess, "assertTSInterfaceBody");
  function tss(t, e) {
    B("TSTypeAliasDeclaration", t, e);
  }
  n(tss, "assertTSTypeAliasDeclaration");
  function sss(t, e) {
    B("TSInstantiationExpression", t, e);
  }
  n(sss, "assertTSInstantiationExpression");
  function rss(t, e) {
    B("TSAsExpression", t, e);
  }
  n(rss, "assertTSAsExpression");
  function iss(t, e) {
    B("TSSatisfiesExpression", t, e);
  }
  n(iss, "assertTSSatisfiesExpression");
  function nss(t, e) {
    B("TSTypeAssertion", t, e);
  }
  n(nss, "assertTSTypeAssertion");
  function ass(t, e) {
    B("TSEnumBody", t, e);
  }
  n(ass, "assertTSEnumBody");
  function oss(t, e) {
    B("TSEnumDeclaration", t, e);
  }
  n(oss, "assertTSEnumDeclaration");
  function lss(t, e) {
    B("TSEnumMember", t, e);
  }
  n(lss, "assertTSEnumMember");
  function uss(t, e) {
    B("TSModuleDeclaration", t, e);
  }
  n(uss, "assertTSModuleDeclaration");
  function css(t, e) {
    B("TSModuleBlock", t, e);
  }
  n(css, "assertTSModuleBlock");
  function pss(t, e) {
    B("TSImportType", t, e);
  }
  n(pss, "assertTSImportType");
  function hss(t, e) {
    B("TSImportEqualsDeclaration", t, e);
  }
  n(hss, "assertTSImportEqualsDeclaration");
  function fss(t, e) {
    B("TSExternalModuleReference", t, e);
  }
  n(fss, "assertTSExternalModuleReference");
  function dss(t, e) {
    B("TSNonNullExpression", t, e);
  }
  n(dss, "assertTSNonNullExpression");
  function mss(t, e) {
    B("TSExportAssignment", t, e);
  }
  n(mss, "assertTSExportAssignment");
  function yss(t, e) {
    B("TSNamespaceExportDeclaration", t, e);
  }
  n(yss, "assertTSNamespaceExportDeclaration");
  function gss(t, e) {
    B("TSTypeAnnotation", t, e);
  }
  n(gss, "assertTSTypeAnnotation");
  function Tss(t, e) {
    B("TSTypeParameterInstantiation", t, e);
  }
  n(Tss, "assertTSTypeParameterInstantiation");
  function bss(t, e) {
    B("TSTypeParameterDeclaration", t, e);
  }
  n(bss, "assertTSTypeParameterDeclaration");
  function xss(t, e) {
    B("TSTypeParameter", t, e);
  }
  n(xss, "assertTSTypeParameter");
  function Sss(t, e) {
    B("Standardized", t, e);
  }
  n(Sss, "assertStandardized");
  function Pss(t, e) {
    B("Expression", t, e);
  }
  n(Pss, "assertExpression");
  function Ess(t, e) {
    B("Binary", t, e);
  }
  n(Ess, "assertBinary");
  function Ass(t, e) {
    B("Scopable", t, e);
  }
  n(Ass, "assertScopable");
  function vss(t, e) {
    B("BlockParent", t, e);
  }
  n(vss, "assertBlockParent");
  function Css(t, e) {
    B("Block", t, e);
  }
  n(Css, "assertBlock");
  function wss(t, e) {
    B("Statement", t, e);
  }
  n(wss, "assertStatement");
  function Iss(t, e) {
    B("Terminatorless", t, e);
  }
  n(Iss, "assertTerminatorless");
  function Nss(t, e) {
    B("CompletionStatement", t, e);
  }
  n(Nss, "assertCompletionStatement");
  function kss(t, e) {
    B("Conditional", t, e);
  }
  n(kss, "assertConditional");
  function Dss(t, e) {
    B("Loop", t, e);
  }
  n(Dss, "assertLoop");
  function Oss(t, e) {
    B("While", t, e);
  }
  n(Oss, "assertWhile");
  function _ss(t, e) {
    B("ExpressionWrapper", t, e);
  }
  n(_ss, "assertExpressionWrapper");
  function Lss(t, e) {
    B("For", t, e);
  }
  n(Lss, "assertFor");
  function Bss(t, e) {
    B("ForXStatement", t, e);
  }
  n(Bss, "assertForXStatement");
  function Mss(t, e) {
    B("Function", t, e);
  }
  n(Mss, "assertFunction");
  function Fss(t, e) {
    B("FunctionParent", t, e);
  }
  n(Fss, "assertFunctionParent");
  function jss(t, e) {
    B("Pureish", t, e);
  }
  n(jss, "assertPureish");
  function Rss(t, e) {
    B("Declaration", t, e);
  }
  n(Rss, "assertDeclaration");
  function qss(t, e) {
    B("PatternLike", t, e);
  }
  n(qss, "assertPatternLike");
  function Uss(t, e) {
    B("LVal", t, e);
  }
  n(Uss, "assertLVal");
  function Kss(t, e) {
    B("TSEntityName", t, e);
  }
  n(Kss, "assertTSEntityName");
  function Vss(t, e) {
    B("Literal", t, e);
  }
  n(Vss, "assertLiteral");
  function Wss(t, e) {
    B("Immutable", t, e);
  }
  n(Wss, "assertImmutable");
  function $ss(t, e) {
    B("UserWhitespacable", t, e);
  }
  n($ss, "assertUserWhitespacable");
  function Hss(t, e) {
    B("Method", t, e);
  }
  n(Hss, "assertMethod");
  function Jss(t, e) {
    B("ObjectMember", t, e);
  }
  n(Jss, "assertObjectMember");
  function Yss(t, e) {
    B("Property", t, e);
  }
  n(Yss, "assertProperty");
  function Xss(t, e) {
    B("UnaryLike", t, e);
  }
  n(Xss, "assertUnaryLike");
  function zss(t, e) {
    B("Pattern", t, e);
  }
  n(zss, "assertPattern");
  function Gss(t, e) {
    B("Class", t, e);
  }
  n(Gss, "assertClass");
  function Qss(t, e) {
    B("ImportOrExportDeclaration", t, e);
  }
  n(Qss, "assertImportOrExportDeclaration");
  function Zss(t, e) {
    B("ExportDeclaration", t, e);
  }
  n(Zss, "assertExportDeclaration");
  function ers(t, e) {
    B("ModuleSpecifier", t, e);
  }
  n(ers, "assertModuleSpecifier");
  function trs(t, e) {
    B("Accessor", t, e);
  }
  n(trs, "assertAccessor");
  function srs(t, e) {
    B("Private", t, e);
  }
  n(srs, "assertPrivate");
  function rrs(t, e) {
    B("Flow", t, e);
  }
  n(rrs, "assertFlow");
  function irs(t, e) {
    B("FlowType", t, e);
  }
  n(irs, "assertFlowType");
  function nrs(t, e) {
    B("FlowBaseAnnotation", t, e);
  }
  n(nrs, "assertFlowBaseAnnotation");
  function ars(t, e) {
    B("FlowDeclaration", t, e);
  }
  n(ars, "assertFlowDeclaration");
  function ors(t, e) {
    B("FlowPredicate", t, e);
  }
  n(ors, "assertFlowPredicate");
  function lrs(t, e) {
    B("EnumBody", t, e);
  }
  n(lrs, "assertEnumBody");
  function urs(t, e) {
    B("EnumMember", t, e);
  }
  n(urs, "assertEnumMember");
  function crs(t, e) {
    B("JSX", t, e);
  }
  n(crs, "assertJSX");
  function prs(t, e) {
    B("Miscellaneous", t, e);
  }
  n(prs, "assertMiscellaneous");
  function hrs(t, e) {
    B("TypeScript", t, e);
  }
  n(hrs, "assertTypeScript");
  function frs(t, e) {
    B("TSTypeElement", t, e);
  }
  n(frs, "assertTSTypeElement");
  function drs(t, e) {
    B("TSType", t, e);
  }
  n(drs, "assertTSType");
  function mrs(t, e) {
    B("TSBaseType", t, e);
  }
  n(mrs, "assertTSBaseType");
  function yrs(t, e) {
    (0, kT.default)("assertNumberLiteral", "assertNumericLiteral"), B("NumberLiteral", t, e);
  }
  n(yrs, "assertNumberLiteral");
  function grs(t, e) {
    (0, kT.default)("assertRegexLiteral", "assertRegExpLiteral"), B("RegexLiteral", t, e);
  }
  n(grs, "assertRegexLiteral");
  function Trs(t, e) {
    (0, kT.default)("assertRestProperty", "assertRestElement"), B("RestProperty", t, e);
  }
  n(Trs, "assertRestProperty");
  function brs(t, e) {
    (0, kT.default)("assertSpreadProperty", "assertSpreadElement"), B("SpreadProperty", t, e);
  }
  n(brs, "assertSpreadProperty");
  function xrs(t, e) {
    (0, kT.default)("assertModuleDeclaration", "assertImportOrExportDeclaration"), B("ModuleDeclaration", t, e);
  }
  n(xrs, "assertModuleDeclaration");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js
var vpe = g((K1) => {
  "use strict";
  Object.defineProperty(K1, "__esModule", {
    value: !0
  });
  K1.default = void 0;
  var qo = Vn(), uZs = K1.default = Srs;
  function Srs(t) {
    switch (t) {
      case "string":
        return (0, qo.stringTypeAnnotation)();
      case "number":
        return (0, qo.numberTypeAnnotation)();
      case "undefined":
        return (0, qo.voidTypeAnnotation)();
      case "boolean":
        return (0, qo.booleanTypeAnnotation)();
      case "function":
        return (0, qo.genericTypeAnnotation)((0, qo.identifier)("Function"));
      case "object":
        return (0, qo.genericTypeAnnotation)((0, qo.identifier)("Object"));
      case "symbol":
        return (0, qo.genericTypeAnnotation)((0, qo.identifier)("Symbol"));
      case "bigint":
        return (0, qo.anyTypeAnnotation)();
    }
    throw new Error("Invalid typeof value: " + t);
  }
  n(Srs, "createTypeAnnotationBasedOnTypeof");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js
var zj = g((Xj) => {
  "use strict";
  Object.defineProperty(Xj, "__esModule", {
    value: !0
  });
  Xj.default = wpe;
  var DT = di();
  function Cpe(t) {
    return (0, DT.isIdentifier)(t) ? t.name : `${t.id.name}.${Cpe(t.qualification)}`;
  }
  n(Cpe, "getQualifiedName");
  function wpe(t) {
    let e = Array.from(t), s = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = [];
    for (let o = 0; o < e.length; o++) {
      let l = e[o];
      if (l && !a.includes(l)) {
        if ((0, DT.isAnyTypeAnnotation)(l))
          return [l];
        if ((0, DT.isFlowBaseAnnotation)(l)) {
          r.set(l.type, l);
          continue;
        }
        if ((0, DT.isUnionTypeAnnotation)(l)) {
          i.has(l.types) || (e.push(...l.types), i.add(l.types));
          continue;
        }
        if ((0, DT.isGenericTypeAnnotation)(l)) {
          let u = Cpe(l.id);
          if (s.has(u)) {
            let c = s.get(u);
            c.typeParameters ? l.typeParameters && (c.typeParameters.params.push(...l.typeParameters.params), c.typeParameters.params = wpe(
            c.typeParameters.params)) : c = l.typeParameters;
          } else
            s.set(u, l);
          continue;
        }
        a.push(l);
      }
    }
    for (let [, o] of r)
      a.push(o);
    for (let [, o] of s)
      a.push(o);
    return a;
  }
  n(wpe, "removeTypeDuplicates");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js
var Ipe = g((Gj) => {
  "use strict";
  Object.defineProperty(Gj, "__esModule", {
    value: !0
  });
  Gj.default = Ars;
  var Prs = Vn(), Ers = zj();
  function Ars(t) {
    let e = (0, Ers.default)(t);
    return e.length === 1 ? e[0] : (0, Prs.unionTypeAnnotation)(e);
  }
  n(Ars, "createFlowUnionType");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js
var Dpe = g((Qj) => {
  "use strict";
  Object.defineProperty(Qj, "__esModule", {
    value: !0
  });
  Qj.default = kpe;
  var OT = di();
  function Npe(t) {
    return (0, OT.isIdentifier)(t) ? t.name : `${t.right.name}.${Npe(t.left)}`;
  }
  n(Npe, "getQualifiedName");
  function kpe(t) {
    let e = Array.from(t), s = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = [];
    for (let o = 0; o < e.length; o++) {
      let l = e[o];
      if (!l || a.includes(l))
        continue;
      if ((0, OT.isTSAnyKeyword)(l))
        return [l];
      if ((0, OT.isTSBaseType)(l)) {
        r.set(l.type, l);
        continue;
      }
      if ((0, OT.isTSUnionType)(l)) {
        i.has(l.types) || (e.push(...l.types), i.add(l.types));
        continue;
      }
      let u = "typeParameters";
      if ((0, OT.isTSTypeReference)(l) && l[u]) {
        let c = l[u], p = Npe(l.typeName);
        if (s.has(p)) {
          let h = s.get(p), f = h[u];
          f ? (f.params.push(...c.params), f.params = kpe(f.params)) : h = c;
        } else
          s.set(p, l);
        continue;
      }
      a.push(l);
    }
    for (let [, o] of r)
      a.push(o);
    for (let [, o] of s)
      a.push(o);
    return a;
  }
  n(kpe, "removeTypeDuplicates");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js
var Ope = g((Zj) => {
  "use strict";
  Object.defineProperty(Zj, "__esModule", {
    value: !0
  });
  Zj.default = Irs;
  var vrs = Vn(), Crs = Dpe(), wrs = di();
  function Irs(t) {
    let e = t.map((r) => (0, wrs.isTSTypeAnnotation)(r) ? r.typeAnnotation : r), s = (0, Crs.default)(e);
    return s.length === 1 ? s[0] : (0, vrs.tsUnionType)(s);
  }
  n(Irs, "createTSUnionType");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/uppercase.js
var _pe = g((H) => {
  "use strict";
  Object.defineProperty(H, "__esModule", {
    value: !0
  });
  Object.defineProperty(H, "AnyTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.anyTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "ArgumentPlaceholder", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.argumentPlaceholder;
    }, "get")
  });
  Object.defineProperty(H, "ArrayExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.arrayExpression;
    }, "get")
  });
  Object.defineProperty(H, "ArrayPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.arrayPattern;
    }, "get")
  });
  Object.defineProperty(H, "ArrayTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.arrayTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "ArrowFunctionExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.arrowFunctionExpression;
    }, "get")
  });
  Object.defineProperty(H, "AssignmentExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.assignmentExpression;
    }, "get")
  });
  Object.defineProperty(H, "AssignmentPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.assignmentPattern;
    }, "get")
  });
  Object.defineProperty(H, "AwaitExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.awaitExpression;
    }, "get")
  });
  Object.defineProperty(H, "BigIntLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.bigIntLiteral;
    }, "get")
  });
  Object.defineProperty(H, "BinaryExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.binaryExpression;
    }, "get")
  });
  Object.defineProperty(H, "BindExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.bindExpression;
    }, "get")
  });
  Object.defineProperty(H, "BlockStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.blockStatement;
    }, "get")
  });
  Object.defineProperty(H, "BooleanLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.booleanLiteral;
    }, "get")
  });
  Object.defineProperty(H, "BooleanLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.booleanLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "BooleanTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.booleanTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "BreakStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.breakStatement;
    }, "get")
  });
  Object.defineProperty(H, "CallExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.callExpression;
    }, "get")
  });
  Object.defineProperty(H, "CatchClause", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.catchClause;
    }, "get")
  });
  Object.defineProperty(H, "ClassAccessorProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classAccessorProperty;
    }, "get")
  });
  Object.defineProperty(H, "ClassBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classBody;
    }, "get")
  });
  Object.defineProperty(H, "ClassDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "ClassExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classExpression;
    }, "get")
  });
  Object.defineProperty(H, "ClassImplements", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classImplements;
    }, "get")
  });
  Object.defineProperty(H, "ClassMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classMethod;
    }, "get")
  });
  Object.defineProperty(H, "ClassPrivateMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classPrivateMethod;
    }, "get")
  });
  Object.defineProperty(H, "ClassPrivateProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classPrivateProperty;
    }, "get")
  });
  Object.defineProperty(H, "ClassProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.classProperty;
    }, "get")
  });
  Object.defineProperty(H, "ConditionalExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.conditionalExpression;
    }, "get")
  });
  Object.defineProperty(H, "ContinueStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.continueStatement;
    }, "get")
  });
  Object.defineProperty(H, "DebuggerStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.debuggerStatement;
    }, "get")
  });
  Object.defineProperty(H, "DecimalLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.decimalLiteral;
    }, "get")
  });
  Object.defineProperty(H, "DeclareClass", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareClass;
    }, "get")
  });
  Object.defineProperty(H, "DeclareExportAllDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareExportAllDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "DeclareExportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareExportDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "DeclareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareFunction;
    }, "get")
  });
  Object.defineProperty(H, "DeclareInterface", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareInterface;
    }, "get")
  });
  Object.defineProperty(H, "DeclareModule", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareModule;
    }, "get")
  });
  Object.defineProperty(H, "DeclareModuleExports", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareModuleExports;
    }, "get")
  });
  Object.defineProperty(H, "DeclareOpaqueType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareOpaqueType;
    }, "get")
  });
  Object.defineProperty(H, "DeclareTypeAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareTypeAlias;
    }, "get")
  });
  Object.defineProperty(H, "DeclareVariable", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declareVariable;
    }, "get")
  });
  Object.defineProperty(H, "DeclaredPredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.declaredPredicate;
    }, "get")
  });
  Object.defineProperty(H, "Decorator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.decorator;
    }, "get")
  });
  Object.defineProperty(H, "Directive", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.directive;
    }, "get")
  });
  Object.defineProperty(H, "DirectiveLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.directiveLiteral;
    }, "get")
  });
  Object.defineProperty(H, "DoExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.doExpression;
    }, "get")
  });
  Object.defineProperty(H, "DoWhileStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.doWhileStatement;
    }, "get")
  });
  Object.defineProperty(H, "EmptyStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.emptyStatement;
    }, "get")
  });
  Object.defineProperty(H, "EmptyTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.emptyTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "EnumBooleanBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumBooleanBody;
    }, "get")
  });
  Object.defineProperty(H, "EnumBooleanMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumBooleanMember;
    }, "get")
  });
  Object.defineProperty(H, "EnumDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "EnumDefaultedMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumDefaultedMember;
    }, "get")
  });
  Object.defineProperty(H, "EnumNumberBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumNumberBody;
    }, "get")
  });
  Object.defineProperty(H, "EnumNumberMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumNumberMember;
    }, "get")
  });
  Object.defineProperty(H, "EnumStringBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumStringBody;
    }, "get")
  });
  Object.defineProperty(H, "EnumStringMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumStringMember;
    }, "get")
  });
  Object.defineProperty(H, "EnumSymbolBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.enumSymbolBody;
    }, "get")
  });
  Object.defineProperty(H, "ExistsTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.existsTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "ExportAllDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.exportAllDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "ExportDefaultDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.exportDefaultDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "ExportDefaultSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.exportDefaultSpecifier;
    }, "get")
  });
  Object.defineProperty(H, "ExportNamedDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.exportNamedDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "ExportNamespaceSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.exportNamespaceSpecifier;
    }, "get")
  });
  Object.defineProperty(H, "ExportSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.exportSpecifier;
    }, "get")
  });
  Object.defineProperty(H, "ExpressionStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.expressionStatement;
    }, "get")
  });
  Object.defineProperty(H, "File", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.file;
    }, "get")
  });
  Object.defineProperty(H, "ForInStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.forInStatement;
    }, "get")
  });
  Object.defineProperty(H, "ForOfStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.forOfStatement;
    }, "get")
  });
  Object.defineProperty(H, "ForStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.forStatement;
    }, "get")
  });
  Object.defineProperty(H, "FunctionDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.functionDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "FunctionExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.functionExpression;
    }, "get")
  });
  Object.defineProperty(H, "FunctionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.functionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "FunctionTypeParam", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.functionTypeParam;
    }, "get")
  });
  Object.defineProperty(H, "GenericTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.genericTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.identifier;
    }, "get")
  });
  Object.defineProperty(H, "IfStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.ifStatement;
    }, "get")
  });
  Object.defineProperty(H, "Import", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.import;
    }, "get")
  });
  Object.defineProperty(H, "ImportAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.importAttribute;
    }, "get")
  });
  Object.defineProperty(H, "ImportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.importDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "ImportDefaultSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.importDefaultSpecifier;
    }, "get")
  });
  Object.defineProperty(H, "ImportExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.importExpression;
    }, "get")
  });
  Object.defineProperty(H, "ImportNamespaceSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.importNamespaceSpecifier;
    }, "get")
  });
  Object.defineProperty(H, "ImportSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.importSpecifier;
    }, "get")
  });
  Object.defineProperty(H, "IndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.indexedAccessType;
    }, "get")
  });
  Object.defineProperty(H, "InferredPredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.inferredPredicate;
    }, "get")
  });
  Object.defineProperty(H, "InterfaceDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.interfaceDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "InterfaceExtends", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.interfaceExtends;
    }, "get")
  });
  Object.defineProperty(H, "InterfaceTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.interfaceTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "InterpreterDirective", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.interpreterDirective;
    }, "get")
  });
  Object.defineProperty(H, "IntersectionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.intersectionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "JSXAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxAttribute;
    }, "get")
  });
  Object.defineProperty(H, "JSXClosingElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxClosingElement;
    }, "get")
  });
  Object.defineProperty(H, "JSXClosingFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxClosingFragment;
    }, "get")
  });
  Object.defineProperty(H, "JSXElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxElement;
    }, "get")
  });
  Object.defineProperty(H, "JSXEmptyExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxEmptyExpression;
    }, "get")
  });
  Object.defineProperty(H, "JSXExpressionContainer", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxExpressionContainer;
    }, "get")
  });
  Object.defineProperty(H, "JSXFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxFragment;
    }, "get")
  });
  Object.defineProperty(H, "JSXIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxIdentifier;
    }, "get")
  });
  Object.defineProperty(H, "JSXMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxMemberExpression;
    }, "get")
  });
  Object.defineProperty(H, "JSXNamespacedName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxNamespacedName;
    }, "get")
  });
  Object.defineProperty(H, "JSXOpeningElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxOpeningElement;
    }, "get")
  });
  Object.defineProperty(H, "JSXOpeningFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxOpeningFragment;
    }, "get")
  });
  Object.defineProperty(H, "JSXSpreadAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxSpreadAttribute;
    }, "get")
  });
  Object.defineProperty(H, "JSXSpreadChild", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxSpreadChild;
    }, "get")
  });
  Object.defineProperty(H, "JSXText", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.jsxText;
    }, "get")
  });
  Object.defineProperty(H, "LabeledStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.labeledStatement;
    }, "get")
  });
  Object.defineProperty(H, "LogicalExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.logicalExpression;
    }, "get")
  });
  Object.defineProperty(H, "MemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.memberExpression;
    }, "get")
  });
  Object.defineProperty(H, "MetaProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.metaProperty;
    }, "get")
  });
  Object.defineProperty(H, "MixedTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.mixedTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "ModuleExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.moduleExpression;
    }, "get")
  });
  Object.defineProperty(H, "NewExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.newExpression;
    }, "get")
  });
  Object.defineProperty(H, "Noop", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.noop;
    }, "get")
  });
  Object.defineProperty(H, "NullLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.nullLiteral;
    }, "get")
  });
  Object.defineProperty(H, "NullLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.nullLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "NullableTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.nullableTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "NumberLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.numberLiteral;
    }, "get")
  });
  Object.defineProperty(H, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.numberLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "NumberTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.numberTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "NumericLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.numericLiteral;
    }, "get")
  });
  Object.defineProperty(H, "ObjectExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectExpression;
    }, "get")
  });
  Object.defineProperty(H, "ObjectMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectMethod;
    }, "get")
  });
  Object.defineProperty(H, "ObjectPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectPattern;
    }, "get")
  });
  Object.defineProperty(H, "ObjectProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectProperty;
    }, "get")
  });
  Object.defineProperty(H, "ObjectTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "ObjectTypeCallProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectTypeCallProperty;
    }, "get")
  });
  Object.defineProperty(H, "ObjectTypeIndexer", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectTypeIndexer;
    }, "get")
  });
  Object.defineProperty(H, "ObjectTypeInternalSlot", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectTypeInternalSlot;
    }, "get")
  });
  Object.defineProperty(H, "ObjectTypeProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectTypeProperty;
    }, "get")
  });
  Object.defineProperty(H, "ObjectTypeSpreadProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.objectTypeSpreadProperty;
    }, "get")
  });
  Object.defineProperty(H, "OpaqueType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.opaqueType;
    }, "get")
  });
  Object.defineProperty(H, "OptionalCallExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.optionalCallExpression;
    }, "get")
  });
  Object.defineProperty(H, "OptionalIndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.optionalIndexedAccessType;
    }, "get")
  });
  Object.defineProperty(H, "OptionalMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.optionalMemberExpression;
    }, "get")
  });
  Object.defineProperty(H, "ParenthesizedExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.parenthesizedExpression;
    }, "get")
  });
  Object.defineProperty(H, "PipelineBareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.pipelineBareFunction;
    }, "get")
  });
  Object.defineProperty(H, "PipelinePrimaryTopicReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.pipelinePrimaryTopicReference;
    }, "get")
  });
  Object.defineProperty(H, "PipelineTopicExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.pipelineTopicExpression;
    }, "get")
  });
  Object.defineProperty(H, "Placeholder", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.placeholder;
    }, "get")
  });
  Object.defineProperty(H, "PrivateName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.privateName;
    }, "get")
  });
  Object.defineProperty(H, "Program", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.program;
    }, "get")
  });
  Object.defineProperty(H, "QualifiedTypeIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.qualifiedTypeIdentifier;
    }, "get")
  });
  Object.defineProperty(H, "RecordExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.recordExpression;
    }, "get")
  });
  Object.defineProperty(H, "RegExpLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.regExpLiteral;
    }, "get")
  });
  Object.defineProperty(H, "RegexLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.regexLiteral;
    }, "get")
  });
  Object.defineProperty(H, "RestElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.restElement;
    }, "get")
  });
  Object.defineProperty(H, "RestProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.restProperty;
    }, "get")
  });
  Object.defineProperty(H, "ReturnStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.returnStatement;
    }, "get")
  });
  Object.defineProperty(H, "SequenceExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.sequenceExpression;
    }, "get")
  });
  Object.defineProperty(H, "SpreadElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.spreadElement;
    }, "get")
  });
  Object.defineProperty(H, "SpreadProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.spreadProperty;
    }, "get")
  });
  Object.defineProperty(H, "StaticBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.staticBlock;
    }, "get")
  });
  Object.defineProperty(H, "StringLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.stringLiteral;
    }, "get")
  });
  Object.defineProperty(H, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.stringLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "StringTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.stringTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "Super", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.super;
    }, "get")
  });
  Object.defineProperty(H, "SwitchCase", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.switchCase;
    }, "get")
  });
  Object.defineProperty(H, "SwitchStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.switchStatement;
    }, "get")
  });
  Object.defineProperty(H, "SymbolTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.symbolTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "TSAnyKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsAnyKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSArrayType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsArrayType;
    }, "get")
  });
  Object.defineProperty(H, "TSAsExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsAsExpression;
    }, "get")
  });
  Object.defineProperty(H, "TSBigIntKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsBigIntKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSBooleanKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsBooleanKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSCallSignatureDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsCallSignatureDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSConditionalType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsConditionalType;
    }, "get")
  });
  Object.defineProperty(H, "TSConstructSignatureDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsConstructSignatureDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSConstructorType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsConstructorType;
    }, "get")
  });
  Object.defineProperty(H, "TSDeclareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsDeclareFunction;
    }, "get")
  });
  Object.defineProperty(H, "TSDeclareMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsDeclareMethod;
    }, "get")
  });
  Object.defineProperty(H, "TSEnumBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsEnumBody;
    }, "get")
  });
  Object.defineProperty(H, "TSEnumDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsEnumDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSEnumMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsEnumMember;
    }, "get")
  });
  Object.defineProperty(H, "TSExportAssignment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsExportAssignment;
    }, "get")
  });
  Object.defineProperty(H, "TSExpressionWithTypeArguments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsExpressionWithTypeArguments;
    }, "get")
  });
  Object.defineProperty(H, "TSExternalModuleReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsExternalModuleReference;
    }, "get")
  });
  Object.defineProperty(H, "TSFunctionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsFunctionType;
    }, "get")
  });
  Object.defineProperty(H, "TSImportEqualsDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsImportEqualsDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSImportType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsImportType;
    }, "get")
  });
  Object.defineProperty(H, "TSIndexSignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsIndexSignature;
    }, "get")
  });
  Object.defineProperty(H, "TSIndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsIndexedAccessType;
    }, "get")
  });
  Object.defineProperty(H, "TSInferType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsInferType;
    }, "get")
  });
  Object.defineProperty(H, "TSInstantiationExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsInstantiationExpression;
    }, "get")
  });
  Object.defineProperty(H, "TSInterfaceBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsInterfaceBody;
    }, "get")
  });
  Object.defineProperty(H, "TSInterfaceDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsInterfaceDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSIntersectionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsIntersectionType;
    }, "get")
  });
  Object.defineProperty(H, "TSIntrinsicKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsIntrinsicKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSLiteralType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsLiteralType;
    }, "get")
  });
  Object.defineProperty(H, "TSMappedType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsMappedType;
    }, "get")
  });
  Object.defineProperty(H, "TSMethodSignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsMethodSignature;
    }, "get")
  });
  Object.defineProperty(H, "TSModuleBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsModuleBlock;
    }, "get")
  });
  Object.defineProperty(H, "TSModuleDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsModuleDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSNamedTupleMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsNamedTupleMember;
    }, "get")
  });
  Object.defineProperty(H, "TSNamespaceExportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsNamespaceExportDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSNeverKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsNeverKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSNonNullExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsNonNullExpression;
    }, "get")
  });
  Object.defineProperty(H, "TSNullKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsNullKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSNumberKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsNumberKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSObjectKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsObjectKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSOptionalType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsOptionalType;
    }, "get")
  });
  Object.defineProperty(H, "TSParameterProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsParameterProperty;
    }, "get")
  });
  Object.defineProperty(H, "TSParenthesizedType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsParenthesizedType;
    }, "get")
  });
  Object.defineProperty(H, "TSPropertySignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsPropertySignature;
    }, "get")
  });
  Object.defineProperty(H, "TSQualifiedName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsQualifiedName;
    }, "get")
  });
  Object.defineProperty(H, "TSRestType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsRestType;
    }, "get")
  });
  Object.defineProperty(H, "TSSatisfiesExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsSatisfiesExpression;
    }, "get")
  });
  Object.defineProperty(H, "TSStringKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsStringKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSSymbolKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsSymbolKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSThisType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsThisType;
    }, "get")
  });
  Object.defineProperty(H, "TSTupleType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTupleType;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeAliasDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeAliasDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeAssertion", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeAssertion;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeLiteral;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeOperator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeOperator;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeParameter", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeParameter;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeParameterDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeParameterDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeParameterInstantiation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeParameterInstantiation;
    }, "get")
  });
  Object.defineProperty(H, "TSTypePredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypePredicate;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeQuery", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeQuery;
    }, "get")
  });
  Object.defineProperty(H, "TSTypeReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsTypeReference;
    }, "get")
  });
  Object.defineProperty(H, "TSUndefinedKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsUndefinedKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsUnionType;
    }, "get")
  });
  Object.defineProperty(H, "TSUnknownKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsUnknownKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TSVoidKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tsVoidKeyword;
    }, "get")
  });
  Object.defineProperty(H, "TaggedTemplateExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.taggedTemplateExpression;
    }, "get")
  });
  Object.defineProperty(H, "TemplateElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.templateElement;
    }, "get")
  });
  Object.defineProperty(H, "TemplateLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.templateLiteral;
    }, "get")
  });
  Object.defineProperty(H, "ThisExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.thisExpression;
    }, "get")
  });
  Object.defineProperty(H, "ThisTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.thisTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "ThrowStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.throwStatement;
    }, "get")
  });
  Object.defineProperty(H, "TopicReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.topicReference;
    }, "get")
  });
  Object.defineProperty(H, "TryStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tryStatement;
    }, "get")
  });
  Object.defineProperty(H, "TupleExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tupleExpression;
    }, "get")
  });
  Object.defineProperty(H, "TupleTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.tupleTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "TypeAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.typeAlias;
    }, "get")
  });
  Object.defineProperty(H, "TypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.typeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "TypeCastExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.typeCastExpression;
    }, "get")
  });
  Object.defineProperty(H, "TypeParameter", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.typeParameter;
    }, "get")
  });
  Object.defineProperty(H, "TypeParameterDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.typeParameterDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "TypeParameterInstantiation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.typeParameterInstantiation;
    }, "get")
  });
  Object.defineProperty(H, "TypeofTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.typeofTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "UnaryExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.unaryExpression;
    }, "get")
  });
  Object.defineProperty(H, "UnionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.unionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "UpdateExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.updateExpression;
    }, "get")
  });
  Object.defineProperty(H, "V8IntrinsicIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.v8IntrinsicIdentifier;
    }, "get")
  });
  Object.defineProperty(H, "VariableDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.variableDeclaration;
    }, "get")
  });
  Object.defineProperty(H, "VariableDeclarator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.variableDeclarator;
    }, "get")
  });
  Object.defineProperty(H, "Variance", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.variance;
    }, "get")
  });
  Object.defineProperty(H, "VoidTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.voidTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(H, "WhileStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.whileStatement;
    }, "get")
  });
  Object.defineProperty(H, "WithStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.withStatement;
    }, "get")
  });
  Object.defineProperty(H, "YieldExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return X.yieldExpression;
    }, "get")
  });
  var X = Vn();
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/builders/productions.js
var t8 = g((e8) => {
  "use strict";
  Object.defineProperty(e8, "__esModule", {
    value: !0
  });
  e8.buildUndefinedNode = Nrs;
  var Lpe = Vn();
  function Nrs() {
    return (0, Lpe.unaryExpression)("void", (0, Lpe.numericLiteral)(0), !0);
  }
  n(Nrs, "buildUndefinedNode");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneNode.js
var Rp = g((r8) => {
  "use strict";
  Object.defineProperty(r8, "__esModule", {
    value: !0
  });
  r8.default = krs;
  var Bpe = to(), Mpe = di(), {
    hasOwn: Nl
  } = {
    hasOwn: Function.call.bind(Object.prototype.hasOwnProperty)
  };
  function Fpe(t, e, s, r) {
    return t && typeof t.type == "string" ? jpe(t, e, s, r) : t;
  }
  n(Fpe, "cloneIfNode");
  function s8(t, e, s, r) {
    return Array.isArray(t) ? t.map((i) => Fpe(i, e, s, r)) : Fpe(t, e, s, r);
  }
  n(s8, "cloneIfNodeOrArray");
  function krs(t, e = !0, s = !1) {
    return jpe(t, e, s, /* @__PURE__ */ new Map());
  }
  n(krs, "cloneNode");
  function jpe(t, e = !0, s = !1, r) {
    if (!t) return t;
    let {
      type: i
    } = t, a = {
      type: t.type
    };
    if ((0, Mpe.isIdentifier)(t))
      a.name = t.name, Nl(t, "optional") && typeof t.optional == "boolean" && (a.optional = t.optional), Nl(t, "typeAnnotation") && (a.typeAnnotation =
      e ? s8(t.typeAnnotation, !0, s, r) : t.typeAnnotation), Nl(t, "decorators") && (a.decorators = e ? s8(t.decorators, !0, s, r) : t.decorators);
    else if (Nl(Bpe.NODE_FIELDS, i))
      for (let o of Object.keys(Bpe.NODE_FIELDS[i]))
        Nl(t, o) && (e ? a[o] = (0, Mpe.isFile)(t) && o === "comments" ? V1(t.comments, e, s, r) : s8(t[o], !0, s, r) : a[o] = t[o]);
    else
      throw new Error(`Unknown node type: "${i}"`);
    return Nl(t, "loc") && (s ? a.loc = null : a.loc = t.loc), Nl(t, "leadingComments") && (a.leadingComments = V1(t.leadingComments, e, s, r)),
    Nl(t, "innerComments") && (a.innerComments = V1(t.innerComments, e, s, r)), Nl(t, "trailingComments") && (a.trailingComments = V1(t.trailingComments,
    e, s, r)), Nl(t, "extra") && (a.extra = Object.assign({}, t.extra)), a;
  }
  n(jpe, "cloneNodeInternal");
  function V1(t, e, s, r) {
    return !t || !e ? t : t.map((i) => {
      let a = r.get(i);
      if (a) return a;
      let {
        type: o,
        value: l,
        loc: u
      } = i, c = {
        type: o,
        value: l,
        loc: u
      };
      return s && (c.loc = null), r.set(i, c), c;
    });
  }
  n(V1, "maybeCloneComments");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/clone/clone.js
var Rpe = g((i8) => {
  "use strict";
  Object.defineProperty(i8, "__esModule", {
    value: !0
  });
  i8.default = Ors;
  var Drs = Rp();
  function Ors(t) {
    return (0, Drs.default)(t, !1);
  }
  n(Ors, "clone");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneDeep.js
var qpe = g((n8) => {
  "use strict";
  Object.defineProperty(n8, "__esModule", {
    value: !0
  });
  n8.default = Lrs;
  var _rs = Rp();
  function Lrs(t) {
    return (0, _rs.default)(t);
  }
  n(Lrs, "cloneDeep");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js
var Upe = g((a8) => {
  "use strict";
  Object.defineProperty(a8, "__esModule", {
    value: !0
  });
  a8.default = Mrs;
  var Brs = Rp();
  function Mrs(t) {
    return (0, Brs.default)(t, !0, !0);
  }
  n(Mrs, "cloneDeepWithoutLoc");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js
var Kpe = g((o8) => {
  "use strict";
  Object.defineProperty(o8, "__esModule", {
    value: !0
  });
  o8.default = jrs;
  var Frs = Rp();
  function jrs(t) {
    return (0, Frs.default)(t, !1, !0);
  }
  n(jrs, "cloneWithoutLoc");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/comments/addComments.js
var u8 = g((l8) => {
  "use strict";
  Object.defineProperty(l8, "__esModule", {
    value: !0
  });
  l8.default = Rrs;
  function Rrs(t, e, s) {
    if (!s || !t) return t;
    let r = `${e}Comments`;
    return t[r] ? e === "leading" ? t[r] = s.concat(t[r]) : t[r].push(...s) : t[r] = s, t;
  }
  n(Rrs, "addComments");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/comments/addComment.js
var Vpe = g((c8) => {
  "use strict";
  Object.defineProperty(c8, "__esModule", {
    value: !0
  });
  c8.default = Urs;
  var qrs = u8();
  function Urs(t, e, s, r) {
    return (0, qrs.default)(t, e, [{
      type: r ? "CommentLine" : "CommentBlock",
      value: s
    }]);
  }
  n(Urs, "addComment");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/utils/inherit.js
var W1 = g((p8) => {
  "use strict";
  Object.defineProperty(p8, "__esModule", {
    value: !0
  });
  p8.default = Krs;
  function Krs(t, e, s) {
    e && s && (e[t] = Array.from(new Set([].concat(e[t], s[t]).filter(Boolean))));
  }
  n(Krs, "inherit");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritInnerComments.js
var f8 = g((h8) => {
  "use strict";
  Object.defineProperty(h8, "__esModule", {
    value: !0
  });
  h8.default = Wrs;
  var Vrs = W1();
  function Wrs(t, e) {
    (0, Vrs.default)("innerComments", t, e);
  }
  n(Wrs, "inheritInnerComments");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritLeadingComments.js
var m8 = g((d8) => {
  "use strict";
  Object.defineProperty(d8, "__esModule", {
    value: !0
  });
  d8.default = Hrs;
  var $rs = W1();
  function Hrs(t, e) {
    (0, $rs.default)("leadingComments", t, e);
  }
  n(Hrs, "inheritLeadingComments");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritTrailingComments.js
var g8 = g((y8) => {
  "use strict";
  Object.defineProperty(y8, "__esModule", {
    value: !0
  });
  y8.default = Yrs;
  var Jrs = W1();
  function Yrs(t, e) {
    (0, Jrs.default)("trailingComments", t, e);
  }
  n(Yrs, "inheritTrailingComments");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/comments/inheritsComments.js
var b8 = g((T8) => {
  "use strict";
  Object.defineProperty(T8, "__esModule", {
    value: !0
  });
  T8.default = Qrs;
  var Xrs = g8(), zrs = m8(), Grs = f8();
  function Qrs(t, e) {
    return (0, Xrs.default)(t, e), (0, zrs.default)(t, e), (0, Grs.default)(t, e), t;
  }
  n(Qrs, "inheritsComments");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/comments/removeComments.js
var Wpe = g((x8) => {
  "use strict";
  Object.defineProperty(x8, "__esModule", {
    value: !0
  });
  x8.default = eis;
  var Zrs = Fp();
  function eis(t) {
    return Zrs.COMMENT_KEYS.forEach((e) => {
      t[e] = null;
    }), t;
  }
  n(eis, "removeComments");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/constants/generated/index.js
var $pe = g((we) => {
  "use strict";
  Object.defineProperty(we, "__esModule", {
    value: !0
  });
  we.WHILE_TYPES = we.USERWHITESPACABLE_TYPES = we.UNARYLIKE_TYPES = we.TYPESCRIPT_TYPES = we.TSTYPE_TYPES = we.TSTYPEELEMENT_TYPES = we.TSENTITYNAME_TYPES =
  we.TSBASETYPE_TYPES = we.TERMINATORLESS_TYPES = we.STATEMENT_TYPES = we.STANDARDIZED_TYPES = we.SCOPABLE_TYPES = we.PUREISH_TYPES = we.PROPERTY_TYPES =
  we.PRIVATE_TYPES = we.PATTERN_TYPES = we.PATTERNLIKE_TYPES = we.OBJECTMEMBER_TYPES = we.MODULESPECIFIER_TYPES = we.MODULEDECLARATION_TYPES =
  we.MISCELLANEOUS_TYPES = we.METHOD_TYPES = we.LVAL_TYPES = we.LOOP_TYPES = we.LITERAL_TYPES = we.JSX_TYPES = we.IMPORTOREXPORTDECLARATION_TYPES =
  we.IMMUTABLE_TYPES = we.FUNCTION_TYPES = we.FUNCTIONPARENT_TYPES = we.FOR_TYPES = we.FORXSTATEMENT_TYPES = we.FLOW_TYPES = we.FLOWTYPE_TYPES =
  we.FLOWPREDICATE_TYPES = we.FLOWDECLARATION_TYPES = we.FLOWBASEANNOTATION_TYPES = we.EXPRESSION_TYPES = we.EXPRESSIONWRAPPER_TYPES = we.EXPORTDECLARATION_TYPES =
  we.ENUMMEMBER_TYPES = we.ENUMBODY_TYPES = we.DECLARATION_TYPES = we.CONDITIONAL_TYPES = we.COMPLETIONSTATEMENT_TYPES = we.CLASS_TYPES = we.
  BLOCK_TYPES = we.BLOCKPARENT_TYPES = we.BINARY_TYPES = we.ACCESSOR_TYPES = void 0;
  var Ht = to(), zZs = we.STANDARDIZED_TYPES = Ht.FLIPPED_ALIAS_KEYS.Standardized, GZs = we.EXPRESSION_TYPES = Ht.FLIPPED_ALIAS_KEYS.Expression,
  QZs = we.BINARY_TYPES = Ht.FLIPPED_ALIAS_KEYS.Binary, ZZs = we.SCOPABLE_TYPES = Ht.FLIPPED_ALIAS_KEYS.Scopable, eer = we.BLOCKPARENT_TYPES =
  Ht.FLIPPED_ALIAS_KEYS.BlockParent, ter = we.BLOCK_TYPES = Ht.FLIPPED_ALIAS_KEYS.Block, ser = we.STATEMENT_TYPES = Ht.FLIPPED_ALIAS_KEYS.Statement,
  rer = we.TERMINATORLESS_TYPES = Ht.FLIPPED_ALIAS_KEYS.Terminatorless, ier = we.COMPLETIONSTATEMENT_TYPES = Ht.FLIPPED_ALIAS_KEYS.CompletionStatement,
  ner = we.CONDITIONAL_TYPES = Ht.FLIPPED_ALIAS_KEYS.Conditional, aer = we.LOOP_TYPES = Ht.FLIPPED_ALIAS_KEYS.Loop, oer = we.WHILE_TYPES = Ht.
  FLIPPED_ALIAS_KEYS.While, ler = we.EXPRESSIONWRAPPER_TYPES = Ht.FLIPPED_ALIAS_KEYS.ExpressionWrapper, uer = we.FOR_TYPES = Ht.FLIPPED_ALIAS_KEYS.
  For, cer = we.FORXSTATEMENT_TYPES = Ht.FLIPPED_ALIAS_KEYS.ForXStatement, per = we.FUNCTION_TYPES = Ht.FLIPPED_ALIAS_KEYS.Function, her = we.
  FUNCTIONPARENT_TYPES = Ht.FLIPPED_ALIAS_KEYS.FunctionParent, fer = we.PUREISH_TYPES = Ht.FLIPPED_ALIAS_KEYS.Pureish, der = we.DECLARATION_TYPES =
  Ht.FLIPPED_ALIAS_KEYS.Declaration, mer = we.PATTERNLIKE_TYPES = Ht.FLIPPED_ALIAS_KEYS.PatternLike, yer = we.LVAL_TYPES = Ht.FLIPPED_ALIAS_KEYS.
  LVal, ger = we.TSENTITYNAME_TYPES = Ht.FLIPPED_ALIAS_KEYS.TSEntityName, Ter = we.LITERAL_TYPES = Ht.FLIPPED_ALIAS_KEYS.Literal, ber = we.IMMUTABLE_TYPES =
  Ht.FLIPPED_ALIAS_KEYS.Immutable, xer = we.USERWHITESPACABLE_TYPES = Ht.FLIPPED_ALIAS_KEYS.UserWhitespacable, Ser = we.METHOD_TYPES = Ht.FLIPPED_ALIAS_KEYS.
  Method, Per = we.OBJECTMEMBER_TYPES = Ht.FLIPPED_ALIAS_KEYS.ObjectMember, Eer = we.PROPERTY_TYPES = Ht.FLIPPED_ALIAS_KEYS.Property, Aer = we.
  UNARYLIKE_TYPES = Ht.FLIPPED_ALIAS_KEYS.UnaryLike, ver = we.PATTERN_TYPES = Ht.FLIPPED_ALIAS_KEYS.Pattern, Cer = we.CLASS_TYPES = Ht.FLIPPED_ALIAS_KEYS.
  Class, tis = we.IMPORTOREXPORTDECLARATION_TYPES = Ht.FLIPPED_ALIAS_KEYS.ImportOrExportDeclaration, wer = we.EXPORTDECLARATION_TYPES = Ht.FLIPPED_ALIAS_KEYS.
  ExportDeclaration, Ier = we.MODULESPECIFIER_TYPES = Ht.FLIPPED_ALIAS_KEYS.ModuleSpecifier, Ner = we.ACCESSOR_TYPES = Ht.FLIPPED_ALIAS_KEYS.
  Accessor, ker = we.PRIVATE_TYPES = Ht.FLIPPED_ALIAS_KEYS.Private, Der = we.FLOW_TYPES = Ht.FLIPPED_ALIAS_KEYS.Flow, Oer = we.FLOWTYPE_TYPES =
  Ht.FLIPPED_ALIAS_KEYS.FlowType, _er = we.FLOWBASEANNOTATION_TYPES = Ht.FLIPPED_ALIAS_KEYS.FlowBaseAnnotation, Ler = we.FLOWDECLARATION_TYPES =
  Ht.FLIPPED_ALIAS_KEYS.FlowDeclaration, Ber = we.FLOWPREDICATE_TYPES = Ht.FLIPPED_ALIAS_KEYS.FlowPredicate, Mer = we.ENUMBODY_TYPES = Ht.FLIPPED_ALIAS_KEYS.
  EnumBody, Fer = we.ENUMMEMBER_TYPES = Ht.FLIPPED_ALIAS_KEYS.EnumMember, jer = we.JSX_TYPES = Ht.FLIPPED_ALIAS_KEYS.JSX, Rer = we.MISCELLANEOUS_TYPES =
  Ht.FLIPPED_ALIAS_KEYS.Miscellaneous, qer = we.TYPESCRIPT_TYPES = Ht.FLIPPED_ALIAS_KEYS.TypeScript, Uer = we.TSTYPEELEMENT_TYPES = Ht.FLIPPED_ALIAS_KEYS.
  TSTypeElement, Ker = we.TSTYPE_TYPES = Ht.FLIPPED_ALIAS_KEYS.TSType, Ver = we.TSBASETYPE_TYPES = Ht.FLIPPED_ALIAS_KEYS.TSBaseType, Wer = we.
  MODULEDECLARATION_TYPES = tis;
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toBlock.js
var E8 = g((P8) => {
  "use strict";
  Object.defineProperty(P8, "__esModule", {
    value: !0
  });
  P8.default = sis;
  var $1 = di(), S8 = Vn();
  function sis(t, e) {
    if ((0, $1.isBlockStatement)(t))
      return t;
    let s = [];
    return (0, $1.isEmptyStatement)(t) ? s = [] : ((0, $1.isStatement)(t) || ((0, $1.isFunction)(e) ? t = (0, S8.returnStatement)(t) : t = (0, S8.
    expressionStatement)(t)), s = [t]), (0, S8.blockStatement)(s);
  }
  n(sis, "toBlock");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/ensureBlock.js
var Hpe = g((A8) => {
  "use strict";
  Object.defineProperty(A8, "__esModule", {
    value: !0
  });
  A8.default = iis;
  var ris = E8();
  function iis(t, e = "body") {
    let s = (0, ris.default)(t[e], t);
    return t[e] = s, s;
  }
  n(iis, "ensureBlock");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toIdentifier.js
var C8 = g((v8) => {
  "use strict";
  Object.defineProperty(v8, "__esModule", {
    value: !0
  });
  v8.default = ois;
  var nis = ly(), ais = xa();
  function ois(t) {
    t = t + "";
    let e = "";
    for (let s of t)
      e += (0, ais.isIdentifierChar)(s.codePointAt(0)) ? s : "-";
    return e = e.replace(/^[-0-9]+/, ""), e = e.replace(/[-\s]+(.)?/g, function(s, r) {
      return r ? r.toUpperCase() : "";
    }), (0, nis.default)(e) || (e = `_${e}`), e || "_";
  }
  n(ois, "toIdentifier");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js
var Jpe = g((w8) => {
  "use strict";
  Object.defineProperty(w8, "__esModule", {
    value: !0
  });
  w8.default = uis;
  var lis = C8();
  function uis(t) {
    return t = (0, lis.default)(t), (t === "eval" || t === "arguments") && (t = "_" + t), t;
  }
  n(uis, "toBindingIdentifierName");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toComputedKey.js
var Ype = g((I8) => {
  "use strict";
  Object.defineProperty(I8, "__esModule", {
    value: !0
  });
  I8.default = his;
  var cis = di(), pis = Vn();
  function his(t, e = t.key || t.property) {
    return !t.computed && (0, cis.isIdentifier)(e) && (e = (0, pis.stringLiteral)(e.name)), e;
  }
  n(his, "toComputedKey");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toExpression.js
var Xpe = g((H1) => {
  "use strict";
  Object.defineProperty(H1, "__esModule", {
    value: !0
  });
  H1.default = void 0;
  var _T = di(), str = H1.default = fis;
  function fis(t) {
    if ((0, _T.isExpressionStatement)(t) && (t = t.expression), (0, _T.isExpression)(t))
      return t;
    if ((0, _T.isClass)(t) ? t.type = "ClassExpression" : (0, _T.isFunction)(t) && (t.type = "FunctionExpression"), !(0, _T.isExpression)(t))
      throw new Error(`cannot turn ${t.type} to an expression`);
    return t;
  }
  n(fis, "toExpression");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/traverse/traverseFast.js
var D8 = g((k8) => {
  "use strict";
  Object.defineProperty(k8, "__esModule", {
    value: !0
  });
  k8.default = N8;
  var dis = to();
  function N8(t, e, s) {
    if (!t) return;
    let r = dis.VISITOR_KEYS[t.type];
    if (r) {
      s = s || {}, e(t, s);
      for (let i of r) {
        let a = t[i];
        if (Array.isArray(a))
          for (let o of a)
            N8(o, e, s);
        else
          N8(a, e, s);
      }
    }
  }
  n(N8, "traverseFast");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/removeProperties.js
var _8 = g((O8) => {
  "use strict";
  Object.defineProperty(O8, "__esModule", {
    value: !0
  });
  O8.default = gis;
  var mis = Fp(), zpe = ["tokens", "start", "end", "loc", "raw", "rawValue"], yis = [...mis.COMMENT_KEYS, "comments", ...zpe];
  function gis(t, e = {}) {
    let s = e.preserveComments ? zpe : yis;
    for (let i of s)
      t[i] != null && (t[i] = void 0);
    for (let i of Object.keys(t))
      i[0] === "_" && t[i] != null && (t[i] = void 0);
    let r = Object.getOwnPropertySymbols(t);
    for (let i of r)
      t[i] = null;
  }
  n(gis, "removeProperties");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js
var B8 = g((L8) => {
  "use strict";
  Object.defineProperty(L8, "__esModule", {
    value: !0
  });
  L8.default = xis;
  var Tis = D8(), bis = _8();
  function xis(t, e) {
    return (0, Tis.default)(t, bis.default, e), t;
  }
  n(xis, "removePropertiesDeep");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toKeyAlias.js
var Qpe = g((M8) => {
  "use strict";
  Object.defineProperty(M8, "__esModule", {
    value: !0
  });
  M8.default = Df;
  var Gpe = di(), Sis = Rp(), Pis = B8();
  function Df(t, e = t.key) {
    let s;
    return t.kind === "method" ? Df.increment() + "" : ((0, Gpe.isIdentifier)(e) ? s = e.name : (0, Gpe.isStringLiteral)(e) ? s = JSON.stringify(
    e.value) : s = JSON.stringify((0, Pis.default)((0, Sis.default)(e))), t.computed && (s = `[${s}]`), t.static && (s = `static:${s}`), s);
  }
  n(Df, "toKeyAlias");
  Df.uid = 0;
  Df.increment = function() {
    return Df.uid >= Number.MAX_SAFE_INTEGER ? Df.uid = 0 : Df.uid++;
  };
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toStatement.js
var Zpe = g((Y1) => {
  "use strict";
  Object.defineProperty(Y1, "__esModule", {
    value: !0
  });
  Y1.default = void 0;
  var J1 = di(), Eis = Vn(), ftr = Y1.default = Ais;
  function Ais(t, e) {
    if ((0, J1.isStatement)(t))
      return t;
    let s = !1, r;
    if ((0, J1.isClass)(t))
      s = !0, r = "ClassDeclaration";
    else if ((0, J1.isFunction)(t))
      s = !0, r = "FunctionDeclaration";
    else if ((0, J1.isAssignmentExpression)(t))
      return (0, Eis.expressionStatement)(t);
    if (s && !t.id && (r = !1), !r) {
      if (e)
        return !1;
      throw new Error(`cannot turn ${t.type} to a statement`);
    }
    return t.type = r, t;
  }
  n(Ais, "toStatement");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/valueToNode.js
var ehe = g((X1) => {
  "use strict";
  Object.defineProperty(X1, "__esModule", {
    value: !0
  });
  X1.default = void 0;
  var vis = ly(), cn = Vn(), ytr = X1.default = F8, Cis = Function.call.bind(Object.prototype.toString);
  function wis(t) {
    return Cis(t) === "[object RegExp]";
  }
  n(wis, "isRegExp");
  function Iis(t) {
    if (typeof t != "object" || t === null || Object.prototype.toString.call(t) !== "[object Object]")
      return !1;
    let e = Object.getPrototypeOf(t);
    return e === null || Object.getPrototypeOf(e) === null;
  }
  n(Iis, "isPlainObject");
  function F8(t) {
    if (t === void 0)
      return (0, cn.identifier)("undefined");
    if (t === !0 || t === !1)
      return (0, cn.booleanLiteral)(t);
    if (t === null)
      return (0, cn.nullLiteral)();
    if (typeof t == "string")
      return (0, cn.stringLiteral)(t);
    if (typeof t == "number") {
      let e;
      if (Number.isFinite(t))
        e = (0, cn.numericLiteral)(Math.abs(t));
      else {
        let s;
        Number.isNaN(t) ? s = (0, cn.numericLiteral)(0) : s = (0, cn.numericLiteral)(1), e = (0, cn.binaryExpression)("/", s, (0, cn.numericLiteral)(
        0));
      }
      return (t < 0 || Object.is(t, -0)) && (e = (0, cn.unaryExpression)("-", e)), e;
    }
    if (wis(t)) {
      let e = t.source, s = /\/([a-z]*)$/.exec(t.toString())[1];
      return (0, cn.regExpLiteral)(e, s);
    }
    if (Array.isArray(t))
      return (0, cn.arrayExpression)(t.map(F8));
    if (Iis(t)) {
      let e = [];
      for (let s of Object.keys(t)) {
        let r;
        (0, vis.default)(s) ? r = (0, cn.identifier)(s) : r = (0, cn.stringLiteral)(s), e.push((0, cn.objectProperty)(r, F8(t[s])));
      }
      return (0, cn.objectExpression)(e);
    }
    throw new Error("don't know how to turn this value into a node");
  }
  n(F8, "valueToNode");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js
var the = g((j8) => {
  "use strict";
  Object.defineProperty(j8, "__esModule", {
    value: !0
  });
  j8.default = kis;
  var Nis = Vn();
  function kis(t, e, s = !1) {
    return t.object = (0, Nis.memberExpression)(t.object, t.property, t.computed), t.property = e, t.computed = !!s, t;
  }
  n(kis, "appendToMemberExpression");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/inherits.js
var rhe = g((R8) => {
  "use strict";
  Object.defineProperty(R8, "__esModule", {
    value: !0
  });
  R8.default = Ois;
  var she = Fp(), Dis = b8();
  function Ois(t, e) {
    if (!t || !e) return t;
    for (let s of she.INHERIT_KEYS.optional)
      t[s] == null && (t[s] = e[s]);
    for (let s of Object.keys(e))
      s[0] === "_" && s !== "__clone" && (t[s] = e[s]);
    for (let s of she.INHERIT_KEYS.force)
      t[s] = e[s];
    return (0, Dis.default)(t, e), t;
  }
  n(Ois, "inherits");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js
var ihe = g((q8) => {
  "use strict";
  Object.defineProperty(q8, "__esModule", {
    value: !0
  });
  q8.default = Bis;
  var _is = Vn(), Lis = Wn();
  function Bis(t, e) {
    if ((0, Lis.isSuper)(t.object))
      throw new Error("Cannot prepend node to super property access (`super.foo`).");
    return t.object = (0, _is.memberExpression)(e, t.object), t;
  }
  n(Bis, "prependToMemberExpression");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js
var nhe = g((U8) => {
  "use strict";
  Object.defineProperty(U8, "__esModule", {
    value: !0
  });
  U8.default = Mis;
  function Mis(t) {
    let e = [].concat(t), s = /* @__PURE__ */ Object.create(null);
    for (; e.length; ) {
      let r = e.pop();
      if (r)
        switch (r.type) {
          case "ArrayPattern":
            e.push(...r.elements);
            break;
          case "AssignmentExpression":
          case "AssignmentPattern":
          case "ForInStatement":
          case "ForOfStatement":
            e.push(r.left);
            break;
          case "ObjectPattern":
            e.push(...r.properties);
            break;
          case "ObjectProperty":
            e.push(r.value);
            break;
          case "RestElement":
          case "UpdateExpression":
            e.push(r.argument);
            break;
          case "UnaryExpression":
            r.operator === "delete" && e.push(r.argument);
            break;
          case "Identifier":
            s[r.name] = r;
            break;
          default:
            break;
        }
    }
    return s;
  }
  n(Mis, "getAssignmentIdentifiers");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js
var LT = g((V8) => {
  "use strict";
  Object.defineProperty(V8, "__esModule", {
    value: !0
  });
  V8.default = K8;
  var ic = di();
  function K8(t, e, s, r) {
    let i = [].concat(t), a = /* @__PURE__ */ Object.create(null);
    for (; i.length; ) {
      let o = i.shift();
      if (!o || r && ((0, ic.isAssignmentExpression)(o) || (0, ic.isUnaryExpression)(o) || (0, ic.isUpdateExpression)(o)))
        continue;
      if ((0, ic.isIdentifier)(o)) {
        e ? (a[o.name] = a[o.name] || []).push(o) : a[o.name] = o;
        continue;
      }
      if ((0, ic.isExportDeclaration)(o) && !(0, ic.isExportAllDeclaration)(o)) {
        (0, ic.isDeclaration)(o.declaration) && i.push(o.declaration);
        continue;
      }
      if (s) {
        if ((0, ic.isFunctionDeclaration)(o)) {
          i.push(o.id);
          continue;
        }
        if ((0, ic.isFunctionExpression)(o))
          continue;
      }
      let l = K8.keys[o.type];
      if (l)
        for (let u = 0; u < l.length; u++) {
          let c = l[u], p = o[c];
          p && (Array.isArray(p) ? i.push(...p) : i.push(p));
        }
    }
    return a;
  }
  n(K8, "getBindingIdentifiers");
  var Fis = {
    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"]
  };
  K8.keys = Fis;
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js
var ahe = g((z1) => {
  "use strict";
  Object.defineProperty(z1, "__esModule", {
    value: !0
  });
  z1.default = void 0;
  var jis = LT(), Ntr = z1.default = Ris;
  function Ris(t, e) {
    return (0, jis.default)(t, e, !0);
  }
  n(Ris, "getOuterBindingIdentifiers");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/retrievers/getFunctionName.js
var lhe = g((W8) => {
  "use strict";
  Object.defineProperty(W8, "__esModule", {
    value: !0
  });
  W8.default = Uis;
  var ro = di();
  function qis(t) {
    return (0, ro.isNullLiteral)(t) ? "null" : (0, ro.isRegExpLiteral)(t) ? `/${t.pattern}/${t.flags}` : (0, ro.isTemplateLiteral)(t) ? t.quasis.
    map((e) => e.value.raw).join("") : t.value !== void 0 ? String(t.value) : null;
  }
  n(qis, "getNameFromLiteralId");
  function ohe(t) {
    if (!t.computed || (0, ro.isLiteral)(t.key))
      return t.key;
  }
  n(ohe, "getObjectMemberKey");
  function Uis(t, e) {
    if ("id" in t && t.id)
      return {
        name: t.id.name,
        originalNode: t.id
      };
    let s = "", r;
    if ((0, ro.isObjectProperty)(e, {
      value: t
    }) ? r = ohe(e) : (0, ro.isObjectMethod)(t) || (0, ro.isClassMethod)(t) ? (r = ohe(t), t.kind === "get" ? s = "get " : t.kind === "set" &&
    (s = "set ")) : (0, ro.isVariableDeclarator)(e, {
      init: t
    }) ? r = e.id : (0, ro.isAssignmentExpression)(e, {
      operator: "=",
      right: t
    }) && (r = e.left), !r) return null;
    let i = (0, ro.isLiteral)(r) ? qis(r) : (0, ro.isIdentifier)(r) ? r.name : (0, ro.isPrivateName)(r) ? r.id.name : null;
    return i == null ? null : {
      name: s + i,
      originalNode: r
    };
  }
  n(Uis, "getFunctionName");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/traverse/traverse.js
var uhe = g((H8) => {
  "use strict";
  Object.defineProperty(H8, "__esModule", {
    value: !0
  });
  H8.default = Vis;
  var Kis = to();
  function Vis(t, e, s) {
    typeof e == "function" && (e = {
      enter: e
    });
    let {
      enter: r,
      exit: i
    } = e;
    $8(t, r, i, s, []);
  }
  n(Vis, "traverse");
  function $8(t, e, s, r, i) {
    let a = Kis.VISITOR_KEYS[t.type];
    if (a) {
      e && e(t, i, r);
      for (let o of a) {
        let l = t[o];
        if (Array.isArray(l))
          for (let u = 0; u < l.length; u++) {
            let c = l[u];
            c && (i.push({
              node: t,
              key: o,
              index: u
            }), $8(c, e, s, r, i), i.pop());
          }
        else l && (i.push({
          node: t,
          key: o
        }), $8(l, e, s, r, i), i.pop());
      }
      s && s(t, i, r);
    }
  }
  n($8, "traverseSimpleImpl");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isBinding.js
var che = g((J8) => {
  "use strict";
  Object.defineProperty(J8, "__esModule", {
    value: !0
  });
  J8.default = $is;
  var Wis = LT();
  function $is(t, e, s) {
    if (s && t.type === "Identifier" && e.type === "ObjectProperty" && s.type === "ObjectExpression")
      return !1;
    let r = Wis.default.keys[e.type];
    if (r)
      for (let i = 0; i < r.length; i++) {
        let a = r[i], o = e[a];
        if (Array.isArray(o)) {
          if (o.includes(t)) return !0;
        } else if (o === t) return !0;
      }
    return !1;
  }
  n($is, "isBinding");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isLet.js
var X8 = g((Y8) => {
  "use strict";
  Object.defineProperty(Y8, "__esModule", {
    value: !0
  });
  Y8.default = Yis;
  var His = di(), Jis = Fp();
  function Yis(t) {
    return (0, His.isVariableDeclaration)(t) && (t.kind !== "var" || t[Jis.BLOCK_SCOPED_SYMBOL]);
  }
  n(Yis, "isLet");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isBlockScoped.js
var hhe = g((z8) => {
  "use strict";
  Object.defineProperty(z8, "__esModule", {
    value: !0
  });
  z8.default = zis;
  var phe = di(), Xis = X8();
  function zis(t) {
    return (0, phe.isFunctionDeclaration)(t) || (0, phe.isClassDeclaration)(t) || (0, Xis.default)(t);
  }
  n(zis, "isBlockScoped");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isImmutable.js
var fhe = g((G8) => {
  "use strict";
  Object.defineProperty(G8, "__esModule", {
    value: !0
  });
  G8.default = Zis;
  var Gis = O1(), Qis = di();
  function Zis(t) {
    return (0, Gis.default)(t.type, "Immutable") ? !0 : (0, Qis.isIdentifier)(t) ? t.name === "undefined" : !1;
  }
  n(Zis, "isImmutable");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isNodesEquivalent.js
var mhe = g((Z8) => {
  "use strict";
  Object.defineProperty(Z8, "__esModule", {
    value: !0
  });
  Z8.default = Q8;
  var dhe = to();
  function Q8(t, e) {
    if (typeof t != "object" || typeof e != "object" || t == null || e == null)
      return t === e;
    if (t.type !== e.type)
      return !1;
    let s = Object.keys(dhe.NODE_FIELDS[t.type] || t.type), r = dhe.VISITOR_KEYS[t.type];
    for (let i of s) {
      let a = t[i], o = e[i];
      if (typeof a != typeof o)
        return !1;
      if (!(a == null && o == null)) {
        if (a == null || o == null)
          return !1;
        if (Array.isArray(a)) {
          if (!Array.isArray(o) || a.length !== o.length)
            return !1;
          for (let l = 0; l < a.length; l++)
            if (!Q8(a[l], o[l]))
              return !1;
          continue;
        }
        if (typeof a == "object" && !(r != null && r.includes(i))) {
          for (let l of Object.keys(a))
            if (a[l] !== o[l])
              return !1;
          continue;
        }
        if (!Q8(a, o))
          return !1;
      }
    }
    return !0;
  }
  n(Q8, "isNodesEquivalent");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isReferenced.js
var yhe = g((e6) => {
  "use strict";
  Object.defineProperty(e6, "__esModule", {
    value: !0
  });
  e6.default = ens;
  function ens(t, e, s) {
    switch (e.type) {
      case "MemberExpression":
      case "OptionalMemberExpression":
        return e.property === t ? !!e.computed : e.object === t;
      case "JSXMemberExpression":
        return e.object === t;
      case "VariableDeclarator":
        return e.init === t;
      case "ArrowFunctionExpression":
        return e.body === t;
      case "PrivateName":
        return !1;
      case "ClassMethod":
      case "ClassPrivateMethod":
      case "ObjectMethod":
        return e.key === t ? !!e.computed : !1;
      case "ObjectProperty":
        return e.key === t ? !!e.computed : !s || s.type !== "ObjectPattern";
      case "ClassProperty":
      case "ClassAccessorProperty":
        return e.key === t ? !!e.computed : !0;
      case "ClassPrivateProperty":
        return e.key !== t;
      case "ClassDeclaration":
      case "ClassExpression":
        return e.superClass === t;
      case "AssignmentExpression":
        return e.right === t;
      case "AssignmentPattern":
        return e.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 s != null && s.source ? !1 : e.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 e.key !== t;
      case "TSEnumMember":
        return e.id !== t;
      case "TSPropertySignature":
        return e.key === t ? !!e.computed : !0;
    }
    return !0;
  }
  n(ens, "isReferenced");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isScope.js
var ghe = g((t6) => {
  "use strict";
  Object.defineProperty(t6, "__esModule", {
    value: !0
  });
  t6.default = tns;
  var Of = di();
  function tns(t, e) {
    return (0, Of.isBlockStatement)(t) && ((0, Of.isFunction)(e) || (0, Of.isCatchClause)(e)) ? !1 : (0, Of.isPattern)(t) && ((0, Of.isFunction)(
    e) || (0, Of.isCatchClause)(e)) ? !0 : (0, Of.isScopable)(t);
  }
  n(tns, "isScope");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isSpecifierDefault.js
var bhe = g((s6) => {
  "use strict";
  Object.defineProperty(s6, "__esModule", {
    value: !0
  });
  s6.default = sns;
  var The = di();
  function sns(t) {
    return (0, The.isImportDefaultSpecifier)(t) || (0, The.isIdentifier)(t.imported || t.exported, {
      name: "default"
    });
  }
  n(sns, "isSpecifierDefault");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isValidES3Identifier.js
var xhe = g((r6) => {
  "use strict";
  Object.defineProperty(r6, "__esModule", {
    value: !0
  });
  r6.default = nns;
  var rns = ly(), ins = /* @__PURE__ */ new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "impleme\
nts", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "trans\
ient", "volatile"]);
  function nns(t) {
    return (0, rns.default)(t) && !ins.has(t);
  }
  n(nns, "isValidES3Identifier");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/validators/isVar.js
var She = g((i6) => {
  "use strict";
  Object.defineProperty(i6, "__esModule", {
    value: !0
  });
  i6.default = lns;
  var ans = di(), ons = Fp();
  function lns(t) {
    return (0, ans.isVariableDeclaration)(t, {
      kind: "var"
    }) && !t[ons.BLOCK_SCOPED_SYMBOL];
  }
  n(lns, "isVar");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js
var Phe = g((o6) => {
  "use strict";
  Object.defineProperty(o6, "__esModule", {
    value: !0
  });
  o6.default = G1;
  var uns = LT(), _f = di(), n6 = Vn(), a6 = t8(), cns = Rp();
  function G1(t, e) {
    let s = [], r = !0;
    for (let i of t)
      if ((0, _f.isEmptyStatement)(i) || (r = !1), (0, _f.isExpression)(i))
        s.push(i);
      else if ((0, _f.isExpressionStatement)(i))
        s.push(i.expression);
      else if ((0, _f.isVariableDeclaration)(i)) {
        if (i.kind !== "var") return;
        for (let a of i.declarations) {
          let o = (0, uns.default)(a);
          for (let l of Object.keys(o))
            e.push({
              kind: i.kind,
              id: (0, cns.default)(o[l])
            });
          a.init && s.push((0, n6.assignmentExpression)("=", a.id, a.init));
        }
        r = !0;
      } else if ((0, _f.isIfStatement)(i)) {
        let a = i.consequent ? G1([i.consequent], e) : (0, a6.buildUndefinedNode)(), o = i.alternate ? G1([i.alternate], e) : (0, a6.buildUndefinedNode)();
        if (!a || !o) return;
        s.push((0, n6.conditionalExpression)(i.test, a, o));
      } else if ((0, _f.isBlockStatement)(i)) {
        let a = G1(i.body, e);
        if (!a) return;
        s.push(a);
      } else if ((0, _f.isEmptyStatement)(i))
        t.indexOf(i) === 0 && (r = !0);
      else
        return;
    return r && s.push((0, a6.buildUndefinedNode)()), s.length === 1 ? s[0] : (0, n6.sequenceExpression)(s);
  }
  n(G1, "gatherSequenceExpressions");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/converters/toSequenceExpression.js
var Ehe = g((l6) => {
  "use strict";
  Object.defineProperty(l6, "__esModule", {
    value: !0
  });
  l6.default = hns;
  var pns = Phe();
  function hns(t, e) {
    if (!(t != null && t.length)) return;
    let s = [], r = (0, pns.default)(t, s);
    if (r) {
      for (let i of s)
        e.push(i);
      return r;
    }
  }
  n(hns, "toSequenceExpression");
});

// ../node_modules/@babel/generator/node_modules/@babel/types/lib/index.js
var Wn = g((_e) => {
  "use strict";
  Object.defineProperty(_e, "__esModule", {
    value: !0
  });
  var nc = {
    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: /* @__PURE__ */ n(function() {
      return yas.default;
    }, "get")
  });
  Object.defineProperty(_e, "addComment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ans.default;
    }, "get")
  });
  Object.defineProperty(_e, "addComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return vns.default;
    }, "get")
  });
  Object.defineProperty(_e, "appendToMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return qns.default;
    }, "get")
  });
  Object.defineProperty(_e, "assertNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return yns.default;
    }, "get")
  });
  Object.defineProperty(_e, "buildMatchMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return mas.default;
    }, "get")
  });
  Object.defineProperty(_e, "clone", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return xns.default;
    }, "get")
  });
  Object.defineProperty(_e, "cloneDeep", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Sns.default;
    }, "get")
  });
  Object.defineProperty(_e, "cloneDeepWithoutLoc", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Pns.default;
    }, "get")
  });
  Object.defineProperty(_e, "cloneNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return bns.default;
    }, "get")
  });
  Object.defineProperty(_e, "cloneWithoutLoc", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ens.default;
    }, "get")
  });
  Object.defineProperty(_e, "createFlowUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ahe.default;
    }, "get")
  });
  Object.defineProperty(_e, "createTSUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Tns.default;
    }, "get")
  });
  Object.defineProperty(_e, "createTypeAnnotationBasedOnTypeof", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return gns.default;
    }, "get")
  });
  Object.defineProperty(_e, "createUnionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ahe.default;
    }, "get")
  });
  Object.defineProperty(_e, "ensureBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Dns.default;
    }, "get")
  });
  Object.defineProperty(_e, "getAssignmentIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Hns.default;
    }, "get")
  });
  Object.defineProperty(_e, "getBindingIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Jns.default;
    }, "get")
  });
  Object.defineProperty(_e, "getFunctionName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Xns.default;
    }, "get")
  });
  Object.defineProperty(_e, "getOuterBindingIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Yns.default;
    }, "get")
  });
  Object.defineProperty(_e, "inheritInnerComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Cns.default;
    }, "get")
  });
  Object.defineProperty(_e, "inheritLeadingComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wns.default;
    }, "get")
  });
  Object.defineProperty(_e, "inheritTrailingComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Nns.default;
    }, "get")
  });
  Object.defineProperty(_e, "inherits", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Uns.default;
    }, "get")
  });
  Object.defineProperty(_e, "inheritsComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ins.default;
    }, "get")
  });
  Object.defineProperty(_e, "is", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Qns.default;
    }, "get")
  });
  Object.defineProperty(_e, "isBinding", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Zns.default;
    }, "get")
  });
  Object.defineProperty(_e, "isBlockScoped", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return eas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isImmutable", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return tas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isLet", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return sas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ras.default;
    }, "get")
  });
  Object.defineProperty(_e, "isNodesEquivalent", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ias.default;
    }, "get")
  });
  Object.defineProperty(_e, "isPlaceholderType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return nas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isReferenced", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return aas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isScope", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return oas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isSpecifierDefault", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return las.default;
    }, "get")
  });
  Object.defineProperty(_e, "isType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return uas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isValidES3Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return cas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isValidIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return pas.default;
    }, "get")
  });
  Object.defineProperty(_e, "isVar", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return has.default;
    }, "get")
  });
  Object.defineProperty(_e, "matchesPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fas.default;
    }, "get")
  });
  Object.defineProperty(_e, "prependToMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Kns.default;
    }, "get")
  });
  _e.react = void 0;
  Object.defineProperty(_e, "removeComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return kns.default;
    }, "get")
  });
  Object.defineProperty(_e, "removeProperties", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Vns.default;
    }, "get")
  });
  Object.defineProperty(_e, "removePropertiesDeep", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Wns.default;
    }, "get")
  });
  Object.defineProperty(_e, "removeTypeDuplicates", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return $ns.default;
    }, "get")
  });
  Object.defineProperty(_e, "shallowEqual", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Gns.default;
    }, "get")
  });
  Object.defineProperty(_e, "toBindingIdentifierName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Ons.default;
    }, "get")
  });
  Object.defineProperty(_e, "toBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return _ns.default;
    }, "get")
  });
  Object.defineProperty(_e, "toComputedKey", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Lns.default;
    }, "get")
  });
  Object.defineProperty(_e, "toExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Bns.default;
    }, "get")
  });
  Object.defineProperty(_e, "toIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Mns.default;
    }, "get")
  });
  Object.defineProperty(_e, "toKeyAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Fns.default;
    }, "get")
  });
  Object.defineProperty(_e, "toStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return jns.default;
    }, "get")
  });
  Object.defineProperty(_e, "traverse", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Q1.default;
    }, "get")
  });
  Object.defineProperty(_e, "traverseFast", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return zns.default;
    }, "get")
  });
  Object.defineProperty(_e, "validate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return das.default;
    }, "get")
  });
  Object.defineProperty(_e, "valueToNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Rns.default;
    }, "get")
  });
  var fns = Vce(), dns = Wce(), mns = Ppe(), yns = Epe(), u6 = Ape();
  Object.keys(u6).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === u6[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return u6[t];
      }, "get")
    });
  });
  var gns = vpe(), Ahe = Ipe(), Tns = Ope(), c6 = Vn();
  Object.keys(c6).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === c6[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return c6[t];
      }, "get")
    });
  });
  var p6 = _pe();
  Object.keys(p6).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === p6[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return p6[t];
      }, "get")
    });
  });
  var h6 = t8();
  Object.keys(h6).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === h6[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return h6[t];
      }, "get")
    });
  });
  var bns = Rp(), xns = Rpe(), Sns = qpe(), Pns = Upe(), Ens = Kpe(), Ans = Vpe(), vns = u8(), Cns = f8(), wns = m8(), Ins = b8(), Nns = g8(),
  kns = Wpe(), f6 = $pe();
  Object.keys(f6).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === f6[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return f6[t];
      }, "get")
    });
  });
  var d6 = Fp();
  Object.keys(d6).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === d6[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return d6[t];
      }, "get")
    });
  });
  var Dns = Hpe(), Ons = Jpe(), _ns = E8(), Lns = Ype(), Bns = Xpe(), Mns = C8(), Fns = Qpe(), jns = Zpe(), Rns = ehe(), m6 = to();
  Object.keys(m6).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === m6[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return m6[t];
      }, "get")
    });
  });
  var qns = the(), Uns = rhe(), Kns = ihe(), Vns = _8(), Wns = B8(), $ns = zj(), Hns = nhe(), Jns = LT(), Yns = ahe(), Xns = lhe(), Q1 = uhe();
  Object.keys(Q1).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === Q1[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return Q1[t];
      }, "get")
    });
  });
  var zns = D8(), Gns = k1(), Qns = oy(), Zns = che(), eas = hhe(), tas = fhe(), sas = X8(), ras = Jj(), ias = mhe(), nas = Cj(), aas = yhe(),
  oas = ghe(), las = bhe(), uas = O1(), cas = xhe(), pas = ly(), has = She(), fas = xj(), das = M1(), mas = Pj(), y6 = di();
  Object.keys(y6).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(nc, t) || t in _e && _e[t] === y6[t] || Object.defineProperty(
    _e, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return y6[t];
      }, "get")
    });
  });
  var yas = AT(), asr = _e.react = {
    isReactComponent: fns.default,
    isCompatTag: dns.default,
    buildChildren: mns.default
  };
  _e.toSequenceExpression = Ehe().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-releas\
e instead!");
});

// ../node_modules/@babel/generator/lib/node/whitespace.js
var Nhe = g((ev) => {
  "use strict";
  Object.defineProperty(ev, "__esModule", {
    value: !0
  });
  ev.nodes = void 0;
  var gas = Wn(), {
    FLIPPED_ALIAS_KEYS: Tas,
    isArrayExpression: bas,
    isAssignmentExpression: Che,
    isBinary: whe,
    isBlockStatement: xas,
    isCallExpression: Ihe,
    isFunction: BT,
    isIdentifier: Z1,
    isLiteral: Sas,
    isMemberExpression: g6,
    isObjectExpression: Pas,
    isOptionalCallExpression: Eas,
    isOptionalMemberExpression: Aas,
    isStringLiteral: vas
  } = gas;
  function hy(t, e) {
    return t && (g6(t) || Aas(t) ? (hy(t.object, e), t.computed && hy(t.property, e)) : whe(t) || Che(t) ? (hy(t.left, e), hy(t.right, e)) :
    Ihe(t) || Eas(t) ? (e.hasCall = !0, hy(t.callee, e)) : BT(t) ? e.hasFunction = !0 : Z1(t) && (e.hasHelper = e.hasHelper || t.callee && ac(
    t.callee))), e;
  }
  n(hy, "crawlInternal");
  function vhe(t) {
    return hy(t, {
      hasCall: !1,
      hasFunction: !1,
      hasHelper: !1
    });
  }
  n(vhe, "crawl");
  function ac(t) {
    return t ? g6(t) ? ac(t.object) || ac(t.property) : Z1(t) ? t.name === "require" || t.name.charCodeAt(0) === 95 : Ihe(t) ? ac(t.callee) :
    whe(t) || Che(t) ? Z1(t.left) && ac(t.left) || ac(t.right) : !1 : !1;
  }
  n(ac, "isHelper");
  function Cas(t) {
    return Sas(t) || Pas(t) || bas(t) || Z1(t) || g6(t);
  }
  n(Cas, "isType");
  var Lf = ev.nodes = {
    AssignmentExpression(t) {
      let e = vhe(t.right);
      if (e.hasCall && e.hasHelper || e.hasFunction)
        return e.hasFunction ? 3 : 2;
    },
    SwitchCase(t, e) {
      return (t.consequent.length || e.cases[0] === t ? 1 : 0) | (!t.consequent.length && e.cases[e.cases.length - 1] === t ? 2 : 0);
    },
    LogicalExpression(t) {
      if (BT(t.left) || BT(t.right))
        return 2;
    },
    Literal(t) {
      if (vas(t) && t.value === "use strict")
        return 2;
    },
    CallExpression(t) {
      if (BT(t.callee) || ac(t))
        return 3;
    },
    OptionalCallExpression(t) {
      if (BT(t.callee))
        return 3;
    },
    VariableDeclaration(t) {
      for (let e = 0; e < t.declarations.length; e++) {
        let s = t.declarations[e], r = ac(s.id) && !Cas(s.init);
        if (!r && s.init) {
          let i = vhe(s.init);
          r = ac(s.init) && i.hasCall || i.hasFunction;
        }
        if (r)
          return 3;
      }
    },
    IfStatement(t) {
      if (xas(t.consequent))
        return 3;
    }
  };
  Lf.ObjectProperty = Lf.ObjectTypeProperty = Lf.ObjectMethod = function(t, e) {
    if (e.properties[0] === t)
      return 1;
  };
  Lf.ObjectTypeCallProperty = function(t, e) {
    var s;
    if (e.callProperties[0] === t && !((s = e.properties) != null && s.length))
      return 1;
  };
  Lf.ObjectTypeIndexer = function(t, e) {
    var s, r;
    if (e.indexers[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length))
      return 1;
  };
  Lf.ObjectTypeInternalSlot = function(t, e) {
    var s, r, i;
    if (e.internalSlots[0] === t && !((s = e.properties) != null && s.length) && !((r = e.callProperties) != null && r.length) && !((i = e.indexers) !=
    null && i.length))
      return 1;
  };
  [["Function", !0], ["Class", !0], ["Loop", !0], ["LabeledStatement", !0], ["SwitchStatement", !0], ["TryStatement", !0]].forEach(function([
  t, e]) {
    [t].concat(Tas[t] || []).forEach(function(s) {
      let r = e ? 3 : 0;
      Lf[s] = () => r;
    });
  });
});

// ../node_modules/@babel/generator/lib/node/parentheses.js
var Fhe = g((nr) => {
  "use strict";
  Object.defineProperty(nr, "__esModule", {
    value: !0
  });
  nr.AssignmentExpression = eos;
  nr.Binary = Lhe;
  nr.BinaryExpression = Yas;
  nr.ClassExpression = Gas;
  nr.ArrowFunctionExpression = nr.ConditionalExpression = Mhe;
  nr.DoExpression = Uas;
  nr.FunctionExpression = Qas;
  nr.FunctionTypeAnnotation = jas;
  nr.Identifier = sos;
  nr.LogicalExpression = tos;
  nr.NullableTypeAnnotation = Fas;
  nr.ObjectExpression = qas;
  nr.OptionalIndexedAccessType = Vas;
  nr.OptionalCallExpression = nr.OptionalMemberExpression = Zas;
  nr.SequenceExpression = Xas;
  nr.TSSatisfiesExpression = nr.TSAsExpression = Was;
  nr.TSInferType = Has;
  nr.TSInstantiationExpression = Jas;
  nr.UnaryLike = nr.TSTypeAssertion = Bhe;
  nr.TSIntersectionType = nr.TSUnionType = $as;
  nr.IntersectionTypeAnnotation = nr.UnionTypeAnnotation = Kas;
  nr.UpdateExpression = Ras;
  nr.AwaitExpression = nr.YieldExpression = zas;
  var was = Wn(), io = qp(), {
    isArrayTypeAnnotation: Ias,
    isBinaryExpression: Nas,
    isCallExpression: kas,
    isForOfStatement: Das,
    isIndexedAccessType: Oas,
    isMemberExpression: Ohe,
    isObjectPattern: _as,
    isOptionalMemberExpression: Las,
    isYieldExpression: Bas,
    isStatement: Mas
  } = was, khe = /* @__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 Dhe(t, e) {
    if (e === "BinaryExpression" || e === "LogicalExpression")
      return khe.get(t.operator);
    if (e === "TSAsExpression" || e === "TSSatisfiesExpression")
      return khe.get("in");
  }
  n(Dhe, "getBinaryPrecedence");
  function T6(t) {
    return t === "TSAsExpression" || t === "TSSatisfiesExpression" || t === "TSTypeAssertion";
  }
  n(T6, "isTSTypeExpression");
  var tv = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "ClassDeclaration" || s === "ClassExpression") && e.superClass === t;
  }, "isClassExtendsClause"), sv = /* @__PURE__ */ n((t, e) => {
    let s = e.type;
    return (s === "MemberExpression" || s === "OptionalMemberExpression") && e.object === t || (s === "CallExpression" || s === "OptionalCal\
lExpression" || s === "NewExpression") && e.callee === t || s === "TaggedTemplateExpression" && e.tag === t || s === "TSNonNullExpression";
  }, "hasPostfixPart");
  function Fas(t, e) {
    return Ias(e);
  }
  n(Fas, "NullableTypeAnnotation");
  function jas(t, e, s) {
    let r = e.type;
    return r === "UnionTypeAnnotation" || r === "IntersectionTypeAnnotation" || r === "ArrayTypeAnnotation" || !!(s & io.TokenContext.arrowFlowReturnType);
  }
  n(jas, "FunctionTypeAnnotation");
  function Ras(t, e) {
    return sv(t, e) || tv(t, e);
  }
  n(Ras, "UpdateExpression");
  function _he(t) {
    return !!(t & (io.TokenContext.expressionStatement | io.TokenContext.arrowBody));
  }
  n(_he, "needsParenBeforeExpressionBrace");
  function qas(t, e, s) {
    return _he(s);
  }
  n(qas, "ObjectExpression");
  function Uas(t, e, s) {
    return !t.async && !!(s & io.TokenContext.expressionStatement);
  }
  n(Uas, "DoExpression");
  function Lhe(t, e) {
    let s = e.type;
    if (t.type === "BinaryExpression" && t.operator === "**" && s === "BinaryExpression" && e.operator === "**")
      return e.left === t;
    if (tv(t, e) || sv(t, e) || s === "UnaryExpression" || s === "SpreadElement" || s === "AwaitExpression")
      return !0;
    let r = Dhe(e, s);
    if (r != null) {
      let i = Dhe(t, t.type);
      if (r === i && s === "BinaryExpression" && e.right === t || r > i)
        return !0;
    }
  }
  n(Lhe, "Binary");
  function Kas(t, e) {
    let s = e.type;
    return s === "ArrayTypeAnnotation" || s === "NullableTypeAnnotation" || s === "IntersectionTypeAnnotation" || s === "UnionTypeAnnotation";
  }
  n(Kas, "UnionTypeAnnotation");
  function Vas(t, e) {
    return Oas(e) && e.objectType === t;
  }
  n(Vas, "OptionalIndexedAccessType");
  function Was(t, e) {
    return (e.type === "AssignmentExpression" || e.type === "AssignmentPattern") && e.left === t || e.type === "BinaryExpression" && (e.operator ===
    "|" || e.operator === "&") && t === e.left ? !0 : Lhe(t, e);
  }
  n(Was, "TSAsExpression");
  function $as(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSOptionalType" || s === "TSIntersectionType" || s === "TSRestType";
  }
  n($as, "TSUnionType");
  function Has(t, e) {
    let s = e.type;
    return s === "TSArrayType" || s === "TSOptionalType";
  }
  n(Has, "TSInferType");
  function Jas(t, e) {
    let s = e.type;
    return (s === "CallExpression" || s === "OptionalCallExpression" || s === "NewExpression" || s === "TSInstantiationExpression") && !!e.typeParameters;
  }
  n(Jas, "TSInstantiationExpression");
  function Yas(t, e, s, r) {
    return t.operator === "in" && r;
  }
  n(Yas, "BinaryExpression");
  function Xas(t, e) {
    let s = e.type;
    return s === "SequenceExpression" || s === "ParenthesizedExpression" || s === "MemberExpression" && e.property === t || s === "OptionalM\
emberExpression" && e.property === t || s === "TemplateLiteral" ? !1 : s === "ClassDeclaration" ? !0 : s === "ForOfStatement" ? e.right === t :
    s === "ExportDefaultDeclaration" ? !0 : !Mas(e);
  }
  n(Xas, "SequenceExpression");
  function zas(t, e) {
    let s = e.type;
    return s === "BinaryExpression" || s === "LogicalExpression" || s === "UnaryExpression" || s === "SpreadElement" || sv(t, e) || s === "A\
waitExpression" && Bas(t) || s === "ConditionalExpression" && t === e.test || tv(t, e) || T6(s);
  }
  n(zas, "YieldExpression");
  function Gas(t, e, s) {
    return !!(s & (io.TokenContext.expressionStatement | io.TokenContext.exportDefault));
  }
  n(Gas, "ClassExpression");
  function Bhe(t, e) {
    return sv(t, e) || Nas(e) && e.operator === "**" && e.left === t || tv(t, e);
  }
  n(Bhe, "UnaryLike");
  function Qas(t, e, s) {
    return !!(s & (io.TokenContext.expressionStatement | io.TokenContext.exportDefault));
  }
  n(Qas, "FunctionExpression");
  function Mhe(t, e) {
    let s = e.type;
    return s === "UnaryExpression" || s === "SpreadElement" || s === "BinaryExpression" || s === "LogicalExpression" || s === "ConditionalEx\
pression" && e.test === t || s === "AwaitExpression" || T6(s) ? !0 : Bhe(t, e);
  }
  n(Mhe, "ConditionalExpression");
  function Zas(t, e) {
    return kas(e) && e.callee === t || Ohe(e) && e.object === t;
  }
  n(Zas, "OptionalMemberExpression");
  function eos(t, e, s) {
    return _he(s) && _as(t.left) ? !0 : Mhe(t, e);
  }
  n(eos, "AssignmentExpression");
  function tos(t, e) {
    let s = e.type;
    if (T6(s)) return !0;
    if (s !== "LogicalExpression") return !1;
    switch (t.operator) {
      case "||":
        return e.operator === "??" || e.operator === "&&";
      case "&&":
        return e.operator === "??";
      case "??":
        return e.operator !== "??";
    }
  }
  n(tos, "LogicalExpression");
  function sos(t, e, s, r, i) {
    var a;
    let o = e.type;
    if ((a = t.extra) != null && a.parenthesized && o === "AssignmentExpression" && e.left === t) {
      let l = e.right.type;
      if ((l === "FunctionExpression" || l === "ClassExpression") && e.right.id == null)
        return !0;
    }
    return i && i(t) !== t.name ? !1 : t.name === "let" ? (Ohe(e, {
      object: t,
      computed: !0
    }) || Las(e, {
      object: t,
      computed: !0,
      optional: !1
    })) && s & (io.TokenContext.expressionStatement | io.TokenContext.forHead | io.TokenContext.forInHead) ? !0 : !!(s & io.TokenContext.forOfHead) :
    t.name === "async" && Das(e, {
      left: t,
      await: !1
    });
  }
  n(sos, "Identifier");
});

// ../node_modules/@babel/generator/lib/node/index.js
var qp = g((oc) => {
  "use strict";
  Object.defineProperty(oc, "__esModule", {
    value: !0
  });
  oc.TokenContext = void 0;
  oc.isLastChild = Tos;
  oc.needsParens = gos;
  oc.needsWhitespace = x6;
  oc.needsWhitespaceAfter = yos;
  oc.needsWhitespaceBefore = mos;
  var ros = Nhe(), ios = Fhe(), nos = Wn(), {
    FLIPPED_ALIAS_KEYS: aos,
    VISITOR_KEYS: oos,
    isCallExpression: jhe,
    isDecorator: los,
    isExpressionStatement: uos,
    isMemberExpression: cos,
    isNewExpression: pos,
    isParenthesizedExpression: hos
  } = nos, fsr = oc.TokenContext = {
    expressionStatement: 1,
    arrowBody: 2,
    exportDefault: 4,
    forHead: 8,
    forInHead: 16,
    forOfHead: 32,
    arrowFlowReturnType: 64
  };
  function Rhe(t) {
    let e = /* @__PURE__ */ new Map();
    function s(r, i) {
      let a = e.get(r);
      e.set(r, a ? function(o, l, u, c, p) {
        var h;
        return (h = a(o, l, u, c, p)) != null ? h : i(o, l, u, c, p);
      } : i);
    }
    n(s, "add");
    for (let r of Object.keys(t)) {
      let i = aos[r];
      if (i)
        for (let a of i)
          s(a, t[r]);
      else
        s(r, t[r]);
    }
    return e;
  }
  n(Rhe, "expandAliases");
  var fos = Rhe(ios), dos = Rhe(ros.nodes);
  function qhe(t) {
    return jhe(t) ? !0 : cos(t) && qhe(t.object);
  }
  n(qhe, "isOrHasCallExpression");
  function x6(t, e, s) {
    var r;
    if (!t) return !1;
    uos(t) && (t = t.expression);
    let i = (r = dos.get(t.type)) == null ? void 0 : r(t, e);
    return typeof i == "number" ? (i & s) !== 0 : !1;
  }
  n(x6, "needsWhitespace");
  function mos(t, e) {
    return x6(t, e, 1);
  }
  n(mos, "needsWhitespaceBefore");
  function yos(t, e) {
    return x6(t, e, 2);
  }
  n(yos, "needsWhitespaceAfter");
  function gos(t, e, s, r, i) {
    var a;
    return e ? pos(e) && e.callee === t && qhe(t) ? !0 : los(e) ? !b6(t) && !(jhe(t) && b6(t.callee)) && !hos(t) : (a = fos.get(t.type)) == null ?
    void 0 : a(t, e, s, r, i) : !1;
  }
  n(gos, "needsParens");
  function b6(t) {
    switch (t.type) {
      case "Identifier":
        return !0;
      case "MemberExpression":
        return !t.computed && t.property.type === "Identifier" && b6(t.object);
      default:
        return !1;
    }
  }
  n(b6, "isDecoratorMemberExpression");
  function Tos(t, e) {
    let s = oos[t.type];
    for (let r = s.length - 1; r >= 0; r--) {
      let i = t[s[r]];
      if (i === e)
        return !0;
      if (Array.isArray(i)) {
        let a = i.length - 1;
        for (; a >= 0 && i[a] === null; ) a--;
        return a >= 0 && i[a] === e;
      } else if (i)
        return !1;
    }
    return !1;
  }
  n(Tos, "isLastChild");
});

// ../node_modules/@babel/generator/lib/token-map.js
var Uhe = g((rv) => {
  "use strict";
  Object.defineProperty(rv, "__esModule", {
    value: !0
  });
  rv.TokenMap = void 0;
  var bos = Wn(), {
    traverseFast: xos,
    VISITOR_KEYS: Sos
  } = bos, S6 = class {
    static {
      n(this, "TokenMap");
    }
    constructor(e, s, r) {
      this._tokens = void 0, this._source = void 0, this._nodesToTokenIndexes = /* @__PURE__ */ new Map(), this._nodesOccurrencesCountCache =
      /* @__PURE__ */ new Map(), this._tokensCache = /* @__PURE__ */ new Map(), this._tokens = s, this._source = r, xos(e, (i) => {
        let a = this._getTokensIndexesOfNode(i);
        a.length > 0 && this._nodesToTokenIndexes.set(i, a);
      }), this._tokensCache = null;
    }
    has(e) {
      return this._nodesToTokenIndexes.has(e);
    }
    getIndexes(e) {
      return this._nodesToTokenIndexes.get(e);
    }
    find(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = 0; i < r.length; i++) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return o;
        }
      return null;
    }
    findLastIndex(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (r)
        for (let i = r.length - 1; i >= 0; i--) {
          let a = r[i], o = this._tokens[a];
          if (s(o, a)) return a;
        }
      return -1;
    }
    findMatching(e, s, r = 0) {
      let i = this._nodesToTokenIndexes.get(e);
      if (i) {
        let a = 0, o = r;
        if (o > 1) {
          let l = this._nodesOccurrencesCountCache.get(e);
          l && l.test === s && l.count < o && (a = l.i + 1, r -= l.count + 1);
        }
        for (; a < i.length; a++) {
          let l = this._tokens[i[a]];
          if (this.matchesOriginal(l, s)) {
            if (r === 0)
              return o > 0 && this._nodesOccurrencesCountCache.set(e, {
                test: s,
                count: o,
                i: a
              }), l;
            r--;
          }
        }
      }
      return null;
    }
    matchesOriginal(e, s) {
      return e.end - e.start !== s.length ? !1 : e.value != null ? e.value === s : this._source.startsWith(s, e.start);
    }
    startMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[0]];
      return i.start !== e.start ? !1 : this.matchesOriginal(i, s);
    }
    endMatches(e, s) {
      let r = this._nodesToTokenIndexes.get(e);
      if (!r) return !1;
      let i = this._tokens[r[r.length - 1]];
      return i.end !== e.end ? !1 : this.matchesOriginal(i, s);
    }
    _getTokensIndexesOfNode(e) {
      if (e.start == null || e.end == null) return [];
      let {
        first: s,
        last: r
      } = this._findTokensOfNode(e, 0, this._tokens.length - 1), i = s, a = Pos(e);
      (e.type === "ExportNamedDeclaration" || e.type === "ExportDefaultDeclaration") && e.declaration && e.declaration.type === "ClassDeclar\
ation" && a.next();
      let o = [];
      for (let l of a) {
        if (l == null || l.start == null || l.end == null) continue;
        let u = this._findTokensOfNode(l, i, r), c = u.first;
        for (let p = i; p < c; p++) o.push(p);
        i = u.last + 1;
      }
      for (let l = i; l <= r; l++) o.push(l);
      return o;
    }
    _findTokensOfNode(e, s, r) {
      let i = this._tokensCache.get(e);
      if (i) return i;
      let a = this._findFirstTokenOfNode(e.start, s, r), o = this._findLastTokenOfNode(e.end, a, r);
      return this._tokensCache.set(e, {
        first: a,
        last: o
      }), {
        first: a,
        last: o
      };
    }
    _findFirstTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].start)
          r = i - 1;
        else if (e > this._tokens[i].start)
          s = i + 1;
        else
          return i;
      }
      return s;
    }
    _findLastTokenOfNode(e, s, r) {
      for (; s <= r; ) {
        let i = r + s >> 1;
        if (e < this._tokens[i].end)
          r = i - 1;
        else if (e > this._tokens[i].end)
          s = i + 1;
        else
          return i;
      }
      return r;
    }
  };
  rv.TokenMap = S6;
  function* Pos(t) {
    if (t.type === "TemplateLiteral") {
      yield t.quasis[0];
      for (let s = 1; s < t.quasis.length; s++)
        yield t.expressions[s - 1], yield t.quasis[s];
      return;
    }
    let e = Sos[t.type];
    for (let s of e) {
      let r = t[s];
      r && (Array.isArray(r) ? yield* r : yield r);
    }
  }
  n(Pos, "childrenIterator");
});

// ../node_modules/@babel/generator/lib/generators/template-literals.js
var Khe = g((MT) => {
  "use strict";
  Object.defineProperty(MT, "__esModule", {
    value: !0
  });
  MT.TaggedTemplateExpression = Eos;
  MT.TemplateElement = Aos;
  MT.TemplateLiteral = vos;
  function Eos(t) {
    this.print(t.tag), this.print(t.typeParameters), this.print(t.quasi);
  }
  n(Eos, "TaggedTemplateExpression");
  function Aos() {
    throw new Error("TemplateElement printing is handled in TemplateLiteral");
  }
  n(Aos, "TemplateElement");
  function vos(t) {
    let e = t.quasis, s = "`";
    for (let r = 0; r < e.length; r++)
      if (s += e[r].value.raw, r + 1 < e.length && (this.token(s + "${", !0), this.print(t.expressions[r]), s = "}", this.tokenMap)) {
        let i = this.tokenMap.findMatching(t, "}", r);
        i && this._catchUpTo(i.loc.start);
      }
    this.token(s + "`", !0);
  }
  n(vos, "TemplateLiteral");
});

// ../node_modules/@babel/generator/lib/generators/expressions.js
var Whe = g((fr) => {
  "use strict";
  Object.defineProperty(fr, "__esModule", {
    value: !0
  });
  fr.LogicalExpression = fr.BinaryExpression = fr.AssignmentExpression = Gos;
  fr.AssignmentPattern = zos;
  fr.AwaitExpression = Hos;
  fr.BindExpression = Qos;
  fr.CallExpression = Wos;
  fr.ConditionalExpression = Bos;
  fr.Decorator = Uos;
  fr.DoExpression = Oos;
  fr.EmptyStatement = Yos;
  fr.ExpressionStatement = Xos;
  fr.Import = $os;
  fr.MemberExpression = Zos;
  fr.MetaProperty = els;
  fr.ModuleExpression = rls;
  fr.NewExpression = Mos;
  fr.OptionalCallExpression = Vos;
  fr.OptionalMemberExpression = Kos;
  fr.ParenthesizedExpression = _os;
  fr.PrivateName = tls;
  fr.SequenceExpression = Fos;
  fr.Super = Ros;
  fr.ThisExpression = jos;
  fr.UnaryExpression = Dos;
  fr.UpdateExpression = Los;
  fr.V8IntrinsicIdentifier = sls;
  fr.YieldExpression = Jos;
  fr._shouldPrintDecoratorsBeforeExport = qos;
  var Cos = Wn(), wos = qp(), {
    isCallExpression: Ios,
    isLiteral: Vhe,
    isMemberExpression: P6,
    isNewExpression: Nos,
    isPattern: kos
  } = Cos;
  function Dos(t) {
    let {
      operator: e
    } = t;
    e === "void" || e === "delete" || e === "typeof" || e === "throw" ? (this.word(e), this.space()) : this.token(e), this.print(t.argument);
  }
  n(Dos, "UnaryExpression");
  function Oos(t) {
    t.async && (this.word("async", !0), this.space()), this.word("do"), this.space(), this.print(t.body);
  }
  n(Oos, "DoExpression");
  function _os(t) {
    this.tokenChar(40);
    let e = this.enterDelimited();
    this.print(t.expression), e(), this.rightParens(t);
  }
  n(_os, "ParenthesizedExpression");
  function Los(t) {
    t.prefix ? (this.token(t.operator), this.print(t.argument)) : (this.print(t.argument, !0), this.token(t.operator));
  }
  n(Los, "UpdateExpression");
  function Bos(t) {
    this.print(t.test), this.space(), this.tokenChar(63), this.space(), this.print(t.consequent), this.space(), this.tokenChar(58), this.space(),
    this.print(t.alternate);
  }
  n(Bos, "ConditionalExpression");
  function Mos(t, e) {
    if (this.word("new"), this.space(), this.print(t.callee), this.format.minified && t.arguments.length === 0 && !t.optional && !Ios(e, {
      callee: t
    }) && !P6(e) && !Nos(e) || (this.print(t.typeArguments), this.print(t.typeParameters), t.optional && this.token("?."), t.arguments.length ===
    0 && this.tokenMap && !this.tokenMap.endMatches(t, ")")))
      return;
    this.tokenChar(40);
    let s = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), s(), this.rightParens(t);
  }
  n(Mos, "NewExpression");
  function Fos(t) {
    this.printList(t.expressions);
  }
  n(Fos, "SequenceExpression");
  function jos() {
    this.word("this");
  }
  n(jos, "ThisExpression");
  function Ros() {
    this.word("super");
  }
  n(Ros, "Super");
  function qos(t) {
    return typeof this.format.decoratorsBeforeExport == "boolean" ? this.format.decoratorsBeforeExport : typeof t.start == "number" && t.start ===
    t.declaration.start;
  }
  n(qos, "_shouldPrintDecoratorsBeforeExport");
  function Uos(t) {
    this.tokenChar(64), this.print(t.expression), this.newline();
  }
  n(Uos, "Decorator");
  function Kos(t) {
    let {
      computed: e
    } = t, {
      optional: s,
      property: r
    } = t;
    if (this.print(t.object), !e && P6(r))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    Vhe(r) && typeof r.value == "number" && (e = !0), s && this.token("?."), e ? (this.tokenChar(91), this.print(r), this.tokenChar(93)) : (s ||
    this.tokenChar(46), this.print(r));
  }
  n(Kos, "OptionalMemberExpression");
  function Vos(t) {
    this.print(t.callee), this.print(t.typeParameters), t.optional && this.token("?."), this.print(t.typeArguments), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments), e(), this.rightParens(t);
  }
  n(Vos, "OptionalCallExpression");
  function Wos(t) {
    this.print(t.callee), this.print(t.typeArguments), this.print(t.typeParameters), this.tokenChar(40);
    let e = this.enterDelimited();
    this.printList(t.arguments, this.shouldPrintTrailingComma(")")), e(), this.rightParens(t);
  }
  n(Wos, "CallExpression");
  function $os() {
    this.word("import");
  }
  n($os, "Import");
  function Hos(t) {
    this.word("await"), t.argument && (this.space(), this.printTerminatorless(t.argument));
  }
  n(Hos, "AwaitExpression");
  function Jos(t) {
    this.word("yield", !0), t.delegate ? (this.tokenChar(42), t.argument && (this.space(), this.print(t.argument))) : t.argument && (this.space(),
    this.printTerminatorless(t.argument));
  }
  n(Jos, "YieldExpression");
  function Yos() {
    this.semicolon(!0);
  }
  n(Yos, "EmptyStatement");
  function Xos(t) {
    this.tokenContext |= wos.TokenContext.expressionStatement, this.print(t.expression), this.semicolon();
  }
  n(Xos, "ExpressionStatement");
  function zos(t) {
    this.print(t.left), (t.left.type === "Identifier" || kos(t.left)) && (t.left.optional && this.tokenChar(63), this.print(t.left.typeAnnotation)),
    this.space(), this.tokenChar(61), this.space(), this.print(t.right);
  }
  n(zos, "AssignmentPattern");
  function Gos(t) {
    this.print(t.left), this.space(), t.operator === "in" || t.operator === "instanceof" ? this.word(t.operator) : (this.token(t.operator), this.
    _endsWithDiv = t.operator === "/"), this.space(), this.print(t.right);
  }
  n(Gos, "AssignmentExpression");
  function Qos(t) {
    this.print(t.object), this.token("::"), this.print(t.callee);
  }
  n(Qos, "BindExpression");
  function Zos(t) {
    if (this.print(t.object), !t.computed && P6(t.property))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    let e = t.computed;
    if (Vhe(t.property) && typeof t.property.value == "number" && (e = !0), e) {
      let s = this.enterDelimited();
      this.tokenChar(91), this.print(t.property), this.tokenChar(93), s();
    } else
      this.tokenChar(46), this.print(t.property);
  }
  n(Zos, "MemberExpression");
  function els(t) {
    this.print(t.meta), this.tokenChar(46), this.print(t.property);
  }
  n(els, "MetaProperty");
  function tls(t) {
    this.tokenChar(35), this.print(t.id);
  }
  n(tls, "PrivateName");
  function sls(t) {
    this.tokenChar(37), this.word(t.name);
  }
  n(sls, "V8IntrinsicIdentifier");
  function rls(t) {
    this.word("module", !0), this.space(), this.tokenChar(123), this.indent();
    let {
      body: e
    } = t;
    (e.body.length || e.directives.length) && this.newline(), this.print(e), this.dedent(), this.rightBrace(t);
  }
  n(rls, "ModuleExpression");
});

// ../node_modules/@babel/generator/lib/generators/statements.js
var Yhe = g((Qr) => {
  "use strict";
  Object.defineProperty(Qr, "__esModule", {
    value: !0
  });
  Qr.BreakStatement = fls;
  Qr.CatchClause = bls;
  Qr.ContinueStatement = dls;
  Qr.DebuggerStatement = Pls;
  Qr.DoWhileStatement = hls;
  Qr.ForOfStatement = Qr.ForInStatement = void 0;
  Qr.ForStatement = cls;
  Qr.IfStatement = uls;
  Qr.LabeledStatement = gls;
  Qr.ReturnStatement = mls;
  Qr.SwitchCase = Sls;
  Qr.SwitchStatement = xls;
  Qr.ThrowStatement = yls;
  Qr.TryStatement = Tls;
  Qr.VariableDeclaration = Els;
  Qr.VariableDeclarator = Als;
  Qr.WhileStatement = pls;
  Qr.WithStatement = lls;
  var ils = Wn(), E6 = qp(), {
    isFor: $he,
    isForStatement: nls,
    isIfStatement: als,
    isStatement: ols
  } = ils;
  function lls(t) {
    this.word("with"), this.space(), this.tokenChar(40), this.print(t.object), this.tokenChar(41), this.printBlock(t);
  }
  n(lls, "WithStatement");
  function uls(t) {
    this.word("if"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.space();
    let e = t.alternate && als(Hhe(t.consequent));
    e && (this.tokenChar(123), this.newline(), this.indent()), this.printAndIndentOnComments(t.consequent), e && (this.dedent(), this.newline(),
    this.tokenChar(125)), t.alternate && (this.endsWith(125) && this.space(), this.word("else"), this.space(), this.printAndIndentOnComments(
    t.alternate));
  }
  n(uls, "IfStatement");
  function Hhe(t) {
    let {
      body: e
    } = t;
    return ols(e) === !1 ? t : Hhe(e);
  }
  n(Hhe, "getLastStatement");
  function cls(t) {
    this.word("for"), this.space(), this.tokenChar(40);
    {
      let e = this.enterForStatementInit();
      this.tokenContext |= E6.TokenContext.forHead, this.print(t.init), e();
    }
    this.tokenChar(59), t.test && (this.space(), this.print(t.test)), this.token(";", !1, 1), t.update && (this.space(), this.print(t.update)),
    this.tokenChar(41), this.printBlock(t);
  }
  n(cls, "ForStatement");
  function pls(t) {
    this.word("while"), this.space(), this.tokenChar(40), this.print(t.test), this.tokenChar(41), this.printBlock(t);
  }
  n(pls, "WhileStatement");
  function Jhe(t) {
    this.word("for"), this.space();
    let e = t.type === "ForOfStatement";
    e && t.await && (this.word("await"), this.space()), this.noIndentInnerCommentsHere(), this.tokenChar(40);
    {
      let s = e ? null : this.enterForStatementInit();
      this.tokenContext |= e ? E6.TokenContext.forOfHead : E6.TokenContext.forInHead, this.print(t.left), s?.();
    }
    this.space(), this.word(e ? "of" : "in"), this.space(), this.print(t.right), this.tokenChar(41), this.printBlock(t);
  }
  n(Jhe, "ForXStatement");
  var Psr = Qr.ForInStatement = Jhe, Esr = Qr.ForOfStatement = Jhe;
  function hls(t) {
    this.word("do"), this.space(), this.print(t.body), this.space(), this.word("while"), this.space(), this.tokenChar(40), this.print(t.test),
    this.tokenChar(41), this.semicolon();
  }
  n(hls, "DoWhileStatement");
  function iv(t, e) {
    e && (t.space(), t.printTerminatorless(e)), t.semicolon();
  }
  n(iv, "printStatementAfterKeyword");
  function fls(t) {
    this.word("break"), iv(this, t.label);
  }
  n(fls, "BreakStatement");
  function dls(t) {
    this.word("continue"), iv(this, t.label);
  }
  n(dls, "ContinueStatement");
  function mls(t) {
    this.word("return"), iv(this, t.argument);
  }
  n(mls, "ReturnStatement");
  function yls(t) {
    this.word("throw"), iv(this, t.argument);
  }
  n(yls, "ThrowStatement");
  function gls(t) {
    this.print(t.label), this.tokenChar(58), this.space(), this.print(t.body);
  }
  n(gls, "LabeledStatement");
  function Tls(t) {
    this.word("try"), this.space(), this.print(t.block), this.space(), t.handlers ? this.print(t.handlers[0]) : this.print(t.handler), t.finalizer &&
    (this.space(), this.word("finally"), this.space(), this.print(t.finalizer));
  }
  n(Tls, "TryStatement");
  function bls(t) {
    this.word("catch"), this.space(), t.param && (this.tokenChar(40), this.print(t.param), this.print(t.param.typeAnnotation), this.tokenChar(
    41), this.space()), this.print(t.body);
  }
  n(bls, "CatchClause");
  function xls(t) {
    this.word("switch"), this.space(), this.tokenChar(40), this.print(t.discriminant), this.tokenChar(41), this.space(), this.tokenChar(123),
    this.printSequence(t.cases, !0, void 0, /* @__PURE__ */ n(function(s, r) {
      if (!s && t.cases[t.cases.length - 1] === r) return -1;
    }, "addNewlines")), this.rightBrace(t);
  }
  n(xls, "SwitchStatement");
  function Sls(t) {
    t.test ? (this.word("case"), this.space(), this.print(t.test), this.tokenChar(58)) : (this.word("default"), this.tokenChar(58)), t.consequent.
    length && (this.newline(), this.printSequence(t.consequent, !0));
  }
  n(Sls, "SwitchCase");
  function Pls() {
    this.word("debugger"), this.semicolon();
  }
  n(Pls, "DebuggerStatement");
  function Els(t, e) {
    t.declare && (this.word("declare"), this.space());
    let {
      kind: s
    } = t;
    s === "await using" ? (this.word("await"), this.space(), this.word("using", !0)) : this.word(s, s === "using"), this.space();
    let r = !1;
    if (!$he(e))
      for (let i of t.declarations)
        i.init && (r = !0);
    if (this.printList(t.declarations, void 0, void 0, t.declarations.length > 1, r ? function(i) {
      this.token(",", !1, i), this.newline();
    } : void 0), $he(e)) {
      if (nls(e)) {
        if (e.init === t) return;
      } else if (e.left === t) return;
    }
    this.semicolon();
  }
  n(Els, "VariableDeclaration");
  function Als(t) {
    this.print(t.id), t.definite && this.tokenChar(33), this.print(t.id.typeAnnotation), t.init && (this.space(), this.tokenChar(61), this.space(),
    this.print(t.init));
  }
  n(Als, "VariableDeclarator");
});

// ../node_modules/@babel/generator/lib/generators/classes.js
var Xhe = g((no) => {
  "use strict";
  Object.defineProperty(no, "__esModule", {
    value: !0
  });
  no.ClassAccessorProperty = Ols;
  no.ClassBody = Nls;
  no.ClassExpression = no.ClassDeclaration = Ils;
  no.ClassMethod = Lls;
  no.ClassPrivateMethod = Bls;
  no.ClassPrivateProperty = _ls;
  no.ClassProperty = Dls;
  no.StaticBlock = Fls;
  no._classMethodHead = Mls;
  var vls = Wn(), {
    isExportDefaultDeclaration: Cls,
    isExportNamedDeclaration: wls
  } = vls;
  function Ils(t, e) {
    (!(Cls(e) || wls(e)) || !this._shouldPrintDecoratorsBeforeExport(e)) && this.printJoin(t.decorators), t.declare && (this.word("declare"),
    this.space()), t.abstract && (this.word("abstract"), this.space()), this.word("class"), t.id && (this.space(), this.print(t.id)), this.print(
    t.typeParameters), t.superClass && (this.space(), this.word("extends"), this.space(), this.print(t.superClass), this.print(t.superTypeParameters)),
    t.implements && (this.space(), this.word("implements"), this.space(), this.printList(t.implements)), this.space(), this.print(t.body);
  }
  n(Ils, "ClassDeclaration");
  function Nls(t) {
    if (this.tokenChar(123), t.body.length === 0)
      this.tokenChar(125);
    else {
      this.newline();
      let e = kls(this, t);
      e?.(-1);
      let s = this.enterDelimited();
      this.printJoin(t.body, !0, !0, e, !0), s(), this.endsWith(10) || this.newline(), this.rightBrace(t);
    }
  }
  n(Nls, "ClassBody");
  function kls(t, e) {
    if (!t.tokenMap || e.start == null || e.end == null)
      return null;
    let s = t.tokenMap.getIndexes(e);
    if (!s) return null;
    let r = 1, i = 0, a = 0, o = /* @__PURE__ */ n(() => {
      for (; a < e.body.length && e.body[a].start == null; )
        a++;
    }, "advanceNextLocIndex");
    return o(), (l) => {
      a <= l && (a = l + 1, o());
      let u = a === e.body.length ? e.end : e.body[a].start, c;
      for (; r < s.length && t.tokenMap.matchesOriginal(c = t._tokens[s[r]], ";") && c.start < u; )
        t.token(";", void 0, i++), r++;
    };
  }
  n(kls, "classBodyEmptySemicolonsPrinter");
  function Dls(t) {
    if (this.printJoin(t.decorators), !t.static && !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), t.computed ? (this.tokenChar(91), this.print(t.key), this.tokenChar(93)) : (this._variance(t), this.
    print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(33), this.print(t.typeAnnotation), t.value && (this.space(),
    this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(Dls, "ClassProperty");
  function Ols(t) {
    var e;
    this.printJoin(t.decorators);
    let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
    s && this.catchUp(s), this.tsPrintClassMemberModifiers(t), this.word("accessor", !0), this.space(), t.computed ? (this.tokenChar(91), this.
    print(t.key), this.tokenChar(93)) : (this._variance(t), this.print(t.key)), t.optional && this.tokenChar(63), t.definite && this.tokenChar(
    33), this.print(t.typeAnnotation), t.value && (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(Ols, "ClassAccessorProperty");
  function _ls(t) {
    this.printJoin(t.decorators), t.static && (this.word("static"), this.space()), this.print(t.key), this.print(t.typeAnnotation), t.value &&
    (this.space(), this.tokenChar(61), this.space(), this.print(t.value)), this.semicolon();
  }
  n(_ls, "ClassPrivateProperty");
  function Lls(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(Lls, "ClassMethod");
  function Bls(t) {
    this._classMethodHead(t), this.space(), this.print(t.body);
  }
  n(Bls, "ClassPrivateMethod");
  function Mls(t) {
    if (this.printJoin(t.decorators), !this.format.preserveFormat) {
      var e;
      let s = (e = t.key.loc) == null || (e = e.end) == null ? void 0 : e.line;
      s && this.catchUp(s);
    }
    this.tsPrintClassMemberModifiers(t), this._methodHead(t);
  }
  n(Mls, "_classMethodHead");
  function Fls(t) {
    this.word("static"), this.space(), this.tokenChar(123), t.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(
    t.body, !0), this.rightBrace(t));
  }
  n(Fls, "StaticBlock");
});

// ../node_modules/@babel/generator/lib/generators/methods.js
var zhe = g((ao) => {
  "use strict";
  Object.defineProperty(ao, "__esModule", {
    value: !0
  });
  ao.ArrowFunctionExpression = Yls;
  ao.FunctionDeclaration = ao.FunctionExpression = Jls;
  ao._functionHead = Hls;
  ao._methodHead = Wls;
  ao._param = Vls;
  ao._parameters = Kls;
  ao._params = Uls;
  ao._predicate = $ls;
  ao._shouldPrintArrowParamsParens = Xls;
  var jls = Wn(), Rls = qp(), {
    isIdentifier: qls
  } = jls;
  function Uls(t, e, s) {
    this.print(t.typeParameters);
    let r = zls.call(this, e, s);
    r && this.sourceIdentifierName(r.name, r.pos), this.tokenChar(40), this._parameters(t.params, ")");
    let i = t.type === "ArrowFunctionExpression";
    this.print(t.returnType, i), this._noLineTerminator = i;
  }
  n(Uls, "_params");
  function Kls(t, e) {
    let s = this.enterDelimited(), r = this.shouldPrintTrailingComma(e), i = t.length;
    for (let a = 0; a < i; a++)
      this._param(t[a]), (r || a < i - 1) && (this.token(",", null, a), this.space());
    this.token(e), s();
  }
  n(Kls, "_parameters");
  function Vls(t) {
    this.printJoin(t.decorators), this.print(t), t.optional && this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(Vls, "_param");
  function Wls(t) {
    let e = t.kind, s = t.key;
    (e === "get" || e === "set") && (this.word(e), this.space()), t.async && (this.word("async", !0), this.space()), (e === "method" || e ===
    "init") && t.generator && this.tokenChar(42), t.computed ? (this.tokenChar(91), this.print(s), this.tokenChar(93)) : this.print(s), t.optional &&
    this.tokenChar(63), this._params(t, t.computed && t.key.type !== "StringLiteral" ? void 0 : t.key, void 0);
  }
  n(Wls, "_methodHead");
  function $ls(t, e) {
    t.predicate && (t.returnType || this.tokenChar(58), this.space(), this.print(t.predicate, e));
  }
  n($ls, "_predicate");
  function Hls(t, e) {
    t.async && (this.word("async"), this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.space()), this.word("function"), t.generator &&
    (this.format.preserveFormat || (this._endsWithInnerRaw = !1), this.tokenChar(42)), this.space(), t.id && this.print(t.id), this._params(
    t, t.id, e), t.type !== "TSDeclareFunction" && this._predicate(t);
  }
  n(Hls, "_functionHead");
  function Jls(t, e) {
    this._functionHead(t, e), this.space(), this.print(t.body);
  }
  n(Jls, "FunctionExpression");
  function Yls(t, e) {
    t.async && (this.word("async", !0), this.space()), this._shouldPrintArrowParamsParens(t) ? this._params(t, void 0, e) : this.print(t.params[0],
    !0), this._predicate(t, !0), this.space(), this.printInnerComments(), this.token("=>"), this.space(), this.tokenContext |= Rls.TokenContext.
    arrowBody, this.print(t.body);
  }
  n(Yls, "ArrowFunctionExpression");
  function Xls(t) {
    var e, s;
    if (t.params.length !== 1 || t.typeParameters || t.returnType || t.predicate)
      return !0;
    let r = t.params[0];
    if (!qls(r) || r.typeAnnotation || r.optional || (e = r.leadingComments) != null && e.length || (s = r.trailingComments) != null && s.length)
      return !0;
    if (this.tokenMap) {
      if (t.loc == null || this.tokenMap.findMatching(t, "(") !== null) return !0;
      let i = this.tokenMap.findMatching(t, "=>");
      return i?.loc == null ? !0 : i.loc.start.line !== t.loc.start.line;
    }
    return !!this.format.retainLines;
  }
  n(Xls, "_shouldPrintArrowParamsParens");
  function zls(t, e) {
    let s = t;
    if (!s && e) {
      let u = e.type;
      u === "VariableDeclarator" ? s = e.id : u === "AssignmentExpression" || u === "AssignmentPattern" ? s = e.left : u === "ObjectProperty" ||
      u === "ClassProperty" ? (!e.computed || e.key.type === "StringLiteral") && (s = e.key) : (u === "ClassPrivateProperty" || u === "Class\
AccessorProperty") && (s = e.key);
    }
    if (!s) return;
    let r;
    if (s.type === "Identifier") {
      var i, a;
      r = {
        pos: (i = s.loc) == null ? void 0 : i.start,
        name: ((a = s.loc) == null ? void 0 : a.identifierName) || s.name
      };
    } else if (s.type === "PrivateName") {
      var o;
      r = {
        pos: (o = s.loc) == null ? void 0 : o.start,
        name: "#" + s.id.name
      };
    } else if (s.type === "StringLiteral") {
      var l;
      r = {
        pos: (l = s.loc) == null ? void 0 : l.start,
        name: s.value
      };
    }
    return r;
  }
  n(zls, "_getFuncIdName");
});

// ../node_modules/@babel/generator/lib/generators/modules.js
var A6 = g(($n) => {
  "use strict";
  Object.defineProperty($n, "__esModule", {
    value: !0
  });
  $n.ExportAllDeclaration = cus;
  $n.ExportDefaultDeclaration = hus;
  $n.ExportDefaultSpecifier = aus;
  $n.ExportNamedDeclaration = pus;
  $n.ExportNamespaceSpecifier = lus;
  $n.ExportSpecifier = ous;
  $n.ImportAttribute = dus;
  $n.ImportDeclaration = fus;
  $n.ImportDefaultSpecifier = nus;
  $n.ImportExpression = yus;
  $n.ImportNamespaceSpecifier = mus;
  $n.ImportSpecifier = ius;
  $n._printAttributes = uus;
  var Gls = Wn(), Qls = qp(), {
    isClassDeclaration: Zls,
    isExportDefaultSpecifier: eus,
    isExportNamespaceSpecifier: tus,
    isImportDefaultSpecifier: sus,
    isImportNamespaceSpecifier: rus,
    isStatement: Qhe
  } = Gls;
  function ius(t) {
    (t.importKind === "type" || t.importKind === "typeof") && (this.word(t.importKind), this.space()), this.print(t.imported), t.local && t.
    local.name !== t.imported.name && (this.space(), this.word("as"), this.space(), this.print(t.local));
  }
  n(ius, "ImportSpecifier");
  function nus(t) {
    this.print(t.local);
  }
  n(nus, "ImportDefaultSpecifier");
  function aus(t) {
    this.print(t.exported);
  }
  n(aus, "ExportDefaultSpecifier");
  function ous(t) {
    t.exportKind === "type" && (this.word("type"), this.space()), this.print(t.local), t.exported && t.local.name !== t.exported.name && (this.
    space(), this.word("as"), this.space(), this.print(t.exported));
  }
  n(ous, "ExportSpecifier");
  function lus(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.exported);
  }
  n(lus, "ExportNamespaceSpecifier");
  var Ghe = !1;
  function uus(t, e) {
    let {
      importAttributesKeyword: s
    } = this.format, {
      attributes: r,
      assertions: i
    } = t;
    r && !s && !Ghe && (Ghe = !0, console.warn('You are using import attributes, without specifying the desired output syntax.\nPlease specif\
y 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'));
    let a = s === "assert" || !s && i;
    if (this.word(a ? "assert" : "with"), this.space(), !a && s !== "with") {
      this.printList(r || i);
      return;
    }
    let o = e ? 1 : 0;
    this.token("{", null, o), this.space(), this.printList(r || i, this.shouldPrintTrailingComma("}")), this.space(), this.token("}", null, o);
  }
  n(uus, "_printAttributes");
  function cus(t) {
    var e, s;
    this.word("export"), this.space(), t.exportKind === "type" && (this.word("type"), this.space()), this.tokenChar(42), this.space(), this.
    word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0),
    this.space(), this._printAttributes(t, !1)) : this.print(t.source), this.semicolon();
  }
  n(cus, "ExportAllDeclaration");
  function Zhe(t, e) {
    Zls(e.declaration) && t._shouldPrintDecoratorsBeforeExport(e) && t.printJoin(e.declaration.decorators);
  }
  n(Zhe, "maybePrintDecoratorsBeforeExport");
  function pus(t) {
    if (Zhe(this, t), this.word("export"), this.space(), t.declaration) {
      let r = t.declaration;
      this.print(r), Qhe(r) || this.semicolon();
    } else {
      t.exportKind === "type" && (this.word("type"), this.space());
      let r = t.specifiers.slice(0), i = !1;
      for (; ; ) {
        let o = r[0];
        if (eus(o) || tus(o))
          i = !0, this.print(r.shift()), r.length && (this.tokenChar(44), this.space());
        else
          break;
      }
      let a = !1;
      if ((r.length || !r.length && !i) && (a = !0, this.tokenChar(123), r.length && (this.space(), this.printList(r, this.shouldPrintTrailingComma(
      "}")), this.space()), this.tokenChar(125)), t.source) {
        var e, s;
        this.space(), this.word("from"), this.space(), (e = t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.
        print(t.source, !0), this.space(), this._printAttributes(t, a)) : this.print(t.source);
      }
      this.semicolon();
    }
  }
  n(pus, "ExportNamedDeclaration");
  function hus(t) {
    Zhe(this, t), this.word("export"), this.noIndentInnerCommentsHere(), this.space(), this.word("default"), this.space(), this.tokenContext |=
    Qls.TokenContext.exportDefault;
    let e = t.declaration;
    this.print(e), Qhe(e) || this.semicolon();
  }
  n(hus, "ExportDefaultDeclaration");
  function fus(t) {
    var e, s;
    this.word("import"), this.space();
    let r = t.importKind === "type" || t.importKind === "typeof";
    r ? (this.noIndentInnerCommentsHere(), this.word(t.importKind), this.space()) : t.module ? (this.noIndentInnerCommentsHere(), this.word(
    "module"), this.space()) : t.phase && (this.noIndentInnerCommentsHere(), this.word(t.phase), this.space());
    let i = t.specifiers.slice(0), a = !!i.length;
    for (; a; ) {
      let l = i[0];
      if (sus(l) || rus(l))
        this.print(i.shift()), i.length && (this.tokenChar(44), this.space());
      else
        break;
    }
    let o = !1;
    i.length ? (o = !0, this.tokenChar(123), this.space(), this.printList(i, this.shouldPrintTrailingComma("}")), this.space(), this.tokenChar(
    125)) : r && !a && (o = !0, this.tokenChar(123), this.tokenChar(125)), (a || r) && (this.space(), this.word("from"), this.space()), (e =
    t.attributes) != null && e.length || (s = t.assertions) != null && s.length ? (this.print(t.source, !0), this.space(), this._printAttributes(
    t, o)) : this.print(t.source), this.semicolon();
  }
  n(fus, "ImportDeclaration");
  function dus(t) {
    this.print(t.key), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(dus, "ImportAttribute");
  function mus(t) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(t.local);
  }
  n(mus, "ImportNamespaceSpecifier");
  function yus(t) {
    this.word("import"), t.phase && (this.tokenChar(46), this.word(t.phase)), this.tokenChar(40), this.print(t.source), t.options != null &&
    (this.tokenChar(44), this.space(), this.print(t.options)), this.tokenChar(41);
  }
  n(yus, "ImportExpression");
});

// ../node_modules/@babel/generator/lib/generators/types.js
var C6 = g((Fr) => {
  "use strict";
  Object.defineProperty(Fr, "__esModule", {
    value: !0
  });
  Fr.ArgumentPlaceholder = Sus;
  Fr.ArrayPattern = Fr.ArrayExpression = Cus;
  Fr.BigIntLiteral = Lus;
  Fr.BooleanLiteral = kus;
  Fr.Identifier = xus;
  Fr.NullLiteral = Dus;
  Fr.NumericLiteral = Ous;
  Fr.ObjectPattern = Fr.ObjectExpression = Eus;
  Fr.ObjectMethod = Aus;
  Fr.ObjectProperty = vus;
  Fr.PipelineBareFunction = Fus;
  Fr.PipelinePrimaryTopicReference = jus;
  Fr.PipelineTopicExpression = Mus;
  Fr.RecordExpression = wus;
  Fr.RegExpLiteral = Nus;
  Fr.SpreadElement = Fr.RestElement = Pus;
  Fr.StringLiteral = _us;
  Fr.TopicReference = Bus;
  Fr.TupleExpression = Ius;
  Fr._getRawIdentifier = bus;
  var gus = Wn(), sfe = Td(), {
    isAssignmentPattern: Tus,
    isIdentifier: v6
  } = gus, efe = null, nv = "";
  function bus(t) {
    if (t === efe) return nv;
    efe = t;
    let {
      name: e
    } = t, s = this.tokenMap.find(t, (r) => r.value === e);
    return s ? (nv = this._originalCode.slice(s.start, s.end), nv) : nv = t.name;
  }
  n(bus, "_getRawIdentifier");
  function xus(t) {
    var e;
    this.sourceIdentifierName(((e = t.loc) == null ? void 0 : e.identifierName) || t.name), this.word(this.tokenMap ? this._getRawIdentifier(
    t) : t.name);
  }
  n(xus, "Identifier");
  function Sus() {
    this.tokenChar(63);
  }
  n(Sus, "ArgumentPlaceholder");
  function Pus(t) {
    this.token("..."), this.print(t.argument);
  }
  n(Pus, "RestElement");
  function Eus(t) {
    let e = t.properties;
    if (this.tokenChar(123), e.length) {
      let s = this.enterDelimited();
      this.space(), this.printList(e, this.shouldPrintTrailingComma("}"), !0, !0), this.space(), s();
    }
    this.sourceWithOffset("end", t.loc, -1), this.tokenChar(125);
  }
  n(Eus, "ObjectExpression");
  function Aus(t) {
    this.printJoin(t.decorators), this._methodHead(t), this.space(), this.print(t.body);
  }
  n(Aus, "ObjectMethod");
  function vus(t) {
    if (this.printJoin(t.decorators), t.computed)
      this.tokenChar(91), this.print(t.key), this.tokenChar(93);
    else {
      if (Tus(t.value) && v6(t.key) && t.key.name === t.value.left.name) {
        this.print(t.value);
        return;
      }
      if (this.print(t.key), t.shorthand && v6(t.key) && v6(t.value) && t.key.name === t.value.name)
        return;
    }
    this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(vus, "ObjectProperty");
  function Cus(t) {
    let e = t.elements, s = e.length;
    this.tokenChar(91);
    let r = this.enterDelimited();
    for (let i = 0; i < e.length; i++) {
      let a = e[i];
      a ? (i > 0 && this.space(), this.print(a), (i < s - 1 || this.shouldPrintTrailingComma("]")) && this.token(",", !1, i)) : this.token("\
,", !1, i);
    }
    r(), this.tokenChar(93);
  }
  n(Cus, "ArrayExpression");
  function wus(t) {
    let e = t.properties, s, r;
    if (this.format.recordAndTupleSyntaxType === "bar")
      s = "{|", r = "|}";
    else {
      if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null)
        throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)}\
 received).`);
      s = "#{", r = "}";
    }
    this.token(s), e.length && (this.space(), this.printList(e, this.shouldPrintTrailingComma(r), !0, !0), this.space()), this.token(r);
  }
  n(wus, "RecordExpression");
  function Ius(t) {
    let e = t.elements, s = e.length, r, i;
    if (this.format.recordAndTupleSyntaxType === "bar")
      r = "[|", i = "|]";
    else if (this.format.recordAndTupleSyntaxType === "hash")
      r = "#[", i = "]";
    else
      throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
    this.token(r);
    for (let a = 0; a < e.length; a++) {
      let o = e[a];
      o && (a > 0 && this.space(), this.print(o), (a < s - 1 || this.shouldPrintTrailingComma(i)) && this.token(",", !1, a));
    }
    this.token(i);
  }
  n(Ius, "TupleExpression");
  function Nus(t) {
    this.word(`/${t.pattern}/${t.flags}`);
  }
  n(Nus, "RegExpLiteral");
  function kus(t) {
    this.word(t.value ? "true" : "false");
  }
  n(kus, "BooleanLiteral");
  function Dus() {
    this.word("null");
  }
  n(Dus, "NullLiteral");
  function Ous(t) {
    let e = this.getPossibleRaw(t), s = this.format.jsescOption, r = t.value, i = r + "";
    s.numbers ? this.number(sfe(r, s), r) : e == null ? this.number(i, r) : this.format.minified ? this.number(e.length < i.length ? e : i, r) :
    this.number(e, r);
  }
  n(Ous, "NumericLiteral");
  function _us(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let s = sfe(t.value, this.format.jsescOption);
    this.token(s);
  }
  n(_us, "StringLiteral");
  function Lus(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.word(e);
      return;
    }
    this.word(t.value + "n");
  }
  n(Lus, "BigIntLiteral");
  var tfe = /* @__PURE__ */ new Set(["^^", "@@", "^", "%", "#"]);
  function Bus() {
    let {
      topicToken: t
    } = this.format;
    if (tfe.has(t))
      this.token(t);
    else {
      let e = JSON.stringify(t), s = Array.from(tfe, (r) => JSON.stringify(r));
      throw new Error(`The "topicToken" generator option must be one of ${s.join(", ")} (${e} received instead).`);
    }
  }
  n(Bus, "TopicReference");
  function Mus(t) {
    this.print(t.expression);
  }
  n(Mus, "PipelineTopicExpression");
  function Fus(t) {
    this.print(t.callee);
  }
  n(Fus, "PipelineBareFunction");
  function jus() {
    this.tokenChar(35);
  }
  n(jus, "PipelinePrimaryTopicReference");
});

// ../node_modules/@babel/generator/lib/generators/flow.js
var ife = g((ot) => {
  "use strict";
  Object.defineProperty(ot, "__esModule", {
    value: !0
  });
  ot.AnyTypeAnnotation = Vus;
  ot.ArrayTypeAnnotation = Wus;
  ot.BooleanLiteralTypeAnnotation = Hus;
  ot.BooleanTypeAnnotation = $us;
  ot.DeclareClass = Yus;
  ot.DeclareExportAllDeclaration = ncs;
  ot.DeclareExportDeclaration = ics;
  ot.DeclareFunction = Xus;
  ot.DeclareInterface = Qus;
  ot.DeclareModule = Zus;
  ot.DeclareModuleExports = ecs;
  ot.DeclareOpaqueType = scs;
  ot.DeclareTypeAlias = tcs;
  ot.DeclareVariable = rcs;
  ot.DeclaredPredicate = Gus;
  ot.EmptyTypeAnnotation = wcs;
  ot.EnumBooleanBody = ocs;
  ot.EnumBooleanMember = hcs;
  ot.EnumDeclaration = acs;
  ot.EnumDefaultedMember = pcs;
  ot.EnumNumberBody = lcs;
  ot.EnumNumberMember = fcs;
  ot.EnumStringBody = ucs;
  ot.EnumStringMember = dcs;
  ot.EnumSymbolBody = ccs;
  ot.ExistsTypeAnnotation = ycs;
  ot.FunctionTypeAnnotation = gcs;
  ot.FunctionTypeParam = Tcs;
  ot.IndexedAccessType = Qcs;
  ot.InferredPredicate = zus;
  ot.InterfaceDeclaration = Pcs;
  ot.GenericTypeAnnotation = ot.ClassImplements = ot.InterfaceExtends = bcs;
  ot.InterfaceTypeAnnotation = Acs;
  ot.IntersectionTypeAnnotation = vcs;
  ot.MixedTypeAnnotation = Ccs;
  ot.NullLiteralTypeAnnotation = Jus;
  ot.NullableTypeAnnotation = Ics;
  Object.defineProperty(ot, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return rfe.NumericLiteral;
    }, "get")
  });
  ot.NumberTypeAnnotation = Ncs;
  ot.ObjectTypeAnnotation = Rcs;
  ot.ObjectTypeCallProperty = Ucs;
  ot.ObjectTypeIndexer = Kcs;
  ot.ObjectTypeInternalSlot = qcs;
  ot.ObjectTypeProperty = Vcs;
  ot.ObjectTypeSpreadProperty = Wcs;
  ot.OpaqueType = jcs;
  ot.OptionalIndexedAccessType = Zcs;
  ot.QualifiedTypeIdentifier = $cs;
  Object.defineProperty(ot, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return rfe.StringLiteral;
    }, "get")
  });
  ot.StringTypeAnnotation = kcs;
  ot.SymbolTypeAnnotation = Hcs;
  ot.ThisTypeAnnotation = Dcs;
  ot.TupleTypeAnnotation = Ocs;
  ot.TypeAlias = Lcs;
  ot.TypeAnnotation = Bcs;
  ot.TypeCastExpression = Xcs;
  ot.TypeParameter = Fcs;
  ot.TypeParameterDeclaration = ot.TypeParameterInstantiation = Mcs;
  ot.TypeofTypeAnnotation = _cs;
  ot.UnionTypeAnnotation = Ycs;
  ot.Variance = zcs;
  ot.VoidTypeAnnotation = Gcs;
  ot._interfaceish = xcs;
  ot._variance = Scs;
  var Rus = Wn(), qus = A6(), Uus = qp(), rfe = C6(), {
    isDeclareExportDeclaration: av,
    isStatement: Kus
  } = Rus;
  function Vus() {
    this.word("any");
  }
  n(Vus, "AnyTypeAnnotation");
  function Wus(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(Wus, "ArrayTypeAnnotation");
  function $us() {
    this.word("boolean");
  }
  n($us, "BooleanTypeAnnotation");
  function Hus(t) {
    this.word(t.value ? "true" : "false");
  }
  n(Hus, "BooleanLiteralTypeAnnotation");
  function Jus() {
    this.word("null");
  }
  n(Jus, "NullLiteralTypeAnnotation");
  function Yus(t, e) {
    av(e) || (this.word("declare"), this.space()), this.word("class"), this.space(), this._interfaceish(t);
  }
  n(Yus, "DeclareClass");
  function Xus(t, e) {
    av(e) || (this.word("declare"), this.space()), this.word("function"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation.typeAnnotation),
    t.predicate && (this.space(), this.print(t.predicate)), this.semicolon();
  }
  n(Xus, "DeclareFunction");
  function zus() {
    this.tokenChar(37), this.word("checks");
  }
  n(zus, "InferredPredicate");
  function Gus(t) {
    this.tokenChar(37), this.word("checks"), this.tokenChar(40), this.print(t.value), this.tokenChar(41);
  }
  n(Gus, "DeclaredPredicate");
  function Qus(t) {
    this.word("declare"), this.space(), this.InterfaceDeclaration(t);
  }
  n(Qus, "DeclareInterface");
  function Zus(t) {
    this.word("declare"), this.space(), this.word("module"), this.space(), this.print(t.id), this.space(), this.print(t.body);
  }
  n(Zus, "DeclareModule");
  function ecs(t) {
    this.word("declare"), this.space(), this.word("module"), this.tokenChar(46), this.word("exports"), this.print(t.typeAnnotation);
  }
  n(ecs, "DeclareModuleExports");
  function tcs(t) {
    this.word("declare"), this.space(), this.TypeAlias(t);
  }
  n(tcs, "DeclareTypeAlias");
  function scs(t, e) {
    av(e) || (this.word("declare"), this.space()), this.OpaqueType(t);
  }
  n(scs, "DeclareOpaqueType");
  function rcs(t, e) {
    av(e) || (this.word("declare"), this.space()), this.word("var"), this.space(), this.print(t.id), this.print(t.id.typeAnnotation), this.semicolon();
  }
  n(rcs, "DeclareVariable");
  function ics(t) {
    this.word("declare"), this.space(), this.word("export"), this.space(), t.default && (this.word("default"), this.space()), mcs.call(this,
    t);
  }
  n(ics, "DeclareExportDeclaration");
  function ncs(t) {
    this.word("declare"), this.space(), qus.ExportAllDeclaration.call(this, t);
  }
  n(ncs, "DeclareExportAllDeclaration");
  function acs(t) {
    let {
      id: e,
      body: s
    } = t;
    this.word("enum"), this.space(), this.print(e), this.print(s);
  }
  n(acs, "EnumDeclaration");
  function ov(t, e, s) {
    s && (t.space(), t.word("of"), t.space(), t.word(e)), t.space();
  }
  n(ov, "enumExplicitType");
  function lv(t, e) {
    let {
      members: s
    } = e;
    t.token("{"), t.indent(), t.newline();
    for (let r of s)
      t.print(r), t.newline();
    e.hasUnknownMembers && (t.token("..."), t.newline()), t.dedent(), t.token("}");
  }
  n(lv, "enumBody");
  function ocs(t) {
    let {
      explicitType: e
    } = t;
    ov(this, "boolean", e), lv(this, t);
  }
  n(ocs, "EnumBooleanBody");
  function lcs(t) {
    let {
      explicitType: e
    } = t;
    ov(this, "number", e), lv(this, t);
  }
  n(lcs, "EnumNumberBody");
  function ucs(t) {
    let {
      explicitType: e
    } = t;
    ov(this, "string", e), lv(this, t);
  }
  n(ucs, "EnumStringBody");
  function ccs(t) {
    ov(this, "symbol", !0), lv(this, t);
  }
  n(ccs, "EnumSymbolBody");
  function pcs(t) {
    let {
      id: e
    } = t;
    this.print(e), this.tokenChar(44);
  }
  n(pcs, "EnumDefaultedMember");
  function w6(t, e) {
    t.print(e.id), t.space(), t.token("="), t.space(), t.print(e.init), t.token(",");
  }
  n(w6, "enumInitializedMember");
  function hcs(t) {
    w6(this, t);
  }
  n(hcs, "EnumBooleanMember");
  function fcs(t) {
    w6(this, t);
  }
  n(fcs, "EnumNumberMember");
  function dcs(t) {
    w6(this, t);
  }
  n(dcs, "EnumStringMember");
  function mcs(t) {
    if (t.declaration) {
      let e = t.declaration;
      this.print(e), Kus(e) || this.semicolon();
    } else
      this.tokenChar(123), t.specifiers.length && (this.space(), this.printList(t.specifiers), this.space()), this.tokenChar(125), t.source &&
      (this.space(), this.word("from"), this.space(), this.print(t.source)), this.semicolon();
  }
  n(mcs, "FlowExportDeclaration");
  function ycs() {
    this.tokenChar(42);
  }
  n(ycs, "ExistsTypeAnnotation");
  function gcs(t, e) {
    this.print(t.typeParameters), this.tokenChar(40), t.this && (this.word("this"), this.tokenChar(58), this.space(), this.print(t.this.typeAnnotation),
    (t.params.length || t.rest) && (this.tokenChar(44), this.space())), this.printList(t.params), t.rest && (t.params.length && (this.tokenChar(
    44), this.space()), this.token("..."), this.print(t.rest)), this.tokenChar(41);
    let s = e?.type;
    s != null && (s === "ObjectTypeCallProperty" || s === "ObjectTypeInternalSlot" || s === "DeclareFunction" || s === "ObjectTypeProperty" &&
    e.method) ? this.tokenChar(58) : (this.space(), this.token("=>")), this.space(), this.print(t.returnType);
  }
  n(gcs, "FunctionTypeAnnotation");
  function Tcs(t) {
    this.print(t.name), t.optional && this.tokenChar(63), t.name && (this.tokenChar(58), this.space()), this.print(t.typeAnnotation);
  }
  n(Tcs, "FunctionTypeParam");
  function bcs(t) {
    this.print(t.id), this.print(t.typeParameters, !0);
  }
  n(bcs, "InterfaceExtends");
  function xcs(t) {
    var e;
    if (this.print(t.id), this.print(t.typeParameters), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(),
    this.printList(t.extends)), t.type === "DeclareClass") {
      var s, r;
      (s = t.mixins) != null && s.length && (this.space(), this.word("mixins"), this.space(), this.printList(t.mixins)), (r = t.implements) !=
      null && r.length && (this.space(), this.word("implements"), this.space(), this.printList(t.implements));
    }
    this.space(), this.print(t.body);
  }
  n(xcs, "_interfaceish");
  function Scs(t) {
    var e;
    let s = (e = t.variance) == null ? void 0 : e.kind;
    s != null && (s === "plus" ? this.tokenChar(43) : s === "minus" && this.tokenChar(45));
  }
  n(Scs, "_variance");
  function Pcs(t) {
    this.word("interface"), this.space(), this._interfaceish(t);
  }
  n(Pcs, "InterfaceDeclaration");
  function Ecs(t) {
    this.space(), this.token("&", !1, t), this.space();
  }
  n(Ecs, "andSeparator");
  function Acs(t) {
    var e;
    this.word("interface"), (e = t.extends) != null && e.length && (this.space(), this.word("extends"), this.space(), this.printList(t.extends)),
    this.space(), this.print(t.body);
  }
  n(Acs, "InterfaceTypeAnnotation");
  function vcs(t) {
    this.printJoin(t.types, void 0, void 0, Ecs);
  }
  n(vcs, "IntersectionTypeAnnotation");
  function Ccs() {
    this.word("mixed");
  }
  n(Ccs, "MixedTypeAnnotation");
  function wcs() {
    this.word("empty");
  }
  n(wcs, "EmptyTypeAnnotation");
  function Ics(t) {
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(Ics, "NullableTypeAnnotation");
  function Ncs() {
    this.word("number");
  }
  n(Ncs, "NumberTypeAnnotation");
  function kcs() {
    this.word("string");
  }
  n(kcs, "StringTypeAnnotation");
  function Dcs() {
    this.word("this");
  }
  n(Dcs, "ThisTypeAnnotation");
  function Ocs(t) {
    this.tokenChar(91), this.printList(t.types), this.tokenChar(93);
  }
  n(Ocs, "TupleTypeAnnotation");
  function _cs(t) {
    this.word("typeof"), this.space(), this.print(t.argument);
  }
  n(_cs, "TypeofTypeAnnotation");
  function Lcs(t) {
    this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), this.space(), this.tokenChar(61), this.space(), this.print(
    t.right), this.semicolon();
  }
  n(Lcs, "TypeAlias");
  function Bcs(t, e) {
    this.tokenChar(58), this.space(), e.type === "ArrowFunctionExpression" ? this.tokenContext |= Uus.TokenContext.arrowFlowReturnType : t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(Bcs, "TypeAnnotation");
  function Mcs(t) {
    this.tokenChar(60), this.printList(t.params), this.tokenChar(62);
  }
  n(Mcs, "TypeParameterInstantiation");
  function Fcs(t) {
    this._variance(t), this.word(t.name), t.bound && this.print(t.bound), t.default && (this.space(), this.tokenChar(61), this.space(), this.
    print(t.default));
  }
  n(Fcs, "TypeParameter");
  function jcs(t) {
    this.word("opaque"), this.space(), this.word("type"), this.space(), this.print(t.id), this.print(t.typeParameters), t.supertype && (this.
    tokenChar(58), this.space(), this.print(t.supertype)), t.impltype && (this.space(), this.tokenChar(61), this.space(), this.print(t.impltype)),
    this.semicolon();
  }
  n(jcs, "OpaqueType");
  function Rcs(t) {
    t.exact ? this.token("{|") : this.tokenChar(123);
    let e = [...t.properties, ...t.callProperties || [], ...t.indexers || [], ...t.internalSlots || []];
    e.length && (this.newline(), this.space(), this.printJoin(e, !0, !0, void 0, void 0, /* @__PURE__ */ n(function(r) {
      if (r && !e[0]) return 1;
    }, "addNewlines"), () => {
      (e.length !== 1 || t.inexact) && (this.tokenChar(44), this.space());
    }), this.space()), t.inexact && (this.indent(), this.token("..."), e.length && this.newline(), this.dedent()), t.exact ? this.token("|}") :
    this.tokenChar(125);
  }
  n(Rcs, "ObjectTypeAnnotation");
  function qcs(t) {
    t.static && (this.word("static"), this.space()), this.tokenChar(91), this.tokenChar(91), this.print(t.id), this.tokenChar(93), this.tokenChar(
    93), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58), this.space()), this.print(t.value);
  }
  n(qcs, "ObjectTypeInternalSlot");
  function Ucs(t) {
    t.static && (this.word("static"), this.space()), this.print(t.value);
  }
  n(Ucs, "ObjectTypeCallProperty");
  function Kcs(t) {
    t.static && (this.word("static"), this.space()), this._variance(t), this.tokenChar(91), t.id && (this.print(t.id), this.tokenChar(58), this.
    space()), this.print(t.key), this.tokenChar(93), this.tokenChar(58), this.space(), this.print(t.value);
  }
  n(Kcs, "ObjectTypeIndexer");
  function Vcs(t) {
    t.proto && (this.word("proto"), this.space()), t.static && (this.word("static"), this.space()), (t.kind === "get" || t.kind === "set") &&
    (this.word(t.kind), this.space()), this._variance(t), this.print(t.key), t.optional && this.tokenChar(63), t.method || (this.tokenChar(58),
    this.space()), this.print(t.value);
  }
  n(Vcs, "ObjectTypeProperty");
  function Wcs(t) {
    this.token("..."), this.print(t.argument);
  }
  n(Wcs, "ObjectTypeSpreadProperty");
  function $cs(t) {
    this.print(t.qualification), this.tokenChar(46), this.print(t.id);
  }
  n($cs, "QualifiedTypeIdentifier");
  function Hcs() {
    this.word("symbol");
  }
  n(Hcs, "SymbolTypeAnnotation");
  function Jcs(t) {
    this.space(), this.token("|", !1, t), this.space();
  }
  n(Jcs, "orSeparator");
  function Ycs(t) {
    this.printJoin(t.types, void 0, void 0, Jcs);
  }
  n(Ycs, "UnionTypeAnnotation");
  function Xcs(t) {
    this.tokenChar(40), this.print(t.expression), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(Xcs, "TypeCastExpression");
  function zcs(t) {
    t.kind === "plus" ? this.tokenChar(43) : this.tokenChar(45);
  }
  n(zcs, "Variance");
  function Gcs() {
    this.word("void");
  }
  n(Gcs, "VoidTypeAnnotation");
  function Qcs(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(Qcs, "IndexedAccessType");
  function Zcs(t) {
    this.print(t.objectType), t.optional && this.token("?."), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(Zcs, "OptionalIndexedAccessType");
});

// ../node_modules/@babel/generator/lib/generators/base.js
var nfe = g((lc) => {
  "use strict";
  Object.defineProperty(lc, "__esModule", {
    value: !0
  });
  lc.BlockStatement = sps;
  lc.Directive = rps;
  lc.DirectiveLiteral = aps;
  lc.File = eps;
  lc.InterpreterDirective = ops;
  lc.Placeholder = lps;
  lc.Program = tps;
  function eps(t) {
    t.program && this.print(t.program.interpreter), this.print(t.program);
  }
  n(eps, "File");
  function tps(t) {
    var e;
    this.noIndentInnerCommentsHere(), this.printInnerComments();
    let s = (e = t.directives) == null ? void 0 : e.length;
    if (s) {
      var r;
      let i = t.body.length ? 2 : 1;
      this.printSequence(t.directives, void 0, i), (r = t.directives[s - 1].trailingComments) != null && r.length || this.newline(i);
    }
    this.printSequence(t.body);
  }
  n(tps, "Program");
  function sps(t) {
    var e;
    this.tokenChar(123);
    let s = this.enterDelimited(), r = (e = t.directives) == null ? void 0 : e.length;
    if (r) {
      var i;
      let a = t.body.length ? 2 : 1;
      this.printSequence(t.directives, !0, a), (i = t.directives[r - 1].trailingComments) != null && i.length || this.newline(a);
    }
    this.printSequence(t.body, !0), s(), this.rightBrace(t);
  }
  n(sps, "BlockStatement");
  function rps(t) {
    this.print(t.value), this.semicolon();
  }
  n(rps, "Directive");
  var ips = /(?:^|[^\\])(?:\\\\)*'/, nps = /(?:^|[^\\])(?:\\\\)*"/;
  function aps(t) {
    let e = this.getPossibleRaw(t);
    if (!this.format.minified && e !== void 0) {
      this.token(e);
      return;
    }
    let {
      value: s
    } = t;
    if (!nps.test(s))
      this.token(`"${s}"`);
    else if (!ips.test(s))
      this.token(`'${s}'`);
    else
      throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.");
  }
  n(aps, "DirectiveLiteral");
  function ops(t) {
    this.token(`#!${t.value}`), this.newline(1, !0);
  }
  n(ops, "InterpreterDirective");
  function lps(t) {
    this.token("%%"), this.print(t.name), this.token("%%"), t.expectedNode === "Statement" && this.semicolon();
  }
  n(lps, "Placeholder");
});

// ../node_modules/@babel/generator/lib/generators/jsx.js
var afe = g((Zi) => {
  "use strict";
  Object.defineProperty(Zi, "__esModule", {
    value: !0
  });
  Zi.JSXAttribute = ups;
  Zi.JSXClosingElement = xps;
  Zi.JSXClosingFragment = Aps;
  Zi.JSXElement = gps;
  Zi.JSXEmptyExpression = Sps;
  Zi.JSXExpressionContainer = dps;
  Zi.JSXFragment = Pps;
  Zi.JSXIdentifier = cps;
  Zi.JSXMemberExpression = hps;
  Zi.JSXNamespacedName = pps;
  Zi.JSXOpeningElement = bps;
  Zi.JSXOpeningFragment = Eps;
  Zi.JSXSpreadAttribute = fps;
  Zi.JSXSpreadChild = mps;
  Zi.JSXText = yps;
  function ups(t) {
    this.print(t.name), t.value && (this.tokenChar(61), this.print(t.value));
  }
  n(ups, "JSXAttribute");
  function cps(t) {
    this.word(t.name);
  }
  n(cps, "JSXIdentifier");
  function pps(t) {
    this.print(t.namespace), this.tokenChar(58), this.print(t.name);
  }
  n(pps, "JSXNamespacedName");
  function hps(t) {
    this.print(t.object), this.tokenChar(46), this.print(t.property);
  }
  n(hps, "JSXMemberExpression");
  function fps(t) {
    this.tokenChar(123), this.token("..."), this.print(t.argument), this.rightBrace(t);
  }
  n(fps, "JSXSpreadAttribute");
  function dps(t) {
    this.tokenChar(123), this.print(t.expression), this.rightBrace(t);
  }
  n(dps, "JSXExpressionContainer");
  function mps(t) {
    this.tokenChar(123), this.token("..."), this.print(t.expression), this.rightBrace(t);
  }
  n(mps, "JSXSpreadChild");
  function yps(t) {
    let e = this.getPossibleRaw(t);
    e !== void 0 ? this.token(e, !0) : this.token(t.value, !0);
  }
  n(yps, "JSXText");
  function gps(t) {
    let e = t.openingElement;
    if (this.print(e), !e.selfClosing) {
      this.indent();
      for (let s of t.children)
        this.print(s);
      this.dedent(), this.print(t.closingElement);
    }
  }
  n(gps, "JSXElement");
  function Tps() {
    this.space();
  }
  n(Tps, "spaceSeparator");
  function bps(t) {
    this.tokenChar(60), this.print(t.name), t.typeArguments && this.print(t.typeArguments), this.print(t.typeParameters), t.attributes.length >
    0 && (this.space(), this.printJoin(t.attributes, void 0, void 0, Tps)), t.selfClosing && (this.space(), this.tokenChar(47)), this.tokenChar(
    62);
  }
  n(bps, "JSXOpeningElement");
  function xps(t) {
    this.tokenChar(60), this.tokenChar(47), this.print(t.name), this.tokenChar(62);
  }
  n(xps, "JSXClosingElement");
  function Sps() {
    this.printInnerComments();
  }
  n(Sps, "JSXEmptyExpression");
  function Pps(t) {
    this.print(t.openingFragment), this.indent();
    for (let e of t.children)
      this.print(e);
    this.dedent(), this.print(t.closingFragment);
  }
  n(Pps, "JSXFragment");
  function Eps() {
    this.tokenChar(60), this.tokenChar(62);
  }
  n(Eps, "JSXOpeningFragment");
  function Aps() {
    this.token("</"), this.tokenChar(62);
  }
  n(Aps, "JSXClosingFragment");
});

// ../node_modules/@babel/generator/lib/generators/typescript.js
var pfe = g((Qe) => {
  "use strict";
  Object.defineProperty(Qe, "__esModule", {
    value: !0
  });
  Qe.TSAnyKeyword = jps;
  Qe.TSArrayType = nhs;
  Qe.TSSatisfiesExpression = Qe.TSAsExpression = Ehs;
  Qe.TSBigIntKeyword = Rps;
  Qe.TSBooleanKeyword = Vps;
  Qe.TSCallSignatureDeclaration = Ops;
  Qe.TSInterfaceHeritage = Qe.TSClassImplements = bhs;
  Qe.TSConditionalType = hhs;
  Qe.TSConstructSignatureDeclaration = _ps;
  Qe.TSConstructorType = Zps;
  Qe.TSDeclareFunction = Nps;
  Qe.TSDeclareMethod = kps;
  Qe.TSEnumBody = cfe;
  Qe.TSEnumDeclaration = Chs;
  Qe.TSEnumMember = whs;
  Qe.TSExportAssignment = Lhs;
  Qe.TSExternalModuleReference = Ohs;
  Qe.TSFunctionType = Qps;
  Qe.TSImportEqualsDeclaration = Dhs;
  Qe.TSImportType = khs;
  Qe.TSIndexSignature = Fps;
  Qe.TSIndexedAccessType = yhs;
  Qe.TSInferType = fhs;
  Qe.TSInstantiationExpression = vhs;
  Qe.TSInterfaceBody = Shs;
  Qe.TSInterfaceDeclaration = xhs;
  Qe.TSIntersectionType = phs;
  Qe.TSIntrinsicKeyword = zps;
  Qe.TSLiteralType = Ths;
  Qe.TSMappedType = ghs;
  Qe.TSMethodSignature = Mps;
  Qe.TSModuleBlock = Nhs;
  Qe.TSModuleDeclaration = Ihs;
  Qe.TSNamedTupleMember = uhs;
  Qe.TSNamespaceExportDeclaration = Bhs;
  Qe.TSNeverKeyword = Xps;
  Qe.TSNonNullExpression = _hs;
  Qe.TSNullKeyword = Yps;
  Qe.TSNumberKeyword = Ups;
  Qe.TSObjectKeyword = Kps;
  Qe.TSOptionalType = ohs;
  Qe.TSParameterProperty = Ips;
  Qe.TSParenthesizedType = dhs;
  Qe.TSPropertySignature = Lps;
  Qe.TSQualifiedName = Dps;
  Qe.TSRestType = lhs;
  Qe.TSStringKeyword = Wps;
  Qe.TSSymbolKeyword = $ps;
  Qe.TSThisType = Gps;
  Qe.TSTupleType = ahs;
  Qe.TSTypeAliasDeclaration = Phs;
  Qe.TSTypeAnnotation = vps;
  Qe.TSTypeAssertion = Ahs;
  Qe.TSTypeLiteral = ihs;
  Qe.TSTypeOperator = mhs;
  Qe.TSTypeParameter = wps;
  Qe.TSTypeParameterDeclaration = Qe.TSTypeParameterInstantiation = Cps;
  Qe.TSTypePredicate = shs;
  Qe.TSTypeQuery = rhs;
  Qe.TSTypeReference = ths;
  Qe.TSUndefinedKeyword = Jps;
  Qe.TSUnionType = chs;
  Qe.TSUnknownKeyword = qps;
  Qe.TSVoidKeyword = Hps;
  Qe.tsPrintClassMemberModifiers = Fhs;
  Qe.tsPrintFunctionOrConstructorType = ehs;
  Qe.tsPrintPropertyOrMethodName = Bps;
  Qe.tsPrintSignatureDeclarationBase = Mhs;
  function vps(t, e) {
    this.token((e.type === "TSFunctionType" || e.type === "TSConstructorType") && e.typeAnnotation === t ? "=>" : ":"), this.space(), t.optional &&
    this.tokenChar(63), this.print(t.typeAnnotation);
  }
  n(vps, "TSTypeAnnotation");
  function Cps(t, e) {
    this.tokenChar(60);
    let s = e.type === "ArrowFunctionExpression" && t.params.length === 1;
    this.tokenMap && t.start != null && t.end != null && (s && (s = !!this.tokenMap.find(t, (r) => this.tokenMap.matchesOriginal(r, ","))), s ||
    (s = this.shouldPrintTrailingComma(">"))), this.printList(t.params, s), this.tokenChar(62);
  }
  n(Cps, "TSTypeParameterInstantiation");
  function wps(t) {
    t.in && (this.word("in"), this.space()), t.out && (this.word("out"), this.space()), this.word(t.name), t.constraint && (this.space(), this.
    word("extends"), this.space(), this.print(t.constraint)), t.default && (this.space(), this.tokenChar(61), this.space(), this.print(t.default));
  }
  n(wps, "TSTypeParameter");
  function Ips(t) {
    t.accessibility && (this.word(t.accessibility), this.space()), t.readonly && (this.word("readonly"), this.space()), this._param(t.parameter);
  }
  n(Ips, "TSParameterProperty");
  function Nps(t, e) {
    t.declare && (this.word("declare"), this.space()), this._functionHead(t, e), this.semicolon();
  }
  n(Nps, "TSDeclareFunction");
  function kps(t) {
    this._classMethodHead(t), this.semicolon();
  }
  n(kps, "TSDeclareMethod");
  function Dps(t) {
    this.print(t.left), this.tokenChar(46), this.print(t.right);
  }
  n(Dps, "TSQualifiedName");
  function Ops(t) {
    this.tsPrintSignatureDeclarationBase(t), FT(this, t);
  }
  n(Ops, "TSCallSignatureDeclaration");
  function FT(t, e) {
    if (!t.tokenMap || !e.start || !e.end) {
      t.semicolon();
      return;
    }
    t.tokenMap.endMatches(e, ",") ? t.token(",") : t.tokenMap.endMatches(e, ";") && t.semicolon();
  }
  n(FT, "maybePrintTrailingCommaOrSemicolon");
  function _ps(t) {
    this.word("new"), this.space(), this.tsPrintSignatureDeclarationBase(t), FT(this, t);
  }
  n(_ps, "TSConstructSignatureDeclaration");
  function Lps(t) {
    let {
      readonly: e
    } = t;
    e && (this.word("readonly"), this.space()), this.tsPrintPropertyOrMethodName(t), this.print(t.typeAnnotation), FT(this, t);
  }
  n(Lps, "TSPropertySignature");
  function Bps(t) {
    t.computed && this.tokenChar(91), this.print(t.key), t.computed && this.tokenChar(93), t.optional && this.tokenChar(63);
  }
  n(Bps, "tsPrintPropertyOrMethodName");
  function Mps(t) {
    let {
      kind: e
    } = t;
    (e === "set" || e === "get") && (this.word(e), this.space()), this.tsPrintPropertyOrMethodName(t), this.tsPrintSignatureDeclarationBase(
    t), FT(this, t);
  }
  n(Mps, "TSMethodSignature");
  function Fps(t) {
    let {
      readonly: e,
      static: s
    } = t;
    s && (this.word("static"), this.space()), e && (this.word("readonly"), this.space()), this.tokenChar(91), this._parameters(t.parameters,
    "]"), this.print(t.typeAnnotation), FT(this, t);
  }
  n(Fps, "TSIndexSignature");
  function jps() {
    this.word("any");
  }
  n(jps, "TSAnyKeyword");
  function Rps() {
    this.word("bigint");
  }
  n(Rps, "TSBigIntKeyword");
  function qps() {
    this.word("unknown");
  }
  n(qps, "TSUnknownKeyword");
  function Ups() {
    this.word("number");
  }
  n(Ups, "TSNumberKeyword");
  function Kps() {
    this.word("object");
  }
  n(Kps, "TSObjectKeyword");
  function Vps() {
    this.word("boolean");
  }
  n(Vps, "TSBooleanKeyword");
  function Wps() {
    this.word("string");
  }
  n(Wps, "TSStringKeyword");
  function $ps() {
    this.word("symbol");
  }
  n($ps, "TSSymbolKeyword");
  function Hps() {
    this.word("void");
  }
  n(Hps, "TSVoidKeyword");
  function Jps() {
    this.word("undefined");
  }
  n(Jps, "TSUndefinedKeyword");
  function Yps() {
    this.word("null");
  }
  n(Yps, "TSNullKeyword");
  function Xps() {
    this.word("never");
  }
  n(Xps, "TSNeverKeyword");
  function zps() {
    this.word("intrinsic");
  }
  n(zps, "TSIntrinsicKeyword");
  function Gps() {
    this.word("this");
  }
  n(Gps, "TSThisType");
  function Qps(t) {
    this.tsPrintFunctionOrConstructorType(t);
  }
  n(Qps, "TSFunctionType");
  function Zps(t) {
    t.abstract && (this.word("abstract"), this.space()), this.word("new"), this.space(), this.tsPrintFunctionOrConstructorType(t);
  }
  n(Zps, "TSConstructorType");
  function ehs(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")"), this.space();
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(ehs, "tsPrintFunctionOrConstructorType");
  function ths(t) {
    let e = t.typeParameters;
    this.print(t.typeName, !!e), this.print(e);
  }
  n(ths, "TSTypeReference");
  function shs(t) {
    t.asserts && (this.word("asserts"), this.space()), this.print(t.parameterName), t.typeAnnotation && (this.space(), this.word("is"), this.
    space(), this.print(t.typeAnnotation.typeAnnotation));
  }
  n(shs, "TSTypePredicate");
  function rhs(t) {
    this.word("typeof"), this.space(), this.print(t.exprName);
    let e = t.typeParameters;
    e && this.print(e);
  }
  n(rhs, "TSTypeQuery");
  function ihs(t) {
    uv(this, t, () => this.printJoin(t.members, !0, !0));
  }
  n(ihs, "TSTypeLiteral");
  function nhs(t) {
    this.print(t.elementType, !0), this.tokenChar(91), this.tokenChar(93);
  }
  n(nhs, "TSArrayType");
  function ahs(t) {
    this.tokenChar(91), this.printList(t.elementTypes, this.shouldPrintTrailingComma("]")), this.tokenChar(93);
  }
  n(ahs, "TSTupleType");
  function ohs(t) {
    this.print(t.typeAnnotation), this.tokenChar(63);
  }
  n(ohs, "TSOptionalType");
  function lhs(t) {
    this.token("..."), this.print(t.typeAnnotation);
  }
  n(lhs, "TSRestType");
  function uhs(t) {
    this.print(t.label), t.optional && this.tokenChar(63), this.tokenChar(58), this.space(), this.print(t.elementType);
  }
  n(uhs, "TSNamedTupleMember");
  function chs(t) {
    ufe(this, t, "|");
  }
  n(chs, "TSUnionType");
  function phs(t) {
    ufe(this, t, "&");
  }
  n(phs, "TSIntersectionType");
  function ufe(t, e, s) {
    var r;
    let i = 0;
    (r = t.tokenMap) != null && r.startMatches(e, s) && (i = 1, t.token(s)), t.printJoin(e.types, void 0, void 0, function(a) {
      this.space(), this.token(s, null, a + i), this.space();
    });
  }
  n(ufe, "tsPrintUnionOrIntersectionType");
  function hhs(t) {
    this.print(t.checkType), this.space(), this.word("extends"), this.space(), this.print(t.extendsType), this.space(), this.tokenChar(63), this.
    space(), this.print(t.trueType), this.space(), this.tokenChar(58), this.space(), this.print(t.falseType);
  }
  n(hhs, "TSConditionalType");
  function fhs(t) {
    this.word("infer"), this.print(t.typeParameter);
  }
  n(fhs, "TSInferType");
  function dhs(t) {
    this.tokenChar(40), this.print(t.typeAnnotation), this.tokenChar(41);
  }
  n(dhs, "TSParenthesizedType");
  function mhs(t) {
    this.word(t.operator), this.space(), this.print(t.typeAnnotation);
  }
  n(mhs, "TSTypeOperator");
  function yhs(t) {
    this.print(t.objectType, !0), this.tokenChar(91), this.print(t.indexType), this.tokenChar(93);
  }
  n(yhs, "TSIndexedAccessType");
  function ghs(t) {
    let {
      nameType: e,
      optional: s,
      readonly: r,
      typeAnnotation: i
    } = t;
    this.tokenChar(123);
    let a = this.enterDelimited();
    this.space(), r && (ofe(this, r), this.word("readonly"), this.space()), this.tokenChar(91), this.word(t.typeParameter.name), this.space(),
    this.word("in"), this.space(), this.print(t.typeParameter.constraint), e && (this.space(), this.word("as"), this.space(), this.print(e)),
    this.tokenChar(93), s && (ofe(this, s), this.tokenChar(63)), i && (this.tokenChar(58), this.space(), this.print(i)), this.space(), a(), this.
    tokenChar(125);
  }
  n(ghs, "TSMappedType");
  function ofe(t, e) {
    e !== !0 && t.token(e);
  }
  n(ofe, "tokenIfPlusMinus");
  function Ths(t) {
    this.print(t.literal);
  }
  n(Ths, "TSLiteralType");
  function bhs(t) {
    this.print(t.expression), this.print(t.typeArguments);
  }
  n(bhs, "TSClassImplements");
  function xhs(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      extends: i,
      body: a
    } = t;
    e && (this.word("declare"), this.space()), this.word("interface"), this.space(), this.print(s), this.print(r), i != null && i.length && (this.
    space(), this.word("extends"), this.space(), this.printList(i)), this.space(), this.print(a);
  }
  n(xhs, "TSInterfaceDeclaration");
  function Shs(t) {
    uv(this, t, () => this.printJoin(t.body, !0, !0));
  }
  n(Shs, "TSInterfaceBody");
  function Phs(t) {
    let {
      declare: e,
      id: s,
      typeParameters: r,
      typeAnnotation: i
    } = t;
    e && (this.word("declare"), this.space()), this.word("type"), this.space(), this.print(s), this.print(r), this.space(), this.tokenChar(61),
    this.space(), this.print(i), this.semicolon();
  }
  n(Phs, "TSTypeAliasDeclaration");
  function Ehs(t) {
    let {
      type: e,
      expression: s,
      typeAnnotation: r
    } = t;
    this.print(s, !0), this.space(), this.word(e === "TSAsExpression" ? "as" : "satisfies"), this.space(), this.print(r);
  }
  n(Ehs, "TSTypeExpression");
  function Ahs(t) {
    let {
      typeAnnotation: e,
      expression: s
    } = t;
    this.tokenChar(60), this.print(e), this.tokenChar(62), this.space(), this.print(s);
  }
  n(Ahs, "TSTypeAssertion");
  function vhs(t) {
    this.print(t.expression), this.print(t.typeParameters);
  }
  n(vhs, "TSInstantiationExpression");
  function Chs(t) {
    let {
      declare: e,
      const: s,
      id: r
    } = t;
    e && (this.word("declare"), this.space()), s && (this.word("const"), this.space()), this.word("enum"), this.space(), this.print(r), this.
    space(), cfe.call(this, t);
  }
  n(Chs, "TSEnumDeclaration");
  function cfe(t) {
    uv(this, t, () => {
      var e;
      return this.printList(t.members, (e = this.shouldPrintTrailingComma("}")) != null ? e : !0, !0, !0);
    });
  }
  n(cfe, "TSEnumBody");
  function whs(t) {
    let {
      id: e,
      initializer: s
    } = t;
    this.print(e), s && (this.space(), this.tokenChar(61), this.space(), this.print(s));
  }
  n(whs, "TSEnumMember");
  function Ihs(t) {
    let {
      declare: e,
      id: s,
      kind: r
    } = t;
    e && (this.word("declare"), this.space());
    {
      if (t.global || (this.word(r ?? (s.type === "Identifier" ? "namespace" : "module")), this.space()), this.print(s), !t.body) {
        this.semicolon();
        return;
      }
      let i = t.body;
      for (; i.type === "TSModuleDeclaration"; )
        this.tokenChar(46), this.print(i.id), i = i.body;
      this.space(), this.print(i);
    }
  }
  n(Ihs, "TSModuleDeclaration");
  function Nhs(t) {
    uv(this, t, () => this.printSequence(t.body, !0));
  }
  n(Nhs, "TSModuleBlock");
  function khs(t) {
    let {
      argument: e,
      qualifier: s,
      options: r
    } = t;
    this.word("import"), this.tokenChar(40), this.print(e), r && (this.tokenChar(44), this.print(r)), this.tokenChar(41), s && (this.tokenChar(
    46), this.print(s));
    let i = t.typeParameters;
    i && this.print(i);
  }
  n(khs, "TSImportType");
  function Dhs(t) {
    let {
      isExport: e,
      id: s,
      moduleReference: r
    } = t;
    e && (this.word("export"), this.space()), this.word("import"), this.space(), this.print(s), this.space(), this.tokenChar(61), this.space(),
    this.print(r), this.semicolon();
  }
  n(Dhs, "TSImportEqualsDeclaration");
  function Ohs(t) {
    this.token("require("), this.print(t.expression), this.tokenChar(41);
  }
  n(Ohs, "TSExternalModuleReference");
  function _hs(t) {
    this.print(t.expression), this.tokenChar(33);
  }
  n(_hs, "TSNonNullExpression");
  function Lhs(t) {
    this.word("export"), this.space(), this.tokenChar(61), this.space(), this.print(t.expression), this.semicolon();
  }
  n(Lhs, "TSExportAssignment");
  function Bhs(t) {
    this.word("export"), this.space(), this.word("as"), this.space(), this.word("namespace"), this.space(), this.print(t.id), this.semicolon();
  }
  n(Bhs, "TSNamespaceExportDeclaration");
  function Mhs(t) {
    let {
      typeParameters: e
    } = t, s = t.parameters;
    this.print(e), this.tokenChar(40), this._parameters(s, ")");
    let r = t.typeAnnotation;
    this.print(r);
  }
  n(Mhs, "tsPrintSignatureDeclarationBase");
  function Fhs(t) {
    let e = t.type === "ClassAccessorProperty" || t.type === "ClassProperty";
    lfe(this, t, [e && t.declare && "declare", t.accessibility]), t.static && (this.word("static"), this.space()), lfe(this, t, [t.override &&
    "override", t.abstract && "abstract", e && t.readonly && "readonly"]);
  }
  n(Fhs, "tsPrintClassMemberModifiers");
  function uv(t, e, s) {
    t.token("{");
    let r = t.enterDelimited();
    s(), r(), t.rightBrace(e);
  }
  n(uv, "printBraced");
  function lfe(t, e, s) {
    var r;
    let i = /* @__PURE__ */ new Set();
    for (let a of s)
      a && i.add(a);
    (r = t.tokenMap) == null || r.find(e, (a) => {
      if (i.has(a.value))
        return t.token(a.value), t.space(), i.delete(a.value), i.size === 0;
    });
    for (let a of i)
      t.word(a), t.space();
  }
  n(lfe, "printModifiersList");
});

// ../node_modules/@babel/generator/lib/generators/index.js
var hfe = g((Fs) => {
  "use strict";
  Object.defineProperty(Fs, "__esModule", {
    value: !0
  });
  var I6 = Khe();
  Object.keys(I6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === I6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return I6[t];
      }, "get")
    });
  });
  var N6 = Whe();
  Object.keys(N6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === N6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return N6[t];
      }, "get")
    });
  });
  var k6 = Yhe();
  Object.keys(k6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === k6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return k6[t];
      }, "get")
    });
  });
  var D6 = Xhe();
  Object.keys(D6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === D6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return D6[t];
      }, "get")
    });
  });
  var O6 = zhe();
  Object.keys(O6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === O6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return O6[t];
      }, "get")
    });
  });
  var _6 = A6();
  Object.keys(_6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === _6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return _6[t];
      }, "get")
    });
  });
  var L6 = C6();
  Object.keys(L6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === L6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return L6[t];
      }, "get")
    });
  });
  var B6 = ife();
  Object.keys(B6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === B6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return B6[t];
      }, "get")
    });
  });
  var M6 = nfe();
  Object.keys(M6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === M6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return M6[t];
      }, "get")
    });
  });
  var F6 = afe();
  Object.keys(F6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === F6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return F6[t];
      }, "get")
    });
  });
  var j6 = pfe();
  Object.keys(j6).forEach(function(t) {
    t === "default" || t === "__esModule" || t in Fs && Fs[t] === j6[t] || Object.defineProperty(Fs, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return j6[t];
      }, "get")
    });
  });
});

// ../node_modules/@babel/generator/lib/generators/deprecated.js
var ffe = g((R6) => {
  "use strict";
  Object.defineProperty(R6, "__esModule", {
    value: !0
  });
  R6.addDeprecatedGenerators = jhs;
  function jhs(t) {
    {
      let e = {
        Noop() {
        },
        TSExpressionWithTypeArguments(s) {
          this.print(s.expression), this.print(s.typeParameters);
        },
        DecimalLiteral(s) {
          let r = this.getPossibleRaw(s);
          if (!this.format.minified && r !== void 0) {
            this.word(r);
            return;
          }
          this.word(s.value + "m");
        }
      };
      Object.assign(t.prototype, e);
    }
  }
  n(jhs, "addDeprecatedGenerators");
});

// ../node_modules/@babel/generator/lib/printer.js
var gfe = g((cv) => {
  "use strict";
  Object.defineProperty(cv, "__esModule", {
    value: !0
  });
  cv.default = void 0;
  var Rhs = qce(), mfe = qp(), qhs = Wn(), Uhs = Uhe(), Khs = hfe(), Vhs = ffe(), {
    isExpression: Whs,
    isFunction: $hs,
    isStatement: Hhs,
    isClassBody: Jhs,
    isTSInterfaceBody: Yhs,
    isTSEnumMember: Xhs
  } = qhs, zhs = /e/i, Ghs = /\.0+$/, yfe = /[\n\r\u2028\u2029]/, Qhs = /[\n\r\u2028\u2029]|\*\//;
  function dfe(t) {
    return t.type === "CommentLine" || yfe.test(t.value);
  }
  n(dfe, "commentIsNewline");
  var {
    needsParens: Zhs
  } = mfe, jT = class {
    static {
      n(this, "Printer");
    }
    constructor(e, s, r, i) {
      this.inForStatementInit = !1, this.tokenContext = 0, this._tokens = null, this._originalCode = null, this._currentNode = null, this._indent =
      0, this._indentRepeat = 0, this._insideAux = !1, this._noLineTerminator = !1, this._noLineTerminatorAfterNode = null, this._printAuxAfterOnNextUserNode =
      !1, this._printedComments = /* @__PURE__ */ new Set(), this._endsWithInteger = !1, this._endsWithWord = !1, this._endsWithDiv = !1, this.
      _lastCommentLine = 0, this._endsWithInnerRaw = !1, this._indentInnerComments = !0, this.tokenMap = null, this._boundGetRawIdentifier =
      this._getRawIdentifier.bind(this), this._printSemicolonBeforeNextNode = -1, this._printSemicolonBeforeNextToken = -1, this.format = e,
      this._tokens = r, this._originalCode = i, this._indentRepeat = e.indent.style.length, this._inputMap = s?._inputMap, this._buf = new Rhs.
      default(s, e.indent.style[0]);
    }
    enterForStatementInit() {
      return this.inForStatementInit ? () => {
      } : (this.inForStatementInit = !0, () => {
        this.inForStatementInit = !1;
      });
    }
    enterDelimited() {
      let e = this.inForStatementInit, s = this._noLineTerminatorAfterNode;
      return e === !1 && s === null ? () => {
      } : (this.inForStatementInit = !1, this._noLineTerminatorAfterNode = null, () => {
        this.inForStatementInit = e, this._noLineTerminatorAfterNode = s;
      });
    }
    generate(e) {
      return this.format.preserveFormat && (this.tokenMap = new Uhs.TokenMap(e, this._tokens, this._originalCode)), this.print(e), this._maybeAddAuxComment(),
      this._buf.get();
    }
    indent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent++;
    }
    dedent() {
      let {
        format: e
      } = this;
      e.preserveFormat || e.compact || e.concise || this._indent--;
    }
    semicolon(e = !1) {
      if (this._maybeAddAuxComment(), e) {
        this._appendChar(59), this._noLineTerminator = !1;
        return;
      }
      if (this.tokenMap) {
        let s = this._currentNode;
        if (s.start != null && s.end != null) {
          if (!this.tokenMap.endMatches(s, ";")) {
            this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();
            return;
          }
          let r = this.tokenMap.getIndexes(this._currentNode);
          this._catchUpTo(this._tokens[r[r.length - 1]].loc.start);
        }
      }
      this._queue(59), this._noLineTerminator = !1;
    }
    rightBrace(e) {
      this.format.minified && this._buf.removeLastSemicolon(), this.sourceWithOffset("end", e.loc, -1), this.tokenChar(125);
    }
    rightParens(e) {
      this.sourceWithOffset("end", e.loc, -1), this.tokenChar(41);
    }
    space(e = !1) {
      let {
        format: s
      } = this;
      if (!(s.compact || s.preserveFormat)) {
        if (e)
          this._space();
        else if (this._buf.hasContent()) {
          let r = this.getLastChar();
          r !== 32 && r !== 10 && this._space();
        }
      }
    }
    word(e, s = !1) {
      this.tokenContext = 0, this._maybePrintInnerComments(e), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e), (this.
      _endsWithWord || this._endsWithDiv && e.charCodeAt(0) === 47) && this._space(), this._append(e, !1), this._endsWithWord = !0, this._noLineTerminator =
      s;
    }
    number(e, s) {
      function r(i) {
        if (i.length > 2 && i.charCodeAt(0) === 48) {
          let a = i.charCodeAt(1);
          return a === 98 || a === 111 || a === 120;
        }
        return !1;
      }
      n(r, "isNonDecimalLiteral"), this.word(e), this._endsWithInteger = Number.isInteger(s) && !r(e) && !zhs.test(e) && !Ghs.test(e) && e.charCodeAt(
      e.length - 1) !== 46;
    }
    token(e, s = !1, r = 0) {
      this.tokenContext = 0, this._maybePrintInnerComments(e, r), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(e,
      r);
      let i = this.getLastChar(), a = e.charCodeAt(0);
      (i === 33 && (e === "--" || a === 61) || a === 43 && i === 43 || a === 45 && i === 45 || a === 46 && this._endsWithInteger) && this._space(),
      this._append(e, s), this._noLineTerminator = !1;
    }
    tokenChar(e) {
      this.tokenContext = 0;
      let s = String.fromCharCode(e);
      this._maybePrintInnerComments(s), this._maybeAddAuxComment(), this.tokenMap && this._catchUpToCurrentToken(s);
      let r = this.getLastChar();
      (e === 43 && r === 43 || e === 45 && r === 45 || e === 46 && this._endsWithInteger) && this._space(), this._appendChar(e), this._noLineTerminator =
      !1;
    }
    newline(e = 1, s) {
      if (!(e <= 0)) {
        if (!s) {
          if (this.format.retainLines || this.format.compact) return;
          if (this.format.concise) {
            this.space();
            return;
          }
        }
        e > 2 && (e = 2), e -= this._buf.getNewlineCount();
        for (let r = 0; r < e; r++)
          this._newline();
      }
    }
    endsWith(e) {
      return this.getLastChar() === e;
    }
    getLastChar() {
      return this._buf.getLastChar();
    }
    endsWithCharAndNewline() {
      return this._buf.endsWithCharAndNewline();
    }
    removeTrailingNewline() {
      this._buf.removeTrailingNewline();
    }
    exactSource(e, s) {
      if (!e) {
        s();
        return;
      }
      this._catchUp("start", e), this._buf.exactSource(e, s);
    }
    source(e, s) {
      s && (this._catchUp(e, s), this._buf.source(e, s));
    }
    sourceWithOffset(e, s, r) {
      !s || this.format.preserveFormat || (this._catchUp(e, s), this._buf.sourceWithOffset(e, s, r));
    }
    sourceIdentifierName(e, s) {
      if (!this._buf._canMarkIdName) return;
      let r = this._buf._sourcePosition;
      r.identifierNamePos = s, r.identifierName = e;
    }
    _space() {
      this._queue(32);
    }
    _newline() {
      this._queue(10);
    }
    _catchUpToCurrentToken(e, s = 0) {
      let r = this.tokenMap.findMatching(this._currentNode, e, s);
      r && this._catchUpTo(r.loc.start), this._printSemicolonBeforeNextToken !== -1 && this._printSemicolonBeforeNextToken === this._buf.getCurrentLine() &&
      (this._buf.appendChar(59), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1), this._printSemicolonBeforeNextToken =
      -1, this._printSemicolonBeforeNextNode = -1;
    }
    _append(e, s) {
      this._maybeIndent(e.charCodeAt(0)), this._buf.append(e, s), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _appendChar(e) {
      this._maybeIndent(e), this._buf.appendChar(e), this._endsWithWord = !1, this._endsWithInteger = !1, this._endsWithDiv = !1;
    }
    _queue(e) {
      this._maybeIndent(e), this._buf.queue(e), this._endsWithWord = !1, this._endsWithInteger = !1;
    }
    _maybeIndent(e) {
      this._indent && e !== 10 && this.endsWith(10) && this._buf.queueIndentation(this._getIndent());
    }
    _shouldIndent(e) {
      if (this._indent && e !== 10 && this.endsWith(10))
        return !0;
    }
    catchUp(e) {
      if (!this.format.retainLines) return;
      let s = e - this._buf.getCurrentLine();
      for (let r = 0; r < s; r++)
        this._newline();
    }
    _catchUp(e, s) {
      let {
        format: r
      } = this;
      if (!r.preserveFormat) {
        r.retainLines && s != null && s[e] && this.catchUp(s[e].line);
        return;
      }
      let i = s?.[e];
      i != null && this._catchUpTo(i);
    }
    _catchUpTo({
      line: e,
      column: s,
      index: r
    }) {
      let i = e - this._buf.getCurrentLine();
      if (i > 0 && this._noLineTerminator)
        return;
      for (let o = 0; o < i; o++)
        this._newline();
      let a = i > 0 ? s : s - this._buf.getCurrentColumn();
      if (a > 0) {
        let o = this._originalCode ? this._originalCode.slice(r - a, r).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu,
        " ") : " ".repeat(a);
        this._append(o, !1);
      }
    }
    _getIndent() {
      return this._indentRepeat * this._indent;
    }
    printTerminatorless(e) {
      this._noLineTerminator = !0, this.print(e);
    }
    print(e, s, r) {
      var i, a, o;
      if (!e) return;
      this._endsWithInnerRaw = !1;
      let l = e.type, u = this.format, c = u.concise;
      e._compact && (u.concise = !0);
      let p = this[l];
      if (p === void 0)
        throw new ReferenceError(`unknown node of type ${JSON.stringify(l)} with constructor ${JSON.stringify(e.constructor.name)}`);
      let h = this._currentNode;
      this._currentNode = e, this.tokenMap && (this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode);
      let f = this._insideAux;
      this._insideAux = e.loc == null, this._maybeAddAuxComment(this._insideAux && !f);
      let d = (i = e.extra) == null ? void 0 : i.parenthesized, m = d && u.preserveFormat || d && u.retainFunctionParens && l === "FunctionE\
xpression" || Zhs(e, h, this.tokenContext, this.inForStatementInit, u.preserveFormat ? this._boundGetRawIdentifier : void 0);
      if (!m && d && (a = e.leadingComments) != null && a.length && e.leadingComments[0].type === "CommentBlock")
        switch (h?.type) {
          case "ExpressionStatement":
          case "VariableDeclarator":
          case "AssignmentExpression":
          case "ReturnStatement":
            break;
          case "CallExpression":
          case "OptionalCallExpression":
          case "NewExpression":
            if (h.callee !== e) break;
          default:
            m = !0;
        }
      let y = !1;
      !m && this._noLineTerminator && ((o = e.leadingComments) != null && o.some(dfe) || this.format.retainLines && e.loc && e.loc.start.line >
      this._buf.getCurrentLine()) && (m = !0, y = !0);
      let T, b;
      if (!m && (s || (s = h && this._noLineTerminatorAfterNode === h && mfe.isLastChild(h, e)), s)) {
        var E;
        (E = e.trailingComments) != null && E.some(dfe) ? Whs(e) && (m = !0) : (T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode =
        e);
      }
      m && (this.tokenChar(40), y && this.indent(), this._endsWithInnerRaw = !1, this.inForStatementInit && (b = !0, this.inForStatementInit =
      !1), T = this._noLineTerminatorAfterNode, this._noLineTerminatorAfterNode = null), this._lastCommentLine = 0, this._printLeadingComments(
      e, h);
      let V = l === "Program" || l === "File" ? null : e.loc;
      this.exactSource(V, p.bind(this, e, h)), m ? (this._printTrailingComments(e, h), y && (this.dedent(), this.newline()), this.tokenChar(
      41), this._noLineTerminator = s, b && (this.inForStatementInit = !0)) : s && !this._noLineTerminator ? (this._noLineTerminator = !0, this.
      _printTrailingComments(e, h)) : this._printTrailingComments(e, h, r), this._currentNode = h, u.concise = c, this._insideAux = f, T !==
      void 0 && (this._noLineTerminatorAfterNode = T), this._endsWithInnerRaw = !1;
    }
    _maybeAddAuxComment(e) {
      e && this._printAuxBeforeComment(), this._insideAux || this._printAuxAfterComment();
    }
    _printAuxBeforeComment() {
      if (this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !0;
      let e = this.format.auxiliaryCommentBefore;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    _printAuxAfterComment() {
      if (!this._printAuxAfterOnNextUserNode) return;
      this._printAuxAfterOnNextUserNode = !1;
      let e = this.format.auxiliaryCommentAfter;
      e && this._printComment({
        type: "CommentBlock",
        value: e
      }, 0);
    }
    getPossibleRaw(e) {
      let s = e.extra;
      if (s?.raw != null && s.rawValue != null && e.value === s.rawValue)
        return s.raw;
    }
    printJoin(e, s, r, i, a, o, l, u) {
      if (!(e != null && e.length)) return;
      if (r == null && this.format.retainLines) {
        var c;
        let y = (c = e[0].loc) == null ? void 0 : c.start.line;
        y != null && y !== this._buf.getCurrentLine() && (r = !0);
      }
      r && this.indent();
      let p = {
        addNewlines: o,
        nextNodeStartLine: 0
      }, h = i?.bind(this), f = e.length;
      for (let y = 0; y < f; y++) {
        let T = e[y];
        if (T && (s && this._printNewline(y === 0, p), this.print(T, void 0, u || 0), l?.(T, y), h != null && (y < f - 1 ? h(y, !1) : a && h(
        y, !0)), s)) {
          var d;
          if ((d = T.trailingComments) != null && d.length || (this._lastCommentLine = 0), y + 1 === f)
            this.newline(1);
          else {
            var m;
            let b = e[y + 1];
            p.nextNodeStartLine = ((m = b.loc) == null ? void 0 : m.start.line) || 0, this._printNewline(!0, p);
          }
        }
      }
      r && this.dedent();
    }
    printAndIndentOnComments(e) {
      let s = e.leadingComments && e.leadingComments.length > 0;
      s && this.indent(), this.print(e), s && this.dedent();
    }
    printBlock(e) {
      let s = e.body;
      s.type !== "EmptyStatement" && this.space(), this.print(s);
    }
    _printTrailingComments(e, s, r) {
      let {
        innerComments: i,
        trailingComments: a
      } = e;
      i != null && i.length && this._printComments(2, i, e, s, r), a != null && a.length && this._printComments(2, a, e, s, r);
    }
    _printLeadingComments(e, s) {
      let r = e.leadingComments;
      r != null && r.length && this._printComments(0, r, e, s);
    }
    _maybePrintInnerComments(e, s) {
      if (this._endsWithInnerRaw) {
        var r;
        this.printInnerComments((r = this.tokenMap) == null ? void 0 : r.findMatching(this._currentNode, e, s));
      }
      this._endsWithInnerRaw = !0, this._indentInnerComments = !0;
    }
    printInnerComments(e) {
      let s = this._currentNode, r = s.innerComments;
      if (!(r != null && r.length)) return;
      let i = this.endsWith(32), a = this._indentInnerComments, o = this._printedComments.size;
      a && this.indent(), this._printComments(1, r, s, void 0, void 0, e), i && o !== this._printedComments.size && this.space(), a && this.
      dedent();
    }
    noIndentInnerCommentsHere() {
      this._indentInnerComments = !1;
    }
    printSequence(e, s, r, i) {
      this.printJoin(e, !0, s ?? !1, void 0, void 0, i, void 0, r);
    }
    printList(e, s, r, i, a, o) {
      this.printJoin(e, r, i, a ?? efs, s, void 0, o);
    }
    shouldPrintTrailingComma(e) {
      if (!this.tokenMap) return null;
      let s = this.tokenMap.findLastIndex(this._currentNode, (r) => this.tokenMap.matchesOriginal(r, e));
      return s <= 0 ? null : this.tokenMap.matchesOriginal(this._tokens[s - 1], ",");
    }
    _printNewline(e, s) {
      let r = this.format;
      if (r.retainLines || r.compact) return;
      if (r.concise) {
        this.space();
        return;
      }
      if (!e)
        return;
      let i = s.nextNodeStartLine, a = this._lastCommentLine;
      if (i > 0 && a > 0) {
        let o = i - a;
        if (o >= 0) {
          this.newline(o || 1);
          return;
        }
      }
      this._buf.hasContent() && this.newline(1);
    }
    _shouldPrintComment(e, s) {
      if (e.ignore || this._printedComments.has(e)) return 0;
      if (this._noLineTerminator && Qhs.test(e.value))
        return 2;
      if (s && this.tokenMap) {
        let r = this.tokenMap.find(this._currentNode, (i) => i.value === e.value);
        if (r && r.start > s.start)
          return 2;
      }
      return this._printedComments.add(e), this.format.shouldPrintComment(e.value) ? 1 : 0;
    }
    _printComment(e, s) {
      let r = this._noLineTerminator, i = e.type === "CommentBlock", a = i && s !== 1 && !this._noLineTerminator;
      a && this._buf.hasContent() && s !== 2 && this.newline(1);
      let o = this.getLastChar();
      o !== 91 && o !== 123 && o !== 40 && this.space();
      let l;
      if (i) {
        if (l = `/*${e.value}*/`, this.format.indent.adjustMultilineComment) {
          var u;
          let c = (u = e.loc) == null ? void 0 : u.start.column;
          if (c) {
            let p = new RegExp("\\n\\s{1," + c + "}", "g");
            l = l.replace(p, `
`);
          }
          if (this.format.concise)
            l = l.replace(/\n(?!$)/g, `
`);
          else {
            let p = this.format.retainLines ? 0 : this._buf.getCurrentColumn();
            (this._shouldIndent(47) || this.format.retainLines) && (p += this._getIndent()), l = l.replace(/\n(?!$)/g, `
${" ".repeat(p)}`);
          }
        }
      } else r ? l = `/*${e.value}*/` : l = `//${e.value}`;
      if (this._endsWithDiv && this._space(), this.tokenMap) {
        let {
          _printSemicolonBeforeNextToken: c,
          _printSemicolonBeforeNextNode: p
        } = this;
        this._printSemicolonBeforeNextToken = -1, this._printSemicolonBeforeNextNode = -1, this.source("start", e.loc), this._append(l, i), this.
        _printSemicolonBeforeNextNode = p, this._printSemicolonBeforeNextToken = c;
      } else
        this.source("start", e.loc), this._append(l, i);
      !i && !r && this.newline(1, !0), a && s !== 3 && this.newline(1);
    }
    _printComments(e, s, r, i, a = 0, o) {
      let l = r.loc, u = s.length, c = !!l, p = c ? l.start.line : 0, h = c ? l.end.line : 0, f = 0, d = 0, m = this._noLineTerminator ? function() {
      } : this.newline.bind(this);
      for (let y = 0; y < u; y++) {
        let T = s[y], b = this._shouldPrintComment(T, o);
        if (b === 2) {
          c = !1;
          break;
        }
        if (c && T.loc && b === 1) {
          let E = T.loc.start.line, V = T.loc.end.line;
          if (e === 0) {
            let W = 0;
            y === 0 ? this._buf.hasContent() && (T.type === "CommentLine" || E !== V) && (W = d = 1) : W = E - f, f = V, m(W), this._printComment(
            T, 1), y + 1 === u && (m(Math.max(p - f, d)), f = p);
          } else if (e === 1) {
            let W = E - (y === 0 ? p : f);
            f = V, m(W), this._printComment(T, 1), y + 1 === u && (m(Math.min(1, h - f)), f = h);
          } else {
            let W = E - (y === 0 ? h - a : f);
            f = V, m(W), this._printComment(T, 1);
          }
        } else {
          if (c = !1, b !== 1)
            continue;
          if (u === 1) {
            let E = T.loc ? T.loc.start.line === T.loc.end.line : !yfe.test(T.value), V = E && !Hhs(r) && !Jhs(i) && !Yhs(i) && !Xhs(r);
            e === 0 ? this._printComment(T, V && r.type !== "ObjectExpression" || E && $hs(i, {
              body: r
            }) ? 1 : 0) : V && e === 2 ? this._printComment(T, 1) : this._printComment(T, 0);
          } else e === 1 && !(r.type === "ObjectExpression" && r.properties.length > 1) && r.type !== "ClassBody" && r.type !== "TSInterface\
Body" ? this._printComment(T, y === 0 ? 2 : y === u - 1 ? 3 : 0) : this._printComment(T, 0);
        }
      }
      e === 2 && c && f && (this._lastCommentLine = f);
    }
  };
  Object.assign(jT.prototype, Khs);
  (0, Vhs.addDeprecatedGenerators)(jT);
  var Hsr = cv.default = jT;
  function efs(t, e) {
    this.token(",", !1, t), e || this.space();
  }
  n(efs, "commaSeparator");
});

// ../node_modules/@babel/generator/lib/index.js
var q6 = g((pv) => {
  "use strict";
  Object.defineProperty(pv, "__esModule", {
    value: !0
  });
  pv.default = tfs;
  var Tfe = Rce(), bfe = gfe();
  function xfe(t, e, s) {
    if (e.experimental_preserveFormat) {
      if (typeof t != "string")
        throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string");
      if (!e.retainLines)
        throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`");
      if (e.compact && e.compact !== "auto")
        throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option");
      if (e.minified)
        throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option");
      if (e.jsescOption)
        throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option");
      if (!Array.isArray(s.tokens))
        throw new Error("`experimental_preserveFormat` requires the AST to have attatched the token of the input code. Make sure to enable t\
he `tokens: true` parser option.");
    }
    let r = {
      auxiliaryCommentBefore: e.auxiliaryCommentBefore,
      auxiliaryCommentAfter: e.auxiliaryCommentAfter,
      shouldPrintComment: e.shouldPrintComment,
      preserveFormat: e.experimental_preserveFormat,
      retainLines: e.retainLines,
      retainFunctionParens: e.retainFunctionParens,
      comments: e.comments == null || e.comments,
      compact: e.compact,
      minified: e.minified,
      concise: e.concise,
      indent: {
        adjustMultilineComment: !0,
        style: "  "
      },
      jsescOption: Object.assign({
        quotes: "double",
        wrap: !0,
        minimal: !1
      }, e.jsescOption),
      topicToken: e.topicToken,
      importAttributesKeyword: e.importAttributesKeyword
    };
    {
      var i;
      r.decoratorsBeforeExport = e.decoratorsBeforeExport, r.jsescOption.json = e.jsonCompatibleStrings, r.recordAndTupleSyntaxType = (i = e.
      recordAndTupleSyntaxType) != null ? i : "hash";
    }
    r.minified ? (r.compact = !0, r.shouldPrintComment = r.shouldPrintComment || (() => r.comments)) : r.shouldPrintComment = r.shouldPrintComment ||
    ((u) => r.comments || u.includes("@license") || u.includes("@preserve")), r.compact === "auto" && (r.compact = typeof t == "string" && t.
    length > 5e5, r.compact && console.error(`[BABEL] Note: The code generator has deoptimised the styling of ${e.filename} as it exceeds th\
e max of 500KB.`)), (r.compact || r.preserveFormat) && (r.indent.adjustMultilineComment = !1);
    let {
      auxiliaryCommentBefore: a,
      auxiliaryCommentAfter: o,
      shouldPrintComment: l
    } = r;
    return a && !l(a) && (r.auxiliaryCommentBefore = void 0), o && !l(o) && (r.auxiliaryCommentAfter = void 0), r;
  }
  n(xfe, "normalizeOptions");
  pv.CodeGenerator = class {
    static {
      n(this, "CodeGenerator");
    }
    constructor(e, s = {}, r) {
      this._ast = void 0, this._format = void 0, this._map = void 0, this._ast = e, this._format = xfe(r, s, e), this._map = s.sourceMaps ? new Tfe.
      default(s, r) : null;
    }
    generate() {
      return new bfe.default(this._format, this._map).generate(this._ast);
    }
  };
  function tfs(t, e = {}, s) {
    let r = xfe(s, e, t), i = e.sourceMaps ? new Tfe.default(e, s) : null;
    return new bfe.default(r, i, t.tokens, typeof s == "string" ? s : null).generate(t);
  }
  n(tfs, "generate");
});

// ../node_modules/@babel/parser/lib/index.js
var Sv = g((JT) => {
  "use strict";
  Object.defineProperty(JT, "__esModule", {
    value: !0
  });
  function sfs(t, e) {
    if (t == null) return {};
    var s = {};
    for (var r in t) if ({}.hasOwnProperty.call(t, r)) {
      if (e.includes(r)) continue;
      s[r] = t[r];
    }
    return s;
  }
  n(sfs, "_objectWithoutPropertiesLoose");
  var Dl = class {
    static {
      n(this, "Position");
    }
    constructor(e, s, r) {
      this.line = void 0, this.column = void 0, this.index = void 0, this.line = e, this.column = s, this.index = r;
    }
  }, gy = class {
    static {
      n(this, "SourceLocation");
    }
    constructor(e, s) {
      this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = e, this.end = s;
    }
  };
  function Jn(t, e) {
    let {
      line: s,
      column: r,
      index: i
    } = t;
    return new Dl(s, r + e, i + e);
  }
  n(Jn, "createPositionWithColumnOffset");
  var Sfe = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED", rfs = {
    ImportMetaOutsideModule: {
      message: `import.meta may appear only with 'sourceType: "module"'`,
      code: Sfe
    },
    ImportOutsideModule: {
      message: `'import' and 'export' may appear only with 'sourceType: "module"'`,
      code: Sfe
    }
  }, Pfe = {
    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"
  }, dv = /* @__PURE__ */ n((t) => t.type === "UpdateExpression" ? Pfe.UpdateExpression[`${t.prefix}`] : Pfe[t.type], "toNodeDescription"), ifs = {
    AccessorIsGenerator: /* @__PURE__ */ n(({
      kind: t
    }) => `A ${t}ter cannot be a generator.`, "AccessorIsGenerator"),
    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: /* @__PURE__ */ n(({
      kind: t
    }) => `Missing initializer in ${t} declaration.`, "DeclarationMissingInitializer"),
    DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(deco\
rator)(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 s\
ame 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: /* @__PURE__ */ n(({
      exportName: t
    }) => `\`${t}\` has already been exported. Exported identifiers must be unique.`, "DuplicateExport"),
    DuplicateProto: "Redefinition of __proto__ property.",
    DuplicateRegExpFlags: "Duplicate regular expression flag.",
    DynamicImportPhaseRequiresImportExpressions: /* @__PURE__ */ n(({
      phase: t
    }) => `'import.${t}(...)' can only be parsed when using the 'createImportExpressions' option.`, "DynamicImportPhaseRequiresImportExpress\
ions"),
    ElementAfterRest: "Rest element must be last element.",
    EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
    ExportBindingIsString: /* @__PURE__ */ n(({
      localName: t,
      exportName: e
    }) => `A string literal cannot be used as an exported binding without \`from\`.
- Did you mean \`export { '${t}' as '${e}' } from 'some-module'\`?`, "ExportBindingIsString"),
    ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
    ForInOfLoopInitializer: /* @__PURE__ */ n(({
      type: t
    }) => `'${t === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, "ForInOfLoopInitialize\
r"),
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Unsyntactic ${t === "BreakStatement" ? "break" : "continue"}.`, "IllegalBreakContinue"),
    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: /* @__PURE__ */ n(({
      importName: t
    }) => `A string literal cannot be used as an imported binding.
- Did you mean \`import { "${t}" as foo }\`?`, "ImportBindingIsString"),
    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: /* @__PURE__ */ n(({
      radix: t
    }) => `Expected number in radix ${t}.`, "InvalidDigit"),
    InvalidEscapeSequence: "Bad character escape sequence.",
    InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
    InvalidEscapedReservedWord: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Escape sequence in keyword ${t}.`, "InvalidEscapedReservedWord"),
    InvalidIdentifier: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Invalid identifier ${t}.`, "InvalidIdentifier"),
    InvalidLhs: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid left-hand side in ${dv(t)}.`, "InvalidLhs"),
    InvalidLhsBinding: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Binding invalid left-hand side in ${dv(t)}.`, "InvalidLhsBinding"),
    InvalidLhsOptionalChaining: /* @__PURE__ */ n(({
      ancestor: t
    }) => `Invalid optional chaining in the left-hand side of ${dv(t)}.`, "InvalidLhsOptionalChaining"),
    InvalidNumber: "Invalid number.",
    InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
    InvalidOrUnexpectedToken: /* @__PURE__ */ n(({
      unexpected: t
    }) => `Unexpected character '${t}'.`, "InvalidOrUnexpectedToken"),
    InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
    InvalidPrivateFieldResolution: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private name #${t} is not defined.`, "InvalidPrivateFieldResolution"),
    InvalidPropertyBindingPattern: "Binding member expression.",
    InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
    InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
    LabelRedeclaration: /* @__PURE__ */ n(({
      labelName: t
    }) => `Label '${t}' is already declared.`, "LabelRedeclaration"),
    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: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling the parser plugin: ${t.map((e) => JSON.stringify(e)).join(", ")}.`, "MissingPlugin"),
    MissingOneOfPlugins: /* @__PURE__ */ n(({
      missingPlugin: t
    }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${t.map((e) => JSON.stringify(e)).join(", ")}.`,
    "MissingOneOfPlugins"),
    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: /* @__PURE__ */ n(({
      key: t
    }) => `Duplicate key "${t}" is not allowed in module attributes.`, "ModuleAttributesWithDuplicateKeys"),
    ModuleExportNameHasLoneSurrogate: /* @__PURE__ */ n(({
      surrogateCharCode: t
    }) => `An export name cannot include a lone surrogate, found '\\u${t.toString(16)}'.`, "ModuleExportNameHasLoneSurrogate"),
    ModuleExportUndefined: /* @__PURE__ */ n(({
      localName: t
    }) => `Export '${t}' is not defined.`, "ModuleExportUndefined"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Private names are only allowed in property accesses (\`obj.#${t}\`) or in \`in\` expressions (\`#${t} in obj\`).`, "PrivateInExpe\
ctedIn"),
    PrivateNameRedeclaration: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Duplicate private name #${t}.`, "PrivateNameRedeclaration"),
    RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 're\
cordAndTuple' 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 th\
e '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 sta\
tement.",
    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 n\
ot 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 'reco\
rdAndTuple' 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: /* @__PURE__ */ n(({
      keyword: t
    }) => `Unexpected keyword '${t}'.`, "UnexpectedKeyword"),
    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: /* @__PURE__ */ n(({
      reservedWord: t
    }) => `Unexpected reserved word '${t}'.`, "UnexpectedReservedWord"),
    UnexpectedSuper: "'super' is only allowed in object methods and classes.",
    UnexpectedToken: /* @__PURE__ */ n(({
      expected: t,
      unexpected: e
    }) => `Unexpected token${e ? ` '${e}'.` : ""}${t ? `, expected "${t}"` : ""}`, "UnexpectedToken"),
    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: /* @__PURE__ */ n(({
      target: t,
      onlyValidPropertyName: e
    }) => `The only valid meta property for ${t} is ${t}.${e}.`, "UnsupportedMetaProperty"),
    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: /* @__PURE__ */ n(({
      identifierName: t
    }) => `Identifier '${t}' has already been declared.`, "VarRedeclaration"),
    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."
  }, nfs = {
    StrictDelete: "Deleting local variable in strict mode.",
    StrictEvalArguments: /* @__PURE__ */ n(({
      referenceName: t
    }) => `Assigning to '${t}' in strict mode.`, "StrictEvalArguments"),
    StrictEvalArgumentsBinding: /* @__PURE__ */ n(({
      bindingName: t
    }) => `Binding '${t}' in strict mode.`, "StrictEvalArgumentsBinding"),
    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."
  }, afs = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]), ofs = {
    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" opt\
ion.',
    PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
    PipeTopicUnconfiguredToken: /* @__PURE__ */ n(({
      token: t
    }) => `Invalid topic token ${t}. In order to use ${t} as a topic reference, the pipelineOperator plugin must be configured with { "propo\
sal": "hack", "topicToken": "${t}" }.`, "PipeTopicUnconfiguredToken"),
    PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
    PipeUnparenthesizedBody: /* @__PURE__ */ n(({
      type: t
    }) => `Hack-style pipe body cannot be an unparenthesized ${dv({
      type: t
    })}; please wrap it in parentheses.`, "PipeUnparenthesizedBody"),
    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 "sma\
rt" option.'
  }, lfs = ["message"];
  function Efe(t, e, s) {
    Object.defineProperty(t, e, {
      enumerable: !1,
      configurable: !0,
      value: s
    });
  }
  n(Efe, "defineHidden");
  function ufs({
    toMessage: t,
    code: e,
    reasonCode: s,
    syntaxPlugin: r
  }) {
    let i = s === "MissingPlugin" || s === "MissingOneOfPlugins";
    {
      let a = {
        AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter",
        AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters",
        ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumRefer\
ence",
        SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter",
        SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter",
        SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType"
      };
      a[s] && (s = a[s]);
    }
    return /* @__PURE__ */ n(function a(o, l) {
      let u = new SyntaxError();
      return u.code = e, u.reasonCode = s, u.loc = o, u.pos = o.index, u.syntaxPlugin = r, i && (u.missingPlugin = l.missingPlugin), Efe(u, "\
clone", /* @__PURE__ */ n(function(p = {}) {
        var h;
        let {
          line: f,
          column: d,
          index: m
        } = (h = p.loc) != null ? h : o;
        return a(new Dl(f, d, m), Object.assign({}, l, p.details));
      }, "clone")), Efe(u, "details", l), Object.defineProperty(u, "message", {
        configurable: !0,
        get() {
          let c = `${t(l)} (${o.line}:${o.column})`;
          return this.message = c, c;
        },
        set(c) {
          Object.defineProperty(this, "message", {
            value: c,
            writable: !0
          });
        }
      }), u;
    }, "constructor");
  }
  n(ufs, "toParseErrorConstructor");
  function hc(t, e) {
    if (Array.isArray(t))
      return (r) => hc(r, t[0]);
    let s = {};
    for (let r of Object.keys(t)) {
      let i = t[r], a = typeof i == "string" ? {
        message: /* @__PURE__ */ n(() => i, "message")
      } : typeof i == "function" ? {
        message: i
      } : i, {
        message: o
      } = a, l = sfs(a, lfs), u = typeof o == "string" ? () => o : o;
      s[r] = ufs(Object.assign({
        code: "BABEL_PARSER_SYNTAX_ERROR",
        reasonCode: r,
        toMessage: u
      }, e ? {
        syntaxPlugin: e
      } : {}, l));
    }
    return s;
  }
  n(hc, "ParseErrorEnum");
  var se = Object.assign({}, hc(rfs), hc(ifs), hc(nfs), hc`pipelineOperator`(ofs));
  function cfs() {
    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
    };
  }
  n(cfs, "createDefaultOptions");
  function pfs(t) {
    let e = cfs();
    if (t == null)
      return e;
    if (t.annexB != null && t.annexB !== !1)
      throw new Error("The `annexB` option can only be set to `false`.");
    for (let s of Object.keys(e))
      t[s] != null && (e[s] = t[s]);
    if (e.startLine === 1)
      t.startIndex == null && e.startColumn > 0 ? e.startIndex = e.startColumn : t.startColumn == null && e.startIndex > 0 && (e.startColumn =
      e.startIndex);
    else if ((t.startColumn == null || t.startIndex == null) && t.startIndex != null)
      throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
    return e;
  }
  n(pfs, "getOptions");
  var {
    defineProperty: hfs
  } = Object, Afe = /* @__PURE__ */ n((t, e) => {
    t && hfs(t, e, {
      enumerable: !1,
      value: t[e]
    });
  }, "toUnenumerable");
  function RT(t) {
    return Afe(t.loc.start, "index"), Afe(t.loc.end, "index"), t;
  }
  n(RT, "toESTreeLocation");
  var ffs = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "ESTreeParserMixin");
    }
    parse() {
      let s = RT(super.parse());
      return this.optionFlags & 128 && (s.tokens = s.tokens.map(RT)), s;
    }
    parseRegExpLiteral({
      pattern: s,
      flags: r
    }) {
      let i = null;
      try {
        i = new RegExp(s, r);
      } catch {
      }
      let a = this.estreeParseLiteral(i);
      return a.regex = {
        pattern: s,
        flags: r
      }, a;
    }
    parseBigIntLiteral(s) {
      let r;
      try {
        r = BigInt(s);
      } catch {
        r = null;
      }
      let i = this.estreeParseLiteral(r);
      return i.bigint = String(i.value || s), i;
    }
    parseDecimalLiteral(s) {
      let i = this.estreeParseLiteral(null);
      return i.decimal = String(i.value || s), i;
    }
    estreeParseLiteral(s) {
      return this.parseLiteral(s, "Literal");
    }
    parseStringLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNumericLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    parseNullLiteral() {
      return this.estreeParseLiteral(null);
    }
    parseBooleanLiteral(s) {
      return this.estreeParseLiteral(s);
    }
    directiveToStmt(s) {
      let r = s.value;
      delete s.value, r.type = "Literal", r.raw = r.extra.raw, r.value = r.extra.expressionValue;
      let i = s;
      return i.type = "ExpressionStatement", i.expression = r, i.directive = r.extra.rawValue, delete r.extra, i;
    }
    initFunction(s, r) {
      super.initFunction(s, r), s.expression = !1;
    }
    checkDeclaration(s) {
      s != null && this.isObjectProperty(s) ? this.checkDeclaration(s.value) : super.checkDeclaration(s);
    }
    getObjectOrClassMethodParams(s) {
      return s.value.params;
    }
    isValidDirective(s) {
      var r;
      return s.type === "ExpressionStatement" && s.expression.type === "Literal" && typeof s.expression.value == "string" && !((r = s.expression.
      extra) != null && r.parenthesized);
    }
    parseBlockBody(s, r, i, a, o) {
      super.parseBlockBody(s, r, i, a, o);
      let l = s.directives.map((u) => this.directiveToStmt(u));
      s.body = l.concat(s.body), delete s.directives;
    }
    parsePrivateName() {
      let s = super.parsePrivateName();
      return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(s) : s;
    }
    convertPrivateNameToPrivateIdentifier(s) {
      let r = super.getPrivateNameSV(s);
      return s = s, delete s.id, s.name = r, s.type = "PrivateIdentifier", s;
    }
    isPrivateName(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.type === "PrivateIdentifier" : super.isPrivateName(s);
    }
    getPrivateNameSV(s) {
      return this.getPluginOption("estree", "classFeatures") ? s.name : super.getPrivateNameSV(s);
    }
    parseLiteral(s, r) {
      let i = super.parseLiteral(s, r);
      return i.raw = i.extra.raw, delete i.extra, i;
    }
    parseFunctionBody(s, r, i = !1) {
      super.parseFunctionBody(s, r, i), s.expression = s.body.type !== "BlockStatement";
    }
    parseMethod(s, r, i, a, o, l, u = !1) {
      let c = this.startNode();
      c.kind = s.kind, c = super.parseMethod(c, r, i, a, o, l, u), c.type = "FunctionExpression", delete c.kind, s.value = c;
      let {
        typeParameters: p
      } = s;
      return p && (delete s.typeParameters, c.typeParameters = p, c.start = p.start, c.loc.start = p.loc.start), l === "ClassPrivateMethod" &&
      (s.computed = !1), this.finishNode(s, "MethodDefinition");
    }
    nameIsConstructor(s) {
      return s.type === "Literal" ? s.value === "constructor" : super.nameIsConstructor(s);
    }
    parseClassProperty(...s) {
      let r = super.parseClassProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition"), r;
    }
    parseClassPrivateProperty(...s) {
      let r = super.parseClassPrivateProperty(...s);
      return this.getPluginOption("estree", "classFeatures") && (r.type = "PropertyDefinition", r.computed = !1), r;
    }
    parseObjectMethod(s, r, i, a, o) {
      let l = super.parseObjectMethod(s, r, i, a, o);
      return l && (l.type = "Property", l.kind === "method" && (l.kind = "init"), l.shorthand = !1), l;
    }
    parseObjectProperty(s, r, i, a) {
      let o = super.parseObjectProperty(s, r, i, a);
      return o && (o.kind = "init", o.type = "Property"), o;
    }
    isValidLVal(s, r, i) {
      return s === "Property" ? "value" : super.isValidLVal(s, r, i);
    }
    isAssignable(s, r) {
      return s != null && this.isObjectProperty(s) ? this.isAssignable(s.value, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      if (s != null && this.isObjectProperty(s)) {
        let {
          key: i,
          value: a
        } = s;
        this.isPrivateName(i) && this.classScope.usePrivateName(this.getPrivateNameSV(i), i.loc.start), this.toAssignable(a, r);
      } else
        super.toAssignable(s, r);
    }
    toAssignableObjectExpressionProp(s, r, i) {
      s.type === "Property" && (s.kind === "get" || s.kind === "set") ? this.raise(se.PatternHasAccessor, s.key) : s.type === "Property" && s.
      method ? this.raise(se.PatternHasMethod, s.key) : super.toAssignableObjectExpressionProp(s, r, i);
    }
    finishCallExpression(s, r) {
      let i = super.finishCallExpression(s, r);
      if (i.callee.type === "Import") {
        var a, o;
        i.type = "ImportExpression", i.source = i.arguments[0], i.options = (a = i.arguments[1]) != null ? a : null, i.attributes = (o = i.arguments[1]) !=
        null ? o : null, delete i.arguments, delete i.callee;
      }
      return i;
    }
    toReferencedArguments(s) {
      s.type !== "ImportExpression" && super.toReferencedArguments(s);
    }
    parseExport(s, r) {
      let i = this.state.lastTokStartLoc, a = super.parseExport(s, r);
      switch (a.type) {
        case "ExportAllDeclaration":
          a.exported = null;
          break;
        case "ExportNamedDeclaration":
          a.specifiers.length === 1 && a.specifiers[0].type === "ExportNamespaceSpecifier" && (a.type = "ExportAllDeclaration", a.exported =
          a.specifiers[0].exported, delete a.specifiers);
        case "ExportDefaultDeclaration":
          {
            var o;
            let {
              declaration: l
            } = a;
            l?.type === "ClassDeclaration" && ((o = l.decorators) == null ? void 0 : o.length) > 0 && l.start === a.start && this.resetStartLocation(
            a, i);
          }
          break;
      }
      return a;
    }
    parseSubscript(s, r, i, a) {
      let o = super.parseSubscript(s, r, i, a);
      if (a.optionalChainMember) {
        if ((o.type === "OptionalMemberExpression" || o.type === "OptionalCallExpression") && (o.type = o.type.substring(8)), a.stop) {
          let l = this.startNodeAtNode(o);
          return l.expression = o, this.finishNode(l, "ChainExpression");
        }
      } else (o.type === "MemberExpression" || o.type === "CallExpression") && (o.optional = !1);
      return o;
    }
    isOptionalMemberExpression(s) {
      return s.type === "ChainExpression" ? s.expression.type === "MemberExpression" : super.isOptionalMemberExpression(s);
    }
    hasPropertyAsPrivateName(s) {
      return s.type === "ChainExpression" && (s = s.expression), super.hasPropertyAsPrivateName(s);
    }
    isObjectProperty(s) {
      return s.type === "Property" && s.kind === "init" && !s.method;
    }
    isObjectMethod(s) {
      return s.type === "Property" && (s.method || s.kind === "get" || s.kind === "set");
    }
    finishNodeAt(s, r, i) {
      return RT(super.finishNodeAt(s, r, i));
    }
    resetStartLocation(s, r) {
      super.resetStartLocation(s, r), RT(s);
    }
    resetEndLocation(s, r = this.state.lastTokEndLoc) {
      super.resetEndLocation(s, r), RT(s);
    }
  }, "estree"), Ff = class {
    static {
      n(this, "TokContext");
    }
    constructor(e, s) {
      this.token = void 0, this.preserveSpace = void 0, this.token = e, this.preserveSpace = !!s;
    }
  }, ar = {
    brace: new Ff("{"),
    j_oTag: new Ff("<tag"),
    j_cTag: new Ff("</tag"),
    j_expr: new Ff("<tag>...</tag>", !0)
  };
  ar.template = new Ff("`", !0);
  var ds = !0, $e = !0, U6 = !0, qT = !0, Up = !0, dfs = !0, gv = class {
    static {
      n(this, "ExportedTokenType");
    }
    constructor(e, s = {}) {
      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 = e, this.keyword = s.keyword,
      this.beforeExpr = !!s.beforeExpr, this.startsExpr = !!s.startsExpr, this.rightAssociative = !!s.rightAssociative, this.isLoop = !!s.isLoop,
      this.isAssign = !!s.isAssign, this.prefix = !!s.prefix, this.postfix = !!s.postfix, this.binop = s.binop != null ? s.binop : null, this.
      updateContext = null;
    }
  }, hR = /* @__PURE__ */ new Map();
  function js(t, e = {}) {
    e.keyword = t;
    let s = kt(t, e);
    return hR.set(t, s), s;
  }
  n(js, "createKeyword");
  function Hn(t, e) {
    return kt(t, {
      beforeExpr: ds,
      binop: e
    });
  }
  n(Hn, "createBinop");
  var VT = -1, cc = [], fR = [], dR = [], mR = [], yR = [], gR = [];
  function kt(t, e = {}) {
    var s, r, i, a;
    return ++VT, fR.push(t), dR.push((s = e.binop) != null ? s : -1), mR.push((r = e.beforeExpr) != null ? r : !1), yR.push((i = e.startsExpr) !=
    null ? i : !1), gR.push((a = e.prefix) != null ? a : !1), cc.push(new gv(t, e)), VT;
  }
  n(kt, "createToken");
  function fs(t, e = {}) {
    var s, r, i, a;
    return ++VT, hR.set(t, VT), fR.push(t), dR.push((s = e.binop) != null ? s : -1), mR.push((r = e.beforeExpr) != null ? r : !1), yR.push((i =
    e.startsExpr) != null ? i : !1), gR.push((a = e.prefix) != null ? a : !1), cc.push(new gv("name", e)), VT;
  }
  n(fs, "createKeywordLike");
  var mfs = {
    bracketL: kt("[", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    bracketHashL: kt("#[", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    bracketBarL: kt("[|", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    bracketR: kt("]"),
    bracketBarR: kt("|]"),
    braceL: kt("{", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    braceBarL: kt("{|", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    braceHashL: kt("#{", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    braceR: kt("}"),
    braceBarR: kt("|}"),
    parenL: kt("(", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    parenR: kt(")"),
    comma: kt(",", {
      beforeExpr: ds
    }),
    semi: kt(";", {
      beforeExpr: ds
    }),
    colon: kt(":", {
      beforeExpr: ds
    }),
    doubleColon: kt("::", {
      beforeExpr: ds
    }),
    dot: kt("."),
    question: kt("?", {
      beforeExpr: ds
    }),
    questionDot: kt("?."),
    arrow: kt("=>", {
      beforeExpr: ds
    }),
    template: kt("template"),
    ellipsis: kt("...", {
      beforeExpr: ds
    }),
    backQuote: kt("`", {
      startsExpr: $e
    }),
    dollarBraceL: kt("${", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    templateTail: kt("...`", {
      startsExpr: $e
    }),
    templateNonTail: kt("...${", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    at: kt("@"),
    hash: kt("#", {
      startsExpr: $e
    }),
    interpreterDirective: kt("#!..."),
    eq: kt("=", {
      beforeExpr: ds,
      isAssign: qT
    }),
    assign: kt("_=", {
      beforeExpr: ds,
      isAssign: qT
    }),
    slashAssign: kt("_=", {
      beforeExpr: ds,
      isAssign: qT
    }),
    xorAssign: kt("_=", {
      beforeExpr: ds,
      isAssign: qT
    }),
    moduloAssign: kt("_=", {
      beforeExpr: ds,
      isAssign: qT
    }),
    incDec: kt("++/--", {
      prefix: Up,
      postfix: dfs,
      startsExpr: $e
    }),
    bang: kt("!", {
      beforeExpr: ds,
      prefix: Up,
      startsExpr: $e
    }),
    tilde: kt("~", {
      beforeExpr: ds,
      prefix: Up,
      startsExpr: $e
    }),
    doubleCaret: kt("^^", {
      startsExpr: $e
    }),
    doubleAt: kt("@@", {
      startsExpr: $e
    }),
    pipeline: Hn("|>", 0),
    nullishCoalescing: Hn("??", 1),
    logicalOR: Hn("||", 1),
    logicalAND: Hn("&&", 2),
    bitwiseOR: Hn("|", 3),
    bitwiseXOR: Hn("^", 4),
    bitwiseAND: Hn("&", 5),
    equality: Hn("==/!=/===/!==", 6),
    lt: Hn("</>/<=/>=", 7),
    gt: Hn("</>/<=/>=", 7),
    relational: Hn("</>/<=/>=", 7),
    bitShift: Hn("<</>>/>>>", 8),
    bitShiftL: Hn("<</>>/>>>", 8),
    bitShiftR: Hn("<</>>/>>>", 8),
    plusMin: kt("+/-", {
      beforeExpr: ds,
      binop: 9,
      prefix: Up,
      startsExpr: $e
    }),
    modulo: kt("%", {
      binop: 10,
      startsExpr: $e
    }),
    star: kt("*", {
      binop: 10
    }),
    slash: Hn("/", 10),
    exponent: kt("**", {
      beforeExpr: ds,
      binop: 11,
      rightAssociative: !0
    }),
    _in: js("in", {
      beforeExpr: ds,
      binop: 7
    }),
    _instanceof: js("instanceof", {
      beforeExpr: ds,
      binop: 7
    }),
    _break: js("break"),
    _case: js("case", {
      beforeExpr: ds
    }),
    _catch: js("catch"),
    _continue: js("continue"),
    _debugger: js("debugger"),
    _default: js("default", {
      beforeExpr: ds
    }),
    _else: js("else", {
      beforeExpr: ds
    }),
    _finally: js("finally"),
    _function: js("function", {
      startsExpr: $e
    }),
    _if: js("if"),
    _return: js("return", {
      beforeExpr: ds
    }),
    _switch: js("switch"),
    _throw: js("throw", {
      beforeExpr: ds,
      prefix: Up,
      startsExpr: $e
    }),
    _try: js("try"),
    _var: js("var"),
    _const: js("const"),
    _with: js("with"),
    _new: js("new", {
      beforeExpr: ds,
      startsExpr: $e
    }),
    _this: js("this", {
      startsExpr: $e
    }),
    _super: js("super", {
      startsExpr: $e
    }),
    _class: js("class", {
      startsExpr: $e
    }),
    _extends: js("extends", {
      beforeExpr: ds
    }),
    _export: js("export"),
    _import: js("import", {
      startsExpr: $e
    }),
    _null: js("null", {
      startsExpr: $e
    }),
    _true: js("true", {
      startsExpr: $e
    }),
    _false: js("false", {
      startsExpr: $e
    }),
    _typeof: js("typeof", {
      beforeExpr: ds,
      prefix: Up,
      startsExpr: $e
    }),
    _void: js("void", {
      beforeExpr: ds,
      prefix: Up,
      startsExpr: $e
    }),
    _delete: js("delete", {
      beforeExpr: ds,
      prefix: Up,
      startsExpr: $e
    }),
    _do: js("do", {
      isLoop: U6,
      beforeExpr: ds
    }),
    _for: js("for", {
      isLoop: U6
    }),
    _while: js("while", {
      isLoop: U6
    }),
    _as: fs("as", {
      startsExpr: $e
    }),
    _assert: fs("assert", {
      startsExpr: $e
    }),
    _async: fs("async", {
      startsExpr: $e
    }),
    _await: fs("await", {
      startsExpr: $e
    }),
    _defer: fs("defer", {
      startsExpr: $e
    }),
    _from: fs("from", {
      startsExpr: $e
    }),
    _get: fs("get", {
      startsExpr: $e
    }),
    _let: fs("let", {
      startsExpr: $e
    }),
    _meta: fs("meta", {
      startsExpr: $e
    }),
    _of: fs("of", {
      startsExpr: $e
    }),
    _sent: fs("sent", {
      startsExpr: $e
    }),
    _set: fs("set", {
      startsExpr: $e
    }),
    _source: fs("source", {
      startsExpr: $e
    }),
    _static: fs("static", {
      startsExpr: $e
    }),
    _using: fs("using", {
      startsExpr: $e
    }),
    _yield: fs("yield", {
      startsExpr: $e
    }),
    _asserts: fs("asserts", {
      startsExpr: $e
    }),
    _checks: fs("checks", {
      startsExpr: $e
    }),
    _exports: fs("exports", {
      startsExpr: $e
    }),
    _global: fs("global", {
      startsExpr: $e
    }),
    _implements: fs("implements", {
      startsExpr: $e
    }),
    _intrinsic: fs("intrinsic", {
      startsExpr: $e
    }),
    _infer: fs("infer", {
      startsExpr: $e
    }),
    _is: fs("is", {
      startsExpr: $e
    }),
    _mixins: fs("mixins", {
      startsExpr: $e
    }),
    _proto: fs("proto", {
      startsExpr: $e
    }),
    _require: fs("require", {
      startsExpr: $e
    }),
    _satisfies: fs("satisfies", {
      startsExpr: $e
    }),
    _keyof: fs("keyof", {
      startsExpr: $e
    }),
    _readonly: fs("readonly", {
      startsExpr: $e
    }),
    _unique: fs("unique", {
      startsExpr: $e
    }),
    _abstract: fs("abstract", {
      startsExpr: $e
    }),
    _declare: fs("declare", {
      startsExpr: $e
    }),
    _enum: fs("enum", {
      startsExpr: $e
    }),
    _module: fs("module", {
      startsExpr: $e
    }),
    _namespace: fs("namespace", {
      startsExpr: $e
    }),
    _interface: fs("interface", {
      startsExpr: $e
    }),
    _type: fs("type", {
      startsExpr: $e
    }),
    _opaque: fs("opaque", {
      startsExpr: $e
    }),
    name: kt("name", {
      startsExpr: $e
    }),
    placeholder: kt("%%", {
      startsExpr: !0
    }),
    string: kt("string", {
      startsExpr: $e
    }),
    num: kt("num", {
      startsExpr: $e
    }),
    bigint: kt("bigint", {
      startsExpr: $e
    }),
    decimal: kt("decimal", {
      startsExpr: $e
    }),
    regexp: kt("regexp", {
      startsExpr: $e
    }),
    privateName: kt("#name", {
      startsExpr: $e
    }),
    eof: kt("eof"),
    jsxName: kt("jsxName"),
    jsxText: kt("jsxText", {
      beforeExpr: !0
    }),
    jsxTagStart: kt("jsxTagStart", {
      startsExpr: !0
    }),
    jsxTagEnd: kt("jsxTagEnd")
  };
  function or(t) {
    return t >= 93 && t <= 133;
  }
  n(or, "tokenIsIdentifier");
  function yfs(t) {
    return t <= 92;
  }
  n(yfs, "tokenKeywordOrIdentifierIsKeyword");
  function Uo(t) {
    return t >= 58 && t <= 133;
  }
  n(Uo, "tokenIsKeywordOrIdentifier");
  function Mfe(t) {
    return t >= 58 && t <= 137;
  }
  n(Mfe, "tokenIsLiteralPropertyName");
  function gfs(t) {
    return mR[t];
  }
  n(gfs, "tokenComesBeforeExpression");
  function H6(t) {
    return yR[t];
  }
  n(H6, "tokenCanStartExpression");
  function Tfs(t) {
    return t >= 29 && t <= 33;
  }
  n(Tfs, "tokenIsAssignment");
  function vfe(t) {
    return t >= 129 && t <= 131;
  }
  n(vfe, "tokenIsFlowInterfaceOrTypeOrOpaque");
  function bfs(t) {
    return t >= 90 && t <= 92;
  }
  n(bfs, "tokenIsLoop");
  function TR(t) {
    return t >= 58 && t <= 92;
  }
  n(TR, "tokenIsKeyword");
  function xfs(t) {
    return t >= 39 && t <= 59;
  }
  n(xfs, "tokenIsOperator");
  function Sfs(t) {
    return t === 34;
  }
  n(Sfs, "tokenIsPostfix");
  function Pfs(t) {
    return gR[t];
  }
  n(Pfs, "tokenIsPrefix");
  function Efs(t) {
    return t >= 121 && t <= 123;
  }
  n(Efs, "tokenIsTSTypeOperator");
  function Afs(t) {
    return t >= 124 && t <= 130;
  }
  n(Afs, "tokenIsTSDeclarationStart");
  function Vp(t) {
    return fR[t];
  }
  n(Vp, "tokenLabelName");
  function mv(t) {
    return dR[t];
  }
  n(mv, "tokenOperatorPrecedence");
  function vfs(t) {
    return t === 57;
  }
  n(vfs, "tokenIsRightAssociative");
  function Tv(t) {
    return t >= 24 && t <= 25;
  }
  n(Tv, "tokenIsTemplate");
  function uc(t) {
    return cc[t];
  }
  n(uc, "getExportedToken");
  cc[8].updateContext = (t) => {
    t.pop();
  }, cc[5].updateContext = cc[7].updateContext = cc[23].updateContext = (t) => {
    t.push(ar.brace);
  }, cc[22].updateContext = (t) => {
    t[t.length - 1] === ar.template ? t.pop() : t.push(ar.template);
  }, cc[143].updateContext = (t) => {
    t.push(ar.j_expr, ar.j_oTag);
  };
  var bR = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993\
-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\
\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\
\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\
\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\
\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01\
-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
  Ffe = "\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE\
-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\
\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\
\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\
\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65", Cfs = new RegExp("[" + bR + "]"), wfs = new RegExp("[" + bR + Ffe + "]");
  bR = Ffe = null;
  var jfe = [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], Ifs = [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 J6(t, e) {
    let s = 65536;
    for (let r = 0, i = e.length; r < i; r += 2) {
      if (s += e[r], s > t) return !1;
      if (s += e[r + 1], s >= t) return !0;
    }
    return !1;
  }
  n(J6, "isInAstralSet");
  function pc(t) {
    return t < 65 ? t === 36 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && Cfs.test(String.fromCharCode(t)) :
    J6(t, jfe);
  }
  n(pc, "isIdentifierStart");
  function dy(t) {
    return t < 48 ? t === 36 : t < 58 ? !0 : t < 65 ? !1 : t <= 90 ? !0 : t < 97 ? t === 95 : t <= 122 ? !0 : t <= 65535 ? t >= 170 && wfs.test(
    String.fromCharCode(t)) : J6(t, jfe) || J6(t, Ifs);
  }
  n(dy, "isIdentifierChar");
  var xR = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "swit\
ch", "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"]
  }, Nfs = new Set(xR.keyword), kfs = new Set(xR.strict), Dfs = new Set(xR.strictBind);
  function Rfe(t, e) {
    return e && t === "await" || t === "enum";
  }
  n(Rfe, "isReservedWord");
  function qfe(t, e) {
    return Rfe(t, e) || kfs.has(t);
  }
  n(qfe, "isStrictReservedWord");
  function Ufe(t) {
    return Dfs.has(t);
  }
  n(Ufe, "isStrictBindOnlyReservedWord");
  function Kfe(t, e) {
    return qfe(t, e) || Ufe(t);
  }
  n(Kfe, "isStrictBindReservedWord");
  function Ofs(t) {
    return Nfs.has(t);
  }
  n(Ofs, "isKeyword");
  function _fs(t, e, s) {
    return t === 64 && e === 64 && pc(s);
  }
  n(_fs, "isIteratorStart");
  var Lfs = /* @__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", "protecte\
d", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
  function Bfs(t) {
    return Lfs.has(t);
  }
  n(Bfs, "canBeReservedWord");
  var WT = class {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = e;
    }
  }, $T = class {
    static {
      n(this, "ScopeHandler");
    }
    constructor(e, s) {
      this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = e,
      this.inModule = s;
    }
    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() {
      let e = this.currentThisScopeFlags();
      return (e & 64) > 0 && (e & 2) === 0;
    }
    get inStaticBlock() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 128)
          return !0;
        if (s & 451)
          return !1;
      }
    }
    get inNonArrowFunction() {
      return (this.currentThisScopeFlags() & 2) > 0;
    }
    get treatFunctionsAsVar() {
      return this.treatFunctionsAsVarInScope(this.currentScope());
    }
    createScope(e) {
      return new WT(e);
    }
    enter(e) {
      this.scopeStack.push(this.createScope(e));
    }
    exit() {
      return this.scopeStack.pop().flags;
    }
    treatFunctionsAsVarInScope(e) {
      return !!(e.flags & 130 || !this.parser.inModule && e.flags & 1);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 8 || s & 16) {
        this.checkRedeclarationInScope(i, e, s, r);
        let a = i.names.get(e) || 0;
        s & 16 ? a = a | 4 : (i.firstLexicalName || (i.firstLexicalName = e), a = a | 2), i.names.set(e, a), s & 8 && this.maybeExportDefined(
        i, e);
      } else if (s & 4)
        for (let a = this.scopeStack.length - 1; a >= 0 && (i = this.scopeStack[a], this.checkRedeclarationInScope(i, e, s, r), i.names.set(
        e, (i.names.get(e) || 0) | 1), this.maybeExportDefined(i, e), !(i.flags & 387)); --a)
          ;
      this.parser.inModule && i.flags & 1 && this.undefinedExports.delete(e);
    }
    maybeExportDefined(e, s) {
      this.parser.inModule && e.flags & 1 && this.undefinedExports.delete(s);
    }
    checkRedeclarationInScope(e, s, r, i) {
      this.isRedeclaredInScope(e, s, r) && this.parser.raise(se.VarRedeclaration, i, {
        identifierName: s
      });
    }
    isRedeclaredInScope(e, s, r) {
      if (!(r & 1)) return !1;
      if (r & 8)
        return e.names.has(s);
      let i = e.names.get(s);
      return r & 16 ? (i & 2) > 0 || !this.treatFunctionsAsVarInScope(e) && (i & 1) > 0 : (i & 2) > 0 && !(e.flags & 8 && e.firstLexicalName ===
      s) || !this.treatFunctionsAsVarInScope(e) && (i & 4) > 0;
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      this.scopeStack[0].names.has(s) || this.undefinedExports.set(s, e.loc.start);
    }
    currentScope() {
      return this.scopeStack[this.scopeStack.length - 1];
    }
    currentVarScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 387)
          return s;
      }
    }
    currentThisScopeFlags() {
      for (let e = this.scopeStack.length - 1; ; e--) {
        let {
          flags: s
        } = this.scopeStack[e];
        if (s & 451 && !(s & 4))
          return s;
      }
    }
  }, Y6 = class extends WT {
    static {
      n(this, "FlowScope");
    }
    constructor(...e) {
      super(...e), this.declareFunctions = /* @__PURE__ */ new Set();
    }
  }, X6 = class extends $T {
    static {
      n(this, "FlowScopeHandler");
    }
    createScope(e) {
      return new Y6(e);
    }
    declareName(e, s, r) {
      let i = this.currentScope();
      if (s & 2048) {
        this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e), i.declareFunctions.add(e);
        return;
      }
      super.declareName(e, s, r);
    }
    isRedeclaredInScope(e, s, r) {
      if (super.isRedeclaredInScope(e, s, r)) return !0;
      if (r & 2048 && !e.declareFunctions.has(s)) {
        let i = e.names.get(s);
        return (i & 4) > 0 || (i & 2) > 0;
      }
      return !1;
    }
    checkLocalExport(e) {
      this.scopeStack[0].declareFunctions.has(e.name) || super.checkLocalExport(e);
    }
  }, z6 = class {
    static {
      n(this, "BaseParser");
    }
    constructor() {
      this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
    }
    sourceToOffsetPos(e) {
      return e + this.startIndex;
    }
    offsetToSourcePos(e) {
      return e - this.startIndex;
    }
    hasPlugin(e) {
      if (typeof e == "string")
        return this.plugins.has(e);
      {
        let [s, r] = e;
        if (!this.hasPlugin(s))
          return !1;
        let i = this.plugins.get(s);
        for (let a of Object.keys(r))
          if (i?.[a] !== r[a])
            return !1;
        return !0;
      }
    }
    getPluginOption(e, s) {
      var r;
      return (r = this.plugins.get(e)) == null ? void 0 : r[s];
    }
  };
  function Vfe(t, e) {
    t.trailingComments === void 0 ? t.trailingComments = e : t.trailingComments.unshift(...e);
  }
  n(Vfe, "setTrailingComments");
  function Mfs(t, e) {
    t.leadingComments === void 0 ? t.leadingComments = e : t.leadingComments.unshift(...e);
  }
  n(Mfs, "setLeadingComments");
  function HT(t, e) {
    t.innerComments === void 0 ? t.innerComments = e : t.innerComments.unshift(...e);
  }
  n(HT, "setInnerComments");
  function Bf(t, e, s) {
    let r = null, i = e.length;
    for (; r === null && i > 0; )
      r = e[--i];
    r === null || r.start > s.start ? HT(t, s.comments) : Vfe(r, s.comments);
  }
  n(Bf, "adjustInnerComments");
  var G6 = class extends z6 {
    static {
      n(this, "CommentsParser");
    }
    addComment(e) {
      this.filename && (e.loc.filename = this.filename);
      let {
        commentsLen: s
      } = this.state;
      this.comments.length !== s && (this.comments.length = s), this.comments.push(e), this.state.commentsLen++;
    }
    processComment(e) {
      let {
        commentStack: s
      } = this.state, r = s.length;
      if (r === 0) return;
      let i = r - 1, a = s[i];
      a.start === e.end && (a.leadingNode = e, i--);
      let {
        start: o
      } = e;
      for (; i >= 0; i--) {
        let l = s[i], u = l.end;
        if (u > o)
          l.containingNode = e, this.finalizeComment(l), s.splice(i, 1);
        else {
          u === o && (l.trailingNode = e);
          break;
        }
      }
    }
    finalizeComment(e) {
      let {
        comments: s
      } = e;
      if (e.leadingNode !== null || e.trailingNode !== null)
        e.leadingNode !== null && Vfe(e.leadingNode, s), e.trailingNode !== null && Mfs(e.trailingNode, s);
      else {
        let {
          containingNode: r,
          start: i
        } = e;
        if (this.input.charCodeAt(this.offsetToSourcePos(i) - 1) === 44)
          switch (r.type) {
            case "ObjectExpression":
            case "ObjectPattern":
            case "RecordExpression":
              Bf(r, r.properties, e);
              break;
            case "CallExpression":
            case "OptionalCallExpression":
              Bf(r, r.arguments, e);
              break;
            case "FunctionDeclaration":
            case "FunctionExpression":
            case "ArrowFunctionExpression":
            case "ObjectMethod":
            case "ClassMethod":
            case "ClassPrivateMethod":
              Bf(r, r.params, e);
              break;
            case "ArrayExpression":
            case "ArrayPattern":
            case "TupleExpression":
              Bf(r, r.elements, e);
              break;
            case "ExportNamedDeclaration":
            case "ImportDeclaration":
              Bf(r, r.specifiers, e);
              break;
            case "TSEnumDeclaration":
              Bf(r, r.members, e);
              break;
            case "TSEnumBody":
              Bf(r, r.members, e);
              break;
            default:
              HT(r, s);
          }
        else
          HT(r, s);
      }
    }
    finalizeRemainingComments() {
      let {
        commentStack: e
      } = this.state;
      for (let s = e.length - 1; s >= 0; s--)
        this.finalizeComment(e[s]);
      this.state.commentStack = [];
    }
    resetPreviousNodeTrailingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      if (r === 0) return;
      let i = s[r - 1];
      i.leadingNode === e && (i.leadingNode = null);
    }
    resetPreviousIdentifierLeadingComments(e) {
      let {
        commentStack: s
      } = this.state, {
        length: r
      } = s;
      r !== 0 && (s[r - 1].trailingNode === e ? s[r - 1].trailingNode = null : r >= 2 && s[r - 2].trailingNode === e && (s[r - 2].trailingNode =
      null));
    }
    takeSurroundingComments(e, s, r) {
      let {
        commentStack: i
      } = this.state, a = i.length;
      if (a === 0) return;
      let o = a - 1;
      for (; o >= 0; o--) {
        let l = i[o], u = l.end;
        if (l.start === r)
          l.leadingNode = e;
        else if (u === s)
          l.trailingNode = e;
        else if (u < s)
          break;
      }
    }
  }, Ffs = /\r\n|[\r\n\u2028\u2029]/, hv = new RegExp(Ffs.source, "g");
  function my(t) {
    switch (t) {
      case 10:
      case 13:
      case 8232:
      case 8233:
        return !0;
      default:
        return !1;
    }
  }
  n(my, "isNewLine");
  function Cfe(t, e, s) {
    for (let r = e; r < s; r++)
      if (my(t.charCodeAt(r)))
        return !0;
    return !1;
  }
  n(Cfe, "hasNewLine");
  var K6 = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, V6 = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;
  function jfs(t) {
    switch (t) {
      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;
    }
  }
  n(jfs, "isWhitespace");
  var Q6 = class t {
    static {
      n(this, "State");
    }
    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 = [ar.brace], this.firstInvalidTemplateEscapePos = null,
      this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
    }
    get strict() {
      return (this.flags & 1) > 0;
    }
    set strict(e) {
      e ? this.flags |= 1 : this.flags &= -2;
    }
    init({
      strictMode: e,
      sourceType: s,
      startIndex: r,
      startLine: i,
      startColumn: a
    }) {
      this.strict = e === !1 ? !1 : e === !0 ? !0 : s === "module", this.startIndex = r, this.curLine = i, this.lineStart = -a, this.startLoc =
      this.endLoc = new Dl(i, a, r);
    }
    get maybeInArrowParameters() {
      return (this.flags & 2) > 0;
    }
    set maybeInArrowParameters(e) {
      e ? this.flags |= 2 : this.flags &= -3;
    }
    get inType() {
      return (this.flags & 4) > 0;
    }
    set inType(e) {
      e ? this.flags |= 4 : this.flags &= -5;
    }
    get noAnonFunctionType() {
      return (this.flags & 8) > 0;
    }
    set noAnonFunctionType(e) {
      e ? this.flags |= 8 : this.flags &= -9;
    }
    get hasFlowComment() {
      return (this.flags & 16) > 0;
    }
    set hasFlowComment(e) {
      e ? this.flags |= 16 : this.flags &= -17;
    }
    get isAmbientContext() {
      return (this.flags & 32) > 0;
    }
    set isAmbientContext(e) {
      e ? this.flags |= 32 : this.flags &= -33;
    }
    get inAbstractClass() {
      return (this.flags & 64) > 0;
    }
    set inAbstractClass(e) {
      e ? this.flags |= 64 : this.flags &= -65;
    }
    get inDisallowConditionalTypesContext() {
      return (this.flags & 128) > 0;
    }
    set inDisallowConditionalTypesContext(e) {
      e ? this.flags |= 128 : this.flags &= -129;
    }
    get soloAwait() {
      return (this.flags & 256) > 0;
    }
    set soloAwait(e) {
      e ? this.flags |= 256 : this.flags &= -257;
    }
    get inFSharpPipelineDirectBody() {
      return (this.flags & 512) > 0;
    }
    set inFSharpPipelineDirectBody(e) {
      e ? this.flags |= 512 : this.flags &= -513;
    }
    get canStartJSXElement() {
      return (this.flags & 1024) > 0;
    }
    set canStartJSXElement(e) {
      e ? this.flags |= 1024 : this.flags &= -1025;
    }
    get containsEsc() {
      return (this.flags & 2048) > 0;
    }
    set containsEsc(e) {
      e ? this.flags |= 2048 : this.flags &= -2049;
    }
    get hasTopLevelAwait() {
      return (this.flags & 4096) > 0;
    }
    set hasTopLevelAwait(e) {
      e ? this.flags |= 4096 : this.flags &= -4097;
    }
    curPosition() {
      return new Dl(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex);
    }
    clone() {
      let e = new t();
      return e.flags = this.flags, e.startIndex = this.startIndex, e.curLine = this.curLine, e.lineStart = this.lineStart, e.startLoc = this.
      startLoc, e.endLoc = this.endLoc, e.errors = this.errors.slice(), e.potentialArrowAt = this.potentialArrowAt, e.noArrowAt = this.noArrowAt.
      slice(), e.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), e.topicContext = this.topicContext, e.labels = this.labels.
      slice(), e.commentsLen = this.commentsLen, e.commentStack = this.commentStack.slice(), e.pos = this.pos, e.type = this.type, e.value =
      this.value, e.start = this.start, e.end = this.end, e.lastTokEndLoc = this.lastTokEndLoc, e.lastTokStartLoc = this.lastTokStartLoc, e.
      context = this.context.slice(), e.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, e.strictErrors = this.strictErrors,
      e.tokensLength = this.tokensLength, e;
    }
  }, Rfs = /* @__PURE__ */ n(function(e) {
    return e >= 48 && e <= 57;
  }, "isDigit"), wfe = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, fv = {
    bin: /* @__PURE__ */ n((t) => t === 48 || t === 49, "bin"),
    oct: /* @__PURE__ */ n((t) => t >= 48 && t <= 55, "oct"),
    dec: /* @__PURE__ */ n((t) => t >= 48 && t <= 57, "dec"),
    hex: /* @__PURE__ */ n((t) => t >= 48 && t <= 57 || t >= 65 && t <= 70 || t >= 97 && t <= 102, "hex")
  };
  function Ife(t, e, s, r, i, a) {
    let o = s, l = r, u = i, c = "", p = null, h = s, {
      length: f
    } = e;
    for (; ; ) {
      if (s >= f) {
        a.unterminated(o, l, u), c += e.slice(h, s);
        break;
      }
      let d = e.charCodeAt(s);
      if (qfs(t, d, e, s)) {
        c += e.slice(h, s);
        break;
      }
      if (d === 92) {
        c += e.slice(h, s);
        let m = Ufs(e, s, r, i, t === "template", a);
        m.ch === null && !p ? p = {
          pos: s,
          lineStart: r,
          curLine: i
        } : c += m.ch, {
          pos: s,
          lineStart: r,
          curLine: i
        } = m, h = s;
      } else d === 8232 || d === 8233 ? (++s, ++i, r = s) : d === 10 || d === 13 ? t === "template" ? (c += e.slice(h, s) + `
`, ++s, d === 13 && e.charCodeAt(s) === 10 && ++s, ++i, h = r = s) : a.unterminated(o, l, u) : ++s;
    }
    return {
      pos: s,
      str: c,
      firstInvalidLoc: p,
      lineStart: r,
      curLine: i,
      containsInvalid: !!p
    };
  }
  n(Ife, "readStringContents");
  function qfs(t, e, s, r) {
    return t === "template" ? e === 96 || e === 36 && s.charCodeAt(r + 1) === 123 : e === (t === "double" ? 34 : 39);
  }
  n(qfs, "isStringEnd");
  function Ufs(t, e, s, r, i, a) {
    let o = !i;
    e++;
    let l = /* @__PURE__ */ n((c) => ({
      pos: e,
      ch: c,
      lineStart: s,
      curLine: r
    }), "res"), u = t.charCodeAt(e++);
    switch (u) {
      case 110:
        return l(`
`);
      case 114:
        return l("\r");
      case 120: {
        let c;
        return {
          code: c,
          pos: e
        } = Z6(t, e, s, r, 2, !1, o, a), l(c === null ? null : String.fromCharCode(c));
      }
      case 117: {
        let c;
        return {
          code: c,
          pos: e
        } = $fe(t, e, s, r, o, a), l(c === null ? null : String.fromCodePoint(c));
      }
      case 116:
        return l("	");
      case 98:
        return l("\b");
      case 118:
        return l("\v");
      case 102:
        return l("\f");
      case 13:
        t.charCodeAt(e) === 10 && ++e;
      case 10:
        s = e, ++r;
      case 8232:
      case 8233:
        return l("");
      case 56:
      case 57:
        if (i)
          return l(null);
        a.strictNumericEscape(e - 1, s, r);
      default:
        if (u >= 48 && u <= 55) {
          let c = e - 1, h = /^[0-7]+/.exec(t.slice(c, e + 2))[0], f = parseInt(h, 8);
          f > 255 && (h = h.slice(0, -1), f = parseInt(h, 8)), e += h.length - 1;
          let d = t.charCodeAt(e);
          if (h !== "0" || d === 56 || d === 57) {
            if (i)
              return l(null);
            a.strictNumericEscape(c, s, r);
          }
          return l(String.fromCharCode(f));
        }
        return l(String.fromCharCode(u));
    }
  }
  n(Ufs, "readEscapedChar");
  function Z6(t, e, s, r, i, a, o, l) {
    let u = e, c;
    return {
      n: c,
      pos: e
    } = Wfe(t, e, s, r, 16, i, a, !1, l, !o), c === null && (o ? l.invalidEscapeSequence(u, s, r) : e = u - 1), {
      code: c,
      pos: e
    };
  }
  n(Z6, "readHexChar");
  function Wfe(t, e, s, r, i, a, o, l, u, c) {
    let p = e, h = i === 16 ? wfe.hex : wfe.decBinOct, f = i === 16 ? fv.hex : i === 10 ? fv.dec : i === 8 ? fv.oct : fv.bin, d = !1, m = 0;
    for (let y = 0, T = a ?? 1 / 0; y < T; ++y) {
      let b = t.charCodeAt(e), E;
      if (b === 95 && l !== "bail") {
        let V = t.charCodeAt(e - 1), W = t.charCodeAt(e + 1);
        if (l) {
          if (Number.isNaN(W) || !f(W) || h.has(V) || h.has(W)) {
            if (c) return {
              n: null,
              pos: e
            };
            u.unexpectedNumericSeparator(e, s, r);
          }
        } else {
          if (c) return {
            n: null,
            pos: e
          };
          u.numericSeparatorInEscapeSequence(e, s, r);
        }
        ++e;
        continue;
      }
      if (b >= 97 ? E = b - 97 + 10 : b >= 65 ? E = b - 65 + 10 : Rfs(b) ? E = b - 48 : E = 1 / 0, E >= i) {
        if (E <= 9 && c)
          return {
            n: null,
            pos: e
          };
        if (E <= 9 && u.invalidDigit(e, s, r, i))
          E = 0;
        else if (o)
          E = 0, d = !0;
        else
          break;
      }
      ++e, m = m * i + E;
    }
    return e === p || a != null && e - p !== a || d ? {
      n: null,
      pos: e
    } : {
      n: m,
      pos: e
    };
  }
  n(Wfe, "readInt");
  function $fe(t, e, s, r, i, a) {
    let o = t.charCodeAt(e), l;
    if (o === 123) {
      if (++e, {
        code: l,
        pos: e
      } = Z6(t, e, s, r, t.indexOf("}", e) - e, !0, i, a), ++e, l !== null && l > 1114111)
        if (i)
          a.invalidCodePoint(e, s, r);
        else
          return {
            code: null,
            pos: e
          };
    } else
      ({
        code: l,
        pos: e
      } = Z6(t, e, s, r, 4, !1, i, a));
    return {
      code: l,
      pos: e
    };
  }
  n($fe, "readCodePoint");
  function UT(t, e, s) {
    return new Dl(s, t - e, t);
  }
  n(UT, "buildPosition");
  var Kfs = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]), kl = class {
    static {
      n(this, "Token");
    }
    constructor(e) {
      let s = e.startIndex || 0;
      this.type = e.type, this.value = e.value, this.start = s + e.start, this.end = s + e.end, this.loc = new gy(e.startLoc, e.endLoc);
    }
  }, eR = class extends G6 {
    static {
      n(this, "Tokenizer");
    }
    constructor(e, s) {
      super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
        invalidDigit: /* @__PURE__ */ n((r, i, a, o) => this.optionFlags & 1024 ? (this.raise(se.InvalidDigit, UT(r, i, a), {
          radix: o
        }), !0) : !1, "invalidDigit"),
        numericSeparatorInEscapeSequence: this.errorBuilder(se.NumericSeparatorInEscapeSequence),
        unexpectedNumericSeparator: this.errorBuilder(se.UnexpectedNumericSeparator)
      }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
        invalidEscapeSequence: this.errorBuilder(se.InvalidEscapeSequence),
        invalidCodePoint: this.errorBuilder(se.InvalidCodePoint)
      }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: /* @__PURE__ */ n((r, i, a) => {
          this.recordStrictModeErrors(se.StrictNumericEscape, UT(r, i, a));
        }, "strictNumericEscape"),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(se.UnterminatedString, UT(r - 1, i, a));
        }, "unterminated")
      }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: this.errorBuilder(se.StrictNumericEscape),
        unterminated: /* @__PURE__ */ n((r, i, a) => {
          throw this.raise(se.UnterminatedTemplate, UT(r, i, a));
        }, "unterminated")
      }), this.state = new Q6(), this.state.init(e), this.input = s, this.length = s.length, this.comments = [], this.isLookahead = !1;
    }
    pushToken(e) {
      this.tokens.length = this.state.tokensLength, this.tokens.push(e), ++this.state.tokensLength;
    }
    next() {
      this.checkKeywordEscapes(), this.optionFlags & 128 && this.pushToken(new kl(this.state)), this.state.lastTokEndLoc = this.state.endLoc,
      this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
    }
    eat(e) {
      return this.match(e) ? (this.next(), !0) : !1;
    }
    match(e) {
      return this.state.type === e;
    }
    createLookaheadState(e) {
      return {
        pos: e.pos,
        value: null,
        type: e.type,
        start: e.start,
        end: e.end,
        context: [this.curContext()],
        inType: e.inType,
        startLoc: e.startLoc,
        lastTokEndLoc: e.lastTokEndLoc,
        curLine: e.curLine,
        lineStart: e.lineStart,
        curPosition: e.curPosition
      };
    }
    lookahead() {
      let e = this.state;
      this.state = this.createLookaheadState(e), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
      let s = this.state;
      return this.state = e, s;
    }
    nextTokenStart() {
      return this.nextTokenStartSince(this.state.pos);
    }
    nextTokenStartSince(e) {
      return K6.lastIndex = e, K6.test(this.input) ? K6.lastIndex : e;
    }
    lookaheadCharCode() {
      return this.input.charCodeAt(this.nextTokenStart());
    }
    nextTokenInLineStart() {
      return this.nextTokenInLineStartSince(this.state.pos);
    }
    nextTokenInLineStartSince(e) {
      return V6.lastIndex = e, V6.test(this.input) ? V6.lastIndex : e;
    }
    lookaheadInLineCharCode() {
      return this.input.charCodeAt(this.nextTokenInLineStart());
    }
    codePointAtPos(e) {
      let s = this.input.charCodeAt(e);
      if ((s & 64512) === 55296 && ++e < this.input.length) {
        let r = this.input.charCodeAt(e);
        (r & 64512) === 56320 && (s = 65536 + ((s & 1023) << 10) + (r & 1023));
      }
      return s;
    }
    setStrict(e) {
      this.state.strict = e, e && (this.state.strictErrors.forEach(([s, r]) => this.raise(s, r)), 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(e) {
      let s;
      this.isLookahead || (s = this.state.curPosition());
      let r = this.state.pos, i = this.input.indexOf(e, r + 2);
      if (i === -1)
        throw this.raise(se.UnterminatedComment, this.state.curPosition());
      for (this.state.pos = i + e.length, hv.lastIndex = r + 2; hv.test(this.input) && hv.lastIndex <= i; )
        ++this.state.curLine, this.state.lineStart = hv.lastIndex;
      if (this.isLookahead) return;
      let a = {
        type: "CommentBlock",
        value: this.input.slice(r + 2, i),
        start: this.sourceToOffsetPos(r),
        end: this.sourceToOffsetPos(i + e.length),
        loc: new gy(s, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(a), a;
    }
    skipLineComment(e) {
      let s = this.state.pos, r;
      this.isLookahead || (r = this.state.curPosition());
      let i = this.input.charCodeAt(this.state.pos += e);
      if (this.state.pos < this.length)
        for (; !my(i) && ++this.state.pos < this.length; )
          i = this.input.charCodeAt(this.state.pos);
      if (this.isLookahead) return;
      let a = this.state.pos, l = {
        type: "CommentLine",
        value: this.input.slice(s + e, a),
        start: this.sourceToOffsetPos(s),
        end: this.sourceToOffsetPos(a),
        loc: new gy(r, this.state.curPosition())
      };
      return this.optionFlags & 128 && this.pushToken(l), l;
    }
    skipSpace() {
      let e = this.state.pos, s = this.optionFlags & 2048 ? [] : null;
      e: for (; this.state.pos < this.length; ) {
        let r = this.input.charCodeAt(this.state.pos);
        switch (r) {
          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: {
                let i = this.skipBlockComment("*/");
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              case 47: {
                let i = this.skipLineComment(2);
                i !== void 0 && (this.addComment(i), s?.push(i));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (jfs(r))
              ++this.state.pos;
            else if (r === 45 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 45 && this.input.charCodeAt(i + 2) === 62 && (e === 0 || this.state.lineStart > e)) {
                let a = this.skipLineComment(3);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else if (r === 60 && !this.inModule && this.optionFlags & 4096) {
              let i = this.state.pos;
              if (this.input.charCodeAt(i + 1) === 33 && this.input.charCodeAt(i + 2) === 45 && this.input.charCodeAt(i + 3) === 45) {
                let a = this.skipLineComment(4);
                a !== void 0 && (this.addComment(a), s?.push(a));
              } else
                break e;
            } else
              break e;
        }
      }
      if (s?.length > 0) {
        let r = this.state.pos, i = {
          start: this.sourceToOffsetPos(e),
          end: this.sourceToOffsetPos(r),
          comments: s,
          leadingNode: null,
          trailingNode: null,
          containingNode: null
        };
        this.state.commentStack.push(i);
      }
    }
    finishToken(e, s) {
      this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
      let r = this.state.type;
      this.state.type = e, this.state.value = s, this.isLookahead || this.updateContext(r);
    }
    replaceToken(e) {
      this.state.type = e, this.updateContext();
    }
    readToken_numberSign() {
      if (this.state.pos === 0 && this.readToken_interpreter())
        return;
      let e = this.state.pos + 1, s = this.codePointAtPos(e);
      if (s >= 48 && s <= 57)
        throw this.raise(se.UnexpectedDigitAfterHash, this.state.curPosition());
      if (s === 123 || s === 91 && this.hasPlugin("recordAndTuple")) {
        if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
          throw this.raise(s === 123 ? se.RecordExpressionHashIncorrectStartSyntaxType : se.TupleExpressionHashIncorrectStartSyntaxType, this.
          state.curPosition());
        this.state.pos += 2, s === 123 ? this.finishToken(7) : this.finishToken(1);
      } else pc(s) ? (++this.state.pos, this.finishToken(139, this.readWord1(s))) : s === 92 ? (++this.state.pos, this.finishToken(139, this.
      readWord1())) : this.finishOp(27, 1);
    }
    readToken_dot() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      if (e >= 48 && e <= 57) {
        this.readNumber(!0);
        return;
      }
      e === 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 e = this.input.charCodeAt(this.state.pos + 1);
      if (e !== 33) return !1;
      let s = this.state.pos;
      for (this.state.pos += 1; !my(e) && ++this.state.pos < this.length; )
        e = this.input.charCodeAt(this.state.pos);
      let r = this.input.slice(s + 2, this.state.pos);
      return this.finishToken(28, r), !0;
    }
    readToken_mult_modulo(e) {
      let s = e === 42 ? 55 : 54, r = 1, i = this.input.charCodeAt(this.state.pos + 1);
      e === 42 && i === 42 && (r++, i = this.input.charCodeAt(this.state.pos + 2), s = 57), i === 61 && !this.state.inType && (r++, s = e ===
      37 ? 33 : 30), this.finishOp(s, r);
    }
    readToken_pipe_amp(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(e === 124 ? 41 : 42, 2);
        return;
      }
      if (e === 124) {
        if (s === 62) {
          this.finishOp(39, 2);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 125) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(se.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(9);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && s === 93) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(se.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(4);
          return;
        }
      }
      if (s === 61) {
        this.finishOp(30, 2);
        return;
      }
      this.finishOp(e === 124 ? 43 : 45, 1);
    }
    readToken_caret() {
      let e = this.input.charCodeAt(this.state.pos + 1);
      e === 61 && !this.state.inType ? this.finishOp(32, 2) : e === 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(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === e) {
        this.finishOp(34, 2);
        return;
      }
      s === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
    }
    readToken_lt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 60) {
        if (this.input.charCodeAt(e + 2) === 61) {
          this.finishOp(30, 3);
          return;
        }
        this.finishOp(51, 2);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(47, 1);
    }
    readToken_gt() {
      let {
        pos: e
      } = this.state, s = this.input.charCodeAt(e + 1);
      if (s === 62) {
        let r = this.input.charCodeAt(e + 2) === 62 ? 3 : 2;
        if (this.input.charCodeAt(e + r) === 61) {
          this.finishOp(30, r + 1);
          return;
        }
        this.finishOp(52, r);
        return;
      }
      if (s === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(48, 1);
    }
    readToken_eq_excl(e) {
      let s = this.input.charCodeAt(this.state.pos + 1);
      if (s === 61) {
        this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
        return;
      }
      if (e === 61 && s === 62) {
        this.state.pos += 2, this.finishToken(19);
        return;
      }
      this.finishOp(e === 61 ? 29 : 35, 1);
    }
    readToken_question() {
      let e = this.input.charCodeAt(this.state.pos + 1), s = this.input.charCodeAt(this.state.pos + 2);
      e === 63 ? s === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : e === 46 && !(s >= 48 && s <= 57) ? (this.state.pos += 2, this.finishToken(
      18)) : (++this.state.pos, this.finishToken(17));
    }
    getTokenFromCode(e) {
      switch (e) {
        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(se.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(se.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: {
          let s = this.input.charCodeAt(this.state.pos + 1);
          if (s === 120 || s === 88) {
            this.readRadixNumber(16);
            return;
          }
          if (s === 111 || s === 79) {
            this.readRadixNumber(8);
            return;
          }
          if (s === 98 || s === 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(e);
          return;
        case 47:
          this.readToken_slash();
          return;
        case 37:
        case 42:
          this.readToken_mult_modulo(e);
          return;
        case 124:
        case 38:
          this.readToken_pipe_amp(e);
          return;
        case 94:
          this.readToken_caret();
          return;
        case 43:
        case 45:
          this.readToken_plus_min(e);
          return;
        case 60:
          this.readToken_lt();
          return;
        case 62:
          this.readToken_gt();
          return;
        case 61:
        case 33:
          this.readToken_eq_excl(e);
          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 (pc(e)) {
            this.readWord(e);
            return;
          }
      }
      throw this.raise(se.InvalidOrUnexpectedToken, this.state.curPosition(), {
        unexpected: String.fromCodePoint(e)
      });
    }
    finishOp(e, s) {
      let r = this.input.slice(this.state.pos, this.state.pos + s);
      this.state.pos += s, this.finishToken(e, r);
    }
    readRegexp() {
      let e = this.state.startLoc, s = this.state.start + 1, r, i, {
        pos: a
      } = this.state;
      for (; ; ++a) {
        if (a >= this.length)
          throw this.raise(se.UnterminatedRegExp, Jn(e, 1));
        let c = this.input.charCodeAt(a);
        if (my(c))
          throw this.raise(se.UnterminatedRegExp, Jn(e, 1));
        if (r)
          r = !1;
        else {
          if (c === 91)
            i = !0;
          else if (c === 93 && i)
            i = !1;
          else if (c === 47 && !i)
            break;
          r = c === 92;
        }
      }
      let o = this.input.slice(s, a);
      ++a;
      let l = "", u = /* @__PURE__ */ n(() => Jn(e, a + 2 - s), "nextPos");
      for (; a < this.length; ) {
        let c = this.codePointAtPos(a), p = String.fromCharCode(c);
        if (Kfs.has(c))
          c === 118 ? l.includes("u") && this.raise(se.IncompatibleRegExpUVFlags, u()) : c === 117 && l.includes("v") && this.raise(se.IncompatibleRegExpUVFlags,
          u()), l.includes(p) && this.raise(se.DuplicateRegExpFlags, u());
        else if (dy(c) || c === 92)
          this.raise(se.MalformedRegExpFlags, u());
        else
          break;
        ++a, l += p;
      }
      this.state.pos = a, this.finishToken(138, {
        pattern: o,
        flags: l
      });
    }
    readInt(e, s, r = !1, i = !0) {
      let {
        n: a,
        pos: o
      } = Wfe(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, s, r, i, this.errorHandlers_readInt, !1);
      return this.state.pos = o, a;
    }
    readRadixNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1;
      this.state.pos += 2;
      let a = this.readInt(e);
      a == null && this.raise(se.InvalidDigit, Jn(r, 2), {
        radix: e
      });
      let o = this.input.charCodeAt(this.state.pos);
      if (o === 110)
        ++this.state.pos, i = !0;
      else if (o === 109)
        throw this.raise(se.InvalidDecimal, r);
      if (pc(this.codePointAtPos(this.state.pos)))
        throw this.raise(se.NumberIdentifier, this.state.curPosition());
      if (i) {
        let l = this.input.slice(s, this.state.pos).replace(/[_n]/g, "");
        this.finishToken(136, l);
        return;
      }
      this.finishToken(135, a);
    }
    readNumber(e) {
      let s = this.state.pos, r = this.state.curPosition(), i = !1, a = !1, o = !1, l = !1;
      !e && this.readInt(10) === null && this.raise(se.InvalidNumber, this.state.curPosition());
      let u = this.state.pos - s >= 2 && this.input.charCodeAt(s) === 48;
      if (u) {
        let d = this.input.slice(s, this.state.pos);
        if (this.recordStrictModeErrors(se.StrictOctalLiteral, r), !this.state.strict) {
          let m = d.indexOf("_");
          m > 0 && this.raise(se.ZeroDigitNumericSeparator, Jn(r, m));
        }
        l = u && !/[89]/.test(d);
      }
      let c = this.input.charCodeAt(this.state.pos);
      if (c === 46 && !l && (++this.state.pos, this.readInt(10), i = !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(
      se.InvalidOrMissingExponent, r), i = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((i || u) && this.raise(se.InvalidBigIntLiteral,
      r), ++this.state.pos, a = !0), c === 109) {
        this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(se.InvalidDecimal, r), ++this.state.pos;
        var p = !0;
      }
      if (pc(this.codePointAtPos(this.state.pos)))
        throw this.raise(se.NumberIdentifier, this.state.curPosition());
      let h = this.input.slice(s, this.state.pos).replace(/[_mn]/g, "");
      if (a) {
        this.finishToken(136, h);
        return;
      }
      if (p) {
        this.finishToken(137, h);
        return;
      }
      let f = l ? parseInt(h, 8) : parseFloat(h);
      this.finishToken(135, f);
    }
    readCodePoint(e) {
      let {
        code: s,
        pos: r
      } = $fe(this.input, this.state.pos, this.state.lineStart, this.state.curLine, e, this.errorHandlers_readCodePoint);
      return this.state.pos = r, s;
    }
    readString(e) {
      let {
        str: s,
        pos: r,
        curLine: i,
        lineStart: a
      } = Ife(e === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
      this.state.pos = r + 1, this.state.lineStart = a, this.state.curLine = i, this.finishToken(134, s);
    }
    readTemplateContinuation() {
      this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
    }
    readTemplateToken() {
      let e = this.input[this.state.pos], {
        str: s,
        firstInvalidLoc: r,
        pos: i,
        curLine: a,
        lineStart: o
      } = Ife("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
      this.state.pos = i + 1, this.state.lineStart = o, this.state.curLine = a, r && (this.state.firstInvalidTemplateEscapePos = new Dl(r.curLine,
      r.pos - r.lineStart, this.sourceToOffsetPos(r.pos))), this.input.codePointAt(i) === 96 ? this.finishToken(24, r ? null : e + s + "`") :
      (this.state.pos++, this.finishToken(25, r ? null : e + s + "${"));
    }
    recordStrictModeErrors(e, s) {
      let r = s.index;
      this.state.strict && !this.state.strictErrors.has(r) ? this.raise(e, s) : this.state.strictErrors.set(r, [e, s]);
    }
    readWord1(e) {
      this.state.containsEsc = !1;
      let s = "", r = this.state.pos, i = this.state.pos;
      for (e !== void 0 && (this.state.pos += e <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
        let a = this.codePointAtPos(this.state.pos);
        if (dy(a))
          this.state.pos += a <= 65535 ? 1 : 2;
        else if (a === 92) {
          this.state.containsEsc = !0, s += this.input.slice(i, this.state.pos);
          let o = this.state.curPosition(), l = this.state.pos === r ? pc : dy;
          if (this.input.charCodeAt(++this.state.pos) !== 117) {
            this.raise(se.MissingUnicodeEscape, this.state.curPosition()), i = this.state.pos - 1;
            continue;
          }
          ++this.state.pos;
          let u = this.readCodePoint(!0);
          u !== null && (l(u) || this.raise(se.EscapedCharNotAnIdentifier, o), s += String.fromCodePoint(u)), i = this.state.pos;
        } else
          break;
      }
      return s + this.input.slice(i, this.state.pos);
    }
    readWord(e) {
      let s = this.readWord1(e), r = hR.get(s);
      r !== void 0 ? this.finishToken(r, Vp(r)) : this.finishToken(132, s);
    }
    checkKeywordEscapes() {
      let {
        type: e
      } = this.state;
      TR(e) && this.state.containsEsc && this.raise(se.InvalidEscapedReservedWord, this.state.startLoc, {
        reservedWord: Vp(e)
      });
    }
    raise(e, s, r = {}) {
      let i = s instanceof Dl ? s : s.loc.start, a = e(i, r);
      if (!(this.optionFlags & 1024)) throw a;
      return this.isLookahead || this.state.errors.push(a), a;
    }
    raiseOverwrite(e, s, r = {}) {
      let i = s instanceof Dl ? s : s.loc.start, a = i.index, o = this.state.errors;
      for (let l = o.length - 1; l >= 0; l--) {
        let u = o[l];
        if (u.loc.index === a)
          return o[l] = e(i, r);
        if (u.loc.index < a) break;
      }
      return this.raise(e, s, r);
    }
    updateContext(e) {
    }
    unexpected(e, s) {
      throw this.raise(se.UnexpectedToken, e ?? this.state.startLoc, {
        expected: s ? Vp(s) : null
      });
    }
    expectPlugin(e, s) {
      if (this.hasPlugin(e))
        return !0;
      throw this.raise(se.MissingPlugin, s ?? this.state.startLoc, {
        missingPlugin: [e]
      });
    }
    expectOnePlugin(e) {
      if (!e.some((s) => this.hasPlugin(s)))
        throw this.raise(se.MissingOneOfPlugins, this.state.startLoc, {
          missingPlugin: e
        });
    }
    errorBuilder(e) {
      return (s, r, i) => {
        this.raise(e, UT(s, r, i));
      };
    }
  }, tR = class {
    static {
      n(this, "ClassScope");
    }
    constructor() {
      this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
    }
  }, sR = class {
    static {
      n(this, "ClassScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = e;
    }
    current() {
      return this.stack[this.stack.length - 1];
    }
    enter() {
      this.stack.push(new tR());
    }
    exit() {
      let e = this.stack.pop(), s = this.current();
      for (let [r, i] of Array.from(e.undefinedPrivateNames))
        s ? s.undefinedPrivateNames.has(r) || s.undefinedPrivateNames.set(r, i) : this.parser.raise(se.InvalidPrivateFieldResolution, i, {
          identifierName: r
        });
    }
    declarePrivateName(e, s, r) {
      let {
        privateNames: i,
        loneAccessors: a,
        undefinedPrivateNames: o
      } = this.current(), l = i.has(e);
      if (s & 3) {
        let u = l && a.get(e);
        if (u) {
          let c = u & 4, p = s & 4, h = u & 3, f = s & 3;
          l = h === f || c !== p, l || a.delete(e);
        } else l || a.set(e, s);
      }
      l && this.parser.raise(se.PrivateNameRedeclaration, r, {
        identifierName: e
      }), i.add(e), o.delete(e);
    }
    usePrivateName(e, s) {
      let r;
      for (r of this.stack)
        if (r.privateNames.has(e)) return;
      r ? r.undefinedPrivateNames.set(e, s) : this.parser.raise(se.InvalidPrivateFieldResolution, s, {
        identifierName: e
      });
    }
  }, Ty = class {
    static {
      n(this, "ExpressionScope");
    }
    constructor(e = 0) {
      this.type = e;
    }
    canBeArrowParameterDeclaration() {
      return this.type === 2 || this.type === 1;
    }
    isCertainlyParameterDeclaration() {
      return this.type === 3;
    }
  }, bv = class extends Ty {
    static {
      n(this, "ArrowHeadParsingScope");
    }
    constructor(e) {
      super(e), this.declarationErrors = /* @__PURE__ */ new Map();
    }
    recordDeclarationError(e, s) {
      let r = s.index;
      this.declarationErrors.set(r, [e, s]);
    }
    clearDeclarationError(e) {
      this.declarationErrors.delete(e);
    }
    iterateErrors(e) {
      this.declarationErrors.forEach(e);
    }
  }, rR = class {
    static {
      n(this, "ExpressionScopeHandler");
    }
    constructor(e) {
      this.parser = void 0, this.stack = [new Ty()], this.parser = e;
    }
    enter(e) {
      this.stack.push(e);
    }
    exit() {
      this.stack.pop();
    }
    recordParameterInitializerError(e, s) {
      let r = s.loc.start, {
        stack: i
      } = this, a = i.length - 1, o = i[a];
      for (; !o.isCertainlyParameterDeclaration(); ) {
        if (o.canBeArrowParameterDeclaration())
          o.recordDeclarationError(e, r);
        else
          return;
        o = i[--a];
      }
      this.parser.raise(e, r);
    }
    recordArrowParameterBindingError(e, s) {
      let {
        stack: r
      } = this, i = r[r.length - 1], a = s.loc.start;
      if (i.isCertainlyParameterDeclaration())
        this.parser.raise(e, a);
      else if (i.canBeArrowParameterDeclaration())
        i.recordDeclarationError(e, a);
      else
        return;
    }
    recordAsyncArrowParametersError(e) {
      let {
        stack: s
      } = this, r = s.length - 1, i = s[r];
      for (; i.canBeArrowParameterDeclaration(); )
        i.type === 2 && i.recordDeclarationError(se.AwaitBindingIdentifier, e), i = s[--r];
    }
    validateAsPattern() {
      let {
        stack: e
      } = this, s = e[e.length - 1];
      s.canBeArrowParameterDeclaration() && s.iterateErrors(([r, i]) => {
        this.parser.raise(r, i);
        let a = e.length - 2, o = e[a];
        for (; o.canBeArrowParameterDeclaration(); )
          o.clearDeclarationError(i.index), o = e[--a];
      });
    }
  };
  function Vfs() {
    return new Ty(3);
  }
  n(Vfs, "newParameterDeclarationScope");
  function Wfs() {
    return new bv(1);
  }
  n(Wfs, "newArrowHeadScope");
  function $fs() {
    return new bv(2);
  }
  n($fs, "newAsyncArrowScope");
  function Hfe() {
    return new Ty();
  }
  n(Hfe, "newExpressionScope");
  var iR = class {
    static {
      n(this, "ProductionParameterHandler");
    }
    constructor() {
      this.stacks = [];
    }
    enter(e) {
      this.stacks.push(e);
    }
    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 yv(t, e) {
    return (t ? 2 : 0) | (e ? 1 : 0);
  }
  n(yv, "functionFlags");
  var nR = class extends eR {
    static {
      n(this, "UtilParser");
    }
    addExtra(e, s, r, i = !0) {
      if (!e) return;
      let {
        extra: a
      } = e;
      a == null && (a = {}, e.extra = a), i ? a[s] = r : Object.defineProperty(a, s, {
        enumerable: i,
        value: r
      });
    }
    isContextual(e) {
      return this.state.type === e && !this.state.containsEsc;
    }
    isUnparsedContextual(e, s) {
      let r = e + s.length;
      if (this.input.slice(e, r) === s) {
        let i = this.input.charCodeAt(r);
        return !(dy(i) || (i & 64512) === 55296);
      }
      return !1;
    }
    isLookaheadContextual(e) {
      let s = this.nextTokenStart();
      return this.isUnparsedContextual(s, e);
    }
    eatContextual(e) {
      return this.isContextual(e) ? (this.next(), !0) : !1;
    }
    expectContextual(e, s) {
      if (!this.eatContextual(e)) {
        if (s != null)
          throw this.raise(s, this.state.startLoc);
        this.unexpected(null, e);
      }
    }
    canInsertSemicolon() {
      return this.match(140) || this.match(8) || this.hasPrecedingLineBreak();
    }
    hasPrecedingLineBreak() {
      return Cfe(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start);
    }
    hasFollowingLineBreak() {
      return Cfe(this.input, this.state.end, this.nextTokenStart());
    }
    isLineTerminator() {
      return this.eat(13) || this.canInsertSemicolon();
    }
    semicolon(e = !0) {
      (e ? this.isLineTerminator() : this.eat(13)) || this.raise(se.MissingSemicolon, this.state.lastTokEndLoc);
    }
    expect(e, s) {
      this.eat(e) || this.unexpected(s, e);
    }
    tryParse(e, s = this.state.clone()) {
      let r = {
        node: null
      };
      try {
        let i = e((a = null) => {
          throw r.node = a, r;
        });
        if (this.state.errors.length > s.errors.length) {
          let a = this.state;
          return this.state = s, this.state.tokensLength = a.tokensLength, {
            node: i,
            error: a.errors[s.errors.length],
            thrown: !1,
            aborted: !1,
            failState: a
          };
        }
        return {
          node: i,
          error: null,
          thrown: !1,
          aborted: !1,
          failState: null
        };
      } catch (i) {
        let a = this.state;
        if (this.state = s, i instanceof SyntaxError)
          return {
            node: null,
            error: i,
            thrown: !0,
            aborted: !1,
            failState: a
          };
        if (i === r)
          return {
            node: r.node,
            error: null,
            thrown: !1,
            aborted: !0,
            failState: a
          };
        throw i;
      }
    }
    checkExpressionErrors(e, s) {
      if (!e) return !1;
      let {
        shorthandAssignLoc: r,
        doubleProtoLoc: i,
        privateKeyLoc: a,
        optionalParametersLoc: o
      } = e, l = !!r || !!i || !!o || !!a;
      if (!s)
        return l;
      r != null && this.raise(se.InvalidCoverInitializedName, r), i != null && this.raise(se.DuplicateProto, i), a != null && this.raise(se.
      UnexpectedPrivateField, a), o != null && this.unexpected(o);
    }
    isLiteralPropertyName() {
      return Mfe(this.state.type);
    }
    isPrivateName(e) {
      return e.type === "PrivateName";
    }
    getPrivateNameSV(e) {
      return e.id.name;
    }
    hasPropertyAsPrivateName(e) {
      return (e.type === "MemberExpression" || e.type === "OptionalMemberExpression") && this.isPrivateName(e.property);
    }
    isObjectProperty(e) {
      return e.type === "ObjectProperty";
    }
    isObjectMethod(e) {
      return e.type === "ObjectMethod";
    }
    initializeScopes(e = this.options.sourceType === "module") {
      let s = this.state.labels;
      this.state.labels = [];
      let r = this.exportedIdentifiers;
      this.exportedIdentifiers = /* @__PURE__ */ new Set();
      let i = this.inModule;
      this.inModule = e;
      let a = this.scope, o = this.getScopeHandler();
      this.scope = new o(this, e);
      let l = this.prodParam;
      this.prodParam = new iR();
      let u = this.classScope;
      this.classScope = new sR(this);
      let c = this.expressionScope;
      return this.expressionScope = new rR(this), () => {
        this.state.labels = s, this.exportedIdentifiers = r, this.inModule = i, this.scope = a, this.prodParam = l, this.classScope = u, this.
        expressionScope = c;
      };
    }
    enterInitialScopes() {
      let e = 0;
      this.inModule && (e |= 2), this.scope.enter(1), this.prodParam.enter(e);
    }
    checkDestructuringPrivate(e) {
      let {
        privateKeyLoc: s
      } = e;
      s !== null && this.expectPlugin("destructuringPrivate", s);
    }
  }, yy = class {
    static {
      n(this, "ExpressionErrors");
    }
    constructor() {
      this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
    }
  }, by = class {
    static {
      n(this, "Node");
    }
    constructor(e, s, r) {
      this.type = "", this.start = s, this.end = 0, this.loc = new gy(r), e?.optionFlags & 64 && (this.range = [s, 0]), e != null && e.filename &&
      (this.loc.filename = e.filename);
    }
  }, SR = by.prototype;
  SR.__clone = function() {
    let t = new by(void 0, this.start, this.loc.start), e = Object.keys(this);
    for (let s = 0, r = e.length; s < r; s++) {
      let i = e[s];
      i !== "leadingComments" && i !== "trailingComments" && i !== "innerComments" && (t[i] = this[i]);
    }
    return t;
  };
  function Hfs(t) {
    return fc(t);
  }
  n(Hfs, "clonePlaceholder");
  function fc(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o,
      name: l
    } = t, u = Object.create(SR);
    return u.type = e, u.start = s, u.end = r, u.loc = i, u.range = a, u.extra = o, u.name = l, e === "Placeholder" && (u.expectedNode = t.expectedNode),
    u;
  }
  n(fc, "cloneIdentifier");
  function Jfs(t) {
    let {
      type: e,
      start: s,
      end: r,
      loc: i,
      range: a,
      extra: o
    } = t;
    if (e === "Placeholder")
      return Hfs(t);
    let l = Object.create(SR);
    return l.type = e, l.start = s, l.end = r, l.loc = i, l.range = a, t.raw !== void 0 ? l.raw = t.raw : l.extra = o, l.value = t.value, l;
  }
  n(Jfs, "cloneStringLiteral");
  var aR = class extends nR {
    static {
      n(this, "NodeUtils");
    }
    startNode() {
      let e = this.state.startLoc;
      return new by(this, e.index, e);
    }
    startNodeAt(e) {
      return new by(this, e.index, e);
    }
    startNodeAtNode(e) {
      return this.startNodeAt(e.loc.start);
    }
    finishNode(e, s) {
      return this.finishNodeAt(e, s, this.state.lastTokEndLoc);
    }
    finishNodeAt(e, s, r) {
      return e.type = s, e.end = r.index, e.loc.end = r, this.optionFlags & 64 && (e.range[1] = r.index), this.optionFlags & 2048 && this.processComment(
      e), e;
    }
    resetStartLocation(e, s) {
      e.start = s.index, e.loc.start = s, this.optionFlags & 64 && (e.range[0] = s.index);
    }
    resetEndLocation(e, s = this.state.lastTokEndLoc) {
      e.end = s.index, e.loc.end = s, this.optionFlags & 64 && (e.range[1] = s.index);
    }
    resetStartLocationFromNode(e, s) {
      this.resetStartLocation(e, s.loc.start);
    }
  }, Yfs = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "sta\
tic", "string", "true", "typeof", "void"]), jt = hc`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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Cannot overwrite reserved type ${t}.`, "AssignReservedType"),
    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: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Boolean enum members need to be initialized. Use either \`${t} = true,\` or \`${t} = false,\` in enum \`${e}\`.`, "EnumBooleanMem\
berNotInitialized"),
    EnumDuplicateMemberName: /* @__PURE__ */ n(({
      memberName: t,
      enumName: e
    }) => `Enum member names need to be unique, but the name \`${t}\` has already been used before in enum \`${e}\`.`, "EnumDuplicateMemberN\
ame"),
    EnumInconsistentMemberValues: /* @__PURE__ */ n(({
      enumName: t
    }) => `Enum \`${t}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, num\
bers, or strings) for all member initializers.`, "EnumInconsistentMemberValues"),
    EnumInvalidExplicitType: /* @__PURE__ */ n(({
      invalidEnumType: t,
      enumName: e
    }) => `Enum type \`${t}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${e}\`.`, "EnumInvalidEx\
plicitType"),
    EnumInvalidExplicitTypeUnknownSupplied: /* @__PURE__ */ n(({
      enumName: t
    }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`, "EnumInvalidEx\
plicitTypeUnknownSupplied"),
    EnumInvalidMemberInitializerPrimaryType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      explicitType: s
    }) => `Enum \`${t}\` has type \`${s}\`, so the initializer of \`${e}\` needs to be a ${s} literal.`, "EnumInvalidMemberInitializerPrimar\
yType"),
    EnumInvalidMemberInitializerSymbolType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Symbol enum members cannot be initialized. Use \`${e},\` in enum \`${t}\`.`, "EnumInvalidMemberInitializerSymbolType"),
    EnumInvalidMemberInitializerUnknownType: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `The enum member initializer for \`${e}\` needs to be a literal (either a boolean, number, or string) in enum \`${t}\`.`, "EnumInv\
alidMemberInitializerUnknownType"),
    EnumInvalidMemberName: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e,
      suggestion: s
    }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${e}\`, consider using \`${s}\`, in enum \`${t}\
\`.`, "EnumInvalidMemberName"),
    EnumNumberMemberNotInitialized: /* @__PURE__ */ n(({
      enumName: t,
      memberName: e
    }) => `Number enum members need to be initialized, e.g. \`${e} = 1\` in enum \`${t}\`.`, "EnumNumberMemberNotInitialized"),
    EnumStringMemberInconsistentlyInitialized: /* @__PURE__ */ n(({
      enumName: t
    }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${t}\`.`, "EnumStringMemb\
erInconsistentlyInitialized"),
    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: /* @__PURE__ */ n(({
      reservedType: t
    }) => `Unexpected reserved type ${t}.`, "UnexpectedReservedType"),
    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: /* @__PURE__ */ n(({
      unsupportedExportKind: t,
      suggestion: e
    }) => `\`declare export ${t}\` is not supported. Use \`${e}\` instead.`, "UnsupportedDeclareExportKind"),
    UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
    UnterminatedFlowComment: "Unterminated flow-comment."
  });
  function Xfs(t) {
    return t.type === "DeclareExportAllDeclaration" || t.type === "DeclareExportDeclaration" && (!t.declaration || t.declaration.type !== "T\
ypeAlias" && t.declaration.type !== "InterfaceDeclaration");
  }
  n(Xfs, "isEsModuleType");
  function Nfe(t) {
    return t.importKind === "type" || t.importKind === "typeof";
  }
  n(Nfe, "hasTypeImportKind");
  var zfs = {
    const: "declare export var",
    let: "declare export var",
    type: "export type",
    interface: "export interface"
  };
  function Gfs(t, e) {
    let s = [], r = [];
    for (let i = 0; i < t.length; i++)
      (e(t[i], i, t) ? s : r).push(t[i]);
    return [s, r];
  }
  n(Gfs, "partition");
  var Qfs = /\*?\s*@((?:no)?flow)\b/, Zfs = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "FlowParserMixin");
    }
    constructor(...s) {
      super(...s), this.flowPragma = void 0;
    }
    getScopeHandler() {
      return X6;
    }
    shouldParseTypes() {
      return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
    }
    finishToken(s, r) {
      s !== 134 && s !== 13 && s !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(s, r);
    }
    addComment(s) {
      if (this.flowPragma === void 0) {
        let r = Qfs.exec(s.value);
        if (r) if (r[1] === "flow")
          this.flowPragma = "flow";
        else if (r[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
      }
      super.addComment(s);
    }
    flowParseTypeInitialiser(s) {
      let r = this.state.inType;
      this.state.inType = !0, this.expect(s || 14);
      let i = this.flowParseType();
      return this.state.inType = r, i;
    }
    flowParsePredicate() {
      let s = this.startNode(), r = this.state.startLoc;
      return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > r.index + 1 && this.raise(jt.UnexpectedSpaceBetweenModuloChecks,
      r), this.eat(10) ? (s.value = super.parseExpression(), this.expect(11), this.finishNode(s, "DeclaredPredicate")) : this.finishNode(s, "\
InferredPredicate");
    }
    flowParseTypeAndPredicateInitialiser() {
      let s = this.state.inType;
      this.state.inType = !0, this.expect(14);
      let r = null, i = null;
      return this.match(54) ? (this.state.inType = s, i = this.flowParsePredicate()) : (r = this.flowParseType(), this.state.inType = s, this.
      match(54) && (i = this.flowParsePredicate())), [r, i];
    }
    flowParseDeclareClass(s) {
      return this.next(), this.flowParseInterfaceish(s, !0), this.finishNode(s, "DeclareClass");
    }
    flowParseDeclareFunction(s) {
      this.next();
      let r = s.id = this.parseIdentifier(), i = this.startNode(), a = this.startNode();
      this.match(47) ? i.typeParameters = this.flowParseTypeParameterDeclaration() : i.typeParameters = null, this.expect(10);
      let o = this.flowParseFunctionTypeParams();
      return i.params = o.params, i.rest = o.rest, i.this = o._this, this.expect(11), [i.returnType, s.predicate] = this.flowParseTypeAndPredicateInitialiser(),
      a.typeAnnotation = this.finishNode(i, "FunctionTypeAnnotation"), r.typeAnnotation = this.finishNode(a, "TypeAnnotation"), this.resetEndLocation(
      r), this.semicolon(), this.scope.declareName(s.id.name, 2048, s.id.loc.start), this.finishNode(s, "DeclareFunction");
    }
    flowParseDeclare(s, r) {
      if (this.match(80))
        return this.flowParseDeclareClass(s);
      if (this.match(68))
        return this.flowParseDeclareFunction(s);
      if (this.match(74))
        return this.flowParseDeclareVariable(s);
      if (this.eatContextual(127))
        return this.match(16) ? this.flowParseDeclareModuleExports(s) : (r && this.raise(jt.NestedDeclareModule, this.state.lastTokStartLoc),
        this.flowParseDeclareModule(s));
      if (this.isContextual(130))
        return this.flowParseDeclareTypeAlias(s);
      if (this.isContextual(131))
        return this.flowParseDeclareOpaqueType(s);
      if (this.isContextual(129))
        return this.flowParseDeclareInterface(s);
      if (this.match(82))
        return this.flowParseDeclareExportDeclaration(s, r);
      this.unexpected();
    }
    flowParseDeclareVariable(s) {
      return this.next(), s.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(s.id.name, 5, s.id.loc.start), this.semicolon(),
      this.finishNode(s, "DeclareVariable");
    }
    flowParseDeclareModule(s) {
      this.scope.enter(0), this.match(134) ? s.id = super.parseExprAtom() : s.id = this.parseIdentifier();
      let r = s.body = this.startNode(), i = r.body = [];
      for (this.expect(5); !this.match(8); ) {
        let l = this.startNode();
        this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(jt.InvalidNonTypeImportInDeclareModule, this.
        state.lastTokStartLoc), super.parseImport(l)) : (this.expectContextual(125, jt.UnsupportedStatementInDeclareModule), l = this.flowParseDeclare(
        l, !0)), i.push(l);
      }
      this.scope.exit(), this.expect(8), this.finishNode(r, "BlockStatement");
      let a = null, o = !1;
      return i.forEach((l) => {
        Xfs(l) ? (a === "CommonJS" && this.raise(jt.AmbiguousDeclareModuleKind, l), a = "ES") : l.type === "DeclareModuleExports" && (o && this.
        raise(jt.DuplicateDeclareModuleExports, l), a === "ES" && this.raise(jt.AmbiguousDeclareModuleKind, l), a = "CommonJS", o = !0);
      }), s.kind = a || "CommonJS", this.finishNode(s, "DeclareModule");
    }
    flowParseDeclareExportDeclaration(s, r) {
      if (this.expect(82), this.eat(65))
        return this.match(68) || this.match(80) ? s.declaration = this.flowParseDeclare(this.startNode()) : (s.declaration = this.flowParseType(),
        this.semicolon()), s.default = !0, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !r) {
        let i = this.state.value;
        throw this.raise(jt.UnsupportedDeclareExportKind, this.state.startLoc, {
          unsupportedExportKind: i,
          suggestion: zfs[i]
        });
      }
      if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
        return s.declaration = this.flowParseDeclare(this.startNode()), s.default = !1, this.finishNode(s, "DeclareExportDeclaration");
      if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
        return s = this.parseExport(s, null), s.type === "ExportNamedDeclaration" && (s.type = "ExportDeclaration", s.default = !1, delete s.
        exportKind), s.type = "Declare" + s.type, s;
      this.unexpected();
    }
    flowParseDeclareModuleExports(s) {
      return this.next(), this.expectContextual(111), s.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(s,
      "DeclareModuleExports");
    }
    flowParseDeclareTypeAlias(s) {
      this.next();
      let r = this.flowParseTypeAlias(s);
      return r.type = "DeclareTypeAlias", r;
    }
    flowParseDeclareOpaqueType(s) {
      this.next();
      let r = this.flowParseOpaqueType(s, !0);
      return r.type = "DeclareOpaqueType", r;
    }
    flowParseDeclareInterface(s) {
      return this.next(), this.flowParseInterfaceish(s, !1), this.finishNode(s, "DeclareInterface");
    }
    flowParseInterfaceish(s, r) {
      if (s.id = this.flowParseRestrictedIdentifier(!r, !0), this.scope.declareName(s.id.name, r ? 17 : 8201, s.id.loc.start), this.match(47) ?
      s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (!r && this.eat(12));
      if (r) {
        if (s.implements = [], s.mixins = [], this.eatContextual(117))
          do
            s.mixins.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
        if (this.eatContextual(113))
          do
            s.implements.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
      }
      s.body = this.flowParseObjectType({
        allowStatic: r,
        allowExact: !1,
        allowSpread: !1,
        allowProto: r,
        allowInexact: !1
      });
    }
    flowParseInterfaceExtends() {
      let s = this.startNode();
      return s.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? s.typeParameters = this.flowParseTypeParameterInstantiation() :
      s.typeParameters = null, this.finishNode(s, "InterfaceExtends");
    }
    flowParseInterface(s) {
      return this.flowParseInterfaceish(s, !1), this.finishNode(s, "InterfaceDeclaration");
    }
    checkNotUnderscore(s) {
      s === "_" && this.raise(jt.UnexpectedReservedUnderscore, this.state.startLoc);
    }
    checkReservedType(s, r, i) {
      Yfs.has(s) && this.raise(i ? jt.AssignReservedType : jt.UnexpectedReservedType, r, {
        reservedType: s
      });
    }
    flowParseRestrictedIdentifier(s, r) {
      return this.checkReservedType(this.state.value, this.state.startLoc, r), this.parseIdentifier(s);
    }
    flowParseTypeAlias(s) {
      return s.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.start), this.match(47) ? s.
      typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.right = this.flowParseTypeInitialiser(29), this.
      semicolon(), this.finishNode(s, "TypeAlias");
    }
    flowParseOpaqueType(s, r) {
      return this.expectContextual(130), s.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(s.id.name, 8201, s.id.loc.
      start), this.match(47) ? s.typeParameters = this.flowParseTypeParameterDeclaration() : s.typeParameters = null, s.supertype = null, this.
      match(14) && (s.supertype = this.flowParseTypeInitialiser(14)), s.impltype = null, r || (s.impltype = this.flowParseTypeInitialiser(29)),
      this.semicolon(), this.finishNode(s, "OpaqueType");
    }
    flowParseTypeParameter(s = !1) {
      let r = this.state.startLoc, i = this.startNode(), a = this.flowParseVariance(), o = this.flowParseTypeAnnotatableIdentifier();
      return i.name = o.name, i.variance = a, i.bound = o.typeAnnotation, this.match(29) ? (this.eat(29), i.default = this.flowParseType()) :
      s && this.raise(jt.MissingTypeParamDefault, r), this.finishNode(i, "TypeParameter");
    }
    flowParseTypeParameterDeclaration() {
      let s = this.state.inType, r = this.startNode();
      r.params = [], this.state.inType = !0, this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = !1;
      do {
        let a = this.flowParseTypeParameter(i);
        r.params.push(a), a.default && (i = !0), this.match(48) || this.expect(12);
      } while (!this.match(48));
      return this.expect(48), this.state.inType = s, this.finishNode(r, "TypeParameterDeclaration");
    }
    flowInTopLevelContext(s) {
      if (this.curContext() !== ar.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    flowParseTypeParameterInstantiationInExpression() {
      if (this.reScan_lt() === 47)
        return this.flowParseTypeParameterInstantiation();
    }
    flowParseTypeParameterInstantiation() {
      let s = this.startNode(), r = this.state.inType;
      return this.state.inType = !0, s.params = [], this.flowInTopLevelContext(() => {
        this.expect(47);
        let i = this.state.noAnonFunctionType;
        for (this.state.noAnonFunctionType = !1; !this.match(48); )
          s.params.push(this.flowParseType()), this.match(48) || this.expect(12);
        this.state.noAnonFunctionType = i;
      }), this.state.inType = r, !this.state.inType && this.curContext() === ar.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(
      s, "TypeParameterInstantiation");
    }
    flowParseTypeParameterInstantiationCallOrNew() {
      if (this.reScan_lt() !== 47) return;
      let s = this.startNode(), r = this.state.inType;
      for (s.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
        s.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
      return this.expect(48), this.state.inType = r, this.finishNode(s, "TypeParameterInstantiation");
    }
    flowParseInterfaceType() {
      let s = this.startNode();
      if (this.expectContextual(129), s.extends = [], this.eat(81))
        do
          s.extends.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      return s.body = this.flowParseObjectType({
        allowStatic: !1,
        allowExact: !1,
        allowSpread: !1,
        allowProto: !1,
        allowInexact: !1
      }), this.finishNode(s, "InterfaceTypeAnnotation");
    }
    flowParseObjectPropertyKey() {
      return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(!0);
    }
    flowParseObjectTypeIndexer(s, r, i) {
      return s.static = r, this.lookahead().type === 14 ? (s.id = this.flowParseObjectPropertyKey(), s.key = this.flowParseTypeInitialiser()) :
      (s.id = null, s.key = this.flowParseType()), this.expect(3), s.value = this.flowParseTypeInitialiser(), s.variance = i, this.finishNode(
      s, "ObjectTypeIndexer");
    }
    flowParseObjectTypeInternalSlot(s, r) {
      return s.static = r, s.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (s.method =
      !0, s.optional = !1, s.value = this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start))) : (s.method = !1, this.eat(17) && (s.
      optional = !0), s.value = this.flowParseTypeInitialiser()), this.finishNode(s, "ObjectTypeInternalSlot");
    }
    flowParseObjectTypeMethodish(s) {
      for (s.params = [], s.rest = null, s.typeParameters = null, s.this = null, this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()),
      this.expect(10), this.match(78) && (s.this = this.flowParseFunctionTypeParam(!0), s.this.name = null, this.match(11) || this.expect(12)); !this.
      match(11) && !this.match(21); )
        s.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (s.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), s.returnType = this.flowParseTypeInitialiser(),
      this.finishNode(s, "FunctionTypeAnnotation");
    }
    flowParseObjectTypeCallProperty(s, r) {
      let i = this.startNode();
      return s.static = r, s.value = this.flowParseObjectTypeMethodish(i), this.finishNode(s, "ObjectTypeCallProperty");
    }
    flowParseObjectType({
      allowStatic: s,
      allowExact: r,
      allowSpread: i,
      allowProto: a,
      allowInexact: o
    }) {
      let l = this.state.inType;
      this.state.inType = !0;
      let u = this.startNode();
      u.callProperties = [], u.properties = [], u.indexers = [], u.internalSlots = [];
      let c, p, h = !1;
      for (r && this.match(6) ? (this.expect(6), c = 9, p = !0) : (this.expect(5), c = 8, p = !1), u.exact = p; !this.match(c); ) {
        let d = !1, m = null, y = null, T = this.startNode();
        if (a && this.isContextual(118)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), m = this.state.startLoc, s = !1);
        }
        if (s && this.isContextual(106)) {
          let E = this.lookahead();
          E.type !== 14 && E.type !== 17 && (this.next(), d = !0);
        }
        let b = this.flowParseVariance();
        if (this.eat(0))
          m != null && this.unexpected(m), this.eat(0) ? (b && this.unexpected(b.loc.start), u.internalSlots.push(this.flowParseObjectTypeInternalSlot(
          T, d))) : u.indexers.push(this.flowParseObjectTypeIndexer(T, d, b));
        else if (this.match(10) || this.match(47))
          m != null && this.unexpected(m), b && this.unexpected(b.loc.start), u.callProperties.push(this.flowParseObjectTypeCallProperty(T, d));
        else {
          let E = "init";
          if (this.isContextual(99) || this.isContextual(104)) {
            let W = this.lookahead();
            Mfe(W.type) && (E = this.state.value, this.next());
          }
          let V = this.flowParseObjectTypeProperty(T, d, m, b, E, i, o ?? !p);
          V === null ? (h = !0, y = this.state.lastTokStartLoc) : u.properties.push(V);
        }
        this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(jt.UnexpectedExplicitInexactInObject, y);
      }
      this.expect(c), i && (u.inexact = h);
      let f = this.finishNode(u, "ObjectTypeAnnotation");
      return this.state.inType = l, f;
    }
    flowParseObjectTypeProperty(s, r, i, a, o, l, u) {
      if (this.eat(21))
        return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (l ? u || this.raise(jt.InexactInsideExact, this.state.lastTokStartLoc) :
        this.raise(jt.InexactInsideNonObject, this.state.lastTokStartLoc), a && this.raise(jt.InexactVariance, a), null) : (l || this.raise(
        jt.UnexpectedSpreadType, this.state.lastTokStartLoc), i != null && this.unexpected(i), a && this.raise(jt.SpreadVariance, a), s.argument =
        this.flowParseType(), this.finishNode(s, "ObjectTypeSpreadProperty"));
      {
        s.key = this.flowParseObjectPropertyKey(), s.static = r, s.proto = i != null, s.kind = o;
        let c = !1;
        return this.match(47) || this.match(10) ? (s.method = !0, i != null && this.unexpected(i), a && this.unexpected(a.loc.start), s.value =
        this.flowParseObjectTypeMethodish(this.startNodeAt(s.loc.start)), (o === "get" || o === "set") && this.flowCheckGetterSetterParams(s),
        !l && s.key.name === "constructor" && s.value.this && this.raise(jt.ThisParamBannedInConstructor, s.value.this)) : (o !== "init" && this.
        unexpected(), s.method = !1, this.eat(17) && (c = !0), s.value = this.flowParseTypeInitialiser(), s.variance = a), s.optional = c, this.
        finishNode(s, "ObjectTypeProperty");
      }
    }
    flowCheckGetterSetterParams(s) {
      let r = s.kind === "get" ? 0 : 1, i = s.value.params.length + (s.value.rest ? 1 : 0);
      s.value.this && this.raise(s.kind === "get" ? jt.GetterMayNotHaveThisParam : jt.SetterMayNotHaveThisParam, s.value.this), i !== r && this.
      raise(s.kind === "get" ? se.BadGetterArity : se.BadSetterArity, s), s.kind === "set" && s.value.rest && this.raise(se.BadSetterRestParameter,
      s);
    }
    flowObjectTypeSemicolon() {
      !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
    }
    flowParseQualifiedTypeIdentifier(s, r) {
      var i;
      (i = s) != null || (s = this.state.startLoc);
      let a = r || this.flowParseRestrictedIdentifier(!0);
      for (; this.eat(16); ) {
        let o = this.startNodeAt(s);
        o.qualification = a, o.id = this.flowParseRestrictedIdentifier(!0), a = this.finishNode(o, "QualifiedTypeIdentifier");
      }
      return a;
    }
    flowParseGenericType(s, r) {
      let i = this.startNodeAt(s);
      return i.typeParameters = null, i.id = this.flowParseQualifiedTypeIdentifier(s, r), this.match(47) && (i.typeParameters = this.flowParseTypeParameterInstantiation()),
      this.finishNode(i, "GenericTypeAnnotation");
    }
    flowParseTypeofType() {
      let s = this.startNode();
      return this.expect(87), s.argument = this.flowParsePrimaryType(), this.finishNode(s, "TypeofTypeAnnotation");
    }
    flowParseTupleType() {
      let s = this.startNode();
      for (s.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (s.types.push(this.flowParseType()), !this.match(
      3)); )
        this.expect(12);
      return this.expect(3), this.finishNode(s, "TupleTypeAnnotation");
    }
    flowParseFunctionTypeParam(s) {
      let r = null, i = !1, a = null, o = this.startNode(), l = this.lookahead(), u = this.state.type === 78;
      return l.type === 14 || l.type === 17 ? (u && !s && this.raise(jt.ThisParamMustBeFirst, o), r = this.parseIdentifier(u), this.eat(17) &&
      (i = !0, u && this.raise(jt.ThisParamMayNotBeOptional, o)), a = this.flowParseTypeInitialiser()) : a = this.flowParseType(), o.name = r,
      o.optional = i, o.typeAnnotation = a, this.finishNode(o, "FunctionTypeParam");
    }
    reinterpretTypeAsFunctionTypeParam(s) {
      let r = this.startNodeAt(s.loc.start);
      return r.name = null, r.optional = !1, r.typeAnnotation = s, this.finishNode(r, "FunctionTypeParam");
    }
    flowParseFunctionTypeParams(s = []) {
      let r = null, i = null;
      for (this.match(78) && (i = this.flowParseFunctionTypeParam(!0), i.name = null, this.match(11) || this.expect(12)); !this.match(11) &&
      !this.match(21); )
        s.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (r = this.flowParseFunctionTypeParam(!1)), {
        params: s,
        rest: r,
        _this: i
      };
    }
    flowIdentToTypeAnnotation(s, r, i) {
      switch (i.name) {
        case "any":
          return this.finishNode(r, "AnyTypeAnnotation");
        case "bool":
        case "boolean":
          return this.finishNode(r, "BooleanTypeAnnotation");
        case "mixed":
          return this.finishNode(r, "MixedTypeAnnotation");
        case "empty":
          return this.finishNode(r, "EmptyTypeAnnotation");
        case "number":
          return this.finishNode(r, "NumberTypeAnnotation");
        case "string":
          return this.finishNode(r, "StringTypeAnnotation");
        case "symbol":
          return this.finishNode(r, "SymbolTypeAnnotation");
        default:
          return this.checkNotUnderscore(i.name), this.flowParseGenericType(s, i);
      }
    }
    flowParsePrimaryType() {
      let s = this.state.startLoc, r = this.startNode(), i, a, o = !1, l = 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, a = this.flowParseTupleType(), this.state.noAnonFunctionType = l, a;
        case 47: {
          let u = this.startNode();
          return u.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), i = this.flowParseFunctionTypeParams(), u.params =
          i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), this.finishNode(
          u, "FunctionTypeAnnotation");
        }
        case 10: {
          let u = this.startNode();
          if (this.next(), !this.match(11) && !this.match(21))
            if (or(this.state.type) || this.match(78)) {
              let c = this.lookahead().type;
              o = c !== 17 && c !== 14;
            } else
              o = !0;
          if (o) {
            if (this.state.noAnonFunctionType = !1, a = this.flowParseType(), this.state.noAnonFunctionType = l, this.state.noAnonFunctionType ||
            !(this.match(12) || this.match(11) && this.lookahead().type === 19))
              return this.expect(11), a;
            this.eat(12);
          }
          return a ? i = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]) : i = this.flowParseFunctionTypeParams(),
          u.params = i.params, u.rest = i.rest, u.this = i._this, this.expect(11), this.expect(19), u.returnType = this.flowParseType(), u.typeParameters =
          null, this.finishNode(u, "FunctionTypeAnnotation");
        }
        case 134:
          return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
        case 85:
        case 86:
          return r.value = this.match(85), this.next(), this.finishNode(r, "BooleanLiteralTypeAnnotation");
        case 53:
          if (this.state.value === "-") {
            if (this.next(), this.match(135))
              return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", r);
            if (this.match(136))
              return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", r);
            throw this.raise(jt.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(r, "VoidTypeAnnotation");
        case 84:
          return this.next(), this.finishNode(r, "NullLiteralTypeAnnotation");
        case 78:
          return this.next(), this.finishNode(r, "ThisTypeAnnotation");
        case 55:
          return this.next(), this.finishNode(r, "ExistsTypeAnnotation");
        case 87:
          return this.flowParseTypeofType();
        default:
          if (TR(this.state.type)) {
            let u = Vp(this.state.type);
            return this.next(), super.createIdentifier(r, u);
          } else if (or(this.state.type))
            return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(s, r, this.parseIdentifier());
      }
      this.unexpected();
    }
    flowParsePostfixType() {
      let s = this.state.startLoc, r = this.flowParsePrimaryType(), i = !1;
      for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
        let a = this.startNodeAt(s), o = this.eat(18);
        i = i || o, this.expect(0), !o && this.match(3) ? (a.elementType = r, this.next(), r = this.finishNode(a, "ArrayTypeAnnotation")) : (a.
        objectType = r, a.indexType = this.flowParseType(), this.expect(3), i ? (a.optional = o, r = this.finishNode(a, "OptionalIndexedAcce\
ssType")) : r = this.finishNode(a, "IndexedAccessType"));
      }
      return r;
    }
    flowParsePrefixType() {
      let s = this.startNode();
      return this.eat(17) ? (s.typeAnnotation = this.flowParsePrefixType(), this.finishNode(s, "NullableTypeAnnotation")) : this.flowParsePostfixType();
    }
    flowParseAnonFunctionWithoutParens() {
      let s = this.flowParsePrefixType();
      if (!this.state.noAnonFunctionType && this.eat(19)) {
        let r = this.startNodeAt(s.loc.start);
        return r.params = [this.reinterpretTypeAsFunctionTypeParam(s)], r.rest = null, r.this = null, r.returnType = this.flowParseType(), r.
        typeParameters = null, this.finishNode(r, "FunctionTypeAnnotation");
      }
      return s;
    }
    flowParseIntersectionType() {
      let s = this.startNode();
      this.eat(45);
      let r = this.flowParseAnonFunctionWithoutParens();
      for (s.types = [r]; this.eat(45); )
        s.types.push(this.flowParseAnonFunctionWithoutParens());
      return s.types.length === 1 ? r : this.finishNode(s, "IntersectionTypeAnnotation");
    }
    flowParseUnionType() {
      let s = this.startNode();
      this.eat(43);
      let r = this.flowParseIntersectionType();
      for (s.types = [r]; this.eat(43); )
        s.types.push(this.flowParseIntersectionType());
      return s.types.length === 1 ? r : this.finishNode(s, "UnionTypeAnnotation");
    }
    flowParseType() {
      let s = this.state.inType;
      this.state.inType = !0;
      let r = this.flowParseUnionType();
      return this.state.inType = s, r;
    }
    flowParseTypeOrImplicitInstantiation() {
      if (this.state.type === 132 && this.state.value === "_") {
        let s = this.state.startLoc, r = this.parseIdentifier();
        return this.flowParseGenericType(s, r);
      } else
        return this.flowParseType();
    }
    flowParseTypeAnnotation() {
      let s = this.startNode();
      return s.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(s, "TypeAnnotation");
    }
    flowParseTypeAnnotatableIdentifier(s) {
      let r = s ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
      return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r)), r;
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    flowParseVariance() {
      let s = null;
      return this.match(53) ? (s = this.startNode(), this.state.value === "+" ? s.kind = "plus" : s.kind = "minus", this.next(), this.finishNode(
      s, "Variance")) : s;
    }
    parseFunctionBody(s, r, i = !1) {
      if (r) {
        this.forwardNoArrowParamsConversionAt(s, () => super.parseFunctionBody(s, !0, i));
        return;
      }
      super.parseFunctionBody(s, !1, i);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      if (this.match(14)) {
        let a = this.startNode();
        [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.returnType = a.typeAnnotation ? this.finishNode(a, "\
TypeAnnotation") : null;
      }
      return super.parseFunctionBodyAndFinish(s, r, i);
    }
    parseStatementLike(s) {
      if (this.state.strict && this.isContextual(129)) {
        let i = this.lookahead();
        if (Uo(i.type)) {
          let a = this.startNode();
          return this.next(), this.flowParseInterface(a);
        }
      } else if (this.isContextual(126)) {
        let i = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(i);
      }
      let r = super.parseStatementLike(s);
      return this.flowPragma === void 0 && !this.isValidDirective(r) && (this.flowPragma = null), r;
    }
    parseExpressionStatement(s, r, i) {
      if (r.type === "Identifier") {
        if (r.name === "declare") {
          if (this.match(80) || or(this.state.type) || this.match(68) || this.match(74) || this.match(82))
            return this.flowParseDeclare(s);
        } else if (or(this.state.type)) {
          if (r.name === "interface")
            return this.flowParseInterface(s);
          if (r.name === "type")
            return this.flowParseTypeAlias(s);
          if (r.name === "opaque")
            return this.flowParseOpaqueType(s, !1);
        }
      }
      return super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      let {
        type: s
      } = this.state;
      return s === 126 || vfe(s) ? !this.state.containsEsc : super.shouldParseExportDeclaration();
    }
    isExportDefaultSpecifier() {
      let {
        type: s
      } = this.state;
      return s === 126 || vfe(s) ? this.state.containsEsc : super.isExportDefaultSpecifier();
    }
    parseExportDefaultExpression() {
      if (this.isContextual(126)) {
        let s = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(s);
      }
      return super.parseExportDefaultExpression();
    }
    parseConditional(s, r, i) {
      if (!this.match(17)) return s;
      if (this.state.maybeInArrowParameters) {
        let f = this.lookaheadCharCode();
        if (f === 44 || f === 61 || f === 58 || f === 41)
          return this.setOptionalParametersError(i), s;
      }
      this.expect(17);
      let a = this.state.clone(), o = this.state.noArrowAt, l = this.startNodeAt(r), {
        consequent: u,
        failed: c
      } = this.tryParseConditionalConsequent(), [p, h] = this.getArrowLikeExpressions(u);
      if (c || h.length > 0) {
        let f = [...o];
        if (h.length > 0) {
          this.state = a, this.state.noArrowAt = f;
          for (let d = 0; d < h.length; d++)
            f.push(h[d].start);
          ({
            consequent: u,
            failed: c
          } = this.tryParseConditionalConsequent()), [p, h] = this.getArrowLikeExpressions(u);
        }
        c && p.length > 1 && this.raise(jt.AmbiguousConditionalArrow, a.startLoc), c && p.length === 1 && (this.state = a, f.push(p[0].start),
        this.state.noArrowAt = f, {
          consequent: u,
          failed: c
        } = this.tryParseConditionalConsequent());
      }
      return this.getArrowLikeExpressions(u, !0), this.state.noArrowAt = o, this.expect(14), l.test = s, l.consequent = u, l.alternate = this.
      forwardNoArrowParamsConversionAt(l, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(l, "ConditionalExpression");
    }
    tryParseConditionalConsequent() {
      this.state.noArrowParamsConversionAt.push(this.state.start);
      let s = this.parseMaybeAssignAllowIn(), r = !this.match(14);
      return this.state.noArrowParamsConversionAt.pop(), {
        consequent: s,
        failed: r
      };
    }
    getArrowLikeExpressions(s, r) {
      let i = [s], a = [];
      for (; i.length !== 0; ) {
        let o = i.pop();
        o.type === "ArrowFunctionExpression" && o.body.type !== "BlockStatement" ? (o.typeParameters || !o.returnType ? this.finishArrowValidation(
        o) : a.push(o), i.push(o.body)) : o.type === "ConditionalExpression" && (i.push(o.consequent), i.push(o.alternate));
      }
      return r ? (a.forEach((o) => this.finishArrowValidation(o)), [a, []]) : Gfs(a, (o) => o.params.every((l) => this.isAssignable(l, !0)));
    }
    finishArrowValidation(s) {
      var r;
      this.toAssignableList(s.params, (r = s.extra) == null ? void 0 : r.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(s, !1,
      !0), this.scope.exit();
    }
    forwardNoArrowParamsConversionAt(s, r) {
      let i;
      return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? (this.state.noArrowParamsConversionAt.push(this.
      state.start), i = r(), this.state.noArrowParamsConversionAt.pop()) : i = r(), i;
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = i, a.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(a, "TypeCastExpression");
      }
      return i;
    }
    assertModuleNodeAllowed(s) {
      s.type === "ImportDeclaration" && (s.importKind === "type" || s.importKind === "typeof") || s.type === "ExportNamedDeclaration" && s.exportKind ===
      "type" || s.type === "ExportAllDeclaration" && s.exportKind === "type" || super.assertModuleNodeAllowed(s);
    }
    parseExportDeclaration(s) {
      if (this.isContextual(130)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.match(5) ? (s.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(s), null) : this.flowParseTypeAlias(
        r);
      } else if (this.isContextual(131)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseOpaqueType(r, !1);
      } else if (this.isContextual(129)) {
        s.exportKind = "type";
        let r = this.startNode();
        return this.next(), this.flowParseInterface(r);
      } else if (this.isContextual(126)) {
        s.exportKind = "value";
        let r = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(r);
      } else
        return super.parseExportDeclaration(s);
    }
    eatExportStar(s) {
      return super.eatExportStar(s) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (s.exportKind = "type", this.next(), this.
      next(), !0) : !1;
    }
    maybeParseExportNamespaceSpecifier(s) {
      let {
        startLoc: r
      } = this.state, i = super.maybeParseExportNamespaceSpecifier(s);
      return i && s.exportKind === "type" && this.unexpected(r), i;
    }
    parseClassId(s, r, i) {
      super.parseClassId(s, r, i), this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration());
    }
    parseClassMember(s, r, i) {
      let {
        startLoc: a
      } = this.state;
      if (this.isContextual(125)) {
        if (super.parseClassMemberFromModifier(s, r))
          return;
        r.declare = !0;
      }
      super.parseClassMember(s, r, i), r.declare && (r.type !== "ClassProperty" && r.type !== "ClassPrivateProperty" && r.type !== "Property\
Definition" ? this.raise(jt.DeclareClassElement, a) : r.value && this.raise(jt.DeclareClassFieldInitializer, r.value));
    }
    isIterator(s) {
      return s === "iterator" || s === "asyncIterator";
    }
    readIterator() {
      let s = super.readWord1(), r = "@@" + s;
      (!this.isIterator(s) || !this.state.inType) && this.raise(se.InvalidIdentifier, this.state.curPosition(), {
        identifierName: r
      }), this.finishToken(132, r);
    }
    getTokenFromCode(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      s === 123 && r === 124 ? this.finishOp(6, 2) : this.state.inType && (s === 62 || s === 60) ? this.finishOp(s === 62 ? 48 : 47, 1) : this.
      state.inType && s === 63 ? r === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : _fs(s, r, this.input.charCodeAt(this.state.pos + 2)) ?
      (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(s);
    }
    isAssignable(s, r) {
      return s.type === "TypeCastExpression" ? this.isAssignable(s.expression, r) : super.isAssignable(s, r);
    }
    toAssignable(s, r = !1) {
      !r && s.type === "AssignmentExpression" && s.left.type === "TypeCastExpression" && (s.left = this.typeCastToParameter(s.left)), super.
      toAssignable(s, r);
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    toReferencedList(s, r) {
      for (let a = 0; a < s.length; a++) {
        var i;
        let o = s[a];
        o && o.type === "TypeCastExpression" && !((i = o.extra) != null && i.parenthesized) && (s.length > 1 || !r) && this.raise(jt.TypeCastInPattern,
        o.typeAnnotation);
      }
      return s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return r && !this.state.maybeInArrowParameters && this.toReferencedList(o.elements), o;
    }
    isValidLVal(s, r, i) {
      return s === "TypeCastExpression" || super.isValidLVal(s, r, i);
    }
    parseClassProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(14) || super.isClassProperty();
    }
    isNonstaticConstructor(s) {
      return !this.match(14) && super.isNonstaticConstructor(s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      if (r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassMethod(s, r, i, a, o, l), r.params && o) {
        let u = r.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(jt.ThisParamBannedInConstructor, r);
      } else if (r.type === "MethodDefinition" && o && r.value.params) {
        let u = r.value.params;
        u.length > 0 && this.isThisParam(u[0]) && this.raise(jt.ThisParamBannedInConstructor, r);
      }
    }
    pushClassPrivateMethod(s, r, i, a) {
      r.variance && this.unexpected(r.variance.loc.start), delete r.variance, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()),
      super.pushClassPrivateMethod(s, r, i, a);
    }
    parseClassSuper(s) {
      if (super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression()),
      this.isContextual(113)) {
        this.next();
        let r = s.implements = [];
        do {
          let i = this.startNode();
          i.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? i.typeParameters = this.flowParseTypeParameterInstantiation() : i.
          typeParameters = null, r.push(this.finishNode(i, "ClassImplements"));
        } while (this.eat(12));
      }
    }
    checkGetterSetterParams(s) {
      super.checkGetterSetterParams(s);
      let r = this.getObjectOrClassMethodParams(s);
      if (r.length > 0) {
        let i = r[0];
        this.isThisParam(i) && s.kind === "get" ? this.raise(jt.GetterMayNotHaveThisParam, i) : this.isThisParam(i) && this.raise(jt.SetterMayNotHaveThisParam,
        i);
      }
    }
    parsePropertyNamePrefixOperator(s) {
      s.variance = this.flowParseVariance();
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      s.variance && this.unexpected(s.variance.loc.start), delete s.variance;
      let c;
      this.match(47) && !l && (c = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
      let p = super.parseObjPropValue(s, r, i, a, o, l, u);
      return c && ((p.value || p).typeParameters = c), p;
    }
    parseFunctionParamType(s) {
      return this.eat(17) && (s.type !== "Identifier" && this.raise(jt.PatternIsOptional, s), this.isThisParam(s) && this.raise(jt.ThisParamMayNotBeOptional,
      s), s.optional = !0), this.match(14) ? s.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(s) && this.raise(jt.ThisParamAnnotationRequired,
      s), this.match(29) && this.isThisParam(s) && this.raise(jt.ThisParamNoDefault, s), this.resetEndLocation(s), s;
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(jt.TypeBeforeInitializer,
      i.typeAnnotation), i;
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(jt.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    parseImportSpecifierLocal(s, r, i) {
      r.local = Nfe(s) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), s.specifiers.push(this.finishImportSpecifier(r,
      i));
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        if (!s) return !0;
        let r = this.lookaheadCharCode();
        return r === 123 || r === 42;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      if (super.applyImportPhase(s, r, i, a), r) {
        if (!i && this.match(65))
          return;
        s.exportKind = i === "type" ? i : "value";
      } else
        i === "type" && this.match(55) && this.unexpected(), s.importKind = i === "type" || i === "typeof" ? i : "value";
    }
    parseImportSpecifier(s, r, i, a, o) {
      let l = s.imported, u = null;
      l.type === "Identifier" && (l.name === "type" ? u = "type" : l.name === "typeof" && (u = "typeof"));
      let c = !1;
      if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
        let h = this.parseIdentifier(!0);
        u !== null && !Uo(this.state.type) ? (s.imported = h, s.importKind = u, s.local = fc(h)) : (s.imported = l, s.importKind = null, s.local =
        this.parseIdentifier());
      } else {
        if (u !== null && Uo(this.state.type))
          s.imported = this.parseIdentifier(!0), s.importKind = u;
        else {
          if (r)
            throw this.raise(se.ImportBindingIsString, s, {
              importName: l.value
            });
          s.imported = l, s.importKind = null;
        }
        this.eatContextual(93) ? s.local = this.parseIdentifier() : (c = !0, s.local = fc(s.imported));
      }
      let p = Nfe(s);
      return i && p && this.raise(jt.ImportTypeShorthandOnlyInPureImport, s), (i || p) && this.checkReservedType(s.local.name, s.local.loc.start,
      !0), c && !i && !p && this.checkReservedWord(s.local.name, s.loc.start, !0, !0), this.finishImportSpecifier(s, "ImportSpecifier");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 78:
          return this.parseIdentifier(!0);
        default:
          return super.parseBindingAtom();
      }
    }
    parseFunctionParams(s, r) {
      let i = s.kind;
      i !== "get" && i !== "set" && this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(
      s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), this.match(14) && (s.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      if (this.match(14)) {
        let i = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0, s.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = i;
      }
      return super.parseAsyncArrowFromCallExpression(s, r);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    parseMaybeAssign(s, r) {
      var i;
      let a = null, o;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (a = this.state.clone(), o = this.tryParse(() => super.parseMaybeAssign(s, r), a), !o.error) return o.node;
        let {
          context: c
        } = this.state, p = c[c.length - 1];
        (p === ar.j_oTag || p === ar.j_expr) && c.pop();
      }
      if ((i = o) != null && i.error || this.match(47)) {
        var l, u;
        a = a || this.state.clone();
        let c, p = this.tryParse((f) => {
          var d;
          c = this.flowParseTypeParameterDeclaration();
          let m = this.forwardNoArrowParamsConversionAt(c, () => {
            let T = super.parseMaybeAssign(s, r);
            return this.resetStartLocationFromNode(T, c), T;
          });
          (d = m.extra) != null && d.parenthesized && f();
          let y = this.maybeUnwrapTypeCastExpression(m);
          return y.type !== "ArrowFunctionExpression" && f(), y.typeParameters = c, this.resetStartLocationFromNode(y, c), m;
        }, a), h = null;
        if (p.node && this.maybeUnwrapTypeCastExpression(p.node).type === "ArrowFunctionExpression") {
          if (!p.error && !p.aborted)
            return p.node.async && this.raise(jt.UnexpectedTypeParameterBeforeAsyncArrowFunction, c), p.node;
          h = p.node;
        }
        if ((l = o) != null && l.node)
          return this.state = o.failState, o.node;
        if (h)
          return this.state = p.failState, h;
        throw (u = o) != null && u.thrown ? o.error : p.thrown ? p.error : this.raise(jt.UnexpectedTokenAfterTypeParameter, c);
      }
      return super.parseMaybeAssign(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse(() => {
          let i = this.state.noAnonFunctionType;
          this.state.noAnonFunctionType = !0;
          let a = this.startNode();
          return [a.typeAnnotation, s.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = i, this.canInsertSemicolon() &&
          this.unexpected(), this.match(19) || this.unexpected(), a;
        });
        if (r.thrown) return null;
        r.error && (this.state = r.failState), s.returnType = r.node.typeAnnotation ? this.finishNode(r.node, "TypeAnnotation") : null;
      }
      return super.parseArrow(s);
    }
    shouldParseArrow(s) {
      return this.match(14) || super.shouldParseArrow(s);
    }
    setArrowFunctionParameters(s, r) {
      this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)) ? s.params = r : super.setArrowFunctionParameters(s, r);
    }
    checkParams(s, r, i, a = !0) {
      if (!(i && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(s.start)))) {
        for (let o = 0; o < s.params.length; o++)
          this.isThisParam(s.params[o]) && o > 0 && this.raise(jt.ThisParamMustBeFirst, s.params[o]);
        super.checkParams(s, r, i, a);
      }
    }
    parseParenAndDistinguishExpression(s) {
      return super.parseParenAndDistinguishExpression(s && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)));
    }
    parseSubscripts(s, r, i) {
      if (s.type === "Identifier" && s.name === "async" && this.state.noArrowAt.includes(r.index)) {
        this.next();
        let a = this.startNodeAt(r);
        a.callee = s, a.arguments = super.parseCallExpressionArguments(11), s = this.finishNode(a, "CallExpression");
      } else if (s.type === "Identifier" && s.name === "async" && this.match(47)) {
        let a = this.state.clone(), o = this.tryParse((u) => this.parseAsyncArrowWithTypeParameters(r) || u(), a);
        if (!o.error && !o.aborted) return o.node;
        let l = this.tryParse(() => super.parseSubscripts(s, r, i), a);
        if (l.node && !l.error) return l.node;
        if (o.node)
          return this.state = o.failState, o.node;
        if (l.node)
          return this.state = l.failState, l.node;
        throw o.error || l.error;
      }
      return super.parseSubscripts(s, r, i);
    }
    parseSubscript(s, r, i, a) {
      if (this.match(18) && this.isLookaheadToken_lt()) {
        if (a.optionalChainMember = !0, i)
          return a.stop = !0, s;
        this.next();
        let o = this.startNodeAt(r);
        return o.callee = s, o.typeArguments = this.flowParseTypeParameterInstantiationInExpression(), this.expect(10), o.arguments = this.parseCallExpressionArguments(
        11), o.optional = !0, this.finishCallExpression(o, !0);
      } else if (!i && this.shouldParseTypes() && (this.match(47) || this.match(51))) {
        let o = this.startNodeAt(r);
        o.callee = s;
        let l = this.tryParse(() => (o.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), o.arguments = super.
        parseCallExpressionArguments(11), a.optionalChainMember && (o.optional = !1), this.finishCallExpression(o, a.optionalChainMember)));
        if (l.node)
          return l.error && (this.state = l.failState), l.node;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      super.parseNewCallee(s);
      let r = null;
      this.shouldParseTypes() && this.match(47) && (r = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), s.typeArguments =
      r;
    }
    parseAsyncArrowWithTypeParameters(s) {
      let r = this.startNodeAt(s);
      if (this.parseFunctionParams(r, !1), !!this.parseArrow(r))
        return super.parseArrowExpression(r, void 0, !0);
    }
    readToken_mult_modulo(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 42 && r === 47 && this.state.hasFlowComment) {
        this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
        return;
      }
      super.readToken_mult_modulo(s);
    }
    readToken_pipe_amp(s) {
      let r = this.input.charCodeAt(this.state.pos + 1);
      if (s === 124 && r === 125) {
        this.finishOp(9, 2);
        return;
      }
      super.readToken_pipe_amp(s);
    }
    parseTopLevel(s, r) {
      let i = super.parseTopLevel(s, r);
      return this.state.hasFlowComment && this.raise(jt.UnterminatedFlowComment, this.state.curPosition()), i;
    }
    skipBlockComment() {
      if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
        if (this.state.hasFlowComment)
          throw this.raise(jt.NestedFlowComment, this.state.startLoc);
        this.hasFlowCommentCompletion();
        let s = this.skipFlowComment();
        s && (this.state.pos += s, this.state.hasFlowComment = !0);
        return;
      }
      return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
    }
    skipFlowComment() {
      let {
        pos: s
      } = this.state, r = 2;
      for (; [32, 9].includes(this.input.charCodeAt(s + r)); )
        r++;
      let i = this.input.charCodeAt(r + s), a = this.input.charCodeAt(r + s + 1);
      return i === 58 && a === 58 ? r + 2 : this.input.slice(r + s, r + s + 12) === "flow-include" ? r + 12 : i === 58 && a !== 58 ? r : !1;
    }
    hasFlowCommentCompletion() {
      if (this.input.indexOf("*/", this.state.pos) === -1)
        throw this.raise(se.UnterminatedComment, this.state.curPosition());
    }
    flowEnumErrorBooleanMemberNotInitialized(s, {
      enumName: r,
      memberName: i
    }) {
      this.raise(jt.EnumBooleanMemberNotInitialized, s, {
        memberName: i,
        enumName: r
      });
    }
    flowEnumErrorInvalidMemberInitializer(s, r) {
      return this.raise(r.explicitType ? r.explicitType === "symbol" ? jt.EnumInvalidMemberInitializerSymbolType : jt.EnumInvalidMemberInitializerPrimaryType :
      jt.EnumInvalidMemberInitializerUnknownType, s, r);
    }
    flowEnumErrorNumberMemberNotInitialized(s, r) {
      this.raise(jt.EnumNumberMemberNotInitialized, s, r);
    }
    flowEnumErrorStringMemberInconsistentlyInitialized(s, r) {
      this.raise(jt.EnumStringMemberInconsistentlyInitialized, s, r);
    }
    flowEnumMemberInit() {
      let s = this.state.startLoc, r = /* @__PURE__ */ n(() => this.match(12) || this.match(8), "endOfInit");
      switch (this.state.type) {
        case 135: {
          let i = this.parseNumericLiteral(this.state.value);
          return r() ? {
            type: "number",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 134: {
          let i = this.parseStringLiteral(this.state.value);
          return r() ? {
            type: "string",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        case 85:
        case 86: {
          let i = this.parseBooleanLiteral(this.match(85));
          return r() ? {
            type: "boolean",
            loc: i.loc.start,
            value: i
          } : {
            type: "invalid",
            loc: s
          };
        }
        default:
          return {
            type: "invalid",
            loc: s
          };
      }
    }
    flowEnumMemberRaw() {
      let s = this.state.startLoc, r = this.parseIdentifier(!0), i = this.eat(29) ? this.flowEnumMemberInit() : {
        type: "none",
        loc: s
      };
      return {
        id: r,
        init: i
      };
    }
    flowEnumCheckExplicitTypeMismatch(s, r, i) {
      let {
        explicitType: a
      } = r;
      a !== null && a !== i && this.flowEnumErrorInvalidMemberInitializer(s, r);
    }
    flowEnumMembers({
      enumName: s,
      explicitType: r
    }) {
      let i = /* @__PURE__ */ new Set(), a = {
        booleanMembers: [],
        numberMembers: [],
        stringMembers: [],
        defaultedMembers: []
      }, o = !1;
      for (; !this.match(8); ) {
        if (this.eat(21)) {
          o = !0;
          break;
        }
        let l = this.startNode(), {
          id: u,
          init: c
        } = this.flowEnumMemberRaw(), p = u.name;
        if (p === "")
          continue;
        /^[a-z]/.test(p) && this.raise(jt.EnumInvalidMemberName, u, {
          memberName: p,
          suggestion: p[0].toUpperCase() + p.slice(1),
          enumName: s
        }), i.has(p) && this.raise(jt.EnumDuplicateMemberName, u, {
          memberName: p,
          enumName: s
        }), i.add(p);
        let h = {
          enumName: s,
          explicitType: r,
          memberName: p
        };
        switch (l.id = u, c.type) {
          case "boolean": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "boolean"), l.init = c.value, a.booleanMembers.push(this.finishNode(l, "EnumBoo\
leanMember"));
            break;
          }
          case "number": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "number"), l.init = c.value, a.numberMembers.push(this.finishNode(l, "EnumNumbe\
rMember"));
            break;
          }
          case "string": {
            this.flowEnumCheckExplicitTypeMismatch(c.loc, h, "string"), l.init = c.value, a.stringMembers.push(this.finishNode(l, "EnumStrin\
gMember"));
            break;
          }
          case "invalid":
            throw this.flowEnumErrorInvalidMemberInitializer(c.loc, h);
          case "none":
            switch (r) {
              case "boolean":
                this.flowEnumErrorBooleanMemberNotInitialized(c.loc, h);
                break;
              case "number":
                this.flowEnumErrorNumberMemberNotInitialized(c.loc, h);
                break;
              default:
                a.defaultedMembers.push(this.finishNode(l, "EnumDefaultedMember"));
            }
        }
        this.match(8) || this.expect(12);
      }
      return {
        members: a,
        hasUnknownMembers: o
      };
    }
    flowEnumStringMembers(s, r, {
      enumName: i
    }) {
      if (s.length === 0)
        return r;
      if (r.length === 0)
        return s;
      if (r.length > s.length) {
        for (let a of s)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return r;
      } else {
        for (let a of r)
          this.flowEnumErrorStringMemberInconsistentlyInitialized(a, {
            enumName: i
          });
        return s;
      }
    }
    flowEnumParseExplicitType({
      enumName: s
    }) {
      if (!this.eatContextual(102)) return null;
      if (!or(this.state.type))
        throw this.raise(jt.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
          enumName: s
        });
      let {
        value: r
      } = this.state;
      return this.next(), r !== "boolean" && r !== "number" && r !== "string" && r !== "symbol" && this.raise(jt.EnumInvalidExplicitType, this.
      state.startLoc, {
        enumName: s,
        invalidEnumType: r
      }), r;
    }
    flowEnumBody(s, r) {
      let i = r.name, a = r.loc.start, o = this.flowEnumParseExplicitType({
        enumName: i
      });
      this.expect(5);
      let {
        members: l,
        hasUnknownMembers: u
      } = this.flowEnumMembers({
        enumName: i,
        explicitType: o
      });
      switch (s.hasUnknownMembers = u, o) {
        case "boolean":
          return s.explicitType = !0, s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
        case "number":
          return s.explicitType = !0, s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
        case "string":
          return s.explicitType = !0, s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
            enumName: i
          }), this.expect(8), this.finishNode(s, "EnumStringBody");
        case "symbol":
          return s.members = l.defaultedMembers, this.expect(8), this.finishNode(s, "EnumSymbolBody");
        default: {
          let c = /* @__PURE__ */ n(() => (s.members = [], this.expect(8), this.finishNode(s, "EnumStringBody")), "empty");
          s.explicitType = !1;
          let p = l.booleanMembers.length, h = l.numberMembers.length, f = l.stringMembers.length, d = l.defaultedMembers.length;
          if (!p && !h && !f && !d)
            return c();
          if (!p && !h)
            return s.members = this.flowEnumStringMembers(l.stringMembers, l.defaultedMembers, {
              enumName: i
            }), this.expect(8), this.finishNode(s, "EnumStringBody");
          if (!h && !f && p >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorBooleanMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.booleanMembers, this.expect(8), this.finishNode(s, "EnumBooleanBody");
          } else if (!p && !f && h >= d) {
            for (let m of l.defaultedMembers)
              this.flowEnumErrorNumberMemberNotInitialized(m.loc.start, {
                enumName: i,
                memberName: m.id.name
              });
            return s.members = l.numberMembers, this.expect(8), this.finishNode(s, "EnumNumberBody");
          } else
            return this.raise(jt.EnumInconsistentMemberValues, a, {
              enumName: i
            }), c();
        }
      }
    }
    flowParseEnumDeclaration(s) {
      let r = this.parseIdentifier();
      return s.id = r, s.body = this.flowEnumBody(this.startNode(), r), this.finishNode(s, "EnumDeclaration");
    }
    jsxParseOpeningElementAfterName(s) {
      return this.shouldParseTypes() && (this.match(47) || this.match(51)) && (s.typeArguments = this.flowParseTypeParameterInstantiationInExpression()),
      super.jsxParseOpeningElementAfterName(s);
    }
    isLookaheadToken_lt() {
      let s = this.nextTokenStart();
      if (this.input.charCodeAt(s) === 60) {
        let r = this.input.charCodeAt(s + 1);
        return r !== 60 && r !== 61;
      }
      return !1;
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    maybeUnwrapTypeCastExpression(s) {
      return s.type === "TypeCastExpression" ? s.expression : s;
    }
  }, "flow"), eds = {
    __proto__: null,
    quot: '"',
    amp: "&",
    apos: "'",
    lt: "<",
    gt: ">",
    nbsp: "\xA0",
    iexcl: "\xA1",
    cent: "\xA2",
    pound: "\xA3",
    curren: "\xA4",
    yen: "\xA5",
    brvbar: "\xA6",
    sect: "\xA7",
    uml: "\xA8",
    copy: "\xA9",
    ordf: "\xAA",
    laquo: "\xAB",
    not: "\xAC",
    shy: "\xAD",
    reg: "\xAE",
    macr: "\xAF",
    deg: "\xB0",
    plusmn: "\xB1",
    sup2: "\xB2",
    sup3: "\xB3",
    acute: "\xB4",
    micro: "\xB5",
    para: "\xB6",
    middot: "\xB7",
    cedil: "\xB8",
    sup1: "\xB9",
    ordm: "\xBA",
    raquo: "\xBB",
    frac14: "\xBC",
    frac12: "\xBD",
    frac34: "\xBE",
    iquest: "\xBF",
    Agrave: "\xC0",
    Aacute: "\xC1",
    Acirc: "\xC2",
    Atilde: "\xC3",
    Auml: "\xC4",
    Aring: "\xC5",
    AElig: "\xC6",
    Ccedil: "\xC7",
    Egrave: "\xC8",
    Eacute: "\xC9",
    Ecirc: "\xCA",
    Euml: "\xCB",
    Igrave: "\xCC",
    Iacute: "\xCD",
    Icirc: "\xCE",
    Iuml: "\xCF",
    ETH: "\xD0",
    Ntilde: "\xD1",
    Ograve: "\xD2",
    Oacute: "\xD3",
    Ocirc: "\xD4",
    Otilde: "\xD5",
    Ouml: "\xD6",
    times: "\xD7",
    Oslash: "\xD8",
    Ugrave: "\xD9",
    Uacute: "\xDA",
    Ucirc: "\xDB",
    Uuml: "\xDC",
    Yacute: "\xDD",
    THORN: "\xDE",
    szlig: "\xDF",
    agrave: "\xE0",
    aacute: "\xE1",
    acirc: "\xE2",
    atilde: "\xE3",
    auml: "\xE4",
    aring: "\xE5",
    aelig: "\xE6",
    ccedil: "\xE7",
    egrave: "\xE8",
    eacute: "\xE9",
    ecirc: "\xEA",
    euml: "\xEB",
    igrave: "\xEC",
    iacute: "\xED",
    icirc: "\xEE",
    iuml: "\xEF",
    eth: "\xF0",
    ntilde: "\xF1",
    ograve: "\xF2",
    oacute: "\xF3",
    ocirc: "\xF4",
    otilde: "\xF5",
    ouml: "\xF6",
    divide: "\xF7",
    oslash: "\xF8",
    ugrave: "\xF9",
    uacute: "\xFA",
    ucirc: "\xFB",
    uuml: "\xFC",
    yacute: "\xFD",
    thorn: "\xFE",
    yuml: "\xFF",
    OElig: "\u0152",
    oelig: "\u0153",
    Scaron: "\u0160",
    scaron: "\u0161",
    Yuml: "\u0178",
    fnof: "\u0192",
    circ: "\u02C6",
    tilde: "\u02DC",
    Alpha: "\u0391",
    Beta: "\u0392",
    Gamma: "\u0393",
    Delta: "\u0394",
    Epsilon: "\u0395",
    Zeta: "\u0396",
    Eta: "\u0397",
    Theta: "\u0398",
    Iota: "\u0399",
    Kappa: "\u039A",
    Lambda: "\u039B",
    Mu: "\u039C",
    Nu: "\u039D",
    Xi: "\u039E",
    Omicron: "\u039F",
    Pi: "\u03A0",
    Rho: "\u03A1",
    Sigma: "\u03A3",
    Tau: "\u03A4",
    Upsilon: "\u03A5",
    Phi: "\u03A6",
    Chi: "\u03A7",
    Psi: "\u03A8",
    Omega: "\u03A9",
    alpha: "\u03B1",
    beta: "\u03B2",
    gamma: "\u03B3",
    delta: "\u03B4",
    epsilon: "\u03B5",
    zeta: "\u03B6",
    eta: "\u03B7",
    theta: "\u03B8",
    iota: "\u03B9",
    kappa: "\u03BA",
    lambda: "\u03BB",
    mu: "\u03BC",
    nu: "\u03BD",
    xi: "\u03BE",
    omicron: "\u03BF",
    pi: "\u03C0",
    rho: "\u03C1",
    sigmaf: "\u03C2",
    sigma: "\u03C3",
    tau: "\u03C4",
    upsilon: "\u03C5",
    phi: "\u03C6",
    chi: "\u03C7",
    psi: "\u03C8",
    omega: "\u03C9",
    thetasym: "\u03D1",
    upsih: "\u03D2",
    piv: "\u03D6",
    ensp: "\u2002",
    emsp: "\u2003",
    thinsp: "\u2009",
    zwnj: "\u200C",
    zwj: "\u200D",
    lrm: "\u200E",
    rlm: "\u200F",
    ndash: "\u2013",
    mdash: "\u2014",
    lsquo: "\u2018",
    rsquo: "\u2019",
    sbquo: "\u201A",
    ldquo: "\u201C",
    rdquo: "\u201D",
    bdquo: "\u201E",
    dagger: "\u2020",
    Dagger: "\u2021",
    bull: "\u2022",
    hellip: "\u2026",
    permil: "\u2030",
    prime: "\u2032",
    Prime: "\u2033",
    lsaquo: "\u2039",
    rsaquo: "\u203A",
    oline: "\u203E",
    frasl: "\u2044",
    euro: "\u20AC",
    image: "\u2111",
    weierp: "\u2118",
    real: "\u211C",
    trade: "\u2122",
    alefsym: "\u2135",
    larr: "\u2190",
    uarr: "\u2191",
    rarr: "\u2192",
    darr: "\u2193",
    harr: "\u2194",
    crarr: "\u21B5",
    lArr: "\u21D0",
    uArr: "\u21D1",
    rArr: "\u21D2",
    dArr: "\u21D3",
    hArr: "\u21D4",
    forall: "\u2200",
    part: "\u2202",
    exist: "\u2203",
    empty: "\u2205",
    nabla: "\u2207",
    isin: "\u2208",
    notin: "\u2209",
    ni: "\u220B",
    prod: "\u220F",
    sum: "\u2211",
    minus: "\u2212",
    lowast: "\u2217",
    radic: "\u221A",
    prop: "\u221D",
    infin: "\u221E",
    ang: "\u2220",
    and: "\u2227",
    or: "\u2228",
    cap: "\u2229",
    cup: "\u222A",
    int: "\u222B",
    there4: "\u2234",
    sim: "\u223C",
    cong: "\u2245",
    asymp: "\u2248",
    ne: "\u2260",
    equiv: "\u2261",
    le: "\u2264",
    ge: "\u2265",
    sub: "\u2282",
    sup: "\u2283",
    nsub: "\u2284",
    sube: "\u2286",
    supe: "\u2287",
    oplus: "\u2295",
    otimes: "\u2297",
    perp: "\u22A5",
    sdot: "\u22C5",
    lceil: "\u2308",
    rceil: "\u2309",
    lfloor: "\u230A",
    rfloor: "\u230B",
    lang: "\u2329",
    rang: "\u232A",
    loz: "\u25CA",
    spades: "\u2660",
    clubs: "\u2663",
    hearts: "\u2665",
    diams: "\u2666"
  }, Mf = hc`jsx`({
    AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
    MissingClosingTagElement: /* @__PURE__ */ n(({
      openingTagName: t
    }) => `Expected corresponding JSX closing tag for <${t}>.`, "MissingClosingTagElement"),
    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: /* @__PURE__ */ n(({
      unexpected: t,
      HTMLEntity: e
    }) => `Unexpected token \`${t}\`. Did you mean \`${e}\` or \`{'${t}'}\`?`, "UnexpectedToken"),
    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 Kp(t) {
    return t ? t.type === "JSXOpeningFragment" || t.type === "JSXClosingFragment" : !1;
  }
  n(Kp, "isFragment");
  function fy(t) {
    if (t.type === "JSXIdentifier")
      return t.name;
    if (t.type === "JSXNamespacedName")
      return t.namespace.name + ":" + t.name.name;
    if (t.type === "JSXMemberExpression")
      return fy(t.object) + "." + fy(t.property);
    throw new Error("Node had unexpected type: " + t.type);
  }
  n(fy, "getQualifiedJSXName");
  var tds = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "JSXParserMixin");
    }
    jsxReadToken() {
      let s = "", r = this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(Mf.UnterminatedJsxContent, this.state.startLoc);
        let i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 60:
          case 123:
            if (this.state.pos === this.state.start) {
              i === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(143)) : super.getTokenFromCode(i);
              return;
            }
            s += this.input.slice(r, this.state.pos), this.finishToken(142, s);
            return;
          case 38:
            s += this.input.slice(r, this.state.pos), s += this.jsxReadEntity(), r = this.state.pos;
            break;
          case 62:
          case 125:
          default:
            my(i) ? (s += this.input.slice(r, this.state.pos), s += this.jsxReadNewLine(!0), r = this.state.pos) : ++this.state.pos;
        }
      }
    }
    jsxReadNewLine(s) {
      let r = this.input.charCodeAt(this.state.pos), i;
      return ++this.state.pos, r === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, i = s ? `
` : `\r
`) : i = String.fromCharCode(r), ++this.state.curLine, this.state.lineStart = this.state.pos, i;
    }
    jsxReadString(s) {
      let r = "", i = ++this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(se.UnterminatedString, this.state.startLoc);
        let a = this.input.charCodeAt(this.state.pos);
        if (a === s) break;
        a === 38 ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos) : my(a) ? (r += this.input.slice(
        i, this.state.pos), r += this.jsxReadNewLine(!1), i = this.state.pos) : ++this.state.pos;
      }
      r += this.input.slice(i, this.state.pos++), this.finishToken(134, r);
    }
    jsxReadEntity() {
      let s = ++this.state.pos;
      if (this.codePointAtPos(this.state.pos) === 35) {
        ++this.state.pos;
        let r = 10;
        this.codePointAtPos(this.state.pos) === 120 && (r = 16, ++this.state.pos);
        let i = this.readInt(r, void 0, !1, "bail");
        if (i !== null && this.codePointAtPos(this.state.pos) === 59)
          return ++this.state.pos, String.fromCodePoint(i);
      } else {
        let r = 0, i = !1;
        for (; r++ < 10 && this.state.pos < this.length && !(i = this.codePointAtPos(this.state.pos) === 59); )
          ++this.state.pos;
        if (i) {
          let a = this.input.slice(s, this.state.pos), o = eds[a];
          if (++this.state.pos, o)
            return o;
        }
      }
      return this.state.pos = s, "&";
    }
    jsxReadWord() {
      let s, r = this.state.pos;
      do
        s = this.input.charCodeAt(++this.state.pos);
      while (dy(s) || s === 45);
      this.finishToken(141, this.input.slice(r, this.state.pos));
    }
    jsxParseIdentifier() {
      let s = this.startNode();
      return this.match(141) ? s.name = this.state.value : TR(this.state.type) ? s.name = Vp(this.state.type) : this.unexpected(), this.next(),
      this.finishNode(s, "JSXIdentifier");
    }
    jsxParseNamespacedName() {
      let s = this.state.startLoc, r = this.jsxParseIdentifier();
      if (!this.eat(14)) return r;
      let i = this.startNodeAt(s);
      return i.namespace = r, i.name = this.jsxParseIdentifier(), this.finishNode(i, "JSXNamespacedName");
    }
    jsxParseElementName() {
      let s = this.state.startLoc, r = this.jsxParseNamespacedName();
      if (r.type === "JSXNamespacedName")
        return r;
      for (; this.eat(16); ) {
        let i = this.startNodeAt(s);
        i.object = r, i.property = this.jsxParseIdentifier(), r = this.finishNode(i, "JSXMemberExpression");
      }
      return r;
    }
    jsxParseAttributeValue() {
      let s;
      switch (this.state.type) {
        case 5:
          return s = this.startNode(), this.setContext(ar.brace), this.next(), s = this.jsxParseExpressionContainer(s, ar.j_oTag), s.expression.
          type === "JSXEmptyExpression" && this.raise(Mf.AttributeIsEmpty, s), s;
        case 143:
        case 134:
          return this.parseExprAtom();
        default:
          throw this.raise(Mf.UnsupportedJsxValue, this.state.startLoc);
      }
    }
    jsxParseEmptyExpression() {
      let s = this.startNodeAt(this.state.lastTokEndLoc);
      return this.finishNodeAt(s, "JSXEmptyExpression", this.state.startLoc);
    }
    jsxParseSpreadChild(s) {
      return this.next(), s.expression = this.parseExpression(), this.setContext(ar.j_expr), this.state.canStartJSXElement = !0, this.expect(
      8), this.finishNode(s, "JSXSpreadChild");
    }
    jsxParseExpressionContainer(s, r) {
      if (this.match(8))
        s.expression = this.jsxParseEmptyExpression();
      else {
        let i = this.parseExpression();
        s.expression = i;
      }
      return this.setContext(r), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXExpressionContainer");
    }
    jsxParseAttribute() {
      let s = this.startNode();
      return this.match(5) ? (this.setContext(ar.brace), this.next(), this.expect(21), s.argument = this.parseMaybeAssignAllowIn(), this.setContext(
      ar.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(s, "JSXSpreadAttribute")) : (s.name = this.jsxParseNamespacedName(),
      s.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(s, "JSXAttribute"));
    }
    jsxParseOpeningElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXOpeningFragment") : (r.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(
      r));
    }
    jsxParseOpeningElementAfterName(s) {
      let r = [];
      for (; !this.match(56) && !this.match(144); )
        r.push(this.jsxParseAttribute());
      return s.attributes = r, s.selfClosing = this.eat(56), this.expect(144), this.finishNode(s, "JSXOpeningElement");
    }
    jsxParseClosingElementAt(s) {
      let r = this.startNodeAt(s);
      return this.eat(144) ? this.finishNode(r, "JSXClosingFragment") : (r.name = this.jsxParseElementName(), this.expect(144), this.finishNode(
      r, "JSXClosingElement"));
    }
    jsxParseElementAt(s) {
      let r = this.startNodeAt(s), i = [], a = this.jsxParseOpeningElementAt(s), o = null;
      if (!a.selfClosing) {
        e: for (; ; )
          switch (this.state.type) {
            case 143:
              if (s = this.state.startLoc, this.next(), this.eat(56)) {
                o = this.jsxParseClosingElementAt(s);
                break e;
              }
              i.push(this.jsxParseElementAt(s));
              break;
            case 142:
              i.push(this.parseLiteral(this.state.value, "JSXText"));
              break;
            case 5: {
              let l = this.startNode();
              this.setContext(ar.brace), this.next(), this.match(21) ? i.push(this.jsxParseSpreadChild(l)) : i.push(this.jsxParseExpressionContainer(
              l, ar.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
        Kp(a) && !Kp(o) && o !== null ? this.raise(Mf.MissingClosingTagFragment, o) : !Kp(a) && Kp(o) ? this.raise(Mf.MissingClosingTagElement,
        o, {
          openingTagName: fy(a.name)
        }) : !Kp(a) && !Kp(o) && fy(o.name) !== fy(a.name) && this.raise(Mf.MissingClosingTagElement, o, {
          openingTagName: fy(a.name)
        });
      }
      if (Kp(a) ? (r.openingFragment = a, r.closingFragment = o) : (r.openingElement = a, r.closingElement = o), r.children = i, this.match(
      47))
        throw this.raise(Mf.UnwrappedAdjacentJSXElements, this.state.startLoc);
      return Kp(a) ? this.finishNode(r, "JSXFragment") : this.finishNode(r, "JSXElement");
    }
    jsxParseElement() {
      let s = this.state.startLoc;
      return this.next(), this.jsxParseElementAt(s);
    }
    setContext(s) {
      let {
        context: r
      } = this.state;
      r[r.length - 1] = s;
    }
    parseExprAtom(s) {
      return this.match(143) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(
      143), this.jsxParseElement()) : super.parseExprAtom(s);
    }
    skipSpace() {
      this.curContext().preserveSpace || super.skipSpace();
    }
    getTokenFromCode(s) {
      let r = this.curContext();
      if (r === ar.j_expr) {
        this.jsxReadToken();
        return;
      }
      if (r === ar.j_oTag || r === ar.j_cTag) {
        if (pc(s)) {
          this.jsxReadWord();
          return;
        }
        if (s === 62) {
          ++this.state.pos, this.finishToken(144);
          return;
        }
        if ((s === 34 || s === 39) && r === ar.j_oTag) {
          this.jsxReadString(s);
          return;
        }
      }
      if (s === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
        ++this.state.pos, this.finishToken(143);
        return;
      }
      super.getTokenFromCode(s);
    }
    updateContext(s) {
      let {
        context: r,
        type: i
      } = this.state;
      if (i === 56 && s === 143)
        r.splice(-2, 2, ar.j_cTag), this.state.canStartJSXElement = !1;
      else if (i === 143)
        r.push(ar.j_oTag);
      else if (i === 144) {
        let a = r[r.length - 1];
        a === ar.j_oTag && s === 56 || a === ar.j_cTag ? (r.pop(), this.state.canStartJSXElement = r[r.length - 1] === ar.j_expr) : (this.setContext(
        ar.j_expr), this.state.canStartJSXElement = !0);
      } else
        this.state.canStartJSXElement = gfs(i);
    }
  }, "jsx"), oR = class extends WT {
    static {
      n(this, "TypeScriptScope");
    }
    constructor(...e) {
      super(...e), this.tsNames = /* @__PURE__ */ new Map();
    }
  }, lR = class extends $T {
    static {
      n(this, "TypeScriptScopeHandler");
    }
    constructor(...e) {
      super(...e), this.importsStack = [];
    }
    createScope(e) {
      return this.importsStack.push(/* @__PURE__ */ new Set()), new oR(e);
    }
    enter(e) {
      e === 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(e);
    }
    exit() {
      let e = super.exit();
      return e === 256 && this.importsStack.pop(), e;
    }
    hasImport(e, s) {
      let r = this.importsStack.length;
      if (this.importsStack[r - 1].has(e))
        return !0;
      if (!s && r > 1) {
        for (let i = 0; i < r - 1; i++)
          if (this.importsStack[i].has(e)) return !0;
      }
      return !1;
    }
    declareName(e, s, r) {
      if (s & 4096) {
        this.hasImport(e, !0) && this.parser.raise(se.VarRedeclaration, r, {
          identifierName: e
        }), this.importsStack[this.importsStack.length - 1].add(e);
        return;
      }
      let i = this.currentScope(), a = i.tsNames.get(e) || 0;
      if (s & 1024) {
        this.maybeExportDefined(i, e), i.tsNames.set(e, a | 16);
        return;
      }
      super.declareName(e, s, r), s & 2 && (s & 1 || (this.checkRedeclarationInScope(i, e, s, r), this.maybeExportDefined(i, e)), a = a | 1),
      s & 256 && (a = a | 2), s & 512 && (a = a | 4), s & 128 && (a = a | 8), a && i.tsNames.set(e, a);
    }
    isRedeclaredInScope(e, s, r) {
      let i = e.tsNames.get(s);
      if ((i & 2) > 0) {
        if (r & 256) {
          let a = !!(r & 512), o = (i & 4) > 0;
          return a !== o;
        }
        return !0;
      }
      return r & 128 && (i & 8) > 0 ? e.names.get(s) & 2 ? !!(r & 1) : !1 : r & 2 && (i & 1) > 0 ? !0 : super.isRedeclaredInScope(e, s, r);
    }
    checkLocalExport(e) {
      let {
        name: s
      } = e;
      if (this.hasImport(s)) return;
      let r = this.scopeStack.length;
      for (let i = r - 1; i >= 0; i--) {
        let o = this.scopeStack[i].tsNames.get(s);
        if ((o & 1) > 0 || (o & 16) > 0)
          return;
      }
      super.checkLocalExport(e);
    }
  }, Jfe = /* @__PURE__ */ n((t) => t.type === "ParenthesizedExpression" ? Jfe(t.expression) : t, "unwrapParenthesizedExpression"), uR = class extends aR {
    static {
      n(this, "LValParser");
    }
    toAssignable(e, s = !1) {
      var r, i;
      let a;
      switch ((e.type === "ParenthesizedExpression" || (r = e.extra) != null && r.parenthesized) && (a = Jfe(e), s ? a.type === "Identifier" ?
      this.expressionScope.recordArrowParameterBindingError(se.InvalidParenthesizedAssignment, e) : a.type !== "MemberExpression" && !this.isOptionalMemberExpression(
      a) && this.raise(se.InvalidParenthesizedAssignment, e) : this.raise(se.InvalidParenthesizedAssignment, e)), e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          break;
        case "ObjectExpression":
          e.type = "ObjectPattern";
          for (let l = 0, u = e.properties.length, c = u - 1; l < u; l++) {
            var o;
            let p = e.properties[l], h = l === c;
            this.toAssignableObjectExpressionProp(p, h, s), h && p.type === "RestElement" && (o = e.extra) != null && o.trailingCommaLoc && this.
            raise(se.RestTrailingComma, e.extra.trailingCommaLoc);
          }
          break;
        case "ObjectProperty": {
          let {
            key: l,
            value: u
          } = e;
          this.isPrivateName(l) && this.classScope.usePrivateName(this.getPrivateNameSV(l), l.loc.start), this.toAssignable(u, s);
          break;
        }
        case "SpreadElement":
          throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignabl\
e's caller.");
        case "ArrayExpression":
          e.type = "ArrayPattern", this.toAssignableList(e.elements, (i = e.extra) == null ? void 0 : i.trailingCommaLoc, s);
          break;
        case "AssignmentExpression":
          e.operator !== "=" && this.raise(se.MissingEqInAssignment, e.left.loc.end), e.type = "AssignmentPattern", delete e.operator, this.
          toAssignable(e.left, s);
          break;
        case "ParenthesizedExpression":
          this.toAssignable(a, s);
          break;
      }
    }
    toAssignableObjectExpressionProp(e, s, r) {
      if (e.type === "ObjectMethod")
        this.raise(e.kind === "get" || e.kind === "set" ? se.PatternHasAccessor : se.PatternHasMethod, e.key);
      else if (e.type === "SpreadElement") {
        e.type = "RestElement";
        let i = e.argument;
        this.checkToRestConversion(i, !1), this.toAssignable(i, r), s || this.raise(se.RestTrailingComma, e);
      } else
        this.toAssignable(e, r);
    }
    toAssignableList(e, s, r) {
      let i = e.length - 1;
      for (let a = 0; a <= i; a++) {
        let o = e[a];
        if (o) {
          if (o.type === "SpreadElement") {
            o.type = "RestElement";
            let l = o.argument;
            this.checkToRestConversion(l, !0), this.toAssignable(l, r);
          } else
            this.toAssignable(o, r);
          o.type === "RestElement" && (a < i ? this.raise(se.RestTrailingComma, o) : s && this.raise(se.RestTrailingComma, s));
        }
      }
    }
    isAssignable(e, s) {
      switch (e.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          return !0;
        case "ObjectExpression": {
          let r = e.properties.length - 1;
          return e.properties.every((i, a) => i.type !== "ObjectMethod" && (a === r || i.type !== "SpreadElement") && this.isAssignable(i));
        }
        case "ObjectProperty":
          return this.isAssignable(e.value);
        case "SpreadElement":
          return this.isAssignable(e.argument);
        case "ArrayExpression":
          return e.elements.every((r) => r === null || this.isAssignable(r));
        case "AssignmentExpression":
          return e.operator === "=";
        case "ParenthesizedExpression":
          return this.isAssignable(e.expression);
        case "MemberExpression":
        case "OptionalMemberExpression":
          return !s;
        default:
          return !1;
      }
    }
    toReferencedList(e, s) {
      return e;
    }
    toReferencedListDeep(e, s) {
      this.toReferencedList(e, s);
      for (let r of e)
        r?.type === "ArrayExpression" && this.toReferencedListDeep(r.elements);
    }
    parseSpread(e) {
      let s = this.startNode();
      return this.next(), s.argument = this.parseMaybeAssignAllowIn(e, void 0), this.finishNode(s, "SpreadElement");
    }
    parseRestBinding() {
      let e = this.startNode();
      return this.next(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 0: {
          let e = this.startNode();
          return this.next(), e.elements = this.parseBindingList(3, 93, 1), this.finishNode(e, "ArrayPattern");
        }
        case 5:
          return this.parseObjectLike(8, !0);
      }
      return this.parseIdentifier();
    }
    parseBindingList(e, s, r) {
      let i = r & 1, a = [], o = !0;
      for (; !this.eat(e); )
        if (o ? o = !1 : this.expect(12), i && this.match(12))
          a.push(null);
        else {
          if (this.eat(e))
            break;
          if (this.match(21)) {
            let l = this.parseRestBinding();
            if ((this.hasPlugin("flow") || r & 2) && (l = this.parseFunctionParamType(l)), a.push(l), !this.checkCommaAfterRest(s)) {
              this.expect(e);
              break;
            }
          } else {
            let l = [];
            for (this.match(26) && this.hasPlugin("decorators") && this.raise(se.UnsupportedParameterDecorator, this.state.startLoc); this.match(
            26); )
              l.push(this.parseDecorator());
            a.push(this.parseAssignableListItem(r, l));
          }
        }
      return a;
    }
    parseBindingRestProperty(e) {
      return this.next(), e.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(e, "RestElement");
    }
    parseBindingProperty() {
      let {
        type: e,
        startLoc: s
      } = this.state;
      if (e === 21)
        return this.parseBindingRestProperty(this.startNode());
      let r = this.startNode();
      return e === 139 ? (this.expectPlugin("destructuringPrivate", s), this.classScope.usePrivateName(this.state.value, s), r.key = this.parsePrivateName()) :
      this.parsePropertyName(r), r.method = !1, this.parseObjPropValue(r, s, !1, !1, !0, !1);
    }
    parseAssignableListItem(e, s) {
      let r = this.parseMaybeDefault();
      (this.hasPlugin("flow") || e & 2) && this.parseFunctionParamType(r);
      let i = this.parseMaybeDefault(r.loc.start, r);
      return s.length && (r.decorators = s), i;
    }
    parseFunctionParamType(e) {
      return e;
    }
    parseMaybeDefault(e, s) {
      var r, i;
      if ((r = e) != null || (e = this.state.startLoc), s = (i = s) != null ? i : this.parseBindingAtom(), !this.eat(29)) return s;
      let a = this.startNodeAt(e);
      return a.left = s, a.right = this.parseMaybeAssignAllowIn(), this.finishNode(a, "AssignmentPattern");
    }
    isValidLVal(e, s, r) {
      switch (e) {
        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(e) {
      return e.type === "OptionalMemberExpression";
    }
    checkLVal(e, s, r = 64, i = !1, a = !1, o = !1) {
      var l;
      let u = e.type;
      if (this.isObjectMethod(e)) return;
      let c = this.isOptionalMemberExpression(e);
      if (c || u === "MemberExpression") {
        c && (this.expectPlugin("optionalChainingAssign", e.loc.start), s.type !== "AssignmentExpression" && this.raise(se.InvalidLhsOptionalChaining,
        e, {
          ancestor: s
        })), r !== 64 && this.raise(se.InvalidPropertyBindingPattern, e);
        return;
      }
      if (u === "Identifier") {
        this.checkIdentifier(e, r, a);
        let {
          name: y
        } = e;
        i && (i.has(y) ? this.raise(se.ParamDupe, e) : i.add(y));
        return;
      }
      let p = this.isValidLVal(u, !(o || (l = e.extra) != null && l.parenthesized) && s.type === "AssignmentExpression", r);
      if (p === !0) return;
      if (p === !1) {
        let y = r === 64 ? se.InvalidLhs : se.InvalidLhsBinding;
        this.raise(y, e, {
          ancestor: s
        });
        return;
      }
      let h, f;
      typeof p == "string" ? (h = p, f = u === "ParenthesizedExpression") : [h, f] = p;
      let d = u === "ArrayPattern" || u === "ObjectPattern" ? {
        type: u
      } : s, m = e[h];
      if (Array.isArray(m))
        for (let y of m)
          y && this.checkLVal(y, d, r, i, a, f);
      else m && this.checkLVal(m, d, r, i, a, f);
    }
    checkIdentifier(e, s, r = !1) {
      this.state.strict && (r ? Kfe(e.name, this.inModule) : Ufe(e.name)) && (s === 64 ? this.raise(se.StrictEvalArguments, e, {
        referenceName: e.name
      }) : this.raise(se.StrictEvalArgumentsBinding, e, {
        bindingName: e.name
      })), s & 8192 && e.name === "let" && this.raise(se.LetInLexicalBinding, e), s & 64 || this.declareNameFromIdentifier(e, s);
    }
    declareNameFromIdentifier(e, s) {
      this.scope.declareName(e.name, s, e.loc.start);
    }
    checkToRestConversion(e, s) {
      switch (e.type) {
        case "ParenthesizedExpression":
          this.checkToRestConversion(e.expression, s);
          break;
        case "Identifier":
        case "MemberExpression":
          break;
        case "ArrayExpression":
        case "ObjectExpression":
          if (s) break;
        default:
          this.raise(se.InvalidRestAssignmentPattern, e);
      }
    }
    checkCommaAfterRest(e) {
      return this.match(12) ? (this.raise(this.lookaheadCharCode() === e ? se.RestTrailingComma : se.ElementAfterRest, this.state.startLoc),
      !0) : !1;
    }
  };
  function sds(t) {
    if (t == null)
      throw new Error(`Unexpected ${t} value.`);
    return t;
  }
  n(sds, "nonNull");
  function kfe(t) {
    if (!t)
      throw new Error("Assert fail");
  }
  n(kfe, "assert");
  var yt = hc`typescript`({
    AbstractMethodHasImplementation: /* @__PURE__ */ n(({
      methodName: t
    }) => `Method '${t}' cannot have an implementation because it is marked abstract.`, "AbstractMethodHasImplementation"),
    AbstractPropertyHasInitializer: /* @__PURE__ */ n(({
      propertyName: t
    }) => `Property '${t}' cannot have an initializer because it is marked abstract.`, "AbstractPropertyHasInitializer"),
    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 num\
eric literal or literal enum reference.",
    ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
    DeclareAccessor: /* @__PURE__ */ n(({
      kind: t
    }) => `'declare' is not allowed in ${t}ters.`, "DeclareAccessor"),
    DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
    DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
    DuplicateAccessibilityModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => "Accessibility modifier already seen.", "DuplicateAccessibilityModifier"),
    DuplicateModifier: /* @__PURE__ */ n(({
      modifier: t
    }) => `Duplicate modifier: '${t}'.`, "DuplicateModifier"),
    EmptyHeritageClauseType: /* @__PURE__ */ n(({
      token: t
    }) => `'${t}' list cannot be empty.`, "EmptyHeritageClauseType"),
    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: /* @__PURE__ */ n(({
      modifiers: t
    }) => `'${t[0]}' modifier cannot be used with '${t[1]}' modifier.`, "IncompatibleModifiers"),
    IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
    IndexSignatureHasAccessibility: /* @__PURE__ */ n(({
      modifier: t
    }) => `Index signatures cannot have an accessibility modifier ('${t}').`, "IndexSignatureHasAccessibility"),
    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: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type member.`, "InvalidModifierOnTypeMember"),
    InvalidModifierOnTypeParameter: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier cannot appear on a type parameter.`, "InvalidModifierOnTypeParameter"),
    InvalidModifierOnTypeParameterPositions: /* @__PURE__ */ n(({
      modifier: t
    }) => `'${t}' modifier can only appear on a type parameter of a class, interface or type alias.`, "InvalidModifierOnTypeParameterPositio\
ns"),
    InvalidModifiersOrder: /* @__PURE__ */ n(({
      orderedModifiers: t
    }) => `'${t[0]}' modifier must precede '${t[1]}' modifier.`, "InvalidModifiersOrder"),
    InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the i\
nstantiation 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: /* @__PURE__ */ n(({
      modifier: t
    }) => `Private elements cannot have an accessibility modifier ('${t}').`, "PrivateElementHasAccessibility"),
    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: /* @__PURE__ */ n(({
      typeParameterName: t
    }) => `Single type parameter ${t} should have a trailing comma. Example usage: <${t},>.`, "SingleTypeParameterWithoutTrailingComma"),
    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 (`n\
ame?: 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 statemen\
t.",
    TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statemen\
t.",
    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: /* @__PURE__ */ n(({
      type: t
    }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${t}.`, "UnsupportedSignatureParameterKind")
  });
  function rds(t) {
    switch (t) {
      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;
    }
  }
  n(rds, "keywordTypeFromName");
  function Dfe(t) {
    return t === "private" || t === "public" || t === "protected";
  }
  n(Dfe, "tsIsAccessModifier");
  function ids(t) {
    return t === "in" || t === "out";
  }
  n(ids, "tsIsVarianceAnnotations");
  var nds = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "TypeScriptParserMixin");
    }
    constructor(...s) {
      super(...s), 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 lR;
    }
    tsIsIdentifier() {
      return or(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(s, r) {
      if (!or(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
        return;
      let i = this.state.value;
      if (s.includes(i)) {
        if (r && this.tsIsStartOfStaticBlocks())
          return;
        if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
          return i;
      }
    }
    tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: r,
      stopOnStartOfClassStaticBlock: i,
      errorTemplate: a = yt.InvalidModifierOnTypeMember
    }, o) {
      let l = /* @__PURE__ */ n((c, p, h, f) => {
        p === h && o[f] && this.raise(yt.InvalidModifiersOrder, c, {
          orderedModifiers: [h, f]
        });
      }, "enforceOrder"), u = /* @__PURE__ */ n((c, p, h, f) => {
        (o[h] && p === f || o[f] && p === h) && this.raise(yt.IncompatibleModifiers, c, {
          modifiers: [h, f]
        });
      }, "incompatible");
      for (; ; ) {
        let {
          startLoc: c
        } = this.state, p = this.tsParseModifier(s.concat(r ?? []), i);
        if (!p) break;
        Dfe(p) ? o.accessibility ? this.raise(yt.DuplicateAccessibilityModifier, c, {
          modifier: p
        }) : (l(c, p, p, "override"), l(c, p, p, "static"), l(c, p, p, "readonly"), o.accessibility = p) : ids(p) ? (o[p] && this.raise(yt.DuplicateModifier,
        c, {
          modifier: p
        }), o[p] = !0, l(c, p, "in", "out")) : (hasOwnProperty.call(o, p) ? this.raise(yt.DuplicateModifier, c, {
          modifier: p
        }) : (l(c, p, "static", "readonly"), l(c, p, "static", "override"), l(c, p, "override", "readonly"), l(c, p, "abstract", "override"),
        u(c, p, "declare", "override"), u(c, p, "static", "abstract")), o[p] = !0), r != null && r.includes(p) && this.raise(a, c, {
          modifier: p
        });
      }
    }
    tsIsListTerminator(s) {
      switch (s) {
        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(s, r) {
      let i = [];
      for (; !this.tsIsListTerminator(s); )
        i.push(r());
      return i;
    }
    tsParseDelimitedList(s, r, i) {
      return sds(this.tsParseDelimitedListWorker(s, r, !0, i));
    }
    tsParseDelimitedListWorker(s, r, i, a) {
      let o = [], l = -1;
      for (; !this.tsIsListTerminator(s); ) {
        l = -1;
        let u = r();
        if (u == null)
          return;
        if (o.push(u), this.eat(12)) {
          l = this.state.lastTokStartLoc.index;
          continue;
        }
        if (this.tsIsListTerminator(s))
          break;
        i && this.expect(12);
        return;
      }
      return a && (a.value = l), o;
    }
    tsParseBracketedList(s, r, i, a, o) {
      a || (i ? this.expect(0) : this.expect(47));
      let l = this.tsParseDelimitedList(s, r, o);
      return i ? this.expect(3) : this.expect(48), l;
    }
    tsParseImportType() {
      let s = this.startNode();
      return this.expect(83), this.expect(10), this.match(134) ? s.argument = this.parseStringLiteral(this.state.value) : (this.raise(yt.UnsupportedImportTypeArgument,
      this.state.startLoc), s.argument = super.parseExprAtom()), this.eat(12) && !this.match(11) ? (s.options = super.parseMaybeAssignAllowIn(),
      this.eat(12)) : s.options = null, this.expect(11), this.eat(16) && (s.qualifier = this.tsParseEntityName()), this.match(47) && (s.typeParameters =
      this.tsParseTypeArguments()), this.finishNode(s, "TSImportType");
    }
    tsParseEntityName(s = !0) {
      let r = this.parseIdentifier(s);
      for (; this.eat(16); ) {
        let i = this.startNodeAtNode(r);
        i.left = r, i.right = this.parseIdentifier(s), r = this.finishNode(i, "TSQualifiedName");
      }
      return r;
    }
    tsParseTypeReference() {
      let s = this.startNode();
      return s.typeName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (s.typeParameters = this.tsParseTypeArguments()),
      this.finishNode(s, "TSTypeReference");
    }
    tsParseThisTypePredicate(s) {
      this.next();
      let r = this.startNodeAtNode(s);
      return r.parameterName = s, r.typeAnnotation = this.tsParseTypeAnnotation(!1), r.asserts = !1, this.finishNode(r, "TSTypePredicate");
    }
    tsParseThisTypeNode() {
      let s = this.startNode();
      return this.next(), this.finishNode(s, "TSThisType");
    }
    tsParseTypeQuery() {
      let s = this.startNode();
      return this.expect(87), this.match(83) ? s.exprName = this.tsParseImportType() : s.exprName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() &&
      this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSTypeQuery");
    }
    tsParseTypeParameter(s) {
      let r = this.startNode();
      return s(r), r.name = this.tsParseTypeParameterName(), r.constraint = this.tsEatThenParseType(81), r.default = this.tsEatThenParseType(
      29), this.finishNode(r, "TSTypeParameter");
    }
    tsTryParseTypeParameters(s) {
      if (this.match(47))
        return this.tsParseTypeParameters(s);
    }
    tsParseTypeParameters(s) {
      let r = this.startNode();
      this.match(47) || this.match(143) ? this.next() : this.unexpected();
      let i = {
        value: -1
      };
      return r.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, s), !1, !0, i), r.params.
      length === 0 && this.raise(yt.EmptyTypeParameters, r), i.value !== -1 && this.addExtra(r, "trailingComma", i.value), this.finishNode(r,
      "TSTypeParameterDeclaration");
    }
    tsFillSignature(s, r) {
      let i = s === 19, a = "parameters", o = "typeAnnotation";
      r.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), r[a] = this.tsParseBindingListForSignature(),
      i ? r[o] = this.tsParseTypeOrTypePredicateAnnotation(s) : this.match(s) && (r[o] = this.tsParseTypeOrTypePredicateAnnotation(s));
    }
    tsParseBindingListForSignature() {
      let s = super.parseBindingList(11, 41, 2);
      for (let r of s) {
        let {
          type: i
        } = r;
        (i === "AssignmentPattern" || i === "TSParameterProperty") && this.raise(yt.UnsupportedSignatureParameterKind, r, {
          type: i
        });
      }
      return s;
    }
    tsParseTypeMemberSemicolon() {
      !this.eat(12) && !this.isLineTerminator() && this.expect(13);
    }
    tsParseSignatureMember(s, r) {
      return this.tsFillSignature(14, r), this.tsParseTypeMemberSemicolon(), this.finishNode(r, s);
    }
    tsIsUnambiguouslyIndexSignature() {
      return this.next(), or(this.state.type) ? (this.next(), this.match(14)) : !1;
    }
    tsTryParseIndexSignature(s) {
      if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
        return;
      this.expect(0);
      let r = this.parseIdentifier();
      r.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(r), this.expect(3), s.parameters = [r];
      let i = this.tsTryParseTypeAnnotation();
      return i && (s.typeAnnotation = i), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSIndexSignature");
    }
    tsParsePropertyOrMethodSignature(s, r) {
      this.eat(17) && (s.optional = !0);
      let i = s;
      if (this.match(10) || this.match(47)) {
        r && this.raise(yt.ReadonlyForMethodSignature, s);
        let a = i;
        a.kind && this.match(47) && this.raise(yt.AccessorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, a), this.
        tsParseTypeMemberSemicolon();
        let o = "parameters", l = "typeAnnotation";
        if (a.kind === "get")
          a[o].length > 0 && (this.raise(se.BadGetterArity, this.state.curPosition()), this.isThisParam(a[o][0]) && this.raise(yt.AccessorCannotDeclareThisParameter,
          this.state.curPosition()));
        else if (a.kind === "set") {
          if (a[o].length !== 1)
            this.raise(se.BadSetterArity, this.state.curPosition());
          else {
            let u = a[o][0];
            this.isThisParam(u) && this.raise(yt.AccessorCannotDeclareThisParameter, this.state.curPosition()), u.type === "Identifier" && u.
            optional && this.raise(yt.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()), u.type === "RestElement" && this.raise(
            yt.SetAccessorCannotHaveRestParameter, this.state.curPosition());
          }
          a[l] && this.raise(yt.SetAccessorCannotHaveReturnType, a[l]);
        } else
          a.kind = "method";
        return this.finishNode(a, "TSMethodSignature");
      } else {
        let a = i;
        r && (a.readonly = !0);
        let o = this.tsTryParseTypeAnnotation();
        return o && (a.typeAnnotation = o), this.tsParseTypeMemberSemicolon(), this.finishNode(a, "TSPropertySignature");
      }
    }
    tsParseTypeMember() {
      let s = this.startNode();
      if (this.match(10) || this.match(47))
        return this.tsParseSignatureMember("TSCallSignatureDeclaration", s);
      if (this.match(77)) {
        let i = this.startNode();
        return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", s) : (s.key = this.
        createIdentifier(i, "new"), this.tsParsePropertyOrMethodSignature(s, !1));
      }
      this.tsParseModifiers({
        allowedModifiers: ["readonly"],
        disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
      }, s);
      let r = this.tsTryParseIndexSignature(s);
      return r || (super.parsePropertyName(s), !s.computed && s.key.type === "Identifier" && (s.key.name === "get" || s.key.name === "set") &&
      this.tsTokenCanFollowModifier() && (s.kind = s.key.name, super.parsePropertyName(s)), this.tsParsePropertyOrMethodSignature(s, !!s.readonly));
    }
    tsParseTypeLiteral() {
      let s = this.startNode();
      return s.members = this.tsParseObjectTypeMembers(), this.finishNode(s, "TSTypeLiteral");
    }
    tsParseObjectTypeMembers() {
      this.expect(5);
      let s = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
      return this.expect(8), s;
    }
    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() {
      let s = this.startNode();
      this.expect(5), this.match(53) ? (s.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) &&
      (s.readonly = !0), this.expect(0);
      {
        let r = this.startNode();
        r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), s.typeParameter = this.finishNode(r, "TSTyp\
eParameter");
      }
      return s.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (s.optional = this.state.value,
      this.next(), this.expect(17)) : this.eat(17) && (s.optional = !0), s.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(
      8), this.finishNode(s, "TSMappedType");
    }
    tsParseTupleType() {
      let s = this.startNode();
      s.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
      let r = !1;
      return s.elementTypes.forEach((i) => {
        let {
          type: a
        } = i;
        r && a !== "TSRestType" && a !== "TSOptionalType" && !(a === "TSNamedTupleMember" && i.optional) && this.raise(yt.OptionalTypeBeforeRequired,
        i), r || (r = a === "TSNamedTupleMember" && i.optional || a === "TSOptionalType");
      }), this.finishNode(s, "TSTupleType");
    }
    tsParseTupleElementType() {
      let {
        startLoc: s
      } = this.state, r = this.eat(21), i, a, o, l, c = Uo(this.state.type) ? this.lookaheadCharCode() : null;
      if (c === 58)
        i = !0, o = !1, a = this.parseIdentifier(!0), this.expect(14), l = this.tsParseType();
      else if (c === 63) {
        o = !0;
        let p = this.state.startLoc, h = this.state.value, f = this.tsParseNonArrayType();
        this.lookaheadCharCode() === 58 ? (i = !0, a = this.createIdentifier(this.startNodeAt(p), h), this.expect(17), this.expect(14), l = this.
        tsParseType()) : (i = !1, l = f, this.expect(17));
      } else
        l = this.tsParseType(), o = this.eat(17), i = this.eat(14);
      if (i) {
        let p;
        a ? (p = this.startNodeAtNode(a), p.optional = o, p.label = a, p.elementType = l, this.eat(17) && (p.optional = !0, this.raise(yt.TupleOptionalAfterType,
        this.state.lastTokStartLoc))) : (p = this.startNodeAtNode(l), p.optional = o, this.raise(yt.InvalidTupleMemberLabel, l), p.label = l,
        p.elementType = this.tsParseType()), l = this.finishNode(p, "TSNamedTupleMember");
      } else if (o) {
        let p = this.startNodeAtNode(l);
        p.typeAnnotation = l, l = this.finishNode(p, "TSOptionalType");
      }
      if (r) {
        let p = this.startNodeAt(s);
        p.typeAnnotation = l, l = this.finishNode(p, "TSRestType");
      }
      return l;
    }
    tsParseParenthesizedType() {
      let s = this.startNode();
      return this.expect(10), s.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(s, "TSParenthesizedType");
    }
    tsParseFunctionOrConstructorType(s, r) {
      let i = this.startNode();
      return s === "TSConstructorType" && (i.abstract = !!r, r && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.
      tsFillSignature(19, i)), this.finishNode(i, s);
    }
    tsParseLiteralTypeNode() {
      let s = this.startNode();
      switch (this.state.type) {
        case 135:
        case 136:
        case 134:
        case 85:
        case 86:
          s.literal = super.parseExprAtom();
          break;
        default:
          this.unexpected();
      }
      return this.finishNode(s, "TSLiteralType");
    }
    tsParseTemplateLiteralType() {
      let s = this.startNode();
      return s.literal = super.parseTemplate(!1), this.finishNode(s, "TSLiteralType");
    }
    parseTemplateSubstitution() {
      return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
    }
    tsParseThisTypeOrThisTypePredicate() {
      let s = this.tsParseThisTypeNode();
      return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(s) : s;
    }
    tsParseNonArrayType() {
      switch (this.state.type) {
        case 134:
        case 135:
        case 136:
        case 85:
        case 86:
          return this.tsParseLiteralTypeNode();
        case 53:
          if (this.state.value === "-") {
            let s = this.startNode(), r = this.lookahead();
            return r.type !== 135 && r.type !== 136 && this.unexpected(), s.literal = this.parseMaybeUnary(), this.finishNode(s, "TSLiteralT\
ype");
          }
          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: {
          let {
            type: s
          } = this.state;
          if (or(s) || s === 88 || s === 84) {
            let r = s === 88 ? "TSVoidKeyword" : s === 84 ? "TSNullKeyword" : rds(this.state.value);
            if (r !== void 0 && this.lookaheadCharCode() !== 46) {
              let i = this.startNode();
              return this.next(), this.finishNode(i, r);
            }
            return this.tsParseTypeReference();
          }
        }
      }
      this.unexpected();
    }
    tsParseArrayTypeOrHigher() {
      let s = this.tsParseNonArrayType();
      for (; !this.hasPrecedingLineBreak() && this.eat(0); )
        if (this.match(3)) {
          let r = this.startNodeAtNode(s);
          r.elementType = s, this.expect(3), s = this.finishNode(r, "TSArrayType");
        } else {
          let r = this.startNodeAtNode(s);
          r.objectType = s, r.indexType = this.tsParseType(), this.expect(3), s = this.finishNode(r, "TSIndexedAccessType");
        }
      return s;
    }
    tsParseTypeOperator() {
      let s = this.startNode(), r = this.state.value;
      return this.next(), s.operator = r, s.typeAnnotation = this.tsParseTypeOperatorOrHigher(), r === "readonly" && this.tsCheckTypeAnnotationForReadOnly(
      s), this.finishNode(s, "TSTypeOperator");
    }
    tsCheckTypeAnnotationForReadOnly(s) {
      switch (s.typeAnnotation.type) {
        case "TSTupleType":
        case "TSArrayType":
          return;
        default:
          this.raise(yt.UnexpectedReadonly, s);
      }
    }
    tsParseInferType() {
      let s = this.startNode();
      this.expectContextual(115);
      let r = this.startNode();
      return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), s.typeParameter =
      this.finishNode(r, "TSTypeParameter"), this.finishNode(s, "TSInferType");
    }
    tsParseConstraintForInferType() {
      if (this.eat(81)) {
        let s = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
        if (this.state.inDisallowConditionalTypesContext || !this.match(17))
          return s;
      }
    }
    tsParseTypeOperatorOrHigher() {
      return Efs(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() :
      this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
    }
    tsParseUnionOrIntersectionType(s, r, i) {
      let a = this.startNode(), o = this.eat(i), l = [];
      do
        l.push(r());
      while (this.eat(i));
      return l.length === 1 && !o ? l[0] : (a.types = l, this.finishNode(a, s));
    }
    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 (or(this.state.type) || this.match(78))
        return this.next(), !0;
      if (this.match(5)) {
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return this.parseObjectLike(8, !0), s.length === r;
        } catch {
          return !1;
        }
      }
      if (this.match(0)) {
        this.next();
        let {
          errors: s
        } = this.state, r = s.length;
        try {
          return super.parseBindingList(3, 93, 1), s.length === r;
        } 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(s) {
      return this.tsInType(() => {
        let r = this.startNode();
        this.expect(s);
        let i = this.startNode(), a = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
        if (a && this.match(78)) {
          let u = this.tsParseThisTypeOrThisTypePredicate();
          return u.type === "TSThisType" ? (i.parameterName = u, i.asserts = !0, i.typeAnnotation = null, u = this.finishNode(i, "TSTypePred\
icate")) : (this.resetStartLocationFromNode(u, i), u.asserts = !0), r.typeAnnotation = u, this.finishNode(r, "TSTypeAnnotation");
        }
        let o = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
        if (!o)
          return a ? (i.parameterName = this.parseIdentifier(), i.asserts = a, i.typeAnnotation = null, r.typeAnnotation = this.finishNode(i,
          "TSTypePredicate"), this.finishNode(r, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, r);
        let l = this.tsParseTypeAnnotation(!1);
        return i.parameterName = o, i.typeAnnotation = l, i.asserts = a, r.typeAnnotation = this.finishNode(i, "TSTypePredicate"), this.finishNode(
        r, "TSTypeAnnotation");
      });
    }
    tsTryParseTypeOrTypePredicateAnnotation() {
      if (this.match(14))
        return this.tsParseTypeOrTypePredicateAnnotation(14);
    }
    tsTryParseTypeAnnotation() {
      if (this.match(14))
        return this.tsParseTypeAnnotation();
    }
    tsTryParseType() {
      return this.tsEatThenParseType(14);
    }
    tsParseTypePredicatePrefix() {
      let s = this.parseIdentifier();
      if (this.isContextual(116) && !this.hasPrecedingLineBreak())
        return this.next(), s;
    }
    tsParseTypePredicateAsserts() {
      if (this.state.type !== 109)
        return !1;
      let s = this.state.containsEsc;
      return this.next(), !or(this.state.type) && !this.match(78) ? !1 : (s && this.raise(se.InvalidEscapedReservedWord, this.state.lastTokStartLoc,
      {
        reservedWord: "asserts"
      }), !0);
    }
    tsParseTypeAnnotation(s = !0, r = this.startNode()) {
      return this.tsInType(() => {
        s && this.expect(14), r.typeAnnotation = this.tsParseType();
      }), this.finishNode(r, "TSTypeAnnotation");
    }
    tsParseType() {
      kfe(this.state.inType);
      let s = this.tsParseNonConditionalType();
      if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
        return s;
      let r = this.startNodeAtNode(s);
      return r.checkType = s, r.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(
      17), r.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), r.falseType = this.tsInAllowConditionalTypesContext(
      () => this.tsParseType()), this.finishNode(r, "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);
      let s = this.startNode();
      return s.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.
      expect(48), s.expression = this.parseMaybeUnary(), this.finishNode(s, "TSTypeAssertion");
    }
    tsParseHeritageClause(s) {
      let r = this.state.startLoc, i = this.tsParseDelimitedList("HeritageClauseElement", () => {
        let a = this.startNode();
        return a.expression = this.tsParseEntityName(), this.match(47) && (a.typeParameters = this.tsParseTypeArguments()), this.finishNode(
        a, "TSExpressionWithTypeArguments");
      });
      return i.length || this.raise(yt.EmptyHeritageClauseType, r, {
        token: s
      }), i;
    }
    tsParseInterfaceDeclaration(s, r = {}) {
      if (this.hasFollowingLineBreak()) return null;
      this.expectContextual(129), r.declare && (s.declare = !0), or(this.state.type) ? (s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, 130)) : (s.id = null, this.raise(yt.MissingInterfaceName, this.state.startLoc)), s.typeParameters = this.tsTryParseTypeParameters(
      this.tsParseInOutConstModifiers), this.eat(81) && (s.extends = this.tsParseHeritageClause("extends"));
      let i = this.startNode();
      return i.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), s.body = this.finishNode(i, "TSInterfaceBody"), this.finishNode(
      s, "TSInterfaceDeclaration");
    }
    tsParseTypeAliasDeclaration(s) {
      return s.id = this.parseIdentifier(), this.checkIdentifier(s.id, 2), s.typeAnnotation = this.tsInType(() => {
        if (s.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().
        type !== 16) {
          let r = this.startNode();
          return this.next(), this.finishNode(r, "TSIntrinsicKeyword");
        }
        return this.tsParseType();
      }), this.semicolon(), this.finishNode(s, "TSTypeAliasDeclaration");
    }
    tsInTopLevelContext(s) {
      if (this.curContext() !== ar.brace) {
        let r = this.state.context;
        this.state.context = [r[0]];
        try {
          return s();
        } finally {
          this.state.context = r;
        }
      } else
        return s();
    }
    tsInType(s) {
      let r = this.state.inType;
      this.state.inType = !0;
      try {
        return s();
      } finally {
        this.state.inType = r;
      }
    }
    tsInDisallowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !0;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsInAllowConditionalTypesContext(s) {
      let r = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !1;
      try {
        return s();
      } finally {
        this.state.inDisallowConditionalTypesContext = r;
      }
    }
    tsEatThenParseType(s) {
      if (this.match(s))
        return this.tsNextThenParseType();
    }
    tsExpectThenParseType(s) {
      return this.tsInType(() => (this.expect(s), this.tsParseType()));
    }
    tsNextThenParseType() {
      return this.tsInType(() => (this.next(), this.tsParseType()));
    }
    tsParseEnumMember() {
      let s = this.startNode();
      return s.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (s.initializer =
      super.parseMaybeAssignAllowIn()), this.finishNode(s, "TSEnumMember");
    }
    tsParseEnumDeclaration(s, r = {}) {
      return r.const && (s.const = !0), r.declare && (s.declare = !0), this.expectContextual(126), s.id = this.parseIdentifier(), this.checkIdentifier(
      s.id, s.const ? 8971 : 8459), this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)),
      this.expect(8), this.finishNode(s, "TSEnumDeclaration");
    }
    tsParseEnumBody() {
      let s = this.startNode();
      return this.expect(5), s.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(
      s, "TSEnumBody");
    }
    tsParseModuleBlock() {
      let s = this.startNode();
      return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(s.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(
      s, "TSModuleBlock");
    }
    tsParseModuleOrNamespaceDeclaration(s, r = !1) {
      if (s.id = this.parseIdentifier(), r || this.checkIdentifier(s.id, 1024), this.eat(16)) {
        let i = this.startNode();
        this.tsParseModuleOrNamespaceDeclaration(i, !0), s.body = i;
      } else
        this.scope.enter(256), this.prodParam.enter(0), s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
      return this.finishNode(s, "TSModuleDeclaration");
    }
    tsParseAmbientExternalModuleDeclaration(s) {
      return this.isContextual(112) ? (s.kind = "global", s.global = !0, s.id = this.parseIdentifier()) : this.match(134) ? (s.kind = "modul\
e", s.id = super.parseStringLiteral(this.state.value)) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0),
      s.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(s, "TSModuleDeclarat\
ion");
    }
    tsParseImportEqualsDeclaration(s, r, i) {
      s.isExport = i || !1, s.id = r || this.parseIdentifier(), this.checkIdentifier(s.id, 4096), this.expect(29);
      let a = this.tsParseModuleReference();
      return s.importKind === "type" && a.type !== "TSExternalModuleReference" && this.raise(yt.ImportAliasHasImportType, a), s.moduleReference =
      a, this.semicolon(), this.finishNode(s, "TSImportEqualsDeclaration");
    }
    tsIsExternalModuleReference() {
      return this.isContextual(119) && this.lookaheadCharCode() === 40;
    }
    tsParseModuleReference() {
      return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(!1);
    }
    tsParseExternalModuleReference() {
      let s = this.startNode();
      return this.expectContextual(119), this.expect(10), this.match(134) || this.unexpected(), s.expression = super.parseExprAtom(), this.expect(
      11), this.sawUnambiguousESM = !0, this.finishNode(s, "TSExternalModuleReference");
    }
    tsLookAhead(s) {
      let r = this.state.clone(), i = s();
      return this.state = r, i;
    }
    tsTryParseAndCatch(s) {
      let r = this.tryParse((i) => s() || i());
      if (!(r.aborted || !r.node))
        return r.error && (this.state = r.failState), r.node;
    }
    tsTryParse(s) {
      let r = this.state.clone(), i = s();
      if (i !== void 0 && i !== !1)
        return i;
      this.state = r;
    }
    tsTryParseDeclare(s) {
      if (this.isLineTerminator())
        return;
      let r = this.state.type, i;
      return this.isContextual(100) && (r = 74, i = "let"), this.tsInAmbientContext(() => {
        switch (r) {
          case 68:
            return s.declare = !0, super.parseFunctionStatement(s, !1, !1);
          case 80:
            return s.declare = !0, this.parseClass(s, !0, !1);
          case 126:
            return this.tsParseEnumDeclaration(s, {
              declare: !0
            });
          case 112:
            return this.tsParseAmbientExternalModuleDeclaration(s);
          case 75:
          case 74:
            return !this.match(75) || !this.isLookaheadContextual("enum") ? (s.declare = !0, this.parseVarStatement(s, i || this.state.value,
            !0)) : (this.expect(75), this.tsParseEnumDeclaration(s, {
              const: !0,
              declare: !0
            }));
          case 129: {
            let a = this.tsParseInterfaceDeclaration(s, {
              declare: !0
            });
            if (a) return a;
          }
          default:
            if (or(r))
              return this.tsParseDeclaration(s, this.state.value, !0, null);
        }
      });
    }
    tsTryParseExportDeclaration() {
      return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
    }
    tsParseExpressionStatement(s, r, i) {
      switch (r.name) {
        case "declare": {
          let a = this.tsTryParseDeclare(s);
          return a && (a.declare = !0), a;
        }
        case "global":
          if (this.match(5)) {
            this.scope.enter(256), this.prodParam.enter(0);
            let a = s;
            return a.kind = "global", s.global = !0, a.id = r, a.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(),
            this.finishNode(a, "TSModuleDeclaration");
          }
          break;
        default:
          return this.tsParseDeclaration(s, r.name, !1, i);
      }
    }
    tsParseDeclaration(s, r, i, a) {
      switch (r) {
        case "abstract":
          if (this.tsCheckLineTerminator(i) && (this.match(80) || or(this.state.type)))
            return this.tsParseAbstractDeclaration(s, a);
          break;
        case "module":
          if (this.tsCheckLineTerminator(i)) {
            if (this.match(134))
              return this.tsParseAmbientExternalModuleDeclaration(s);
            if (or(this.state.type))
              return s.kind = "module", this.tsParseModuleOrNamespaceDeclaration(s);
          }
          break;
        case "namespace":
          if (this.tsCheckLineTerminator(i) && or(this.state.type))
            return s.kind = "namespace", this.tsParseModuleOrNamespaceDeclaration(s);
          break;
        case "type":
          if (this.tsCheckLineTerminator(i) && or(this.state.type))
            return this.tsParseTypeAliasDeclaration(s);
          break;
      }
    }
    tsCheckLineTerminator(s) {
      return s ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
    }
    tsTryParseGenericAsyncArrowFunction(s) {
      if (!this.match(47)) return;
      let r = this.state.maybeInArrowParameters;
      this.state.maybeInArrowParameters = !0;
      let i = this.tsTryParseAndCatch(() => {
        let a = this.startNodeAt(s);
        return a.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(a), a.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(),
        this.expect(19), a;
      });
      if (this.state.maybeInArrowParameters = r, !!i)
        return super.parseArrowExpression(i, null, !0);
    }
    tsParseTypeArgumentsInExpression() {
      if (this.reScan_lt() === 47)
        return this.tsParseTypeArguments();
    }
    tsParseTypeArguments() {
      let s = this.startNode();
      return s.params = this.tsInType(() => this.tsInTopLevelContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArgu\
ments", this.tsParseType.bind(this))))), s.params.length === 0 ? this.raise(yt.EmptyTypeArguments, s) : !this.state.inType && this.curContext() ===
      ar.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(s, "TSTypeParameterInstantiation");
    }
    tsIsDeclarationStart() {
      return Afs(this.state.type);
    }
    isExportDefaultSpecifier() {
      return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
    }
    parseAssignableListItem(s, r) {
      let i = this.state.startLoc, a = {};
      this.tsParseModifiers({
        allowedModifiers: ["public", "private", "protected", "override", "readonly"]
      }, a);
      let o = a.accessibility, l = a.override, u = a.readonly;
      !(s & 4) && (o || u || l) && this.raise(yt.UnexpectedParameterModifier, i);
      let c = this.parseMaybeDefault();
      s & 2 && this.parseFunctionParamType(c);
      let p = this.parseMaybeDefault(c.loc.start, c);
      if (o || u || l) {
        let h = this.startNodeAt(i);
        return r.length && (h.decorators = r), o && (h.accessibility = o), u && (h.readonly = u), l && (h.override = l), p.type !== "Identif\
ier" && p.type !== "AssignmentPattern" && this.raise(yt.UnsupportedParameterPropertyKind, h), h.parameter = p, this.finishNode(h, "TSParamet\
erProperty");
      }
      return r.length && (c.decorators = r), p;
    }
    isSimpleParameter(s) {
      return s.type === "TSParameterProperty" && super.isSimpleParameter(s.parameter) || super.isSimpleParameter(s);
    }
    tsDisallowOptionalPattern(s) {
      for (let r of s.params)
        r.type !== "Identifier" && r.optional && !this.state.isAmbientContext && this.raise(yt.PatternIsOptional, r);
    }
    setArrowFunctionParameters(s, r, i) {
      super.setArrowFunctionParameters(s, r, i), this.tsDisallowOptionalPattern(s);
    }
    parseFunctionBodyAndFinish(s, r, i = !1) {
      this.match(14) && (s.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
      let a = r === "FunctionDeclaration" ? "TSDeclareFunction" : r === "ClassMethod" || r === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
      return a && !this.match(5) && this.isLineTerminator() ? this.finishNode(s, a) : a === "TSDeclareFunction" && this.state.isAmbientContext &&
      (this.raise(yt.DeclareFunctionHasImplementation, s), s.declare) ? super.parseFunctionBodyAndFinish(s, a, i) : (this.tsDisallowOptionalPattern(
      s), super.parseFunctionBodyAndFinish(s, r, i));
    }
    registerFunctionStatementId(s) {
      !s.body && s.id ? this.checkIdentifier(s.id, 1024) : super.registerFunctionStatementId(s);
    }
    tsCheckForInvalidTypeCasts(s) {
      s.forEach((r) => {
        r?.type === "TSTypeCastExpression" && this.raise(yt.UnexpectedTypeAnnotation, r.typeAnnotation);
      });
    }
    toReferencedList(s, r) {
      return this.tsCheckForInvalidTypeCasts(s), s;
    }
    parseArrayLike(s, r, i, a) {
      let o = super.parseArrayLike(s, r, i, a);
      return o.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(o.elements), o;
    }
    parseSubscript(s, r, i, a) {
      if (!this.hasPrecedingLineBreak() && this.match(35)) {
        this.state.canStartJSXElement = !1, this.next();
        let l = this.startNodeAt(r);
        return l.expression = s, this.finishNode(l, "TSNonNullExpression");
      }
      let o = !1;
      if (this.match(18) && this.lookaheadCharCode() === 60) {
        if (i)
          return a.stop = !0, s;
        a.optionalChainMember = o = !0, this.next();
      }
      if (this.match(47) || this.match(51)) {
        let l, u = this.tsTryParseAndCatch(() => {
          if (!i && this.atPossibleAsyncArrow(s)) {
            let f = this.tsTryParseGenericAsyncArrowFunction(r);
            if (f)
              return f;
          }
          let c = this.tsParseTypeArgumentsInExpression();
          if (!c) return;
          if (o && !this.match(10)) {
            l = this.state.curPosition();
            return;
          }
          if (Tv(this.state.type)) {
            let f = super.parseTaggedTemplateExpression(s, r, a);
            return f.typeParameters = c, f;
          }
          if (!i && this.eat(10)) {
            let f = this.startNodeAt(r);
            return f.callee = s, f.arguments = this.parseCallExpressionArguments(11), this.tsCheckForInvalidTypeCasts(f.arguments), f.typeParameters =
            c, a.optionalChainMember && (f.optional = o), this.finishCallExpression(f, a.optionalChainMember);
          }
          let p = this.state.type;
          if (p === 48 || p === 52 || p !== 10 && H6(p) && !this.hasPrecedingLineBreak())
            return;
          let h = this.startNodeAt(r);
          return h.expression = s, h.typeParameters = c, this.finishNode(h, "TSInstantiationExpression");
        });
        if (l && this.unexpected(l, 10), u)
          return u.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(
          yt.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), u;
      }
      return super.parseSubscript(s, r, i, a);
    }
    parseNewCallee(s) {
      var r;
      super.parseNewCallee(s);
      let {
        callee: i
      } = s;
      i.type === "TSInstantiationExpression" && !((r = i.extra) != null && r.parenthesized) && (s.typeParameters = i.typeParameters, s.callee =
      i.expression);
    }
    parseExprOp(s, r, i) {
      let a;
      if (mv(58) > i && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (a = this.isContextual(120)))) {
        let o = this.startNodeAt(r);
        return o.expression = s, o.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (a && this.raise(se.UnexpectedKeyword,
        this.state.startLoc, {
          keyword: "const"
        }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(o, a ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(),
        this.parseExprOp(o, r, i);
      }
      return super.parseExprOp(s, r, i);
    }
    checkReservedWord(s, r, i, a) {
      this.state.isAmbientContext || super.checkReservedWord(s, r, i, a);
    }
    checkImportReflection(s) {
      super.checkImportReflection(s), s.module && s.importKind !== "value" && this.raise(yt.ImportReflectionHasImportType, s.specifiers[0].loc.
      start);
    }
    checkDuplicateExports() {
    }
    isPotentialImportPhase(s) {
      if (super.isPotentialImportPhase(s)) return !0;
      if (this.isContextual(130)) {
        let r = this.lookaheadCharCode();
        return s ? r === 123 || r === 42 : r !== 61;
      }
      return !s && this.isContextual(87);
    }
    applyImportPhase(s, r, i, a) {
      super.applyImportPhase(s, r, i, a), r ? s.exportKind = i === "type" ? "type" : "value" : s.importKind = i === "type" || i === "typeof" ?
      i : "value";
    }
    parseImport(s) {
      if (this.match(134))
        return s.importKind = "value", super.parseImport(s);
      let r;
      if (or(this.state.type) && this.lookaheadCharCode() === 61)
        return s.importKind = "value", this.tsParseImportEqualsDeclaration(s);
      if (this.isContextual(130)) {
        let i = this.parseMaybeImportPhase(s, !1);
        if (this.lookaheadCharCode() === 61)
          return this.tsParseImportEqualsDeclaration(s, i);
        r = super.parseImportSpecifiersAndAfter(s, i);
      } else
        r = super.parseImport(s);
      return r.importKind === "type" && r.specifiers.length > 1 && r.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(yt.TypeImportCannotSpecifyDefaultAndNamed,
      r), r;
    }
    parseExport(s, r) {
      if (this.match(83)) {
        this.next();
        let i = s, a = null;
        return this.isContextual(130) && this.isPotentialImportPhase(!1) ? a = this.parseMaybeImportPhase(i, !1) : i.importKind = "value", this.
        tsParseImportEqualsDeclaration(i, a, !0);
      } else if (this.eat(29)) {
        let i = s;
        return i.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(i, "TSExportAssignment");
      } else if (this.eatContextual(93)) {
        let i = s;
        return this.expectContextual(128), i.id = this.parseIdentifier(), this.semicolon(), this.finishNode(i, "TSNamespaceExportDeclaration");
      } else
        return super.parseExport(s, r);
    }
    isAbstractClass() {
      return this.isContextual(124) && this.lookahead().type === 80;
    }
    parseExportDefaultExpression() {
      if (this.isAbstractClass()) {
        let s = this.startNode();
        return this.next(), s.abstract = !0, this.parseClass(s, !0, !0);
      }
      if (this.match(129)) {
        let s = this.tsParseInterfaceDeclaration(this.startNode());
        if (s) return s;
      }
      return super.parseExportDefaultExpression();
    }
    parseVarStatement(s, r, i = !1) {
      let {
        isAmbientContext: a
      } = this.state, o = super.parseVarStatement(s, r, i || a);
      if (!a) return o;
      for (let {
        id: l,
        init: u
      } of o.declarations)
        u && (r !== "const" || l.typeAnnotation ? this.raise(yt.InitializerNotAllowedInAmbientContext, u) : ods(u, this.hasPlugin("estree")) ||
        this.raise(yt.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, u));
      return o;
    }
    parseStatementContent(s, r) {
      if (this.match(75) && this.isLookaheadContextual("enum")) {
        let i = this.startNode();
        return this.expect(75), this.tsParseEnumDeclaration(i, {
          const: !0
        });
      }
      if (this.isContextual(126))
        return this.tsParseEnumDeclaration(this.startNode());
      if (this.isContextual(129)) {
        let i = this.tsParseInterfaceDeclaration(this.startNode());
        if (i) return i;
      }
      return super.parseStatementContent(s, r);
    }
    parseAccessModifier() {
      return this.tsParseModifier(["public", "protected", "private"]);
    }
    tsHasSomeModifiers(s, r) {
      return r.some((i) => Dfe(i) ? s.accessibility === i : !!s[i]);
    }
    tsIsStartOfStaticBlocks() {
      return this.isContextual(106) && this.lookaheadCharCode() === 123;
    }
    parseClassMember(s, r, i) {
      let a = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
      this.tsParseModifiers({
        allowedModifiers: a,
        disallowedModifiers: ["in", "out"],
        stopOnStartOfClassStaticBlock: !0,
        errorTemplate: yt.InvalidModifierOnTypeParameterPositions
      }, r);
      let o = /* @__PURE__ */ n(() => {
        this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(r, a) && this.raise(yt.StaticBlockCannotHaveModifier,
        this.state.curPosition()), super.parseClassStaticBlock(s, r)) : this.parseClassMemberWithIsStatic(s, r, i, !!r.static);
      }, "callParseClassMemberWithIsStatic");
      r.declare ? this.tsInAmbientContext(o) : o();
    }
    parseClassMemberWithIsStatic(s, r, i, a) {
      let o = this.tsTryParseIndexSignature(r);
      if (o) {
        s.body.push(o), r.abstract && this.raise(yt.IndexSignatureHasAbstract, r), r.accessibility && this.raise(yt.IndexSignatureHasAccessibility,
        r, {
          modifier: r.accessibility
        }), r.declare && this.raise(yt.IndexSignatureHasDeclare, r), r.override && this.raise(yt.IndexSignatureHasOverride, r);
        return;
      }
      !this.state.inAbstractClass && r.abstract && this.raise(yt.NonAbstractClassHasAbstractMethod, r), r.override && (i.hadSuperClass || this.
      raise(yt.OverrideNotInSubClass, r)), super.parseClassMemberWithIsStatic(s, r, i, a);
    }
    parsePostMemberNameModifiers(s) {
      this.eat(17) && (s.optional = !0), s.readonly && this.match(10) && this.raise(yt.ClassMethodHasReadonly, s), s.declare && this.match(10) &&
      this.raise(yt.ClassMethodHasDeclare, s);
    }
    parseExpressionStatement(s, r, i) {
      return (r.type === "Identifier" ? this.tsParseExpressionStatement(s, r, i) : void 0) || super.parseExpressionStatement(s, r, i);
    }
    shouldParseExportDeclaration() {
      return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
    }
    parseConditional(s, r, i) {
      if (!this.state.maybeInArrowParameters || !this.match(17))
        return super.parseConditional(s, r, i);
      let a = this.tryParse(() => super.parseConditional(s, r));
      return a.node ? (a.error && (this.state = a.failState), a.node) : (a.error && super.setOptionalParametersError(i, a.error), s);
    }
    parseParenItem(s, r) {
      let i = super.parseParenItem(s, r);
      if (this.eat(17) && (i.optional = !0, this.resetEndLocation(s)), this.match(14)) {
        let a = this.startNodeAt(r);
        return a.expression = s, a.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(a, "TSTypeCastExpression");
      }
      return s;
    }
    parseExportDeclaration(s) {
      if (!this.state.isAmbientContext && this.isContextual(125))
        return this.tsInAmbientContext(() => this.parseExportDeclaration(s));
      let r = this.state.startLoc, i = this.eatContextual(125);
      if (i && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
        throw this.raise(yt.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
      let o = or(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(s);
      return o ? ((o.type === "TSInterfaceDeclaration" || o.type === "TSTypeAliasDeclaration" || i) && (s.exportKind = "type"), i && (this.resetStartLocation(
      o, r), o.declare = !0), o) : null;
    }
    parseClassId(s, r, i, a) {
      if ((!r || i) && this.isContextual(113))
        return;
      super.parseClassId(s, r, i, s.declare ? 1024 : 8331);
      let o = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
      o && (s.typeParameters = o);
    }
    parseClassPropertyAnnotation(s) {
      s.optional || (this.eat(35) ? s.definite = !0 : this.eat(17) && (s.optional = !0));
      let r = this.tsTryParseTypeAnnotation();
      r && (s.typeAnnotation = r);
    }
    parseClassProperty(s) {
      if (this.parseClassPropertyAnnotation(s), this.state.isAmbientContext && !(s.readonly && !s.typeAnnotation) && this.match(29) && this.
      raise(yt.DeclareClassFieldHasInitializer, this.state.startLoc), s.abstract && this.match(29)) {
        let {
          key: r
        } = s;
        this.raise(yt.AbstractPropertyHasInitializer, this.state.startLoc, {
          propertyName: r.type === "Identifier" && !s.computed ? r.name : `[${this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(
          r.end))}]`
        });
      }
      return super.parseClassProperty(s);
    }
    parseClassPrivateProperty(s) {
      return s.abstract && this.raise(yt.PrivateElementHasAbstract, s), s.accessibility && this.raise(yt.PrivateElementHasAccessibility, s, {
        modifier: s.accessibility
      }), this.parseClassPropertyAnnotation(s), super.parseClassPrivateProperty(s);
    }
    parseClassAccessorProperty(s) {
      return this.parseClassPropertyAnnotation(s), s.optional && this.raise(yt.AccessorCannotBeOptional, s), super.parseClassAccessorProperty(
      s);
    }
    pushClassMethod(s, r, i, a, o, l) {
      let u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      u && o && this.raise(yt.ConstructorHasTypeParameters, u);
      let {
        declare: c = !1,
        kind: p
      } = r;
      c && (p === "get" || p === "set") && this.raise(yt.DeclareAccessor, r, {
        kind: p
      }), u && (r.typeParameters = u), super.pushClassMethod(s, r, i, a, o, l);
    }
    pushClassPrivateMethod(s, r, i, a) {
      let o = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      o && (r.typeParameters = o), super.pushClassPrivateMethod(s, r, i, a);
    }
    declareClassPrivateMethodInScope(s, r) {
      s.type !== "TSDeclareMethod" && (s.type === "MethodDefinition" && !hasOwnProperty.call(s.value, "body") || super.declareClassPrivateMethodInScope(
      s, r));
    }
    parseClassSuper(s) {
      super.parseClassSuper(s), s.superClass && (this.match(47) || this.match(51)) && (s.superTypeParameters = this.tsParseTypeArgumentsInExpression()),
      this.eatContextual(113) && (s.implements = this.tsParseHeritageClause("implements"));
    }
    parseObjPropValue(s, r, i, a, o, l, u) {
      let c = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      return c && (s.typeParameters = c), super.parseObjPropValue(s, r, i, a, o, l, u);
    }
    parseFunctionParams(s, r) {
      let i = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      i && (s.typeParameters = i), super.parseFunctionParams(s, r);
    }
    parseVarId(s, r) {
      super.parseVarId(s, r), s.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (s.definite = !0);
      let i = this.tsTryParseTypeAnnotation();
      i && (s.id.typeAnnotation = i, this.resetEndLocation(s.id));
    }
    parseAsyncArrowFromCallExpression(s, r) {
      return this.match(14) && (s.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(s, r);
    }
    parseMaybeAssign(s, r) {
      var i, a, o, l, u;
      let c, p, h;
      if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
        if (c = this.state.clone(), p = this.tryParse(() => super.parseMaybeAssign(s, r), c), !p.error) return p.node;
        let {
          context: m
        } = this.state, y = m[m.length - 1];
        (y === ar.j_oTag || y === ar.j_expr) && m.pop();
      }
      if (!((i = p) != null && i.error) && !this.match(47))
        return super.parseMaybeAssign(s, r);
      (!c || c === this.state) && (c = this.state.clone());
      let f, d = this.tryParse((m) => {
        var y, T;
        f = this.tsParseTypeParameters(this.tsParseConstModifier);
        let b = super.parseMaybeAssign(s, r);
        return (b.type !== "ArrowFunctionExpression" || (y = b.extra) != null && y.parenthesized) && m(), ((T = f) == null ? void 0 : T.params.
        length) !== 0 && this.resetStartLocationFromNode(b, f), b.typeParameters = f, b;
      }, c);
      if (!d.error && !d.aborted)
        return f && this.reportReservedArrowTypeParam(f), d.node;
      if (!p && (kfe(!this.hasPlugin("jsx")), h = this.tryParse(() => super.parseMaybeAssign(s, r), c), !h.error))
        return h.node;
      if ((a = p) != null && a.node)
        return this.state = p.failState, p.node;
      if (d.node)
        return this.state = d.failState, f && this.reportReservedArrowTypeParam(f), d.node;
      if ((o = h) != null && o.node)
        return this.state = h.failState, h.node;
      throw ((l = p) == null ? void 0 : l.error) || d.error || ((u = h) == null ? void 0 : u.error);
    }
    reportReservedArrowTypeParam(s) {
      var r;
      s.params.length === 1 && !s.params[0].constraint && !((r = s.extra) != null && r.trailingComma) && this.getPluginOption("typescript", "\
disallowAmbiguousJSXLike") && this.raise(yt.ReservedArrowTypeParam, s);
    }
    parseMaybeUnary(s, r) {
      return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(s, r);
    }
    parseArrow(s) {
      if (this.match(14)) {
        let r = this.tryParse((i) => {
          let a = this.tsParseTypeOrTypePredicateAnnotation(14);
          return (this.canInsertSemicolon() || !this.match(19)) && i(), a;
        });
        if (r.aborted) return;
        r.thrown || (r.error && (this.state = r.failState), s.returnType = r.node);
      }
      return super.parseArrow(s);
    }
    parseFunctionParamType(s) {
      this.eat(17) && (s.optional = !0);
      let r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r), this.resetEndLocation(s), s;
    }
    isAssignable(s, r) {
      switch (s.type) {
        case "TSTypeCastExpression":
          return this.isAssignable(s.expression, r);
        case "TSParameterProperty":
          return !0;
        default:
          return super.isAssignable(s, r);
      }
    }
    toAssignable(s, r = !1) {
      switch (s.type) {
        case "ParenthesizedExpression":
          this.toAssignableParenthesizedExpression(s, r);
          break;
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
          r ? this.expressionScope.recordArrowParameterBindingError(yt.UnexpectedTypeCastInParameter, s) : this.raise(yt.UnexpectedTypeCastInParameter,
          s), this.toAssignable(s.expression, r);
          break;
        case "AssignmentExpression":
          !r && s.left.type === "TSTypeCastExpression" && (s.left = this.typeCastToParameter(s.left));
        default:
          super.toAssignable(s, r);
      }
    }
    toAssignableParenthesizedExpression(s, r) {
      switch (s.expression.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
        case "ParenthesizedExpression":
          this.toAssignable(s.expression, r);
          break;
        default:
          super.toAssignable(s, r);
      }
    }
    checkToRestConversion(s, r) {
      switch (s.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
        case "TSNonNullExpression":
          this.checkToRestConversion(s.expression, !1);
          break;
        default:
          super.checkToRestConversion(s, r);
      }
    }
    isValidLVal(s, r, i) {
      switch (s) {
        case "TSTypeCastExpression":
          return !0;
        case "TSParameterProperty":
          return "parameter";
        case "TSNonNullExpression":
        case "TSInstantiationExpression":
          return "expression";
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
          return (i !== 64 || !r) && ["expression", !0];
        default:
          return super.isValidLVal(s, r, i);
      }
    }
    parseBindingAtom() {
      return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
    }
    parseMaybeDecoratorArguments(s, r) {
      if (this.match(47) || this.match(51)) {
        let i = this.tsParseTypeArgumentsInExpression();
        if (this.match(10)) {
          let a = super.parseMaybeDecoratorArguments(s, r);
          return a.typeParameters = i, a;
        }
        this.unexpected(null, 10);
      }
      return super.parseMaybeDecoratorArguments(s, r);
    }
    checkCommaAfterRest(s) {
      return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === s ? (this.next(), !1) : super.checkCommaAfterRest(
      s);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(35) || this.match(14) || super.isClassProperty();
    }
    parseMaybeDefault(s, r) {
      let i = super.parseMaybeDefault(s, r);
      return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(yt.TypeAnnotationAfterAssign,
      i.typeAnnotation), i;
    }
    getTokenFromCode(s) {
      if (this.state.inType) {
        if (s === 62) {
          this.finishOp(48, 1);
          return;
        }
        if (s === 60) {
          this.finishOp(47, 1);
          return;
        }
      }
      super.getTokenFromCode(s);
    }
    reScan_lt_gt() {
      let {
        type: s
      } = this.state;
      s === 47 ? (this.state.pos -= 1, this.readToken_lt()) : s === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      let {
        type: s
      } = this.state;
      return s === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : s;
    }
    toAssignableList(s, r, i) {
      for (let a = 0; a < s.length; a++) {
        let o = s[a];
        o?.type === "TSTypeCastExpression" && (s[a] = this.typeCastToParameter(o));
      }
      super.toAssignableList(s, r, i);
    }
    typeCastToParameter(s) {
      return s.expression.typeAnnotation = s.typeAnnotation, this.resetEndLocation(s.expression, s.typeAnnotation.loc.end), s.expression;
    }
    shouldParseArrow(s) {
      return this.match(14) ? s.every((r) => this.isAssignable(r, !0)) : super.shouldParseArrow(s);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    canHaveLeadingDecorator() {
      return super.canHaveLeadingDecorator() || this.isAbstractClass();
    }
    jsxParseOpeningElementAfterName(s) {
      if (this.match(47) || this.match(51)) {
        let r = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
        r && (s.typeParameters = r);
      }
      return super.jsxParseOpeningElementAfterName(s);
    }
    getGetterSetterExpectedParamCount(s) {
      let r = super.getGetterSetterExpectedParamCount(s), a = this.getObjectOrClassMethodParams(s)[0];
      return a && this.isThisParam(a) ? r + 1 : r;
    }
    parseCatchClauseParam() {
      let s = super.parseCatchClauseParam(), r = this.tsTryParseTypeAnnotation();
      return r && (s.typeAnnotation = r, this.resetEndLocation(s)), s;
    }
    tsInAmbientContext(s) {
      let {
        isAmbientContext: r,
        strict: i
      } = this.state;
      this.state.isAmbientContext = !0, this.state.strict = !1;
      try {
        return s();
      } finally {
        this.state.isAmbientContext = r, this.state.strict = i;
      }
    }
    parseClass(s, r, i) {
      let a = this.state.inAbstractClass;
      this.state.inAbstractClass = !!s.abstract;
      try {
        return super.parseClass(s, r, i);
      } finally {
        this.state.inAbstractClass = a;
      }
    }
    tsParseAbstractDeclaration(s, r) {
      if (this.match(80))
        return s.abstract = !0, this.maybeTakeDecorators(r, this.parseClass(s, !0, !1));
      if (this.isContextual(129)) {
        if (!this.hasFollowingLineBreak())
          return s.abstract = !0, this.raise(yt.NonClassMethodPropertyHasAbstractModifer, s), this.tsParseInterfaceDeclaration(s);
      } else
        this.unexpected(null, 80);
    }
    parseMethod(s, r, i, a, o, l, u) {
      let c = super.parseMethod(s, r, i, a, o, l, u);
      if (c.abstract && (this.hasPlugin("estree") ? c.value : c).body) {
        let {
          key: f
        } = c;
        this.raise(yt.AbstractMethodHasImplementation, c, {
          methodName: f.type === "Identifier" && !c.computed ? f.name : `[${this.input.slice(this.offsetToSourcePos(f.start), this.offsetToSourcePos(
          f.end))}]`
        });
      }
      return c;
    }
    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(s, r, i, a) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !1, i), this.finishNode(s, "ExportSpecifier")) : (s.exportKind = "value",
      super.parseExportSpecifier(s, r, i, a));
    }
    parseImportSpecifier(s, r, i, a, o) {
      return !r && a ? (this.parseTypeOnlyImportExportSpecifier(s, !0, i), this.finishNode(s, "ImportSpecifier")) : (s.importKind = "value",
      super.parseImportSpecifier(s, r, i, a, i ? 4098 : 4096));
    }
    parseTypeOnlyImportExportSpecifier(s, r, i) {
      let a = r ? "imported" : "local", o = r ? "local" : "exported", l = s[a], u, c = !1, p = !0, h = l.loc.start;
      if (this.isContextual(93)) {
        let d = this.parseIdentifier();
        if (this.isContextual(93)) {
          let m = this.parseIdentifier();
          Uo(this.state.type) ? (c = !0, l = d, u = r ? this.parseIdentifier() : this.parseModuleExportName(), p = !1) : (u = m, p = !1);
        } else Uo(this.state.type) ? (p = !1, u = r ? this.parseIdentifier() : this.parseModuleExportName()) : (c = !0, l = d);
      } else Uo(this.state.type) && (c = !0, r ? (l = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(l.name, l.loc.
      start, !0, !0)) : l = this.parseModuleExportName());
      c && i && this.raise(r ? yt.TypeModifierIsUsedInTypeImports : yt.TypeModifierIsUsedInTypeExports, h), s[a] = l, s[o] = u;
      let f = r ? "importKind" : "exportKind";
      s[f] = c ? "type" : "value", p && this.eatContextual(93) && (s[o] = r ? this.parseIdentifier() : this.parseModuleExportName()), s[o] ||
      (s[o] = fc(s[a])), r && this.checkIdentifier(s[o], c ? 4098 : 4096);
    }
  }, "typescript");
  function ads(t) {
    if (t.type !== "MemberExpression") return !1;
    let {
      computed: e,
      property: s
    } = t;
    return e && s.type !== "StringLiteral" && (s.type !== "TemplateLiteral" || s.expressions.length > 0) ? !1 : Xfe(t.object);
  }
  n(ads, "isPossiblyLiteralEnum");
  function ods(t, e) {
    var s;
    let {
      type: r
    } = t;
    if ((s = t.extra) != null && s.parenthesized)
      return !1;
    if (e) {
      if (r === "Literal") {
        let {
          value: i
        } = t;
        if (typeof i == "string" || typeof i == "boolean")
          return !0;
      }
    } else if (r === "StringLiteral" || r === "BooleanLiteral")
      return !0;
    return !!(Yfe(t, e) || lds(t, e) || r === "TemplateLiteral" && t.expressions.length === 0 || ads(t));
  }
  n(ods, "isValidAmbientConstInitializer");
  function Yfe(t, e) {
    return e ? t.type === "Literal" && (typeof t.value == "number" || "bigint" in t) : t.type === "NumericLiteral" || t.type === "BigIntLite\
ral";
  }
  n(Yfe, "isNumber");
  function lds(t, e) {
    if (t.type === "UnaryExpression") {
      let {
        operator: s,
        argument: r
      } = t;
      if (s === "-" && Yfe(r, e))
        return !0;
    }
    return !1;
  }
  n(lds, "isNegativeNumber");
  function Xfe(t) {
    return t.type === "Identifier" ? !0 : t.type !== "MemberExpression" || t.computed ? !1 : Xfe(t.object);
  }
  n(Xfe, "isUncomputedMemberExpressionChain");
  var Ofe = hc`placeholders`({
    ClassNameIsRequired: "A class name is required.",
    UnexpectedSpace: "Unexpected space in placeholder."
  }), uds = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "PlaceholdersParserMixin");
    }
    parsePlaceholder(s) {
      if (this.match(133)) {
        let r = this.startNode();
        return this.next(), this.assertNoSpace(), r.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(133), this.finishPlaceholder(
        r, s);
      }
    }
    finishPlaceholder(s, r) {
      let i = s;
      return (!i.expectedNode || !i.type) && (i = this.finishNode(i, "Placeholder")), i.expectedNode = r, i;
    }
    getTokenFromCode(s) {
      s === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(133, 2) : super.getTokenFromCode(s);
    }
    parseExprAtom(s) {
      return this.parsePlaceholder("Expression") || super.parseExprAtom(s);
    }
    parseIdentifier(s) {
      return this.parsePlaceholder("Identifier") || super.parseIdentifier(s);
    }
    checkReservedWord(s, r, i, a) {
      s !== void 0 && super.checkReservedWord(s, r, i, a);
    }
    parseBindingAtom() {
      return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
    }
    isValidLVal(s, r, i) {
      return s === "Placeholder" || super.isValidLVal(s, r, i);
    }
    toAssignable(s, r) {
      s && s.type === "Placeholder" && s.expectedNode === "Expression" ? s.expectedNode = "Pattern" : super.toAssignable(s, r);
    }
    chStartsBindingIdentifier(s, r) {
      return !!(super.chStartsBindingIdentifier(s, r) || this.lookahead().type === 133);
    }
    verifyBreakContinue(s, r) {
      s.label && s.label.type === "Placeholder" || super.verifyBreakContinue(s, r);
    }
    parseExpressionStatement(s, r) {
      var i;
      if (r.type !== "Placeholder" || (i = r.extra) != null && i.parenthesized)
        return super.parseExpressionStatement(s, r);
      if (this.match(14)) {
        let o = s;
        return o.label = this.finishPlaceholder(r, "Identifier"), this.next(), o.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(),
        this.finishNode(o, "LabeledStatement");
      }
      this.semicolon();
      let a = s;
      return a.name = r.name, this.finishPlaceholder(a, "Statement");
    }
    parseBlock(s, r, i) {
      return this.parsePlaceholder("BlockStatement") || super.parseBlock(s, r, i);
    }
    parseFunctionId(s) {
      return this.parsePlaceholder("Identifier") || super.parseFunctionId(s);
    }
    parseClass(s, r, i) {
      let a = r ? "ClassDeclaration" : "ClassExpression";
      this.next();
      let o = this.state.strict, l = this.parsePlaceholder("Identifier");
      if (l)
        if (this.match(81) || this.match(133) || this.match(5))
          s.id = l;
        else {
          if (i || !r)
            return s.id = null, s.body = this.finishPlaceholder(l, "ClassBody"), this.finishNode(s, a);
          throw this.raise(Ofe.ClassNameIsRequired, this.state.startLoc);
        }
      else
        this.parseClassId(s, r, i);
      return super.parseClassSuper(s), s.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!s.superClass, o), this.finishNode(
      s, a);
    }
    parseExport(s, r) {
      let i = this.parsePlaceholder("Identifier");
      if (!i) return super.parseExport(s, r);
      let a = s;
      if (!this.isContextual(98) && !this.match(12))
        return a.specifiers = [], a.source = null, a.declaration = this.finishPlaceholder(i, "Declaration"), this.finishNode(a, "ExportNamed\
Declaration");
      this.expectPlugin("exportDefaultFrom");
      let o = this.startNode();
      return o.exported = i, a.specifiers = [this.finishNode(o, "ExportDefaultSpecifier")], super.parseExport(a, r);
    }
    isExportDefaultSpecifier() {
      if (this.match(65)) {
        let s = this.nextTokenStart();
        if (this.isUnparsedContextual(s, "from") && this.input.startsWith(Vp(133), this.nextTokenStartSince(s + 4)))
          return !0;
      }
      return super.isExportDefaultSpecifier();
    }
    maybeParseExportDefaultSpecifier(s, r) {
      var i;
      return (i = s.specifiers) != null && i.length ? !0 : super.maybeParseExportDefaultSpecifier(s, r);
    }
    checkExport(s) {
      let {
        specifiers: r
      } = s;
      r != null && r.length && (s.specifiers = r.filter((i) => i.exported.type === "Placeholder")), super.checkExport(s), s.specifiers = r;
    }
    parseImport(s) {
      let r = this.parsePlaceholder("Identifier");
      if (!r) return super.parseImport(s);
      if (s.specifiers = [], !this.isContextual(98) && !this.match(12))
        return s.source = this.finishPlaceholder(r, "StringLiteral"), this.semicolon(), this.finishNode(s, "ImportDeclaration");
      let i = this.startNodeAtNode(r);
      return i.local = r, s.specifiers.push(this.finishNode(i, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(
      s) || this.parseNamedImportSpecifiers(s)), this.expectContextual(98), s.source = this.parseImportSource(), this.semicolon(), this.finishNode(
      s, "ImportDeclaration");
    }
    parseImportSource() {
      return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
    }
    assertNoSpace() {
      this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index) && this.raise(Ofe.UnexpectedSpace, this.state.lastTokEndLoc);
    }
  }, "placeholders"), cds = /* @__PURE__ */ n((t) => class extends t {
    static {
      n(this, "V8IntrinsicMixin");
    }
    parseV8Intrinsic() {
      if (this.match(54)) {
        let s = this.state.startLoc, r = this.startNode();
        if (this.next(), or(this.state.type)) {
          let i = this.parseIdentifierName(), a = this.createIdentifier(r, i);
          if (a.type = "V8IntrinsicIdentifier", this.match(10))
            return a;
        }
        this.unexpected(s);
      }
    }
    parseExprAtom(s) {
      return this.parseV8Intrinsic() || super.parseExprAtom(s);
    }
  }, "v8intrinsic"), _fe = ["minimal", "fsharp", "hack", "smart"], Lfe = ["^^", "@@", "^", "%", "#"];
  function pds(t) {
    if (t.has("decorators")) {
      if (t.has("decorators-legacy"))
        throw new Error("Cannot use the decorators and decorators-legacy plugin together");
      let s = t.get("decorators").decoratorsBeforeExport;
      if (s != null && typeof s != "boolean")
        throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
      let r = t.get("decorators").allowCallParenthesized;
      if (r != null && typeof r != "boolean")
        throw new Error("'allowCallParenthesized' must be a boolean.");
    }
    if (t.has("flow") && t.has("typescript"))
      throw new Error("Cannot combine flow and typescript plugins.");
    if (t.has("placeholders") && t.has("v8intrinsic"))
      throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
    if (t.has("pipelineOperator")) {
      var e;
      let s = t.get("pipelineOperator").proposal;
      if (!_fe.includes(s)) {
        let i = _fe.map((a) => `"${a}"`).join(", ");
        throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${i}.`);
      }
      let r = ((e = t.get("recordAndTuple")) == null ? void 0 : e.syntaxType) === "hash";
      if (s === "hack") {
        if (t.has("placeholders"))
          throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
        if (t.has("v8intrinsic"))
          throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
        let i = t.get("pipelineOperator").topicToken;
        if (!Lfe.includes(i)) {
          let a = Lfe.map((o) => `"${o}"`).join(", ");
          throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${a}\
.`);
        }
        if (i === "#" && r)
          throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["\
recordAndTuple", t.get("recordAndTuple")])}\`.`);
      } else if (s === "smart" && r)
        throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", t.
        get("recordAndTuple")])}\`.`);
    }
    if (t.has("moduleAttributes")) {
      if (t.has("deprecatedImportAssert") || t.has("importAssertions"))
        throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");
      if (t.get("moduleAttributes").version !== "may-2020")
        throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the on\
ly supported value is 'may-2020'.");
    }
    if (t.has("importAssertions") && t.has("deprecatedImportAssert"))
      throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");
    if (!t.has("deprecatedImportAssert") && t.has("importAttributes") && t.get("importAttributes").deprecatedAssertSyntax && t.set("deprecat\
edImportAssert", {}), t.has("recordAndTuple")) {
      let s = t.get("recordAndTuple").syntaxType;
      if (s != null) {
        let r = ["hash", "bar"];
        if (!r.includes(s))
          throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + r.map((i) => `'${i}'`).join(", "));
      }
    }
    if (t.has("asyncDoExpressions") && !t.has("doExpressions")) {
      let s = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
      throw s.missingPlugins = "doExpressions", s;
    }
    if (t.has("optionalChainingAssign") && t.get("optionalChainingAssign").version !== "2023-07")
      throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, th\
e only supported value is '2023-07'.");
  }
  n(pds, "validatePlugins");
  var zfe = {
    estree: ffs,
    jsx: tds,
    flow: Zfs,
    typescript: nds,
    v8intrinsic: cds,
    placeholders: uds
  }, hds = Object.keys(zfe), cR = class extends uR {
    static {
      n(this, "ExpressionParser");
    }
    checkProto(e, s, r, i) {
      if (e.type === "SpreadElement" || this.isObjectMethod(e) || e.computed || e.shorthand)
        return;
      let a = e.key;
      if ((a.type === "Identifier" ? a.name : a.value) === "__proto__") {
        if (s) {
          this.raise(se.RecordNoProto, a);
          return;
        }
        r.used && (i ? i.doubleProtoLoc === null && (i.doubleProtoLoc = a.loc.start) : this.raise(se.DuplicateProto, a)), r.used = !0;
      }
    }
    shouldExitDescending(e, s) {
      return e.type === "ArrowFunctionExpression" && this.offsetToSourcePos(e.start) === s;
    }
    getExpression() {
      this.enterInitialScopes(), this.nextToken();
      let e = this.parseExpression();
      return this.match(140) || this.unexpected(), this.finalizeRemainingComments(), e.comments = this.comments, e.errors = this.state.errors,
      this.optionFlags & 128 && (e.tokens = this.tokens), e;
    }
    parseExpression(e, s) {
      return e ? this.disallowInAnd(() => this.parseExpressionBase(s)) : this.allowInAnd(() => this.parseExpressionBase(s));
    }
    parseExpressionBase(e) {
      let s = this.state.startLoc, r = this.parseMaybeAssign(e);
      if (this.match(12)) {
        let i = this.startNodeAt(s);
        for (i.expressions = [r]; this.eat(12); )
          i.expressions.push(this.parseMaybeAssign(e));
        return this.toReferencedList(i.expressions), this.finishNode(i, "SequenceExpression");
      }
      return r;
    }
    parseMaybeAssignDisallowIn(e, s) {
      return this.disallowInAnd(() => this.parseMaybeAssign(e, s));
    }
    parseMaybeAssignAllowIn(e, s) {
      return this.allowInAnd(() => this.parseMaybeAssign(e, s));
    }
    setOptionalParametersError(e, s) {
      var r;
      e.optionalParametersLoc = (r = s?.loc) != null ? r : this.state.startLoc;
    }
    parseMaybeAssign(e, s) {
      let r = this.state.startLoc;
      if (this.isContextual(108) && this.prodParam.hasYield) {
        let l = this.parseYield();
        return s && (l = s.call(this, l, r)), l;
      }
      let i;
      e ? i = !1 : (e = new yy(), i = !0);
      let {
        type: a
      } = this.state;
      (a === 10 || or(a)) && (this.state.potentialArrowAt = this.state.start);
      let o = this.parseMaybeConditional(e);
      if (s && (o = s.call(this, o, r)), Tfs(this.state.type)) {
        let l = this.startNodeAt(r), u = this.state.value;
        if (l.operator = u, this.match(29)) {
          this.toAssignable(o, !0), l.left = o;
          let c = r.index;
          e.doubleProtoLoc != null && e.doubleProtoLoc.index >= c && (e.doubleProtoLoc = null), e.shorthandAssignLoc != null && e.shorthandAssignLoc.
          index >= c && (e.shorthandAssignLoc = null), e.privateKeyLoc != null && e.privateKeyLoc.index >= c && (this.checkDestructuringPrivate(
          e), e.privateKeyLoc = null);
        } else
          l.left = o;
        return this.next(), l.right = this.parseMaybeAssign(), this.checkLVal(o, this.finishNode(l, "AssignmentExpression")), l;
      } else i && this.checkExpressionErrors(e, !0);
      return o;
    }
    parseMaybeConditional(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprOps(e);
      return this.shouldExitDescending(i, r) ? i : this.parseConditional(i, s, e);
    }
    parseConditional(e, s, r) {
      if (this.eat(17)) {
        let i = this.startNodeAt(s);
        return i.test = e, i.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), i.alternate = this.parseMaybeAssign(), this.finishNode(
        i, "ConditionalExpression");
      }
      return e;
    }
    parseMaybeUnaryOrPrivate(e) {
      return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(e);
    }
    parseExprOps(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseMaybeUnaryOrPrivate(e);
      return this.shouldExitDescending(i, r) ? i : this.parseExprOp(i, s, -1);
    }
    parseExprOp(e, s, r) {
      if (this.isPrivateName(e)) {
        let a = this.getPrivateNameSV(e);
        (r >= mv(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(se.PrivateInExpectedIn, e, {
          identifierName: a
        }), this.classScope.usePrivateName(a, e.loc.start);
      }
      let i = this.state.type;
      if (xfs(i) && (this.prodParam.hasIn || !this.match(58))) {
        let a = mv(i);
        if (a > r) {
          if (i === 39) {
            if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
              return e;
            this.checkPipelineAtInfixOperator(e, s);
          }
          let o = this.startNodeAt(s);
          o.left = e, o.operator = this.state.value;
          let l = i === 41 || i === 42, u = i === 40;
          if (u && (a = mv(42)), this.next(), i === 39 && this.hasPlugin(["pipelineOperator", {
            proposal: "minimal"
          }]) && this.state.type === 96 && this.prodParam.hasAwait)
            throw this.raise(se.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
          o.right = this.parseExprOpRightExpr(i, a);
          let c = this.finishNode(o, l || u ? "LogicalExpression" : "BinaryExpression"), p = this.state.type;
          if (u && (p === 41 || p === 42) || l && p === 40)
            throw this.raise(se.MixingCoalesceWithLogical, this.state.startLoc);
          return this.parseExprOp(c, s, r);
        }
      }
      return e;
    }
    parseExprOpRightExpr(e, s) {
      let r = this.state.startLoc;
      switch (e) {
        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(se.PipeBodyIsTighter, this.state.startLoc);
                return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(e, s), r);
              });
            case "fsharp":
              return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(s));
          }
        default:
          return this.parseExprOpBaseRightExpr(e, s);
      }
    }
    parseExprOpBaseRightExpr(e, s) {
      let r = this.state.startLoc;
      return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, vfs(e) ? s - 1 : s);
    }
    parseHackPipeBody() {
      var e;
      let {
        startLoc: s
      } = this.state, r = this.parseMaybeAssign();
      return afs.has(r.type) && !((e = r.extra) != null && e.parenthesized) && this.raise(se.PipeUnparenthesizedBody, s, {
        type: r.type
      }), this.topicReferenceWasUsedInCurrentContext() || this.raise(se.PipeTopicUnused, s), r;
    }
    checkExponentialAfterUnary(e) {
      this.match(57) && this.raise(se.UnexpectedTokenUnaryExponentiation, e.argument);
    }
    parseMaybeUnary(e, s) {
      let r = this.state.startLoc, i = this.isContextual(96);
      if (i && this.recordAwaitIfAllowed()) {
        this.next();
        let u = this.parseAwait(r);
        return s || this.checkExponentialAfterUnary(u), u;
      }
      let a = this.match(34), o = this.startNode();
      if (Pfs(this.state.type)) {
        o.operator = this.state.value, o.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
        let u = this.match(89);
        if (this.next(), o.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(e, !0), this.state.strict && u) {
          let c = o.argument;
          c.type === "Identifier" ? this.raise(se.StrictDelete, o) : this.hasPropertyAsPrivateName(c) && this.raise(se.DeletePrivateField, o);
        }
        if (!a)
          return s || this.checkExponentialAfterUnary(o), this.finishNode(o, "UnaryExpression");
      }
      let l = this.parseUpdate(o, a, e);
      if (i) {
        let {
          type: u
        } = this.state;
        if ((this.hasPlugin("v8intrinsic") ? H6(u) : H6(u) && !this.match(54)) && !this.isAmbiguousAwait())
          return this.raiseOverwrite(se.AwaitNotInAsyncContext, r), this.parseAwait(r);
      }
      return l;
    }
    parseUpdate(e, s, r) {
      if (s) {
        let o = e;
        return this.checkLVal(o.argument, this.finishNode(o, "UpdateExpression")), e;
      }
      let i = this.state.startLoc, a = this.parseExprSubscripts(r);
      if (this.checkExpressionErrors(r, !1)) return a;
      for (; Sfs(this.state.type) && !this.canInsertSemicolon(); ) {
        let o = this.startNodeAt(i);
        o.operator = this.state.value, o.prefix = !1, o.argument = a, this.next(), this.checkLVal(a, a = this.finishNode(o, "UpdateExpressio\
n"));
      }
      return a;
    }
    parseExprSubscripts(e) {
      let s = this.state.startLoc, r = this.state.potentialArrowAt, i = this.parseExprAtom(e);
      return this.shouldExitDescending(i, r) ? i : this.parseSubscripts(i, s);
    }
    parseSubscripts(e, s, r) {
      let i = {
        optionalChainMember: !1,
        maybeAsyncArrow: this.atPossibleAsyncArrow(e),
        stop: !1
      };
      do
        e = this.parseSubscript(e, s, r, i), i.maybeAsyncArrow = !1;
      while (!i.stop);
      return e;
    }
    parseSubscript(e, s, r, i) {
      let {
        type: a
      } = this.state;
      if (!r && a === 15)
        return this.parseBind(e, s, r, i);
      if (Tv(a))
        return this.parseTaggedTemplateExpression(e, s, i);
      let o = !1;
      if (a === 18) {
        if (r && (this.raise(se.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
          return i.stop = !0, e;
        i.optionalChainMember = o = !0, this.next();
      }
      if (!r && this.match(10))
        return this.parseCoverCallAndAsyncArrowHead(e, s, i, o);
      {
        let l = this.eat(0);
        return l || o || this.eat(16) ? this.parseMember(e, s, i, l, o) : (i.stop = !0, e);
      }
    }
    parseMember(e, s, r, i, a) {
      let o = this.startNodeAt(s);
      return o.object = e, o.computed = i, i ? (o.property = this.parseExpression(), this.expect(3)) : this.match(139) ? (e.type === "Super" &&
      this.raise(se.SuperPrivateField, s), this.classScope.usePrivateName(this.state.value, this.state.startLoc), o.property = this.parsePrivateName()) :
      o.property = this.parseIdentifier(!0), r.optionalChainMember ? (o.optional = a, this.finishNode(o, "OptionalMemberExpression")) : this.
      finishNode(o, "MemberExpression");
    }
    parseBind(e, s, r, i) {
      let a = this.startNodeAt(s);
      return a.object = e, this.next(), a.callee = this.parseNoCallExpr(), i.stop = !0, this.parseSubscripts(this.finishNode(a, "BindExpress\
ion"), s, r);
    }
    parseCoverCallAndAsyncArrowHead(e, s, r, i) {
      let a = this.state.maybeInArrowParameters, o = null;
      this.state.maybeInArrowParameters = !0, this.next();
      let l = this.startNodeAt(s);
      l.callee = e;
      let {
        maybeAsyncArrow: u,
        optionalChainMember: c
      } = r;
      u && (this.expressionScope.enter($fs()), o = new yy()), c && (l.optional = i), i ? l.arguments = this.parseCallExpressionArguments(11) :
      l.arguments = this.parseCallExpressionArguments(11, e.type !== "Super", l, o);
      let p = this.finishCallExpression(l, c);
      return u && this.shouldParseAsyncArrow() && !i ? (r.stop = !0, this.checkDestructuringPrivate(o), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), p = this.parseAsyncArrowFromCallExpression(this.startNodeAt(s), p)) : (u && (this.checkExpressionErrors(o,
      !0), this.expressionScope.exit()), this.toReferencedArguments(p)), this.state.maybeInArrowParameters = a, p;
    }
    toReferencedArguments(e, s) {
      this.toReferencedListDeep(e.arguments, s);
    }
    parseTaggedTemplateExpression(e, s, r) {
      let i = this.startNodeAt(s);
      return i.tag = e, i.quasi = this.parseTemplate(!0), r.optionalChainMember && this.raise(se.OptionalChainingNoTemplate, s), this.finishNode(
      i, "TaggedTemplateExpression");
    }
    atPossibleAsyncArrow(e) {
      return e.type === "Identifier" && e.name === "async" && this.state.lastTokEndLoc.index === e.end && !this.canInsertSemicolon() && e.end -
      e.start === 5 && this.offsetToSourcePos(e.start) === this.state.potentialArrowAt;
    }
    finishCallExpression(e, s) {
      if (e.callee.type === "Import")
        if (e.arguments.length === 0 || e.arguments.length > 2)
          this.raise(se.ImportCallArity, e);
        else
          for (let r of e.arguments)
            r.type === "SpreadElement" && this.raise(se.ImportCallSpreadArgument, r);
      return this.finishNode(e, s ? "OptionalCallExpression" : "CallExpression");
    }
    parseCallExpressionArguments(e, s, r, i) {
      let a = [], o = !0, l = this.state.inFSharpPipelineDirectBody;
      for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          r && this.addTrailingCommaExtraToNode(r), this.next();
          break;
        }
        a.push(this.parseExprListItem(!1, i, s));
      }
      return this.state.inFSharpPipelineDirectBody = l, a;
    }
    shouldParseAsyncArrow() {
      return this.match(19) && !this.canInsertSemicolon();
    }
    parseAsyncArrowFromCallExpression(e, s) {
      var r;
      return this.resetPreviousNodeTrailingComments(s), this.expect(19), this.parseArrowExpression(e, s.arguments, !0, (r = s.extra) == null ?
      void 0 : r.trailingCommaLoc), s.innerComments && HT(e, s.innerComments), s.callee.trailingComments && HT(e, s.callee.trailingComments),
      e;
    }
    parseNoCallExpr() {
      let e = this.state.startLoc;
      return this.parseSubscripts(this.parseExprAtom(), e, !0);
    }
    parseExprAtom(e) {
      let s, r = null, {
        type: i
      } = this.state;
      switch (i) {
        case 79:
          return this.parseSuper();
        case 83:
          return s = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(s) : this.match(10) ? this.optionFlags & 256 ?
          this.parseImportCall(s) : this.finishNode(s, "Import") : (this.raise(se.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(
          s, "Import"));
        case 78:
          return s = this.startNode(), this.next(), this.finishNode(s, "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: {
          let a = this.state.potentialArrowAt === this.state.start;
          return this.parseParenAndDistinguishExpression(a);
        }
        case 2:
        case 1:
          return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
        case 0:
          return this.parseArrayLike(3, !0, !1, e);
        case 6:
        case 7:
          return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
        case 5:
          return this.parseObjectLike(8, !1, !1, e);
        case 68:
          return this.parseFunctionOrFunctionSent();
        case 26:
          r = this.parseDecorators();
        case 80:
          return this.parseClass(this.maybeTakeDecorators(r, this.startNode()), !1);
        case 77:
          return this.parseNewOrNewTarget();
        case 25:
        case 24:
          return this.parseTemplate(!1);
        case 15: {
          s = this.startNode(), this.next(), s.object = null;
          let a = s.callee = this.parseNoCallExpr();
          if (a.type === "MemberExpression")
            return this.finishNode(s, "BindExpression");
          throw this.raise(se.UnsupportedBind, a);
        }
        case 139:
          return this.raise(se.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: {
          let a = this.getPluginOption("pipelineOperator", "proposal");
          if (a)
            return this.parseTopicReference(a);
          this.unexpected();
          break;
        }
        case 47: {
          let a = this.input.codePointAt(this.nextTokenStart());
          pc(a) || a === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
          break;
        }
        default:
          if (i === 137)
            return this.parseDecimalLiteral(this.state.value);
          if (or(i)) {
            if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
              return this.parseModuleExpression();
            let a = this.state.potentialArrowAt === this.state.start, o = this.state.containsEsc, l = this.parseIdentifier();
            if (!o && l.name === "async" && !this.canInsertSemicolon()) {
              let {
                type: u
              } = this.state;
              if (u === 68)
                return this.resetPreviousNodeTrailingComments(l), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(l));
              if (or(u))
                return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(l)) : l;
              if (u === 90)
                return this.resetPreviousNodeTrailingComments(l), this.parseDo(this.startNodeAtNode(l), !0);
            }
            return a && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(l), [l],
            !1)) : l;
          } else
            this.unexpected();
      }
    }
    parseTopicReferenceThenEqualsSign(e, s) {
      let r = this.getPluginOption("pipelineOperator", "proposal");
      if (r)
        return this.state.type = e, this.state.value = s, this.state.pos--, this.state.end--, this.state.endLoc = Jn(this.state.endLoc, -1),
        this.parseTopicReference(r);
      this.unexpected();
    }
    parseTopicReference(e) {
      let s = this.startNode(), r = this.state.startLoc, i = this.state.type;
      return this.next(), this.finishTopicReference(s, r, e, i);
    }
    finishTopicReference(e, s, r, i) {
      if (this.testTopicReferenceConfiguration(r, s, i)) {
        let a = r === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference";
        return this.topicReferenceIsAllowedInCurrentContext() || this.raise(r === "smart" ? se.PrimaryTopicNotAllowed : se.PipeTopicUnbound,
        s), this.registerTopicReference(), this.finishNode(e, a);
      } else
        throw this.raise(se.PipeTopicUnconfiguredToken, s, {
          token: Vp(i)
        });
    }
    testTopicReferenceConfiguration(e, s, r) {
      switch (e) {
        case "hack":
          return this.hasPlugin(["pipelineOperator", {
            topicToken: Vp(r)
          }]);
        case "smart":
          return r === 27;
        default:
          throw this.raise(se.PipeTopicRequiresHackPipes, s);
      }
    }
    parseAsyncArrowUnaryFunction(e) {
      this.prodParam.enter(yv(!0, this.prodParam.hasYield));
      let s = [this.parseIdentifier()];
      return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(se.LineTerminatorBeforeArrow, this.state.curPosition()), this.
      expect(19), this.parseArrowExpression(e, s, !0);
    }
    parseDo(e, s) {
      this.expectPlugin("doExpressions"), s && this.expectPlugin("asyncDoExpressions"), e.async = s, this.next();
      let r = this.state.labels;
      return this.state.labels = [], s ? (this.prodParam.enter(2), e.body = this.parseBlock(), this.prodParam.exit()) : e.body = this.parseBlock(),
      this.state.labels = r, this.finishNode(e, "DoExpression");
    }
    parseSuper() {
      let e = this.startNode();
      return this.next(), this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16) ? this.raise(se.SuperNotAllowed, e) : !this.
      scope.allowSuper && !(this.optionFlags & 16) && this.raise(se.UnexpectedSuper, e), !this.match(10) && !this.match(0) && !this.match(16) &&
      this.raise(se.UnsupportedSuper, e), this.finishNode(e, "Super");
    }
    parsePrivateName() {
      let e = this.startNode(), s = this.startNodeAt(Jn(this.state.startLoc, 1)), r = this.state.value;
      return this.next(), e.id = this.createIdentifier(s, r), this.finishNode(e, "PrivateName");
    }
    parseFunctionOrFunctionSent() {
      let e = this.startNode();
      if (this.next(), this.prodParam.hasYield && this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "function");
        return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.
        parseMetaProperty(e, s, "sent");
      }
      return this.parseFunction(e);
    }
    parseMetaProperty(e, s, r) {
      e.meta = s;
      let i = this.state.containsEsc;
      return e.property = this.parseIdentifier(!0), (e.property.name !== r || i) && this.raise(se.UnsupportedMetaProperty, e.property, {
        target: s.name,
        onlyValidPropertyName: r
      }), this.finishNode(e, "MetaProperty");
    }
    parseImportMetaProperty(e) {
      let s = this.createIdentifier(this.startNodeAtNode(e), "import");
      if (this.next(), this.isContextual(101))
        this.inModule || this.raise(se.ImportMetaOutsideModule, s), this.sawUnambiguousESM = !0;
      else if (this.isContextual(105) || this.isContextual(97)) {
        let r = this.isContextual(105);
        if (this.expectPlugin(r ? "sourcePhaseImports" : "deferredImportEvaluation"), !(this.optionFlags & 256))
          throw this.raise(se.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
            phase: this.state.value
          });
        return this.next(), e.phase = r ? "source" : "defer", this.parseImportCall(e);
      }
      return this.parseMetaProperty(e, s, "meta");
    }
    parseLiteralAtNode(e, s, r) {
      return this.addExtra(r, "rawValue", e), this.addExtra(r, "raw", this.input.slice(this.offsetToSourcePos(r.start), this.state.end)), r.
      value = e, this.next(), this.finishNode(r, s);
    }
    parseLiteral(e, s) {
      let r = this.startNode();
      return this.parseLiteralAtNode(e, s, r);
    }
    parseStringLiteral(e) {
      return this.parseLiteral(e, "StringLiteral");
    }
    parseNumericLiteral(e) {
      return this.parseLiteral(e, "NumericLiteral");
    }
    parseBigIntLiteral(e) {
      return this.parseLiteral(e, "BigIntLiteral");
    }
    parseDecimalLiteral(e) {
      return this.parseLiteral(e, "DecimalLiteral");
    }
    parseRegExpLiteral(e) {
      let s = this.startNode();
      return this.addExtra(s, "raw", this.input.slice(this.offsetToSourcePos(s.start), this.state.end)), s.pattern = e.pattern, s.flags = e.
      flags, this.next(), this.finishNode(s, "RegExpLiteral");
    }
    parseBooleanLiteral(e) {
      let s = this.startNode();
      return s.value = e, this.next(), this.finishNode(s, "BooleanLiteral");
    }
    parseNullLiteral() {
      let e = this.startNode();
      return this.next(), this.finishNode(e, "NullLiteral");
    }
    parseParenAndDistinguishExpression(e) {
      let s = this.state.startLoc, r;
      this.next(), this.expressionScope.enter(Wfs());
      let i = this.state.maybeInArrowParameters, a = this.state.inFSharpPipelineDirectBody;
      this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
      let o = this.state.startLoc, l = [], u = new yy(), c = !0, p, h;
      for (; !this.match(11); ) {
        if (c)
          c = !1;
        else if (this.expect(12, u.optionalParametersLoc === null ? null : u.optionalParametersLoc), this.match(11)) {
          h = this.state.startLoc;
          break;
        }
        if (this.match(21)) {
          let m = this.state.startLoc;
          if (p = this.state.startLoc, l.push(this.parseParenItem(this.parseRestBinding(), m)), !this.checkCommaAfterRest(41))
            break;
        } else
          l.push(this.parseMaybeAssignAllowIn(u, this.parseParenItem));
      }
      let f = this.state.lastTokEndLoc;
      this.expect(11), this.state.maybeInArrowParameters = i, this.state.inFSharpPipelineDirectBody = a;
      let d = this.startNodeAt(s);
      return e && this.shouldParseArrow(l) && (d = this.parseArrow(d)) ? (this.checkDestructuringPrivate(u), this.expressionScope.validateAsPattern(),
      this.expressionScope.exit(), this.parseArrowExpression(d, l, !1), d) : (this.expressionScope.exit(), l.length || this.unexpected(this.
      state.lastTokStartLoc), h && this.unexpected(h), p && this.unexpected(p), this.checkExpressionErrors(u, !0), this.toReferencedListDeep(
      l, !0), l.length > 1 ? (r = this.startNodeAt(o), r.expressions = l, this.finishNode(r, "SequenceExpression"), this.resetEndLocation(r,
      f)) : r = l[0], this.wrapParenthesis(s, r));
    }
    wrapParenthesis(e, s) {
      if (!(this.optionFlags & 512))
        return this.addExtra(s, "parenthesized", !0), this.addExtra(s, "parenStart", e.index), this.takeSurroundingComments(s, e.index, this.
        state.lastTokEndLoc.index), s;
      let r = this.startNodeAt(e);
      return r.expression = s, this.finishNode(r, "ParenthesizedExpression");
    }
    shouldParseArrow(e) {
      return !this.canInsertSemicolon();
    }
    parseArrow(e) {
      if (this.eat(19))
        return e;
    }
    parseParenItem(e, s) {
      return e;
    }
    parseNewOrNewTarget() {
      let e = this.startNode();
      if (this.next(), this.match(16)) {
        let s = this.createIdentifier(this.startNodeAtNode(e), "new");
        this.next();
        let r = this.parseMetaProperty(e, s, "target");
        return !this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4) && this.raise(se.UnexpectedNewTarget, r), r;
      }
      return this.parseNew(e);
    }
    parseNew(e) {
      if (this.parseNewCallee(e), this.eat(10)) {
        let s = this.parseExprList(11);
        this.toReferencedList(s), e.arguments = s;
      } else
        e.arguments = [];
      return this.finishNode(e, "NewExpression");
    }
    parseNewCallee(e) {
      let s = this.match(83), r = this.parseNoCallExpr();
      e.callee = r, s && (r.type === "Import" || r.type === "ImportExpression") && this.raise(se.ImportCallNotNewExpression, r);
    }
    parseTemplateElement(e) {
      let {
        start: s,
        startLoc: r,
        end: i,
        value: a
      } = this.state, o = s + 1, l = this.startNodeAt(Jn(r, 1));
      a === null && (e || this.raise(se.InvalidEscapeSequenceTemplate, Jn(this.state.firstInvalidTemplateEscapePos, 1)));
      let u = this.match(24), c = u ? -1 : -2, p = i + c;
      l.value = {
        raw: this.input.slice(o, p).replace(/\r\n?/g, `
`),
        cooked: a === null ? null : a.slice(1, c)
      }, l.tail = u, this.next();
      let h = this.finishNode(l, "TemplateElement");
      return this.resetEndLocation(h, Jn(this.state.lastTokEndLoc, c)), h;
    }
    parseTemplate(e) {
      let s = this.startNode(), r = this.parseTemplateElement(e), i = [r], a = [];
      for (; !r.tail; )
        a.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), i.push(r = this.parseTemplateElement(e));
      return s.expressions = a, s.quasis = i, this.finishNode(s, "TemplateLiteral");
    }
    parseTemplateSubstitution() {
      return this.parseExpression();
    }
    parseObjectLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = /* @__PURE__ */ Object.create(null), l = !0, u = this.startNode();
      for (u.properties = [], this.next(); !this.match(e); ) {
        if (l)
          l = !1;
        else if (this.expect(12), this.match(e)) {
          this.addTrailingCommaExtraToNode(u);
          break;
        }
        let p;
        s ? p = this.parseBindingProperty() : (p = this.parsePropertyDefinition(i), this.checkProto(p, r, o, i)), r && !this.isObjectProperty(
        p) && p.type !== "SpreadElement" && this.raise(se.InvalidRecordProperty, p), p.shorthand && this.addExtra(p, "shorthand", !0), u.properties.
        push(p);
      }
      this.next(), this.state.inFSharpPipelineDirectBody = a;
      let c = "ObjectExpression";
      return s ? c = "ObjectPattern" : r && (c = "RecordExpression"), this.finishNode(u, c);
    }
    addTrailingCommaExtraToNode(e) {
      this.addExtra(e, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(e, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
    }
    maybeAsyncOrAccessorProp(e) {
      return !e.computed && e.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
    }
    parsePropertyDefinition(e) {
      let s = [];
      if (this.match(26))
        for (this.hasPlugin("decorators") && this.raise(se.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
          s.push(this.parseDecorator());
      let r = this.startNode(), i = !1, a = !1, o;
      if (this.match(21))
        return s.length && this.unexpected(), this.parseSpread();
      s.length && (r.decorators = s, s = []), r.method = !1, e && (o = this.state.startLoc);
      let l = this.eat(55);
      this.parsePropertyNamePrefixOperator(r);
      let u = this.state.containsEsc;
      if (this.parsePropertyName(r, e), !l && !u && this.maybeAsyncOrAccessorProp(r)) {
        let {
          key: c
        } = r, p = c.name;
        p === "async" && !this.hasPrecedingLineBreak() && (i = !0, this.resetPreviousNodeTrailingComments(c), l = this.eat(55), this.parsePropertyName(
        r)), (p === "get" || p === "set") && (a = !0, this.resetPreviousNodeTrailingComments(c), r.kind = p, this.match(55) && (l = !0, this.
        raise(se.AccessorIsGenerator, this.state.curPosition(), {
          kind: p
        }), this.next()), this.parsePropertyName(r));
      }
      return this.parseObjPropValue(r, o, l, i, !1, a, e);
    }
    getGetterSetterExpectedParamCount(e) {
      return e.kind === "get" ? 0 : 1;
    }
    getObjectOrClassMethodParams(e) {
      return e.params;
    }
    checkGetterSetterParams(e) {
      var s;
      let r = this.getGetterSetterExpectedParamCount(e), i = this.getObjectOrClassMethodParams(e);
      i.length !== r && this.raise(e.kind === "get" ? se.BadGetterArity : se.BadSetterArity, e), e.kind === "set" && ((s = i[i.length - 1]) ==
      null ? void 0 : s.type) === "RestElement" && this.raise(se.BadSetterRestParameter, e);
    }
    parseObjectMethod(e, s, r, i, a) {
      if (a) {
        let o = this.parseMethod(e, s, !1, !1, !1, "ObjectMethod");
        return this.checkGetterSetterParams(o), o;
      }
      if (r || s || this.match(10))
        return i && this.unexpected(), e.kind = "method", e.method = !0, this.parseMethod(e, s, r, !1, !1, "ObjectMethod");
    }
    parseObjectProperty(e, s, r, i) {
      if (e.shorthand = !1, this.eat(14))
        return e.value = r ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(i), this.finishNode(e, "ObjectProper\
ty");
      if (!e.computed && e.key.type === "Identifier") {
        if (this.checkReservedWord(e.key.name, e.key.loc.start, !0, !1), r)
          e.value = this.parseMaybeDefault(s, fc(e.key));
        else if (this.match(29)) {
          let a = this.state.startLoc;
          i != null ? i.shorthandAssignLoc === null && (i.shorthandAssignLoc = a) : this.raise(se.InvalidCoverInitializedName, a), e.value =
          this.parseMaybeDefault(s, fc(e.key));
        } else
          e.value = fc(e.key);
        return e.shorthand = !0, this.finishNode(e, "ObjectProperty");
      }
    }
    parseObjPropValue(e, s, r, i, a, o, l) {
      let u = this.parseObjectMethod(e, r, i, a, o) || this.parseObjectProperty(e, s, a, l);
      return u || this.unexpected(), u;
    }
    parsePropertyName(e, s) {
      if (this.eat(0))
        e.computed = !0, e.key = this.parseMaybeAssignAllowIn(), this.expect(3);
      else {
        let {
          type: r,
          value: i
        } = this.state, a;
        if (Uo(r))
          a = this.parseIdentifier(!0);
        else
          switch (r) {
            case 135:
              a = this.parseNumericLiteral(i);
              break;
            case 134:
              a = this.parseStringLiteral(i);
              break;
            case 136:
              a = this.parseBigIntLiteral(i);
              break;
            case 139: {
              let o = this.state.startLoc;
              s != null ? s.privateKeyLoc === null && (s.privateKeyLoc = o) : this.raise(se.UnexpectedPrivateField, o), a = this.parsePrivateName();
              break;
            }
            default:
              if (r === 137) {
                a = this.parseDecimalLiteral(i);
                break;
              }
              this.unexpected();
          }
        e.key = a, r !== 139 && (e.computed = !1);
      }
    }
    initFunction(e, s) {
      e.id = null, e.generator = !1, e.async = s;
    }
    parseMethod(e, s, r, i, a, o, l = !1) {
      this.initFunction(e, r), e.generator = s, this.scope.enter(18 | (l ? 64 : 0) | (a ? 32 : 0)), this.prodParam.enter(yv(r, e.generator)),
      this.parseFunctionParams(e, i);
      let u = this.parseFunctionBodyAndFinish(e, o, !0);
      return this.prodParam.exit(), this.scope.exit(), u;
    }
    parseArrayLike(e, s, r, i) {
      r && this.expectPlugin("recordAndTuple");
      let a = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      let o = this.startNode();
      return this.next(), o.elements = this.parseExprList(e, !r, i, o), this.state.inFSharpPipelineDirectBody = a, this.finishNode(o, r ? "T\
upleExpression" : "ArrayExpression");
    }
    parseArrowExpression(e, s, r, i) {
      this.scope.enter(6);
      let a = yv(r, !1);
      !this.match(5) && this.prodParam.hasIn && (a |= 8), this.prodParam.enter(a), this.initFunction(e, r);
      let o = this.state.maybeInArrowParameters;
      return s && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(e, s, i)), this.state.maybeInArrowParameters = !1,
      this.parseFunctionBody(e, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = o, this.finishNode(e, "Ar\
rowFunctionExpression");
    }
    setArrowFunctionParameters(e, s, r) {
      this.toAssignableList(s, r, !1), e.params = s;
    }
    parseFunctionBodyAndFinish(e, s, r = !1) {
      return this.parseFunctionBody(e, !1, r), this.finishNode(e, s);
    }
    parseFunctionBody(e, s, r = !1) {
      let i = s && !this.match(5);
      if (this.expressionScope.enter(Hfe()), i)
        e.body = this.parseMaybeAssign(), this.checkParams(e, !1, s, !1);
      else {
        let a = this.state.strict, o = this.state.labels;
        this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), e.body = this.parseBlock(!0, !1, (l) => {
          let u = !this.isSimpleParamList(e.params);
          l && u && this.raise(se.IllegalLanguageModeDirective, (e.kind === "method" || e.kind === "constructor") && e.key ? e.key.loc.end :
          e);
          let c = !a && this.state.strict;
          this.checkParams(e, !this.state.strict && !s && !r && !u, s, c), this.state.strict && e.id && this.checkIdentifier(e.id, 65, c);
        }), this.prodParam.exit(), this.state.labels = o;
      }
      this.expressionScope.exit();
    }
    isSimpleParameter(e) {
      return e.type === "Identifier";
    }
    isSimpleParamList(e) {
      for (let s = 0, r = e.length; s < r; s++)
        if (!this.isSimpleParameter(e[s])) return !1;
      return !0;
    }
    checkParams(e, s, r, i = !0) {
      let a = !s && /* @__PURE__ */ new Set(), o = {
        type: "FormalParameters"
      };
      for (let l of e.params)
        this.checkLVal(l, o, 5, a, i);
    }
    parseExprList(e, s, r, i) {
      let a = [], o = !0;
      for (; !this.eat(e); ) {
        if (o)
          o = !1;
        else if (this.expect(12), this.match(e)) {
          i && this.addTrailingCommaExtraToNode(i), this.next();
          break;
        }
        a.push(this.parseExprListItem(s, r));
      }
      return a;
    }
    parseExprListItem(e, s, r) {
      let i;
      if (this.match(12))
        e || this.raise(se.UnexpectedToken, this.state.curPosition(), {
          unexpected: ","
        }), i = null;
      else if (this.match(21)) {
        let a = this.state.startLoc;
        i = this.parseParenItem(this.parseSpread(s), a);
      } else if (this.match(17)) {
        this.expectPlugin("partialApplication"), r || this.raise(se.UnexpectedArgumentPlaceholder, this.state.startLoc);
        let a = this.startNode();
        this.next(), i = this.finishNode(a, "ArgumentPlaceholder");
      } else
        i = this.parseMaybeAssignAllowIn(s, this.parseParenItem);
      return i;
    }
    parseIdentifier(e) {
      let s = this.startNode(), r = this.parseIdentifierName(e);
      return this.createIdentifier(s, r);
    }
    createIdentifier(e, s) {
      return e.name = s, e.loc.identifierName = s, this.finishNode(e, "Identifier");
    }
    parseIdentifierName(e) {
      let s, {
        startLoc: r,
        type: i
      } = this.state;
      Uo(i) ? s = this.state.value : this.unexpected();
      let a = yfs(i);
      return e ? a && this.replaceToken(132) : this.checkReservedWord(s, r, a, !1), this.next(), s;
    }
    checkReservedWord(e, s, r, i) {
      if (e.length > 10 || !Bfs(e))
        return;
      if (r && Ofs(e)) {
        this.raise(se.UnexpectedKeyword, s, {
          keyword: e
        });
        return;
      }
      if ((this.state.strict ? i ? Kfe : qfe : Rfe)(e, this.inModule)) {
        this.raise(se.UnexpectedReservedWord, s, {
          reservedWord: e
        });
        return;
      } else if (e === "yield") {
        if (this.prodParam.hasYield) {
          this.raise(se.YieldBindingIdentifier, s);
          return;
        }
      } else if (e === "await") {
        if (this.prodParam.hasAwait) {
          this.raise(se.AwaitBindingIdentifier, s);
          return;
        }
        if (this.scope.inStaticBlock) {
          this.raise(se.AwaitBindingIdentifierInStaticBlock, s);
          return;
        }
        this.expressionScope.recordAsyncArrowParametersError(s);
      } else if (e === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
        this.raise(se.ArgumentsInClass, s);
        return;
      }
    }
    recordAwaitIfAllowed() {
      let e = this.prodParam.hasAwait || this.optionFlags & 1 && !this.scope.inFunction;
      return e && !this.scope.inFunction && (this.state.hasTopLevelAwait = !0), e;
    }
    parseAwait(e) {
      let s = this.startNodeAt(e);
      return this.expressionScope.recordParameterInitializerError(se.AwaitExpressionFormalParameter, s), this.eat(55) && this.raise(se.ObsoleteAwaitStar,
      s), !this.scope.inFunction && !(this.optionFlags & 1) && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM =
      !0), this.state.soloAwait || (s.argument = this.parseMaybeUnary(null, !0)), this.finishNode(s, "AwaitExpression");
    }
    isAmbiguousAwait() {
      if (this.hasPrecedingLineBreak()) return !0;
      let {
        type: e
      } = this.state;
      return e === 53 || e === 10 || e === 0 || Tv(e) || e === 102 && !this.state.containsEsc || e === 138 || e === 56 || this.hasPlugin("v8\
intrinsic") && e === 54;
    }
    parseYield() {
      let e = this.startNode();
      this.expressionScope.recordParameterInitializerError(se.YieldInParameter, e), this.next();
      let s = !1, r = null;
      if (!this.hasPrecedingLineBreak())
        switch (s = this.eat(55), this.state.type) {
          case 13:
          case 140:
          case 8:
          case 11:
          case 3:
          case 9:
          case 14:
          case 12:
            if (!s) break;
          default:
            r = this.parseMaybeAssign();
        }
      return e.delegate = s, e.argument = r, this.finishNode(e, "YieldExpression");
    }
    parseImportCall(e) {
      if (this.next(), e.source = this.parseMaybeAssignAllowIn(), e.options = null, this.eat(12) && !this.match(11) && (e.options = this.parseMaybeAssignAllowIn(),
      this.eat(12) && !this.match(11))) {
        do
          this.parseMaybeAssignAllowIn();
        while (this.eat(12) && !this.match(11));
        this.raise(se.ImportCallArity, e);
      }
      return this.expect(11), this.finishNode(e, "ImportExpression");
    }
    checkPipelineAtInfixOperator(e, s) {
      this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }]) && e.type === "SequenceExpression" && this.raise(se.PipelineHeadSequenceExpression, s);
    }
    parseSmartPipelineBodyInStyle(e, s) {
      if (this.isSimpleReference(e)) {
        let r = this.startNodeAt(s);
        return r.callee = e, this.finishNode(r, "PipelineBareFunction");
      } else {
        let r = this.startNodeAt(s);
        return this.checkSmartPipeTopicBodyEarlyErrors(s), r.expression = e, this.finishNode(r, "PipelineTopicExpression");
      }
    }
    isSimpleReference(e) {
      switch (e.type) {
        case "MemberExpression":
          return !e.computed && this.isSimpleReference(e.object);
        case "Identifier":
          return !0;
        default:
          return !1;
      }
    }
    checkSmartPipeTopicBodyEarlyErrors(e) {
      if (this.match(19))
        throw this.raise(se.PipelineBodyNoArrow, this.state.startLoc);
      this.topicReferenceWasUsedInCurrentContext() || this.raise(se.PipelineTopicUnused, e);
    }
    withTopicBindingContext(e) {
      let s = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 1,
        maxTopicIndex: null
      };
      try {
        return e();
      } finally {
        this.state.topicContext = s;
      }
    }
    withSmartMixTopicForbiddingContext(e) {
      if (this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }])) {
        let s = this.state.topicContext;
        this.state.topicContext = {
          maxNumOfResolvableTopics: 0,
          maxTopicIndex: null
        };
        try {
          return e();
        } finally {
          this.state.topicContext = s;
        }
      } else
        return e();
    }
    withSoloAwaitPermittingContext(e) {
      let s = this.state.soloAwait;
      this.state.soloAwait = !0;
      try {
        return e();
      } finally {
        this.state.soloAwait = s;
      }
    }
    allowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & ~s) {
        this.prodParam.enter(s | 8);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    disallowInAnd(e) {
      let s = this.prodParam.currentFlags();
      if (8 & s) {
        this.prodParam.enter(s & -9);
        try {
          return e();
        } finally {
          this.prodParam.exit();
        }
      }
      return e();
    }
    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(e) {
      let s = this.state.startLoc;
      this.state.potentialArrowAt = this.state.start;
      let r = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !0;
      let i = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), s, e);
      return this.state.inFSharpPipelineDirectBody = r, i;
    }
    parseModuleExpression() {
      this.expectPlugin("moduleBlocks");
      let e = this.startNode();
      this.next(), this.match(5) || this.unexpected(null, 5);
      let s = this.startNodeAt(this.state.endLoc);
      this.next();
      let r = this.initializeScopes(!0);
      this.enterInitialScopes();
      try {
        e.body = this.parseProgram(s, 8, "module");
      } finally {
        r();
      }
      return this.finishNode(e, "ModuleExpression");
    }
    parsePropertyNamePrefixOperator(e) {
    }
  }, W6 = {
    kind: 1
  }, fds = {
    kind: 2
  }, dds = /[\uD800-\uDFFF]/u, $6 = /in(?:stanceof)?/y;
  function mds(t, e, s) {
    for (let r = 0; r < t.length; r++) {
      let i = t[r], {
        type: a
      } = i;
      if (typeof a == "number") {
        {
          if (a === 139) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Jn(o.start, 1);
            t.splice(r, 1, new kl({
              type: uc(27),
              value: "#",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }), new kl({
              type: uc(132),
              value: u,
              start: p,
              end: c,
              startLoc: h,
              endLoc: o.end
            })), r++;
            continue;
          }
          if (Tv(a)) {
            let {
              loc: o,
              start: l,
              value: u,
              end: c
            } = i, p = l + 1, h = Jn(o.start, 1), f;
            e.charCodeAt(l - s) === 96 ? f = new kl({
              type: uc(22),
              value: "`",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            }) : f = new kl({
              type: uc(8),
              value: "}",
              start: l,
              end: p,
              startLoc: o.start,
              endLoc: h
            });
            let d, m, y, T;
            a === 24 ? (m = c - 1, y = Jn(o.end, -1), d = u === null ? null : u.slice(1, -1), T = new kl({
              type: uc(22),
              value: "`",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })) : (m = c - 2, y = Jn(o.end, -2), d = u === null ? null : u.slice(1, -2), T = new kl({
              type: uc(23),
              value: "${",
              start: m,
              end: c,
              startLoc: y,
              endLoc: o.end
            })), t.splice(r, 1, f, new kl({
              type: uc(20),
              value: d,
              start: p,
              end: m,
              startLoc: h,
              endLoc: y
            }), T), r += 2;
            continue;
          }
        }
        i.type = uc(a);
      }
    }
    return t;
  }
  n(mds, "babel7CompatTokens");
  var pR = class extends cR {
    static {
      n(this, "StatementParser");
    }
    parseTopLevel(e, s) {
      return e.program = this.parseProgram(s), e.comments = this.comments, this.optionFlags & 128 && (e.tokens = mds(this.tokens, this.input,
      this.startIndex)), this.finishNode(e, "File");
    }
    parseProgram(e, s = 140, r = this.options.sourceType) {
      if (e.sourceType = r, e.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(e, !0, !0, s), this.inModule) {
        if (!(this.optionFlags & 32) && this.scope.undefinedExports.size > 0)
          for (let [a, o] of Array.from(this.scope.undefinedExports))
            this.raise(se.ModuleExportUndefined, o, {
              localName: a
            });
        this.addExtra(e, "topLevelAwait", this.state.hasTopLevelAwait);
      }
      let i;
      return s === 140 ? i = this.finishNode(e, "Program") : i = this.finishNodeAt(e, "Program", Jn(this.state.startLoc, -1)), i;
    }
    stmtToDirective(e) {
      let s = e;
      s.type = "Directive", s.value = s.expression, delete s.expression;
      let r = s.value, i = r.value, a = this.input.slice(this.offsetToSourcePos(r.start), this.offsetToSourcePos(r.end)), o = r.value = a.slice(
      1, -1);
      return this.addExtra(r, "raw", a), this.addExtra(r, "rawValue", o), this.addExtra(r, "expressionValue", i), r.type = "DirectiveLiteral",
      s;
    }
    parseInterpreterDirective() {
      if (!this.match(28))
        return null;
      let e = this.startNode();
      return e.value = this.state.value, this.next(), this.finishNode(e, "InterpreterDirective");
    }
    isLet() {
      return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
    }
    chStartsBindingIdentifier(e, s) {
      if (pc(e)) {
        if ($6.lastIndex = s, $6.test(this.input)) {
          let r = this.codePointAtPos($6.lastIndex);
          if (!dy(r) && r !== 92)
            return !1;
        }
        return !0;
      } else return e === 92;
    }
    chStartsBindingPattern(e) {
      return e === 91 || e === 123;
    }
    hasFollowingBindingAtom() {
      let e = this.nextTokenStart(), s = this.codePointAtPos(e);
      return this.chStartsBindingPattern(s) || this.chStartsBindingIdentifier(s, e);
    }
    hasInLineFollowingBindingIdentifierOrBrace() {
      let e = this.nextTokenInLineStart(), s = this.codePointAtPos(e);
      return s === 123 || this.chStartsBindingIdentifier(s, e);
    }
    startsUsingForOf() {
      let {
        type: e,
        containsEsc: s
      } = this.lookahead();
      if (e === 102 && !s)
        return !1;
      if (or(e) && !this.hasFollowingLineBreak())
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    startsAwaitUsing() {
      let e = this.nextTokenInLineStart();
      if (this.isUnparsedContextual(e, "using")) {
        e = this.nextTokenInLineStartSince(e + 5);
        let s = this.codePointAtPos(e);
        if (this.chStartsBindingIdentifier(s, e))
          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(e = !1) {
      let s = 0;
      return this.options.annexB && !this.state.strict && (s |= 4, e && (s |= 8)), this.parseStatementLike(s);
    }
    parseStatement() {
      return this.parseStatementLike(0);
    }
    parseStatementLike(e) {
      let s = null;
      return this.match(26) && (s = this.parseDecorators(!0)), this.parseStatementContent(e, s);
    }
    parseStatementContent(e, s) {
      let r = this.state.type, i = this.startNode(), a = !!(e & 2), o = !!(e & 4), l = e & 1;
      switch (r) {
        case 60:
          return this.parseBreakContinueStatement(i, !0);
        case 63:
          return this.parseBreakContinueStatement(i, !1);
        case 64:
          return this.parseDebuggerStatement(i);
        case 90:
          return this.parseDoWhileStatement(i);
        case 91:
          return this.parseForStatement(i);
        case 68:
          if (this.lookaheadCharCode() === 46) break;
          return o || this.raise(this.state.strict ? se.StrictFunction : this.options.annexB ? se.SloppyFunctionAnnexB : se.SloppyFunction, this.
          state.startLoc), this.parseFunctionStatement(i, !1, !a && o);
        case 80:
          return a || this.unexpected(), this.parseClass(this.maybeTakeDecorators(s, i), !0);
        case 69:
          return this.parseIfStatement(i);
        case 70:
          return this.parseReturnStatement(i);
        case 71:
          return this.parseSwitchStatement(i);
        case 72:
          return this.parseThrowStatement(i);
        case 73:
          return this.parseTryStatement(i);
        case 96:
          if (!this.state.containsEsc && this.startsAwaitUsing())
            return this.recordAwaitIfAllowed() ? a || this.raise(se.UnexpectedLexicalDeclaration, i) : this.raise(se.AwaitUsingNotInAsyncContext,
            i), this.next(), this.parseVarStatement(i, "await using");
          break;
        case 107:
          if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace())
            break;
          return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(se.UnexpectedUsingDeclaration,
          this.state.startLoc) : a || this.raise(se.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(i, "using");
        case 100: {
          if (this.state.containsEsc)
            break;
          let p = this.nextTokenStart(), h = this.codePointAtPos(p);
          if (h !== 91 && (!a && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(h, p) && h !== 123))
            break;
        }
        case 75:
          a || this.raise(se.UnexpectedLexicalDeclaration, this.state.startLoc);
        case 74: {
          let p = this.state.value;
          return this.parseVarStatement(i, p);
        }
        case 92:
          return this.parseWhileStatement(i);
        case 76:
          return this.parseWithStatement(i);
        case 5:
          return this.parseBlock();
        case 13:
          return this.parseEmptyStatement(i);
        case 83: {
          let p = this.lookaheadCharCode();
          if (p === 40 || p === 46)
            break;
        }
        case 82: {
          !(this.optionFlags & 8) && !l && this.raise(se.UnexpectedImportExport, this.state.startLoc), this.next();
          let p;
          return r === 83 ? (p = this.parseImport(i), p.type === "ImportDeclaration" && (!p.importKind || p.importKind === "value") && (this.
          sawUnambiguousESM = !0)) : (p = this.parseExport(i, s), (p.type === "ExportNamedDeclaration" && (!p.exportKind || p.exportKind ===
          "value") || p.type === "ExportAllDeclaration" && (!p.exportKind || p.exportKind === "value") || p.type === "ExportDefaultDeclarati\
on") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(p), p;
        }
        default:
          if (this.isAsyncFunction())
            return a || this.raise(se.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(
            i, !0, !a && o);
      }
      let u = this.state.value, c = this.parseExpression();
      return or(r) && c.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(i, u, c, e) : this.parseExpressionStatement(i, c,
      s);
    }
    assertModuleNodeAllowed(e) {
      !(this.optionFlags & 8) && !this.inModule && this.raise(se.ImportOutsideModule, e);
    }
    decoratorsEnabledBeforeExport() {
      return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBefore\
Export") !== !1;
    }
    maybeTakeDecorators(e, s, r) {
      if (e) {
        var i;
        (i = s.decorators) != null && i.length ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(
        se.DecoratorsBeforeAfterExport, s.decorators[0]), s.decorators.unshift(...e)) : s.decorators = e, this.resetStartLocationFromNode(s,
        e[0]), r && this.resetStartLocationFromNode(r, s);
      }
      return s;
    }
    canHaveLeadingDecorator() {
      return this.match(80);
    }
    parseDecorators(e) {
      let s = [];
      do
        s.push(this.parseDecorator());
      while (this.match(26));
      if (this.match(82))
        e || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(se.DecoratorExportClass, this.state.startLoc);
      else if (!this.canHaveLeadingDecorator())
        throw this.raise(se.UnexpectedLeadingDecorator, this.state.startLoc);
      return s;
    }
    parseDecorator() {
      this.expectOnePlugin(["decorators", "decorators-legacy"]);
      let e = this.startNode();
      if (this.next(), this.hasPlugin("decorators")) {
        let s = this.state.startLoc, r;
        if (this.match(10)) {
          let i = this.state.startLoc;
          this.next(), r = this.parseExpression(), this.expect(11), r = this.wrapParenthesis(i, r);
          let a = this.state.startLoc;
          e.expression = this.parseMaybeDecoratorArguments(r, i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && e.expression !==
          r && this.raise(se.DecoratorArgumentsOutsideParentheses, a);
        } else {
          for (r = this.parseIdentifier(!1); this.eat(16); ) {
            let i = this.startNodeAt(s);
            i.object = r, this.match(139) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), i.property = this.parsePrivateName()) :
            i.property = this.parseIdentifier(!0), i.computed = !1, r = this.finishNode(i, "MemberExpression");
          }
          e.expression = this.parseMaybeDecoratorArguments(r, s);
        }
      } else
        e.expression = this.parseExprSubscripts();
      return this.finishNode(e, "Decorator");
    }
    parseMaybeDecoratorArguments(e, s) {
      if (this.eat(10)) {
        let r = this.startNodeAt(s);
        return r.callee = e, r.arguments = this.parseCallExpressionArguments(11), this.toReferencedList(r.arguments), this.finishNode(r, "Ca\
llExpression");
      }
      return e;
    }
    parseBreakContinueStatement(e, s) {
      return this.next(), this.isLineTerminator() ? e.label = null : (e.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(
      e, s), this.finishNode(e, s ? "BreakStatement" : "ContinueStatement");
    }
    verifyBreakContinue(e, s) {
      let r;
      for (r = 0; r < this.state.labels.length; ++r) {
        let i = this.state.labels[r];
        if ((e.label == null || i.name === e.label.name) && (i.kind != null && (s || i.kind === 1) || e.label && s))
          break;
      }
      if (r === this.state.labels.length) {
        let i = s ? "BreakStatement" : "ContinueStatement";
        this.raise(se.IllegalBreakContinue, e, {
          type: i
        });
      }
    }
    parseDebuggerStatement(e) {
      return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
    }
    parseHeaderExpression() {
      this.expect(10);
      let e = this.parseExpression();
      return this.expect(11), e;
    }
    parseDoWhileStatement(e) {
      return this.next(), this.state.labels.push(W6), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.
      labels.pop(), this.expect(92), e.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(e, "DoWhileStatement");
    }
    parseForStatement(e) {
      this.next(), this.state.labels.push(W6);
      let s = null;
      if (this.isContextual(96) && this.recordAwaitIfAllowed() && (s = this.state.startLoc, this.next()), this.scope.enter(0), this.expect(10),
      this.match(13))
        return s !== null && this.unexpected(s), this.parseFor(e, null);
      let r = this.isContextual(100);
      {
        let u = this.isContextual(96) && this.startsAwaitUsing(), c = u || this.isContextual(107) && this.startsUsingForOf(), p = r && this.
        hasFollowingBindingAtom() || c;
        if (this.match(74) || this.match(75) || p) {
          let h = this.startNode(), f;
          u ? (f = "await using", this.recordAwaitIfAllowed() || this.raise(se.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) :
          f = this.state.value, this.next(), this.parseVar(h, !0, f);
          let d = this.finishNode(h, "VariableDeclaration"), m = this.match(58);
          return m && c && this.raise(se.ForInUsing, d), (m || this.isContextual(102)) && d.declarations.length === 1 ? this.parseForIn(e, d,
          s) : (s !== null && this.unexpected(s), this.parseFor(e, d));
        }
      }
      let i = this.isContextual(95), a = new yy(), o = this.parseExpression(!0, a), l = this.isContextual(102);
      if (l && (r && this.raise(se.ForOfLet, o), s === null && i && o.type === "Identifier" && this.raise(se.ForOfAsync, o)), l || this.match(
      58)) {
        this.checkDestructuringPrivate(a), this.toAssignable(o, !0);
        let u = l ? "ForOfStatement" : "ForInStatement";
        return this.checkLVal(o, {
          type: u
        }), this.parseForIn(e, o, s);
      } else
        this.checkExpressionErrors(a, !0);
      return s !== null && this.unexpected(s), this.parseFor(e, o);
    }
    parseFunctionStatement(e, s, r) {
      return this.next(), this.parseFunction(e, 1 | (r ? 2 : 0) | (s ? 8 : 0));
    }
    parseIfStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), e.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), e.alternate =
      this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(e, "IfStatement");
    }
    parseReturnStatement(e) {
      return !this.prodParam.hasReturn && !(this.optionFlags & 2) && this.raise(se.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ?
      e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
    }
    parseSwitchStatement(e) {
      this.next(), e.discriminant = this.parseHeaderExpression();
      let s = e.cases = [];
      this.expect(5), this.state.labels.push(fds), this.scope.enter(0);
      let r;
      for (let i; !this.match(8); )
        if (this.match(61) || this.match(65)) {
          let a = this.match(61);
          r && this.finishNode(r, "SwitchCase"), s.push(r = this.startNode()), r.consequent = [], this.next(), a ? r.test = this.parseExpression() :
          (i && this.raise(se.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), i = !0, r.test = null), this.expect(14);
        } else
          r ? r.consequent.push(this.parseStatementListItem()) : this.unexpected();
      return this.scope.exit(), r && this.finishNode(r, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(e, "SwitchState\
ment");
    }
    parseThrowStatement(e) {
      return this.next(), this.hasPrecedingLineBreak() && this.raise(se.NewlineAfterThrow, this.state.lastTokEndLoc), e.argument = this.parseExpression(),
      this.semicolon(), this.finishNode(e, "ThrowStatement");
    }
    parseCatchClauseParam() {
      let e = this.parseBindingAtom();
      return this.scope.enter(this.options.annexB && e.type === "Identifier" ? 8 : 0), this.checkLVal(e, {
        type: "CatchClause"
      }, 9), e;
    }
    parseTryStatement(e) {
      if (this.next(), e.block = this.parseBlock(), e.handler = null, this.match(62)) {
        let s = this.startNode();
        this.next(), this.match(10) ? (this.expect(10), s.param = this.parseCatchClauseParam(), this.expect(11)) : (s.param = null, this.scope.
        enter(0)), s.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), e.handler = this.finishNode(
        s, "CatchClause");
      }
      return e.finalizer = this.eat(67) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(se.NoCatchOrFinally, e), this.finishNode(
      e, "TryStatement");
    }
    parseVarStatement(e, s, r = !1) {
      return this.next(), this.parseVar(e, !1, s, r), this.semicolon(), this.finishNode(e, "VariableDeclaration");
    }
    parseWhileStatement(e) {
      return this.next(), e.test = this.parseHeaderExpression(), this.state.labels.push(W6), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.state.labels.pop(), this.finishNode(e, "WhileStatement");
    }
    parseWithStatement(e) {
      return this.state.strict && this.raise(se.StrictWith, this.state.startLoc), this.next(), e.object = this.parseHeaderExpression(), e.body =
      this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(e, "WithStatement");
    }
    parseEmptyStatement(e) {
      return this.next(), this.finishNode(e, "EmptyStatement");
    }
    parseLabeledStatement(e, s, r, i) {
      for (let o of this.state.labels)
        o.name === s && this.raise(se.LabelRedeclaration, r, {
          labelName: s
        });
      let a = bfs(this.state.type) ? 1 : this.match(71) ? 2 : null;
      for (let o = this.state.labels.length - 1; o >= 0; o--) {
        let l = this.state.labels[o];
        if (l.statementStart === e.start)
          l.statementStart = this.sourceToOffsetPos(this.state.start), l.kind = a;
        else
          break;
      }
      return this.state.labels.push({
        name: s,
        kind: a,
        statementStart: this.sourceToOffsetPos(this.state.start)
      }), e.body = i & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), e.label =
      r, this.finishNode(e, "LabeledStatement");
    }
    parseExpressionStatement(e, s, r) {
      return e.expression = s, this.semicolon(), this.finishNode(e, "ExpressionStatement");
    }
    parseBlock(e = !1, s = !0, r) {
      let i = this.startNode();
      return e && this.state.strictErrors.clear(), this.expect(5), s && this.scope.enter(0), this.parseBlockBody(i, e, !1, 8, r), s && this.
      scope.exit(), this.finishNode(i, "BlockStatement");
    }
    isValidDirective(e) {
      return e.type === "ExpressionStatement" && e.expression.type === "StringLiteral" && !e.expression.extra.parenthesized;
    }
    parseBlockBody(e, s, r, i, a) {
      let o = e.body = [], l = e.directives = [];
      this.parseBlockOrModuleBlockBody(o, s ? l : void 0, r, i, a);
    }
    parseBlockOrModuleBlockBody(e, s, r, i, a) {
      let o = this.state.strict, l = !1, u = !1;
      for (; !this.match(i); ) {
        let c = r ? this.parseModuleItem() : this.parseStatementListItem();
        if (s && !u) {
          if (this.isValidDirective(c)) {
            let p = this.stmtToDirective(c);
            s.push(p), !l && p.value.value === "use strict" && (l = !0, this.setStrict(!0));
            continue;
          }
          u = !0, this.state.strictErrors.clear();
        }
        e.push(c);
      }
      a?.call(this, l), o || this.setStrict(!1), this.next();
    }
    parseFor(e, s) {
      return e.init = s, this.semicolon(!1), e.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), e.update = this.match(
      11) ? null : this.parseExpression(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.
      scope.exit(), this.state.labels.pop(), this.finishNode(e, "ForStatement");
    }
    parseForIn(e, s, r) {
      let i = this.match(58);
      return this.next(), i ? r !== null && this.unexpected(r) : e.await = r !== null, s.type === "VariableDeclaration" && s.declarations[0].
      init != null && (!i || !this.options.annexB || this.state.strict || s.kind !== "var" || s.declarations[0].id.type !== "Identifier") &&
      this.raise(se.ForInOfLoopInitializer, s, {
        type: i ? "ForInStatement" : "ForOfStatement"
      }), s.type === "AssignmentPattern" && this.raise(se.InvalidLhs, s, {
        ancestor: {
          type: "ForStatement"
        }
      }), e.left = s, e.right = i ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), e.body = this.withSmartMixTopicForbiddingContext(
      () => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement");
    }
    parseVar(e, s, r, i = !1) {
      let a = e.declarations = [];
      for (e.kind = r; ; ) {
        let o = this.startNode();
        if (this.parseVarId(o, r), o.init = this.eat(29) ? s ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, o.
        init === null && !i && (o.id.type !== "Identifier" && !(s && (this.match(58) || this.isContextual(102))) ? this.raise(se.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: "destructuring"
        }) : (r === "const" || r === "using" || r === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(se.DeclarationMissingInitializer,
        this.state.lastTokEndLoc, {
          kind: r
        })), a.push(this.finishNode(o, "VariableDeclarator")), !this.eat(12)) break;
      }
      return e;
    }
    parseVarId(e, s) {
      let r = this.parseBindingAtom();
      (s === "using" || s === "await using") && (r.type === "ArrayPattern" || r.type === "ObjectPattern") && this.raise(se.UsingDeclarationHasBindingPattern,
      r.loc.start), this.checkLVal(r, {
        type: "VariableDeclarator"
      }, s === "var" ? 5 : 8201), e.id = r;
    }
    parseAsyncFunctionExpression(e) {
      return this.parseFunction(e, 8);
    }
    parseFunction(e, s = 0) {
      let r = s & 2, i = !!(s & 1), a = i && !(s & 4), o = !!(s & 8);
      this.initFunction(e, o), this.match(55) && (r && this.raise(se.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), e.
      generator = !0), i && (e.id = this.parseFunctionId(a));
      let l = this.state.maybeInArrowParameters;
      return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(yv(o, e.generator)), i || (e.id = this.parseFunctionId()),
      this.parseFunctionParams(e, !1), this.withSmartMixTopicForbiddingContext(() => {
        this.parseFunctionBodyAndFinish(e, i ? "FunctionDeclaration" : "FunctionExpression");
      }), this.prodParam.exit(), this.scope.exit(), i && !r && this.registerFunctionStatementId(e), this.state.maybeInArrowParameters = l, e;
    }
    parseFunctionId(e) {
      return e || or(this.state.type) ? this.parseIdentifier() : null;
    }
    parseFunctionParams(e, s) {
      this.expect(10), this.expressionScope.enter(Vfs()), e.params = this.parseBindingList(11, 41, 2 | (s ? 4 : 0)), this.expressionScope.exit();
    }
    registerFunctionStatementId(e) {
      e.id && this.scope.declareName(e.id.name, !this.options.annexB || this.state.strict || e.generator || e.async ? this.scope.treatFunctionsAsVar ?
      5 : 8201 : 17, e.id.loc.start);
    }
    parseClass(e, s, r) {
      this.next();
      let i = this.state.strict;
      return this.state.strict = !0, this.parseClassId(e, s, r), this.parseClassSuper(e), e.body = this.parseClassBody(!!e.superClass, i), this.
      finishNode(e, s ? "ClassDeclaration" : "ClassExpression");
    }
    isClassProperty() {
      return this.match(29) || this.match(13) || this.match(8);
    }
    isClassMethod() {
      return this.match(10);
    }
    nameIsConstructor(e) {
      return e.type === "Identifier" && e.name === "constructor" || e.type === "StringLiteral" && e.value === "constructor";
    }
    isNonstaticConstructor(e) {
      return !e.computed && !e.static && this.nameIsConstructor(e.key);
    }
    parseClassBody(e, s) {
      this.classScope.enter();
      let r = {
        hadConstructor: !1,
        hadSuperClass: e
      }, i = [], a = this.startNode();
      if (a.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
        for (; !this.match(8); ) {
          if (this.eat(13)) {
            if (i.length > 0)
              throw this.raise(se.DecoratorSemicolon, this.state.lastTokEndLoc);
            continue;
          }
          if (this.match(26)) {
            i.push(this.parseDecorator());
            continue;
          }
          let o = this.startNode();
          i.length && (o.decorators = i, this.resetStartLocationFromNode(o, i[0]), i = []), this.parseClassMember(a, o, r), o.kind === "cons\
tructor" && o.decorators && o.decorators.length > 0 && this.raise(se.DecoratorConstructor, o);
        }
      }), this.state.strict = s, this.next(), i.length)
        throw this.raise(se.TrailingDecorator, this.state.startLoc);
      return this.classScope.exit(), this.finishNode(a, "ClassBody");
    }
    parseClassMemberFromModifier(e, s) {
      let r = this.parseIdentifier(!0);
      if (this.isClassMethod()) {
        let i = s;
        return i.kind = "method", i.computed = !1, i.key = r, i.static = !1, this.pushClassMethod(e, i, !1, !1, !1, !1), !0;
      } else if (this.isClassProperty()) {
        let i = s;
        return i.computed = !1, i.key = r, i.static = !1, e.body.push(this.parseClassProperty(i)), !0;
      }
      return this.resetPreviousNodeTrailingComments(r), !1;
    }
    parseClassMember(e, s, r) {
      let i = this.isContextual(106);
      if (i) {
        if (this.parseClassMemberFromModifier(e, s))
          return;
        if (this.eat(5)) {
          this.parseClassStaticBlock(e, s);
          return;
        }
      }
      this.parseClassMemberWithIsStatic(e, s, r, i);
    }
    parseClassMemberWithIsStatic(e, s, r, i) {
      let a = s, o = s, l = s, u = s, c = s, p = a, h = a;
      if (s.static = i, this.parsePropertyNamePrefixOperator(s), this.eat(55)) {
        p.kind = "method";
        let b = this.match(139);
        if (this.parseClassElementName(p), b) {
          this.pushClassPrivateMethod(e, o, !0, !1);
          return;
        }
        this.isNonstaticConstructor(a) && this.raise(se.ConstructorIsGenerator, a.key), this.pushClassMethod(e, a, !0, !1, !1, !1);
        return;
      }
      let f = !this.state.containsEsc && or(this.state.type), d = this.parseClassElementName(s), m = f ? d.name : null, y = this.isPrivateName(
      d), T = this.state.startLoc;
      if (this.parsePostMemberNameModifiers(h), this.isClassMethod()) {
        if (p.kind = "method", y) {
          this.pushClassPrivateMethod(e, o, !1, !1);
          return;
        }
        let b = this.isNonstaticConstructor(a), E = !1;
        b && (a.kind = "constructor", r.hadConstructor && !this.hasPlugin("typescript") && this.raise(se.DuplicateConstructor, d), b && this.
        hasPlugin("typescript") && s.override && this.raise(se.OverrideOnConstructor, d), r.hadConstructor = !0, E = r.hadSuperClass), this.
        pushClassMethod(e, a, !1, !1, b, E);
      } else if (this.isClassProperty())
        y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l);
      else if (m === "async" && !this.isLineTerminator()) {
        this.resetPreviousNodeTrailingComments(d);
        let b = this.eat(55);
        h.optional && this.unexpected(T), p.kind = "method";
        let E = this.match(139);
        this.parseClassElementName(p), this.parsePostMemberNameModifiers(h), E ? this.pushClassPrivateMethod(e, o, b, !0) : (this.isNonstaticConstructor(
        a) && this.raise(se.ConstructorIsAsync, a.key), this.pushClassMethod(e, a, b, !0, !1, !1));
      } else if ((m === "get" || m === "set") && !(this.match(55) && this.isLineTerminator())) {
        this.resetPreviousNodeTrailingComments(d), p.kind = m;
        let b = this.match(139);
        this.parseClassElementName(a), b ? this.pushClassPrivateMethod(e, o, !1, !1) : (this.isNonstaticConstructor(a) && this.raise(se.ConstructorIsAccessor,
        a.key), this.pushClassMethod(e, a, !1, !1, !1, !1)), this.checkGetterSetterParams(a);
      } else if (m === "accessor" && !this.isLineTerminator()) {
        this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(d);
        let b = this.match(139);
        this.parseClassElementName(l), this.pushClassAccessorProperty(e, c, b);
      } else this.isLineTerminator() ? y ? this.pushClassPrivateProperty(e, u) : this.pushClassProperty(e, l) : this.unexpected();
    }
    parseClassElementName(e) {
      let {
        type: s,
        value: r
      } = this.state;
      if ((s === 132 || s === 134) && e.static && r === "prototype" && this.raise(se.StaticPrototype, this.state.startLoc), s === 139) {
        r === "constructor" && this.raise(se.ConstructorClassPrivateField, this.state.startLoc);
        let i = this.parsePrivateName();
        return e.key = i, i;
      }
      return this.parsePropertyName(e), e.key;
    }
    parseClassStaticBlock(e, s) {
      var r;
      this.scope.enter(208);
      let i = this.state.labels;
      this.state.labels = [], this.prodParam.enter(0);
      let a = s.body = [];
      this.parseBlockOrModuleBlockBody(a, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = i, e.body.push(this.
      finishNode(s, "StaticBlock")), (r = s.decorators) != null && r.length && this.raise(se.DecoratorStaticBlock, s);
    }
    pushClassProperty(e, s) {
      !s.computed && this.nameIsConstructor(s.key) && this.raise(se.ConstructorClassField, s.key), e.body.push(this.parseClassProperty(s));
    }
    pushClassPrivateProperty(e, s) {
      let r = this.parseClassPrivateProperty(s);
      e.body.push(r), this.classScope.declarePrivateName(this.getPrivateNameSV(r.key), 0, r.key.loc.start);
    }
    pushClassAccessorProperty(e, s, r) {
      !r && !s.computed && this.nameIsConstructor(s.key) && this.raise(se.ConstructorClassField, s.key);
      let i = this.parseClassAccessorProperty(s);
      e.body.push(i), r && this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
    }
    pushClassMethod(e, s, r, i, a, o) {
      e.body.push(this.parseMethod(s, r, i, a, o, "ClassMethod", !0));
    }
    pushClassPrivateMethod(e, s, r, i) {
      let a = this.parseMethod(s, r, i, !1, !1, "ClassPrivateMethod", !0);
      e.body.push(a);
      let o = a.kind === "get" ? a.static ? 6 : 2 : a.kind === "set" ? a.static ? 5 : 1 : 0;
      this.declareClassPrivateMethodInScope(a, o);
    }
    declareClassPrivateMethodInScope(e, s) {
      this.classScope.declarePrivateName(this.getPrivateNameSV(e.key), s, e.key.loc.start);
    }
    parsePostMemberNameModifiers(e) {
    }
    parseClassPrivateProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassPrivateProperty");
    }
    parseClassProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassProperty");
    }
    parseClassAccessorProperty(e) {
      return this.parseInitializer(e), this.semicolon(), this.finishNode(e, "ClassAccessorProperty");
    }
    parseInitializer(e) {
      this.scope.enter(80), this.expressionScope.enter(Hfe()), this.prodParam.enter(0), e.value = this.eat(29) ? this.parseMaybeAssignAllowIn() :
      null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
    }
    parseClassId(e, s, r, i = 8331) {
      if (or(this.state.type))
        e.id = this.parseIdentifier(), s && this.declareNameFromIdentifier(e.id, i);
      else if (r || !s)
        e.id = null;
      else
        throw this.raise(se.MissingClassName, this.state.startLoc);
    }
    parseClassSuper(e) {
      e.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
    }
    parseExport(e, s) {
      let r = this.parseMaybeImportPhase(e, !0), i = this.maybeParseExportDefaultSpecifier(e, r), a = !i || this.eat(12), o = a && this.eatExportStar(
      e), l = o && this.maybeParseExportNamespaceSpecifier(e), u = a && (!l || this.eat(12)), c = i || o;
      if (o && !l) {
        if (i && this.unexpected(), s)
          throw this.raise(se.UnsupportedDecoratorExport, e);
        return this.parseExportFrom(e, !0), this.finishNode(e, "ExportAllDeclaration");
      }
      let p = this.maybeParseExportNamedSpecifiers(e);
      i && a && !o && !p && this.unexpected(null, 5), l && u && this.unexpected(null, 98);
      let h;
      if (c || p) {
        if (h = !1, s)
          throw this.raise(se.UnsupportedDecoratorExport, e);
        this.parseExportFrom(e, c);
      } else
        h = this.maybeParseExportDeclaration(e);
      if (c || p || h) {
        var f;
        let d = e;
        if (this.checkExport(d, !0, !1, !!d.source), ((f = d.declaration) == null ? void 0 : f.type) === "ClassDeclaration")
          this.maybeTakeDecorators(s, d.declaration, d);
        else if (s)
          throw this.raise(se.UnsupportedDecoratorExport, e);
        return this.finishNode(d, "ExportNamedDeclaration");
      }
      if (this.eat(65)) {
        let d = e, m = this.parseExportDefaultExpression();
        if (d.declaration = m, m.type === "ClassDeclaration")
          this.maybeTakeDecorators(s, m, d);
        else if (s)
          throw this.raise(se.UnsupportedDecoratorExport, e);
        return this.checkExport(d, !0, !0), this.finishNode(d, "ExportDefaultDeclaration");
      }
      this.unexpected(null, 5);
    }
    eatExportStar(e) {
      return this.eat(55);
    }
    maybeParseExportDefaultSpecifier(e, s) {
      if (s || this.isExportDefaultSpecifier()) {
        this.expectPlugin("exportDefaultFrom", s?.loc.start);
        let r = s || this.parseIdentifier(!0), i = this.startNodeAtNode(r);
        return i.exported = r, e.specifiers = [this.finishNode(i, "ExportDefaultSpecifier")], !0;
      }
      return !1;
    }
    maybeParseExportNamespaceSpecifier(e) {
      if (this.isContextual(93)) {
        var s, r;
        (r = (s = e).specifiers) != null || (s.specifiers = []);
        let i = this.startNodeAt(this.state.lastTokStartLoc);
        return this.next(), i.exported = this.parseModuleExportName(), e.specifiers.push(this.finishNode(i, "ExportNamespaceSpecifier")), !0;
      }
      return !1;
    }
    maybeParseExportNamedSpecifiers(e) {
      if (this.match(5)) {
        let s = e;
        s.specifiers || (s.specifiers = []);
        let r = s.exportKind === "type";
        return s.specifiers.push(...this.parseExportSpecifiers(r)), s.source = null, s.declaration = null, this.hasPlugin("importAssertions") &&
        (s.assertions = []), !0;
      }
      return !1;
    }
    maybeParseExportDeclaration(e) {
      return this.shouldParseExportDeclaration() ? (e.specifiers = [], e.source = null, this.hasPlugin("importAssertions") && (e.assertions =
      []), e.declaration = this.parseExportDeclaration(e), !0) : !1;
    }
    isAsyncFunction() {
      if (!this.isContextual(95)) return !1;
      let e = this.nextTokenInLineStart();
      return this.isUnparsedContextual(e, "function");
    }
    parseExportDefaultExpression() {
      let e = this.startNode();
      if (this.match(68))
        return this.next(), this.parseFunction(e, 5);
      if (this.isAsyncFunction())
        return this.next(), this.next(), this.parseFunction(e, 13);
      if (this.match(80))
        return this.parseClass(e, !0, !0);
      if (this.match(26))
        return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(se.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(se.UnsupportedDefaultExport, this.state.startLoc);
      let s = this.parseMaybeAssignAllowIn();
      return this.semicolon(), s;
    }
    parseExportDeclaration(e) {
      return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
    }
    isExportDefaultSpecifier() {
      let {
        type: e
      } = this.state;
      if (or(e)) {
        if (e === 95 && !this.state.containsEsc || e === 100)
          return !1;
        if ((e === 130 || e === 129) && !this.state.containsEsc) {
          let {
            type: i
          } = this.lookahead();
          if (or(i) && i !== 98 || i === 5)
            return this.expectOnePlugin(["flow", "typescript"]), !1;
        }
      } else if (!this.match(65))
        return !1;
      let s = this.nextTokenStart(), r = this.isUnparsedContextual(s, "from");
      if (this.input.charCodeAt(s) === 44 || or(this.state.type) && r)
        return !0;
      if (this.match(65) && r) {
        let i = this.input.charCodeAt(this.nextTokenStartSince(s + 4));
        return i === 34 || i === 39;
      }
      return !1;
    }
    parseExportFrom(e, s) {
      this.eatContextual(98) ? (e.source = this.parseImportSource(), this.checkExport(e), this.maybeParseImportAttributes(e), this.checkJSONModuleImport(
      e)) : s && this.unexpected(), this.semicolon();
    }
    shouldParseExportDeclaration() {
      let {
        type: e
      } = this.state;
      return e === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("\
decorators", "decoratorsBeforeExport") === !0 && this.raise(se.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.
      raise(se.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(se.UsingDeclarationExport,
      this.state.startLoc), !0) : e === 74 || e === 75 || e === 68 || e === 80 || this.isLet() || this.isAsyncFunction();
    }
    checkExport(e, s, r, i) {
      if (s) {
        var a;
        if (r) {
          if (this.checkDuplicateExports(e, "default"), this.hasPlugin("exportDefaultFrom")) {
            var o;
            let l = e.declaration;
            l.type === "Identifier" && l.name === "from" && l.end - l.start === 4 && !((o = l.extra) != null && o.parenthesized) && this.raise(
            se.ExportDefaultFromAsIdentifier, l);
          }
        } else if ((a = e.specifiers) != null && a.length)
          for (let l of e.specifiers) {
            let {
              exported: u
            } = l, c = u.type === "Identifier" ? u.name : u.value;
            if (this.checkDuplicateExports(l, c), !i && l.local) {
              let {
                local: p
              } = l;
              p.type !== "Identifier" ? this.raise(se.ExportBindingIsString, l, {
                localName: p.value,
                exportName: c
              }) : (this.checkReservedWord(p.name, p.loc.start, !0, !1), this.scope.checkLocalExport(p));
            }
          }
        else if (e.declaration) {
          let l = e.declaration;
          if (l.type === "FunctionDeclaration" || l.type === "ClassDeclaration") {
            let {
              id: u
            } = l;
            if (!u) throw new Error("Assertion failure");
            this.checkDuplicateExports(e, u.name);
          } else if (l.type === "VariableDeclaration")
            for (let u of l.declarations)
              this.checkDeclaration(u.id);
        }
      }
    }
    checkDeclaration(e) {
      if (e.type === "Identifier")
        this.checkDuplicateExports(e, e.name);
      else if (e.type === "ObjectPattern")
        for (let s of e.properties)
          this.checkDeclaration(s);
      else if (e.type === "ArrayPattern")
        for (let s of e.elements)
          s && this.checkDeclaration(s);
      else e.type === "ObjectProperty" ? this.checkDeclaration(e.value) : e.type === "RestElement" ? this.checkDeclaration(e.argument) : e.type ===
      "AssignmentPattern" && this.checkDeclaration(e.left);
    }
    checkDuplicateExports(e, s) {
      this.exportedIdentifiers.has(s) && (s === "default" ? this.raise(se.DuplicateDefaultExport, e) : this.raise(se.DuplicateExport, e, {
        exportName: s
      })), this.exportedIdentifiers.add(s);
    }
    parseExportSpecifiers(e) {
      let s = [], r = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (r)
          r = !1;
        else if (this.expect(12), this.eat(8)) break;
        let i = this.isContextual(130), a = this.match(134), o = this.startNode();
        o.local = this.parseModuleExportName(), s.push(this.parseExportSpecifier(o, a, e, i));
      }
      return s;
    }
    parseExportSpecifier(e, s, r, i) {
      return this.eatContextual(93) ? e.exported = this.parseModuleExportName() : s ? e.exported = Jfs(e.local) : e.exported || (e.exported =
      fc(e.local)), this.finishNode(e, "ExportSpecifier");
    }
    parseModuleExportName() {
      if (this.match(134)) {
        let e = this.parseStringLiteral(this.state.value), s = dds.exec(e.value);
        return s && this.raise(se.ModuleExportNameHasLoneSurrogate, e, {
          surrogateCharCode: s[0].charCodeAt(0)
        }), e;
      }
      return this.parseIdentifier(!0);
    }
    isJSONModuleImport(e) {
      return e.assertions != null ? e.assertions.some(({
        key: s,
        value: r
      }) => r.value === "json" && (s.type === "Identifier" ? s.name === "type" : s.value === "type")) : !1;
    }
    checkImportReflection(e) {
      let {
        specifiers: s
      } = e, r = s.length === 1 ? s[0].type : null;
      if (e.phase === "source")
        r !== "ImportDefaultSpecifier" && this.raise(se.SourcePhaseImportRequiresDefault, s[0].loc.start);
      else if (e.phase === "defer")
        r !== "ImportNamespaceSpecifier" && this.raise(se.DeferImportRequiresNamespace, s[0].loc.start);
      else if (e.module) {
        var i;
        r !== "ImportDefaultSpecifier" && this.raise(se.ImportReflectionNotBinding, s[0].loc.start), ((i = e.assertions) == null ? void 0 : i.
        length) > 0 && this.raise(se.ImportReflectionHasAssertion, s[0].loc.start);
      }
    }
    checkJSONModuleImport(e) {
      if (this.isJSONModuleImport(e) && e.type !== "ExportAllDeclaration") {
        let {
          specifiers: s
        } = e;
        if (s != null) {
          let r = s.find((i) => {
            let a;
            if (i.type === "ExportSpecifier" ? a = i.local : i.type === "ImportSpecifier" && (a = i.imported), a !== void 0)
              return a.type === "Identifier" ? a.name !== "default" : a.value !== "default";
          });
          r !== void 0 && this.raise(se.ImportJSONBindingNotDefault, r.loc.start);
        }
      }
    }
    isPotentialImportPhase(e) {
      return e ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
    }
    applyImportPhase(e, s, r, i) {
      s || (r === "module" ? (this.expectPlugin("importReflection", i), e.module = !0) : this.hasPlugin("importReflection") && (e.module = !1),
      r === "source" ? (this.expectPlugin("sourcePhaseImports", i), e.phase = "source") : r === "defer" ? (this.expectPlugin("deferredImport\
Evaluation", i), e.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (e.phase = null));
    }
    parseMaybeImportPhase(e, s) {
      if (!this.isPotentialImportPhase(s))
        return this.applyImportPhase(e, s, null), null;
      let r = this.parseIdentifier(!0), {
        type: i
      } = this.state;
      return (Uo(i) ? i !== 98 || this.lookaheadCharCode() === 102 : i !== 12) ? (this.resetPreviousIdentifierLeadingComments(r), this.applyImportPhase(
      e, s, r.name, r.loc.start), null) : (this.applyImportPhase(e, s, null), r);
    }
    isPrecedingIdImportPhase(e) {
      let {
        type: s
      } = this.state;
      return or(s) ? s !== 98 || this.lookaheadCharCode() === 102 : s !== 12;
    }
    parseImport(e) {
      return this.match(134) ? this.parseImportSourceAndAttributes(e) : this.parseImportSpecifiersAndAfter(e, this.parseMaybeImportPhase(e, !1));
    }
    parseImportSpecifiersAndAfter(e, s) {
      e.specifiers = [];
      let i = !this.maybeParseDefaultImportSpecifier(e, s) || this.eat(12), a = i && this.maybeParseStarImportSpecifier(e);
      return i && !a && this.parseNamedImportSpecifiers(e), this.expectContextual(98), this.parseImportSourceAndAttributes(e);
    }
    parseImportSourceAndAttributes(e) {
      var s;
      return (s = e.specifiers) != null || (e.specifiers = []), e.source = this.parseImportSource(), this.maybeParseImportAttributes(e), this.
      checkImportReflection(e), this.checkJSONModuleImport(e), this.semicolon(), this.finishNode(e, "ImportDeclaration");
    }
    parseImportSource() {
      return this.match(134) || this.unexpected(), this.parseExprAtom();
    }
    parseImportSpecifierLocal(e, s, r) {
      s.local = this.parseIdentifier(), e.specifiers.push(this.finishImportSpecifier(s, r));
    }
    finishImportSpecifier(e, s, r = 8201) {
      return this.checkLVal(e.local, {
        type: s
      }, r), this.finishNode(e, s);
    }
    parseImportAttributes() {
      this.expect(5);
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        if (this.match(8))
          break;
        let r = this.startNode(), i = this.state.value;
        if (s.has(i) && this.raise(se.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
          key: i
        }), s.add(i), this.match(134) ? r.key = this.parseStringLiteral(i) : r.key = this.parseIdentifier(!0), this.expect(14), !this.match(
        134))
          throw this.raise(se.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return this.expect(8), e;
    }
    parseModuleAttributes() {
      let e = [], s = /* @__PURE__ */ new Set();
      do {
        let r = this.startNode();
        if (r.key = this.parseIdentifier(!0), r.key.name !== "type" && this.raise(se.ModuleAttributeDifferentFromType, r.key), s.has(r.key.name) &&
        this.raise(se.ModuleAttributesWithDuplicateKeys, r.key, {
          key: r.key.name
        }), s.add(r.key.name), this.expect(14), !this.match(134))
          throw this.raise(se.ModuleAttributeInvalidValue, this.state.startLoc);
        r.value = this.parseStringLiteral(this.state.value), e.push(this.finishNode(r, "ImportAttribute"));
      } while (this.eat(12));
      return e;
    }
    maybeParseImportAttributes(e) {
      let s;
      var r = !1;
      if (this.match(76)) {
        if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
          return;
        this.next(), this.hasPlugin("moduleAttributes") ? s = this.parseModuleAttributes() : s = this.parseImportAttributes(), r = !0;
      } else this.isContextual(94) && !this.hasPrecedingLineBreak() ? (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importA\
ssertions") && this.raise(se.ImportAttributesUseAssert, this.state.startLoc), this.hasPlugin("importAssertions") || this.addExtra(e, "deprec\
atedAssertSyntax", !0), this.next(), s = this.parseImportAttributes()) : s = [];
      !r && this.hasPlugin("importAssertions") ? e.assertions = s : e.attributes = s;
    }
    maybeParseDefaultImportSpecifier(e, s) {
      if (s) {
        let r = this.startNodeAtNode(s);
        return r.local = s, e.specifiers.push(this.finishImportSpecifier(r, "ImportDefaultSpecifier")), !0;
      } else if (Uo(this.state.type))
        return this.parseImportSpecifierLocal(e, this.startNode(), "ImportDefaultSpecifier"), !0;
      return !1;
    }
    maybeParseStarImportSpecifier(e) {
      if (this.match(55)) {
        let s = this.startNode();
        return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(e, s, "ImportNamespaceSpecifier"), !0;
      }
      return !1;
    }
    parseNamedImportSpecifiers(e) {
      let s = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (s)
          s = !1;
        else {
          if (this.eat(14))
            throw this.raise(se.DestructureNamedImport, this.state.startLoc);
          if (this.expect(12), this.eat(8)) break;
        }
        let r = this.startNode(), i = this.match(134), a = this.isContextual(130);
        r.imported = this.parseModuleExportName();
        let o = this.parseImportSpecifier(r, i, e.importKind === "type" || e.importKind === "typeof", a, void 0);
        e.specifiers.push(o);
      }
    }
    parseImportSpecifier(e, s, r, i, a) {
      if (this.eatContextual(93))
        e.local = this.parseIdentifier();
      else {
        let {
          imported: o
        } = e;
        if (s)
          throw this.raise(se.ImportBindingIsString, e, {
            importName: o.value
          });
        this.checkReservedWord(o.name, e.loc.start, !0, !0), e.local || (e.local = fc(o));
      }
      return this.finishImportSpecifier(e, "ImportSpecifier", a);
    }
    isThisParam(e) {
      return e.type === "Identifier" && e.name === "this";
    }
  }, xv = class extends pR {
    static {
      n(this, "Parser");
    }
    constructor(e, s, r) {
      e = pfs(e), super(e, s), this.options = e, this.initializeScopes(), this.plugins = r, this.filename = e.sourceFilename, this.startIndex =
      e.startIndex;
      let i = 0;
      e.allowAwaitOutsideFunction && (i |= 1), e.allowReturnOutsideFunction && (i |= 2), e.allowImportExportEverywhere && (i |= 8), e.allowSuperOutsideMethod &&
      (i |= 16), e.allowUndeclaredExports && (i |= 32), e.allowNewTargetOutsideFunction && (i |= 4), e.ranges && (i |= 64), e.tokens && (i |=
      128), e.createImportExpressions && (i |= 256), e.createParenthesizedExpressions && (i |= 512), e.errorRecovery && (i |= 1024), e.attachComment &&
      (i |= 2048), e.annexB && (i |= 4096), this.optionFlags = i;
    }
    getScopeHandler() {
      return $T;
    }
    parse() {
      this.enterInitialScopes();
      let e = this.startNode(), s = this.startNode();
      return this.nextToken(), e.errors = null, this.parseTopLevel(e, s), e.errors = this.state.errors, e.comments.length = this.state.commentsLen,
      e;
    }
  };
  function yds(t, e) {
    var s;
    if (((s = e) == null ? void 0 : s.sourceType) === "unambiguous") {
      e = Object.assign({}, e);
      try {
        e.sourceType = "module";
        let r = KT(e, t), i = r.parse();
        if (r.sawUnambiguousESM)
          return i;
        if (r.ambiguousScriptDifferentAst)
          try {
            return e.sourceType = "script", KT(e, t).parse();
          } catch {
          }
        else
          i.program.sourceType = "script";
        return i;
      } catch (r) {
        try {
          return e.sourceType = "script", KT(e, t).parse();
        } catch {
        }
        throw r;
      }
    } else
      return KT(e, t).parse();
  }
  n(yds, "parse");
  function gds(t, e) {
    let s = KT(e, t);
    return s.options.strictMode && (s.state.strict = !0), s.getExpression();
  }
  n(gds, "parseExpression");
  function Tds(t) {
    let e = {};
    for (let s of Object.keys(t))
      e[s] = uc(t[s]);
    return e;
  }
  n(Tds, "generateExportedTokenTypes");
  var bds = Tds(mfs);
  function KT(t, e) {
    let s = xv, r = /* @__PURE__ */ new Map();
    if (t != null && t.plugins) {
      for (let i of t.plugins) {
        let a, o;
        typeof i == "string" ? a = i : [a, o] = i, r.has(a) || r.set(a, o || {});
      }
      pds(r), s = xds(r);
    }
    return new s(t, e, r);
  }
  n(KT, "getParser");
  var Bfe = /* @__PURE__ */ new Map();
  function xds(t) {
    let e = [];
    for (let i of hds)
      t.has(i) && e.push(i);
    let s = e.join("|"), r = Bfe.get(s);
    if (!r) {
      r = xv;
      for (let i of e)
        r = zfe[i](r);
      Bfe.set(s, r);
    }
    return r;
  }
  n(xds, "getParserClass");
  JT.parse = yds;
  JT.parseExpression = gds;
  JT.tokTypes = bds;
});

// ../node_modules/@babel/traverse/lib/path/lib/virtual-types.js
var PR = g((xs) => {
  "use strict";
  Object.defineProperty(xs, "__esModule", {
    value: !0
  });
  xs.Var = xs.User = xs.Statement = xs.SpreadProperty = xs.Scope = xs.RestProperty = xs.ReferencedMemberExpression = xs.ReferencedIdentifier =
  xs.Referenced = xs.Pure = xs.NumericLiteralTypeAnnotation = xs.Generated = xs.ForAwaitStatement = xs.Flow = xs.Expression = xs.ExistentialTypeParam =
  xs.BlockScoped = xs.BindingIdentifier = void 0;
  var arr = xs.ReferencedIdentifier = ["Identifier", "JSXIdentifier"], orr = xs.ReferencedMemberExpression = ["MemberExpression"], lrr = xs.
  BindingIdentifier = ["Identifier"], urr = xs.Statement = ["Statement"], crr = xs.Expression = ["Expression"], prr = xs.Scope = ["Scopable",
  "Pattern"], hrr = xs.Referenced = null, frr = xs.BlockScoped = null, drr = xs.Var = ["VariableDeclaration"], mrr = xs.User = null, yrr = xs.
  Generated = null, grr = xs.Pure = null, Trr = xs.Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"], brr = xs.RestProperty =
  ["RestElement"], xrr = xs.SpreadProperty = ["RestElement"], Srr = xs.ExistentialTypeParam = ["ExistsTypeAnnotation"], Prr = xs.NumericLiteralTypeAnnotation =
  ["NumberLiteralTypeAnnotation"], Err = xs.ForAwaitStatement = ["ForOfStatement"];
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/utils/shallowEqual.js
var Pv = g((ER) => {
  "use strict";
  Object.defineProperty(ER, "__esModule", {
    value: !0
  });
  ER.default = Sds;
  function Sds(t, e) {
    let s = Object.keys(e);
    for (let r of s)
      if (t[r] !== e[r])
        return !1;
    return !0;
  }
  n(Sds, "shallowEqual");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/utils/deprecationWarning.js
var YT = g((AR) => {
  "use strict";
  Object.defineProperty(AR, "__esModule", {
    value: !0
  });
  AR.default = Pds;
  var Gfe = /* @__PURE__ */ new Set();
  function Pds(t, e, s = "") {
    if (Gfe.has(t)) return;
    Gfe.add(t);
    let {
      internal: r,
      trace: i
    } = Eds(1, 2);
    r || console.warn(`${s}\`${t}\` has been deprecated, please migrate to \`${e}\`
${i}`);
  }
  n(Pds, "deprecationWarning");
  function Eds(t, e) {
    let {
      stackTraceLimit: s,
      prepareStackTrace: r
    } = Error, i;
    if (Error.stackTraceLimit = 1 + t + e, Error.prepareStackTrace = function(o, l) {
      i = l;
    }, new Error().stack, Error.stackTraceLimit = s, Error.prepareStackTrace = r, !i) return {
      internal: !1,
      trace: ""
    };
    let a = i.slice(1 + t, 1 + t + e);
    return {
      internal: /[\\/]@babel[\\/]/.test(a[1].getFileName()),
      trace: a.map((o) => `    at ${o}`).join(`
`)
    };
  }
  n(Eds, "captureShortStackTrace");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/generated/index.js
var mi = g((D) => {
  "use strict";
  Object.defineProperty(D, "__esModule", {
    value: !0
  });
  D.isAccessor = jTs;
  D.isAnyTypeAnnotation = iys;
  D.isArgumentPlaceholder = _gs;
  D.isArrayExpression = Ads;
  D.isArrayPattern = Pms;
  D.isArrayTypeAnnotation = nys;
  D.isArrowFunctionExpression = Ems;
  D.isAssignmentExpression = vds;
  D.isAssignmentPattern = Sms;
  D.isAwaitExpression = Hms;
  D.isBigIntLiteral = Yms;
  D.isBinary = oTs;
  D.isBinaryExpression = Cds;
  D.isBindExpression = Lgs;
  D.isBlock = cTs;
  D.isBlockParent = uTs;
  D.isBlockStatement = kds;
  D.isBooleanLiteral = Gds;
  D.isBooleanLiteralTypeAnnotation = oys;
  D.isBooleanTypeAnnotation = ays;
  D.isBreakStatement = Dds;
  D.isCallExpression = Ods;
  D.isCatchClause = _ds;
  D.isClass = BTs;
  D.isClassAccessorProperty = Zms;
  D.isClassBody = Ams;
  D.isClassDeclaration = Cms;
  D.isClassExpression = vms;
  D.isClassImplements = uys;
  D.isClassMethod = jms;
  D.isClassPrivateMethod = tys;
  D.isClassPrivateProperty = eys;
  D.isClassProperty = Qms;
  D.isCompletionStatement = fTs;
  D.isConditional = dTs;
  D.isConditionalExpression = Lds;
  D.isContinueStatement = Bds;
  D.isDebuggerStatement = Mds;
  D.isDecimalLiteral = Ugs;
  D.isDeclaration = ETs;
  D.isDeclareClass = cys;
  D.isDeclareExportAllDeclaration = bys;
  D.isDeclareExportDeclaration = Tys;
  D.isDeclareFunction = pys;
  D.isDeclareInterface = hys;
  D.isDeclareModule = fys;
  D.isDeclareModuleExports = dys;
  D.isDeclareOpaqueType = yys;
  D.isDeclareTypeAlias = mys;
  D.isDeclareVariable = gys;
  D.isDeclaredPredicate = xys;
  D.isDecorator = Mgs;
  D.isDirective = Ids;
  D.isDirectiveLiteral = Nds;
  D.isDoExpression = Fgs;
  D.isDoWhileStatement = Fds;
  D.isEmptyStatement = jds;
  D.isEmptyTypeAnnotation = Dys;
  D.isEnumBody = $Ts;
  D.isEnumBooleanBody = ngs;
  D.isEnumBooleanMember = ugs;
  D.isEnumDeclaration = igs;
  D.isEnumDefaultedMember = hgs;
  D.isEnumMember = HTs;
  D.isEnumNumberBody = ags;
  D.isEnumNumberMember = cgs;
  D.isEnumStringBody = ogs;
  D.isEnumStringMember = pgs;
  D.isEnumSymbolBody = lgs;
  D.isExistsTypeAnnotation = Sys;
  D.isExportAllDeclaration = wms;
  D.isExportDeclaration = MTs;
  D.isExportDefaultDeclaration = Ims;
  D.isExportDefaultSpecifier = jgs;
  D.isExportNamedDeclaration = Nms;
  D.isExportNamespaceSpecifier = Xms;
  D.isExportSpecifier = kms;
  D.isExpression = aTs;
  D.isExpressionStatement = Rds;
  D.isExpressionWrapper = gTs;
  D.isFile = qds;
  D.isFlow = qTs;
  D.isFlowBaseAnnotation = KTs;
  D.isFlowDeclaration = VTs;
  D.isFlowPredicate = WTs;
  D.isFlowType = UTs;
  D.isFor = TTs;
  D.isForInStatement = Uds;
  D.isForOfStatement = Dms;
  D.isForStatement = Kds;
  D.isForXStatement = bTs;
  D.isFunction = xTs;
  D.isFunctionDeclaration = Vds;
  D.isFunctionExpression = Wds;
  D.isFunctionParent = STs;
  D.isFunctionTypeAnnotation = Pys;
  D.isFunctionTypeParam = Eys;
  D.isGenericTypeAnnotation = Ays;
  D.isIdentifier = $ds;
  D.isIfStatement = Hds;
  D.isImmutable = ITs;
  D.isImport = Jms;
  D.isImportAttribute = Bgs;
  D.isImportDeclaration = Oms;
  D.isImportDefaultSpecifier = _ms;
  D.isImportExpression = Mms;
  D.isImportNamespaceSpecifier = Lms;
  D.isImportOrExportDeclaration = Qfe;
  D.isImportSpecifier = Bms;
  D.isIndexedAccessType = fgs;
  D.isInferredPredicate = vys;
  D.isInterfaceDeclaration = wys;
  D.isInterfaceExtends = Cys;
  D.isInterfaceTypeAnnotation = Iys;
  D.isInterpreterDirective = wds;
  D.isIntersectionTypeAnnotation = Nys;
  D.isJSX = JTs;
  D.isJSXAttribute = mgs;
  D.isJSXClosingElement = ygs;
  D.isJSXClosingFragment = Ngs;
  D.isJSXElement = ggs;
  D.isJSXEmptyExpression = Tgs;
  D.isJSXExpressionContainer = bgs;
  D.isJSXFragment = wgs;
  D.isJSXIdentifier = Sgs;
  D.isJSXMemberExpression = Pgs;
  D.isJSXNamespacedName = Egs;
  D.isJSXOpeningElement = Ags;
  D.isJSXOpeningFragment = Igs;
  D.isJSXSpreadAttribute = vgs;
  D.isJSXSpreadChild = xgs;
  D.isJSXText = Cgs;
  D.isLVal = vTs;
  D.isLabeledStatement = Jds;
  D.isLiteral = wTs;
  D.isLogicalExpression = Zds;
  D.isLoop = mTs;
  D.isMemberExpression = ems;
  D.isMetaProperty = Fms;
  D.isMethod = kTs;
  D.isMiscellaneous = YTs;
  D.isMixedTypeAnnotation = kys;
  D.isModuleDeclaration = rbs;
  D.isModuleExpression = Kgs;
  D.isModuleSpecifier = FTs;
  D.isNewExpression = tms;
  D.isNoop = kgs;
  D.isNullLiteral = zds;
  D.isNullLiteralTypeAnnotation = lys;
  D.isNullableTypeAnnotation = Oys;
  D.isNumberLiteral = ZTs;
  D.isNumberLiteralTypeAnnotation = _ys;
  D.isNumberTypeAnnotation = Lys;
  D.isNumericLiteral = Xds;
  D.isObjectExpression = rms;
  D.isObjectMember = DTs;
  D.isObjectMethod = ims;
  D.isObjectPattern = Rms;
  D.isObjectProperty = nms;
  D.isObjectTypeAnnotation = Bys;
  D.isObjectTypeCallProperty = Fys;
  D.isObjectTypeIndexer = jys;
  D.isObjectTypeInternalSlot = Mys;
  D.isObjectTypeProperty = Rys;
  D.isObjectTypeSpreadProperty = qys;
  D.isOpaqueType = Uys;
  D.isOptionalCallExpression = Gms;
  D.isOptionalIndexedAccessType = dgs;
  D.isOptionalMemberExpression = zms;
  D.isParenthesizedExpression = ums;
  D.isPattern = LTs;
  D.isPatternLike = ATs;
  D.isPipelineBareFunction = $gs;
  D.isPipelinePrimaryTopicReference = Hgs;
  D.isPipelineTopicExpression = Wgs;
  D.isPlaceholder = Dgs;
  D.isPrivate = RTs;
  D.isPrivateName = sys;
  D.isProgram = sms;
  D.isProperty = OTs;
  D.isPureish = PTs;
  D.isQualifiedTypeIdentifier = Kys;
  D.isRecordExpression = Rgs;
  D.isRegExpLiteral = Qds;
  D.isRegexLiteral = ebs;
  D.isRestElement = ams;
  D.isRestProperty = tbs;
  D.isReturnStatement = oms;
  D.isScopable = lTs;
  D.isSequenceExpression = lms;
  D.isSpreadElement = qms;
  D.isSpreadProperty = sbs;
  D.isStandardized = nTs;
  D.isStatement = pTs;
  D.isStaticBlock = rys;
  D.isStringLiteral = Yds;
  D.isStringLiteralTypeAnnotation = Vys;
  D.isStringTypeAnnotation = Wys;
  D.isSuper = Ums;
  D.isSwitchCase = cms;
  D.isSwitchStatement = pms;
  D.isSymbolTypeAnnotation = $ys;
  D.isTSAnyKeyword = s0s;
  D.isTSArrayType = P0s;
  D.isTSAsExpression = U0s;
  D.isTSBaseType = QTs;
  D.isTSBigIntKeyword = i0s;
  D.isTSBooleanKeyword = r0s;
  D.isTSCallSignatureDeclaration = Ggs;
  D.isTSConditionalType = N0s;
  D.isTSConstructSignatureDeclaration = Qgs;
  D.isTSConstructorType = g0s;
  D.isTSDeclareFunction = Ygs;
  D.isTSDeclareMethod = Xgs;
  D.isTSEntityName = CTs;
  D.isTSEnumBody = W0s;
  D.isTSEnumDeclaration = $0s;
  D.isTSEnumMember = H0s;
  D.isTSExportAssignment = Z0s;
  D.isTSExpressionWithTypeArguments = M0s;
  D.isTSExternalModuleReference = G0s;
  D.isTSFunctionType = y0s;
  D.isTSImportEqualsDeclaration = z0s;
  D.isTSImportType = X0s;
  D.isTSIndexSignature = t0s;
  D.isTSIndexedAccessType = _0s;
  D.isTSInferType = k0s;
  D.isTSInstantiationExpression = q0s;
  D.isTSInterfaceBody = j0s;
  D.isTSInterfaceDeclaration = F0s;
  D.isTSIntersectionType = I0s;
  D.isTSIntrinsicKeyword = n0s;
  D.isTSLiteralType = B0s;
  D.isTSMappedType = L0s;
  D.isTSMethodSignature = e0s;
  D.isTSModuleBlock = Y0s;
  D.isTSModuleDeclaration = J0s;
  D.isTSNamedTupleMember = C0s;
  D.isTSNamespaceExportDeclaration = eTs;
  D.isTSNeverKeyword = a0s;
  D.isTSNonNullExpression = Q0s;
  D.isTSNullKeyword = o0s;
  D.isTSNumberKeyword = l0s;
  D.isTSObjectKeyword = u0s;
  D.isTSOptionalType = A0s;
  D.isTSParameterProperty = Jgs;
  D.isTSParenthesizedType = D0s;
  D.isTSPropertySignature = Zgs;
  D.isTSQualifiedName = zgs;
  D.isTSRestType = v0s;
  D.isTSSatisfiesExpression = K0s;
  D.isTSStringKeyword = c0s;
  D.isTSSymbolKeyword = p0s;
  D.isTSThisType = m0s;
  D.isTSTupleType = E0s;
  D.isTSType = GTs;
  D.isTSTypeAliasDeclaration = R0s;
  D.isTSTypeAnnotation = tTs;
  D.isTSTypeAssertion = V0s;
  D.isTSTypeElement = zTs;
  D.isTSTypeLiteral = S0s;
  D.isTSTypeOperator = O0s;
  D.isTSTypeParameter = iTs;
  D.isTSTypeParameterDeclaration = rTs;
  D.isTSTypeParameterInstantiation = sTs;
  D.isTSTypePredicate = b0s;
  D.isTSTypeQuery = x0s;
  D.isTSTypeReference = T0s;
  D.isTSUndefinedKeyword = h0s;
  D.isTSUnionType = w0s;
  D.isTSUnknownKeyword = f0s;
  D.isTSVoidKeyword = d0s;
  D.isTaggedTemplateExpression = Kms;
  D.isTemplateElement = Vms;
  D.isTemplateLiteral = Wms;
  D.isTerminatorless = hTs;
  D.isThisExpression = hms;
  D.isThisTypeAnnotation = Hys;
  D.isThrowStatement = fms;
  D.isTopicReference = Vgs;
  D.isTryStatement = dms;
  D.isTupleExpression = qgs;
  D.isTupleTypeAnnotation = Jys;
  D.isTypeAlias = Xys;
  D.isTypeAnnotation = zys;
  D.isTypeCastExpression = Gys;
  D.isTypeParameter = Qys;
  D.isTypeParameterDeclaration = Zys;
  D.isTypeParameterInstantiation = egs;
  D.isTypeScript = XTs;
  D.isTypeofTypeAnnotation = Yys;
  D.isUnaryExpression = mms;
  D.isUnaryLike = _Ts;
  D.isUnionTypeAnnotation = tgs;
  D.isUpdateExpression = yms;
  D.isUserWhitespacable = NTs;
  D.isV8IntrinsicIdentifier = Ogs;
  D.isVariableDeclaration = gms;
  D.isVariableDeclarator = Tms;
  D.isVariance = sgs;
  D.isVoidTypeAnnotation = rgs;
  D.isWhile = yTs;
  D.isWhileStatement = bms;
  D.isWithStatement = xms;
  D.isYieldExpression = $ms;
  var j = Pv(), XT = YT();
  function Ads(t, e) {
    return !t || t.type !== "ArrayExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ads, "isArrayExpression");
  function vds(t, e) {
    return !t || t.type !== "AssignmentExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(vds, "isAssignmentExpression");
  function Cds(t, e) {
    return !t || t.type !== "BinaryExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Cds, "isBinaryExpression");
  function wds(t, e) {
    return !t || t.type !== "InterpreterDirective" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(wds, "isInterpreterDirective");
  function Ids(t, e) {
    return !t || t.type !== "Directive" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ids, "isDirective");
  function Nds(t, e) {
    return !t || t.type !== "DirectiveLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Nds, "isDirectiveLiteral");
  function kds(t, e) {
    return !t || t.type !== "BlockStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(kds, "isBlockStatement");
  function Dds(t, e) {
    return !t || t.type !== "BreakStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Dds, "isBreakStatement");
  function Ods(t, e) {
    return !t || t.type !== "CallExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ods, "isCallExpression");
  function _ds(t, e) {
    return !t || t.type !== "CatchClause" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(_ds, "isCatchClause");
  function Lds(t, e) {
    return !t || t.type !== "ConditionalExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Lds, "isConditionalExpression");
  function Bds(t, e) {
    return !t || t.type !== "ContinueStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Bds, "isContinueStatement");
  function Mds(t, e) {
    return !t || t.type !== "DebuggerStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Mds, "isDebuggerStatement");
  function Fds(t, e) {
    return !t || t.type !== "DoWhileStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Fds, "isDoWhileStatement");
  function jds(t, e) {
    return !t || t.type !== "EmptyStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(jds, "isEmptyStatement");
  function Rds(t, e) {
    return !t || t.type !== "ExpressionStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Rds, "isExpressionStatement");
  function qds(t, e) {
    return !t || t.type !== "File" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(qds, "isFile");
  function Uds(t, e) {
    return !t || t.type !== "ForInStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Uds, "isForInStatement");
  function Kds(t, e) {
    return !t || t.type !== "ForStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Kds, "isForStatement");
  function Vds(t, e) {
    return !t || t.type !== "FunctionDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Vds, "isFunctionDeclaration");
  function Wds(t, e) {
    return !t || t.type !== "FunctionExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Wds, "isFunctionExpression");
  function $ds(t, e) {
    return !t || t.type !== "Identifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n($ds, "isIdentifier");
  function Hds(t, e) {
    return !t || t.type !== "IfStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Hds, "isIfStatement");
  function Jds(t, e) {
    return !t || t.type !== "LabeledStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Jds, "isLabeledStatement");
  function Yds(t, e) {
    return !t || t.type !== "StringLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Yds, "isStringLiteral");
  function Xds(t, e) {
    return !t || t.type !== "NumericLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Xds, "isNumericLiteral");
  function zds(t, e) {
    return !t || t.type !== "NullLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(zds, "isNullLiteral");
  function Gds(t, e) {
    return !t || t.type !== "BooleanLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Gds, "isBooleanLiteral");
  function Qds(t, e) {
    return !t || t.type !== "RegExpLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Qds, "isRegExpLiteral");
  function Zds(t, e) {
    return !t || t.type !== "LogicalExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Zds, "isLogicalExpression");
  function ems(t, e) {
    return !t || t.type !== "MemberExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ems, "isMemberExpression");
  function tms(t, e) {
    return !t || t.type !== "NewExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(tms, "isNewExpression");
  function sms(t, e) {
    return !t || t.type !== "Program" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(sms, "isProgram");
  function rms(t, e) {
    return !t || t.type !== "ObjectExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(rms, "isObjectExpression");
  function ims(t, e) {
    return !t || t.type !== "ObjectMethod" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ims, "isObjectMethod");
  function nms(t, e) {
    return !t || t.type !== "ObjectProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(nms, "isObjectProperty");
  function ams(t, e) {
    return !t || t.type !== "RestElement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ams, "isRestElement");
  function oms(t, e) {
    return !t || t.type !== "ReturnStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(oms, "isReturnStatement");
  function lms(t, e) {
    return !t || t.type !== "SequenceExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(lms, "isSequenceExpression");
  function ums(t, e) {
    return !t || t.type !== "ParenthesizedExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ums, "isParenthesizedExpression");
  function cms(t, e) {
    return !t || t.type !== "SwitchCase" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(cms, "isSwitchCase");
  function pms(t, e) {
    return !t || t.type !== "SwitchStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(pms, "isSwitchStatement");
  function hms(t, e) {
    return !t || t.type !== "ThisExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(hms, "isThisExpression");
  function fms(t, e) {
    return !t || t.type !== "ThrowStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(fms, "isThrowStatement");
  function dms(t, e) {
    return !t || t.type !== "TryStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(dms, "isTryStatement");
  function mms(t, e) {
    return !t || t.type !== "UnaryExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(mms, "isUnaryExpression");
  function yms(t, e) {
    return !t || t.type !== "UpdateExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(yms, "isUpdateExpression");
  function gms(t, e) {
    return !t || t.type !== "VariableDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(gms, "isVariableDeclaration");
  function Tms(t, e) {
    return !t || t.type !== "VariableDeclarator" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Tms, "isVariableDeclarator");
  function bms(t, e) {
    return !t || t.type !== "WhileStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(bms, "isWhileStatement");
  function xms(t, e) {
    return !t || t.type !== "WithStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(xms, "isWithStatement");
  function Sms(t, e) {
    return !t || t.type !== "AssignmentPattern" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Sms, "isAssignmentPattern");
  function Pms(t, e) {
    return !t || t.type !== "ArrayPattern" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Pms, "isArrayPattern");
  function Ems(t, e) {
    return !t || t.type !== "ArrowFunctionExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ems, "isArrowFunctionExpression");
  function Ams(t, e) {
    return !t || t.type !== "ClassBody" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ams, "isClassBody");
  function vms(t, e) {
    return !t || t.type !== "ClassExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(vms, "isClassExpression");
  function Cms(t, e) {
    return !t || t.type !== "ClassDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Cms, "isClassDeclaration");
  function wms(t, e) {
    return !t || t.type !== "ExportAllDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(wms, "isExportAllDeclaration");
  function Ims(t, e) {
    return !t || t.type !== "ExportDefaultDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ims, "isExportDefaultDeclaration");
  function Nms(t, e) {
    return !t || t.type !== "ExportNamedDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Nms, "isExportNamedDeclaration");
  function kms(t, e) {
    return !t || t.type !== "ExportSpecifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(kms, "isExportSpecifier");
  function Dms(t, e) {
    return !t || t.type !== "ForOfStatement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Dms, "isForOfStatement");
  function Oms(t, e) {
    return !t || t.type !== "ImportDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Oms, "isImportDeclaration");
  function _ms(t, e) {
    return !t || t.type !== "ImportDefaultSpecifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(_ms, "isImportDefaultSpecifier");
  function Lms(t, e) {
    return !t || t.type !== "ImportNamespaceSpecifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Lms, "isImportNamespaceSpecifier");
  function Bms(t, e) {
    return !t || t.type !== "ImportSpecifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Bms, "isImportSpecifier");
  function Mms(t, e) {
    return !t || t.type !== "ImportExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Mms, "isImportExpression");
  function Fms(t, e) {
    return !t || t.type !== "MetaProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Fms, "isMetaProperty");
  function jms(t, e) {
    return !t || t.type !== "ClassMethod" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(jms, "isClassMethod");
  function Rms(t, e) {
    return !t || t.type !== "ObjectPattern" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Rms, "isObjectPattern");
  function qms(t, e) {
    return !t || t.type !== "SpreadElement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(qms, "isSpreadElement");
  function Ums(t, e) {
    return !t || t.type !== "Super" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ums, "isSuper");
  function Kms(t, e) {
    return !t || t.type !== "TaggedTemplateExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Kms, "isTaggedTemplateExpression");
  function Vms(t, e) {
    return !t || t.type !== "TemplateElement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Vms, "isTemplateElement");
  function Wms(t, e) {
    return !t || t.type !== "TemplateLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Wms, "isTemplateLiteral");
  function $ms(t, e) {
    return !t || t.type !== "YieldExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n($ms, "isYieldExpression");
  function Hms(t, e) {
    return !t || t.type !== "AwaitExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Hms, "isAwaitExpression");
  function Jms(t, e) {
    return !t || t.type !== "Import" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Jms, "isImport");
  function Yms(t, e) {
    return !t || t.type !== "BigIntLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Yms, "isBigIntLiteral");
  function Xms(t, e) {
    return !t || t.type !== "ExportNamespaceSpecifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Xms, "isExportNamespaceSpecifier");
  function zms(t, e) {
    return !t || t.type !== "OptionalMemberExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(zms, "isOptionalMemberExpression");
  function Gms(t, e) {
    return !t || t.type !== "OptionalCallExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Gms, "isOptionalCallExpression");
  function Qms(t, e) {
    return !t || t.type !== "ClassProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Qms, "isClassProperty");
  function Zms(t, e) {
    return !t || t.type !== "ClassAccessorProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Zms, "isClassAccessorProperty");
  function eys(t, e) {
    return !t || t.type !== "ClassPrivateProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(eys, "isClassPrivateProperty");
  function tys(t, e) {
    return !t || t.type !== "ClassPrivateMethod" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(tys, "isClassPrivateMethod");
  function sys(t, e) {
    return !t || t.type !== "PrivateName" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(sys, "isPrivateName");
  function rys(t, e) {
    return !t || t.type !== "StaticBlock" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(rys, "isStaticBlock");
  function iys(t, e) {
    return !t || t.type !== "AnyTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(iys, "isAnyTypeAnnotation");
  function nys(t, e) {
    return !t || t.type !== "ArrayTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(nys, "isArrayTypeAnnotation");
  function ays(t, e) {
    return !t || t.type !== "BooleanTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ays, "isBooleanTypeAnnotation");
  function oys(t, e) {
    return !t || t.type !== "BooleanLiteralTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(oys, "isBooleanLiteralTypeAnnotation");
  function lys(t, e) {
    return !t || t.type !== "NullLiteralTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(lys, "isNullLiteralTypeAnnotation");
  function uys(t, e) {
    return !t || t.type !== "ClassImplements" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(uys, "isClassImplements");
  function cys(t, e) {
    return !t || t.type !== "DeclareClass" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(cys, "isDeclareClass");
  function pys(t, e) {
    return !t || t.type !== "DeclareFunction" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(pys, "isDeclareFunction");
  function hys(t, e) {
    return !t || t.type !== "DeclareInterface" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(hys, "isDeclareInterface");
  function fys(t, e) {
    return !t || t.type !== "DeclareModule" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(fys, "isDeclareModule");
  function dys(t, e) {
    return !t || t.type !== "DeclareModuleExports" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(dys, "isDeclareModuleExports");
  function mys(t, e) {
    return !t || t.type !== "DeclareTypeAlias" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(mys, "isDeclareTypeAlias");
  function yys(t, e) {
    return !t || t.type !== "DeclareOpaqueType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(yys, "isDeclareOpaqueType");
  function gys(t, e) {
    return !t || t.type !== "DeclareVariable" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(gys, "isDeclareVariable");
  function Tys(t, e) {
    return !t || t.type !== "DeclareExportDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Tys, "isDeclareExportDeclaration");
  function bys(t, e) {
    return !t || t.type !== "DeclareExportAllDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(bys, "isDeclareExportAllDeclaration");
  function xys(t, e) {
    return !t || t.type !== "DeclaredPredicate" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(xys, "isDeclaredPredicate");
  function Sys(t, e) {
    return !t || t.type !== "ExistsTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Sys, "isExistsTypeAnnotation");
  function Pys(t, e) {
    return !t || t.type !== "FunctionTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Pys, "isFunctionTypeAnnotation");
  function Eys(t, e) {
    return !t || t.type !== "FunctionTypeParam" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Eys, "isFunctionTypeParam");
  function Ays(t, e) {
    return !t || t.type !== "GenericTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ays, "isGenericTypeAnnotation");
  function vys(t, e) {
    return !t || t.type !== "InferredPredicate" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(vys, "isInferredPredicate");
  function Cys(t, e) {
    return !t || t.type !== "InterfaceExtends" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Cys, "isInterfaceExtends");
  function wys(t, e) {
    return !t || t.type !== "InterfaceDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(wys, "isInterfaceDeclaration");
  function Iys(t, e) {
    return !t || t.type !== "InterfaceTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Iys, "isInterfaceTypeAnnotation");
  function Nys(t, e) {
    return !t || t.type !== "IntersectionTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Nys, "isIntersectionTypeAnnotation");
  function kys(t, e) {
    return !t || t.type !== "MixedTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(kys, "isMixedTypeAnnotation");
  function Dys(t, e) {
    return !t || t.type !== "EmptyTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Dys, "isEmptyTypeAnnotation");
  function Oys(t, e) {
    return !t || t.type !== "NullableTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Oys, "isNullableTypeAnnotation");
  function _ys(t, e) {
    return !t || t.type !== "NumberLiteralTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(_ys, "isNumberLiteralTypeAnnotation");
  function Lys(t, e) {
    return !t || t.type !== "NumberTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Lys, "isNumberTypeAnnotation");
  function Bys(t, e) {
    return !t || t.type !== "ObjectTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Bys, "isObjectTypeAnnotation");
  function Mys(t, e) {
    return !t || t.type !== "ObjectTypeInternalSlot" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Mys, "isObjectTypeInternalSlot");
  function Fys(t, e) {
    return !t || t.type !== "ObjectTypeCallProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Fys, "isObjectTypeCallProperty");
  function jys(t, e) {
    return !t || t.type !== "ObjectTypeIndexer" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(jys, "isObjectTypeIndexer");
  function Rys(t, e) {
    return !t || t.type !== "ObjectTypeProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Rys, "isObjectTypeProperty");
  function qys(t, e) {
    return !t || t.type !== "ObjectTypeSpreadProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(qys, "isObjectTypeSpreadProperty");
  function Uys(t, e) {
    return !t || t.type !== "OpaqueType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Uys, "isOpaqueType");
  function Kys(t, e) {
    return !t || t.type !== "QualifiedTypeIdentifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Kys, "isQualifiedTypeIdentifier");
  function Vys(t, e) {
    return !t || t.type !== "StringLiteralTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Vys, "isStringLiteralTypeAnnotation");
  function Wys(t, e) {
    return !t || t.type !== "StringTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Wys, "isStringTypeAnnotation");
  function $ys(t, e) {
    return !t || t.type !== "SymbolTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n($ys, "isSymbolTypeAnnotation");
  function Hys(t, e) {
    return !t || t.type !== "ThisTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Hys, "isThisTypeAnnotation");
  function Jys(t, e) {
    return !t || t.type !== "TupleTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Jys, "isTupleTypeAnnotation");
  function Yys(t, e) {
    return !t || t.type !== "TypeofTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Yys, "isTypeofTypeAnnotation");
  function Xys(t, e) {
    return !t || t.type !== "TypeAlias" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Xys, "isTypeAlias");
  function zys(t, e) {
    return !t || t.type !== "TypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(zys, "isTypeAnnotation");
  function Gys(t, e) {
    return !t || t.type !== "TypeCastExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Gys, "isTypeCastExpression");
  function Qys(t, e) {
    return !t || t.type !== "TypeParameter" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Qys, "isTypeParameter");
  function Zys(t, e) {
    return !t || t.type !== "TypeParameterDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Zys, "isTypeParameterDeclaration");
  function egs(t, e) {
    return !t || t.type !== "TypeParameterInstantiation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(egs, "isTypeParameterInstantiation");
  function tgs(t, e) {
    return !t || t.type !== "UnionTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(tgs, "isUnionTypeAnnotation");
  function sgs(t, e) {
    return !t || t.type !== "Variance" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(sgs, "isVariance");
  function rgs(t, e) {
    return !t || t.type !== "VoidTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(rgs, "isVoidTypeAnnotation");
  function igs(t, e) {
    return !t || t.type !== "EnumDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(igs, "isEnumDeclaration");
  function ngs(t, e) {
    return !t || t.type !== "EnumBooleanBody" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ngs, "isEnumBooleanBody");
  function ags(t, e) {
    return !t || t.type !== "EnumNumberBody" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ags, "isEnumNumberBody");
  function ogs(t, e) {
    return !t || t.type !== "EnumStringBody" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ogs, "isEnumStringBody");
  function lgs(t, e) {
    return !t || t.type !== "EnumSymbolBody" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(lgs, "isEnumSymbolBody");
  function ugs(t, e) {
    return !t || t.type !== "EnumBooleanMember" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ugs, "isEnumBooleanMember");
  function cgs(t, e) {
    return !t || t.type !== "EnumNumberMember" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(cgs, "isEnumNumberMember");
  function pgs(t, e) {
    return !t || t.type !== "EnumStringMember" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(pgs, "isEnumStringMember");
  function hgs(t, e) {
    return !t || t.type !== "EnumDefaultedMember" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(hgs, "isEnumDefaultedMember");
  function fgs(t, e) {
    return !t || t.type !== "IndexedAccessType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(fgs, "isIndexedAccessType");
  function dgs(t, e) {
    return !t || t.type !== "OptionalIndexedAccessType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(dgs, "isOptionalIndexedAccessType");
  function mgs(t, e) {
    return !t || t.type !== "JSXAttribute" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(mgs, "isJSXAttribute");
  function ygs(t, e) {
    return !t || t.type !== "JSXClosingElement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ygs, "isJSXClosingElement");
  function ggs(t, e) {
    return !t || t.type !== "JSXElement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ggs, "isJSXElement");
  function Tgs(t, e) {
    return !t || t.type !== "JSXEmptyExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Tgs, "isJSXEmptyExpression");
  function bgs(t, e) {
    return !t || t.type !== "JSXExpressionContainer" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(bgs, "isJSXExpressionContainer");
  function xgs(t, e) {
    return !t || t.type !== "JSXSpreadChild" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(xgs, "isJSXSpreadChild");
  function Sgs(t, e) {
    return !t || t.type !== "JSXIdentifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Sgs, "isJSXIdentifier");
  function Pgs(t, e) {
    return !t || t.type !== "JSXMemberExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Pgs, "isJSXMemberExpression");
  function Egs(t, e) {
    return !t || t.type !== "JSXNamespacedName" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Egs, "isJSXNamespacedName");
  function Ags(t, e) {
    return !t || t.type !== "JSXOpeningElement" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ags, "isJSXOpeningElement");
  function vgs(t, e) {
    return !t || t.type !== "JSXSpreadAttribute" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(vgs, "isJSXSpreadAttribute");
  function Cgs(t, e) {
    return !t || t.type !== "JSXText" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Cgs, "isJSXText");
  function wgs(t, e) {
    return !t || t.type !== "JSXFragment" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(wgs, "isJSXFragment");
  function Igs(t, e) {
    return !t || t.type !== "JSXOpeningFragment" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Igs, "isJSXOpeningFragment");
  function Ngs(t, e) {
    return !t || t.type !== "JSXClosingFragment" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ngs, "isJSXClosingFragment");
  function kgs(t, e) {
    return !t || t.type !== "Noop" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(kgs, "isNoop");
  function Dgs(t, e) {
    return !t || t.type !== "Placeholder" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Dgs, "isPlaceholder");
  function Ogs(t, e) {
    return !t || t.type !== "V8IntrinsicIdentifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ogs, "isV8IntrinsicIdentifier");
  function _gs(t, e) {
    return !t || t.type !== "ArgumentPlaceholder" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(_gs, "isArgumentPlaceholder");
  function Lgs(t, e) {
    return !t || t.type !== "BindExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Lgs, "isBindExpression");
  function Bgs(t, e) {
    return !t || t.type !== "ImportAttribute" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Bgs, "isImportAttribute");
  function Mgs(t, e) {
    return !t || t.type !== "Decorator" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Mgs, "isDecorator");
  function Fgs(t, e) {
    return !t || t.type !== "DoExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Fgs, "isDoExpression");
  function jgs(t, e) {
    return !t || t.type !== "ExportDefaultSpecifier" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(jgs, "isExportDefaultSpecifier");
  function Rgs(t, e) {
    return !t || t.type !== "RecordExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Rgs, "isRecordExpression");
  function qgs(t, e) {
    return !t || t.type !== "TupleExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(qgs, "isTupleExpression");
  function Ugs(t, e) {
    return !t || t.type !== "DecimalLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ugs, "isDecimalLiteral");
  function Kgs(t, e) {
    return !t || t.type !== "ModuleExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Kgs, "isModuleExpression");
  function Vgs(t, e) {
    return !t || t.type !== "TopicReference" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Vgs, "isTopicReference");
  function Wgs(t, e) {
    return !t || t.type !== "PipelineTopicExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Wgs, "isPipelineTopicExpression");
  function $gs(t, e) {
    return !t || t.type !== "PipelineBareFunction" ? !1 : e == null || (0, j.default)(t, e);
  }
  n($gs, "isPipelineBareFunction");
  function Hgs(t, e) {
    return !t || t.type !== "PipelinePrimaryTopicReference" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Hgs, "isPipelinePrimaryTopicReference");
  function Jgs(t, e) {
    return !t || t.type !== "TSParameterProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Jgs, "isTSParameterProperty");
  function Ygs(t, e) {
    return !t || t.type !== "TSDeclareFunction" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ygs, "isTSDeclareFunction");
  function Xgs(t, e) {
    return !t || t.type !== "TSDeclareMethod" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Xgs, "isTSDeclareMethod");
  function zgs(t, e) {
    return !t || t.type !== "TSQualifiedName" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(zgs, "isTSQualifiedName");
  function Ggs(t, e) {
    return !t || t.type !== "TSCallSignatureDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Ggs, "isTSCallSignatureDeclaration");
  function Qgs(t, e) {
    return !t || t.type !== "TSConstructSignatureDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Qgs, "isTSConstructSignatureDeclaration");
  function Zgs(t, e) {
    return !t || t.type !== "TSPropertySignature" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Zgs, "isTSPropertySignature");
  function e0s(t, e) {
    return !t || t.type !== "TSMethodSignature" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(e0s, "isTSMethodSignature");
  function t0s(t, e) {
    return !t || t.type !== "TSIndexSignature" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(t0s, "isTSIndexSignature");
  function s0s(t, e) {
    return !t || t.type !== "TSAnyKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(s0s, "isTSAnyKeyword");
  function r0s(t, e) {
    return !t || t.type !== "TSBooleanKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(r0s, "isTSBooleanKeyword");
  function i0s(t, e) {
    return !t || t.type !== "TSBigIntKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(i0s, "isTSBigIntKeyword");
  function n0s(t, e) {
    return !t || t.type !== "TSIntrinsicKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(n0s, "isTSIntrinsicKeyword");
  function a0s(t, e) {
    return !t || t.type !== "TSNeverKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(a0s, "isTSNeverKeyword");
  function o0s(t, e) {
    return !t || t.type !== "TSNullKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(o0s, "isTSNullKeyword");
  function l0s(t, e) {
    return !t || t.type !== "TSNumberKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(l0s, "isTSNumberKeyword");
  function u0s(t, e) {
    return !t || t.type !== "TSObjectKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(u0s, "isTSObjectKeyword");
  function c0s(t, e) {
    return !t || t.type !== "TSStringKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(c0s, "isTSStringKeyword");
  function p0s(t, e) {
    return !t || t.type !== "TSSymbolKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(p0s, "isTSSymbolKeyword");
  function h0s(t, e) {
    return !t || t.type !== "TSUndefinedKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(h0s, "isTSUndefinedKeyword");
  function f0s(t, e) {
    return !t || t.type !== "TSUnknownKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(f0s, "isTSUnknownKeyword");
  function d0s(t, e) {
    return !t || t.type !== "TSVoidKeyword" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(d0s, "isTSVoidKeyword");
  function m0s(t, e) {
    return !t || t.type !== "TSThisType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(m0s, "isTSThisType");
  function y0s(t, e) {
    return !t || t.type !== "TSFunctionType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(y0s, "isTSFunctionType");
  function g0s(t, e) {
    return !t || t.type !== "TSConstructorType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(g0s, "isTSConstructorType");
  function T0s(t, e) {
    return !t || t.type !== "TSTypeReference" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(T0s, "isTSTypeReference");
  function b0s(t, e) {
    return !t || t.type !== "TSTypePredicate" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(b0s, "isTSTypePredicate");
  function x0s(t, e) {
    return !t || t.type !== "TSTypeQuery" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(x0s, "isTSTypeQuery");
  function S0s(t, e) {
    return !t || t.type !== "TSTypeLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(S0s, "isTSTypeLiteral");
  function P0s(t, e) {
    return !t || t.type !== "TSArrayType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(P0s, "isTSArrayType");
  function E0s(t, e) {
    return !t || t.type !== "TSTupleType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(E0s, "isTSTupleType");
  function A0s(t, e) {
    return !t || t.type !== "TSOptionalType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(A0s, "isTSOptionalType");
  function v0s(t, e) {
    return !t || t.type !== "TSRestType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(v0s, "isTSRestType");
  function C0s(t, e) {
    return !t || t.type !== "TSNamedTupleMember" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(C0s, "isTSNamedTupleMember");
  function w0s(t, e) {
    return !t || t.type !== "TSUnionType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(w0s, "isTSUnionType");
  function I0s(t, e) {
    return !t || t.type !== "TSIntersectionType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(I0s, "isTSIntersectionType");
  function N0s(t, e) {
    return !t || t.type !== "TSConditionalType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(N0s, "isTSConditionalType");
  function k0s(t, e) {
    return !t || t.type !== "TSInferType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(k0s, "isTSInferType");
  function D0s(t, e) {
    return !t || t.type !== "TSParenthesizedType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(D0s, "isTSParenthesizedType");
  function O0s(t, e) {
    return !t || t.type !== "TSTypeOperator" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(O0s, "isTSTypeOperator");
  function _0s(t, e) {
    return !t || t.type !== "TSIndexedAccessType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(_0s, "isTSIndexedAccessType");
  function L0s(t, e) {
    return !t || t.type !== "TSMappedType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(L0s, "isTSMappedType");
  function B0s(t, e) {
    return !t || t.type !== "TSLiteralType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(B0s, "isTSLiteralType");
  function M0s(t, e) {
    return !t || t.type !== "TSExpressionWithTypeArguments" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(M0s, "isTSExpressionWithTypeArguments");
  function F0s(t, e) {
    return !t || t.type !== "TSInterfaceDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(F0s, "isTSInterfaceDeclaration");
  function j0s(t, e) {
    return !t || t.type !== "TSInterfaceBody" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(j0s, "isTSInterfaceBody");
  function R0s(t, e) {
    return !t || t.type !== "TSTypeAliasDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(R0s, "isTSTypeAliasDeclaration");
  function q0s(t, e) {
    return !t || t.type !== "TSInstantiationExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(q0s, "isTSInstantiationExpression");
  function U0s(t, e) {
    return !t || t.type !== "TSAsExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(U0s, "isTSAsExpression");
  function K0s(t, e) {
    return !t || t.type !== "TSSatisfiesExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(K0s, "isTSSatisfiesExpression");
  function V0s(t, e) {
    return !t || t.type !== "TSTypeAssertion" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(V0s, "isTSTypeAssertion");
  function W0s(t, e) {
    return !t || t.type !== "TSEnumBody" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(W0s, "isTSEnumBody");
  function $0s(t, e) {
    return !t || t.type !== "TSEnumDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n($0s, "isTSEnumDeclaration");
  function H0s(t, e) {
    return !t || t.type !== "TSEnumMember" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(H0s, "isTSEnumMember");
  function J0s(t, e) {
    return !t || t.type !== "TSModuleDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(J0s, "isTSModuleDeclaration");
  function Y0s(t, e) {
    return !t || t.type !== "TSModuleBlock" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Y0s, "isTSModuleBlock");
  function X0s(t, e) {
    return !t || t.type !== "TSImportType" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(X0s, "isTSImportType");
  function z0s(t, e) {
    return !t || t.type !== "TSImportEqualsDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(z0s, "isTSImportEqualsDeclaration");
  function G0s(t, e) {
    return !t || t.type !== "TSExternalModuleReference" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(G0s, "isTSExternalModuleReference");
  function Q0s(t, e) {
    return !t || t.type !== "TSNonNullExpression" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Q0s, "isTSNonNullExpression");
  function Z0s(t, e) {
    return !t || t.type !== "TSExportAssignment" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(Z0s, "isTSExportAssignment");
  function eTs(t, e) {
    return !t || t.type !== "TSNamespaceExportDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(eTs, "isTSNamespaceExportDeclaration");
  function tTs(t, e) {
    return !t || t.type !== "TSTypeAnnotation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(tTs, "isTSTypeAnnotation");
  function sTs(t, e) {
    return !t || t.type !== "TSTypeParameterInstantiation" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(sTs, "isTSTypeParameterInstantiation");
  function rTs(t, e) {
    return !t || t.type !== "TSTypeParameterDeclaration" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(rTs, "isTSTypeParameterDeclaration");
  function iTs(t, e) {
    return !t || t.type !== "TSTypeParameter" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(iTs, "isTSTypeParameter");
  function nTs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Identifier":
          case "StringLiteral":
          case "BlockStatement":
          case "ClassBody":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(nTs, "isStandardized");
  function aTs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Expression":
          case "Identifier":
          case "StringLiteral":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(aTs, "isExpression");
  function oTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BinaryExpression":
      case "LogicalExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(oTs, "isBinary");
  function lTs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(lTs, "isScopable");
  function uTs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(uTs, "isBlockParent");
  function cTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BlockStatement":
      case "Program":
      case "TSModuleBlock":
        break;
      case "Placeholder":
        if (t.expectedNode === "BlockStatement") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(cTs, "isBlock");
  function pTs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Statement":
          case "Declaration":
          case "BlockStatement":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(pTs, "isStatement");
  function hTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BreakStatement":
      case "ContinueStatement":
      case "ReturnStatement":
      case "ThrowStatement":
      case "YieldExpression":
      case "AwaitExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(hTs, "isTerminatorless");
  function fTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "BreakStatement":
      case "ContinueStatement":
      case "ReturnStatement":
      case "ThrowStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(fTs, "isCompletionStatement");
  function dTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ConditionalExpression":
      case "IfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(dTs, "isConditional");
  function mTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForStatement":
      case "WhileStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(mTs, "isLoop");
  function yTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DoWhileStatement":
      case "WhileStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(yTs, "isWhile");
  function gTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExpressionStatement":
      case "ParenthesizedExpression":
      case "TypeCastExpression":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(gTs, "isExpressionWrapper");
  function TTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ForInStatement":
      case "ForStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(TTs, "isFor");
  function bTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ForInStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(bTs, "isForXStatement");
  function xTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "ObjectMethod":
      case "ArrowFunctionExpression":
      case "ClassMethod":
      case "ClassPrivateMethod":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(xTs, "isFunction");
  function STs(t, e) {
    if (!t) return !1;
    switch (t.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, j.default)(t, e);
  }
  n(STs, "isFunctionParent");
  function PTs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(PTs, "isPureish");
  function ETs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "Declaration") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(ETs, "isDeclaration");
  function ATs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Identifier":
      case "RestElement":
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        break;
      case "Placeholder":
        switch (t.expectedNode) {
          case "Pattern":
          case "Identifier":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(ATs, "isPatternLike");
  function vTs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode) {
          case "Pattern":
          case "Identifier":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(vTs, "isLVal");
  function CTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Identifier":
      case "TSQualifiedName":
        break;
      case "Placeholder":
        if (t.expectedNode === "Identifier") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(CTs, "isTSEntityName");
  function wTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "StringLiteral":
      case "NumericLiteral":
      case "NullLiteral":
      case "BooleanLiteral":
      case "RegExpLiteral":
      case "TemplateLiteral":
      case "BigIntLiteral":
      case "DecimalLiteral":
        break;
      case "Placeholder":
        if (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(wTs, "isLiteral");
  function ITs(t, e) {
    if (!t) return !1;
    switch (t.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 (t.expectedNode === "StringLiteral") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(ITs, "isImmutable");
  function NTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ObjectProperty":
      case "ObjectTypeInternalSlot":
      case "ObjectTypeCallProperty":
      case "ObjectTypeIndexer":
      case "ObjectTypeProperty":
      case "ObjectTypeSpreadProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(NTs, "isUserWhitespacable");
  function kTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ClassMethod":
      case "ClassPrivateMethod":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(kTs, "isMethod");
  function DTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectMethod":
      case "ObjectProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(DTs, "isObjectMember");
  function OTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ObjectProperty":
      case "ClassProperty":
      case "ClassAccessorProperty":
      case "ClassPrivateProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(OTs, "isProperty");
  function _Ts(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "UnaryExpression":
      case "SpreadElement":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(_Ts, "isUnaryLike");
  function LTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
        break;
      case "Placeholder":
        if (t.expectedNode === "Pattern") break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(LTs, "isPattern");
  function BTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassExpression":
      case "ClassDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(BTs, "isClass");
  function Qfe(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
      case "ImportDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(Qfe, "isImportOrExportDeclaration");
  function MTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(MTs, "isExportDeclaration");
  function FTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ExportSpecifier":
      case "ImportDefaultSpecifier":
      case "ImportNamespaceSpecifier":
      case "ImportSpecifier":
      case "ExportNamespaceSpecifier":
      case "ExportDefaultSpecifier":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(FTs, "isModuleSpecifier");
  function jTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassAccessorProperty":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(jTs, "isAccessor");
  function RTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
      case "PrivateName":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(RTs, "isPrivate");
  function qTs(t, e) {
    if (!t) return !1;
    switch (t.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, j.default)(t, e);
  }
  n(qTs, "isFlow");
  function UTs(t, e) {
    if (!t) return !1;
    switch (t.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, j.default)(t, e);
  }
  n(UTs, "isFlowType");
  function KTs(t, e) {
    if (!t) return !1;
    switch (t.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, j.default)(t, e);
  }
  n(KTs, "isFlowBaseAnnotation");
  function VTs(t, e) {
    if (!t) return !1;
    switch (t.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, j.default)(t, e);
  }
  n(VTs, "isFlowDeclaration");
  function WTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "DeclaredPredicate":
      case "InferredPredicate":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(WTs, "isFlowPredicate");
  function $Ts(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "EnumBooleanBody":
      case "EnumNumberBody":
      case "EnumStringBody":
      case "EnumSymbolBody":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n($Ts, "isEnumBody");
  function HTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "EnumBooleanMember":
      case "EnumNumberMember":
      case "EnumStringMember":
      case "EnumDefaultedMember":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(HTs, "isEnumMember");
  function JTs(t, e) {
    if (!t) return !1;
    switch (t.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, j.default)(t, e);
  }
  n(JTs, "isJSX");
  function YTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "Noop":
      case "Placeholder":
      case "V8IntrinsicIdentifier":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(YTs, "isMiscellaneous");
  function XTs(t, e) {
    if (!t) return !1;
    switch (t.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 "TSEnumBody":
      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, j.default)(t, e);
  }
  n(XTs, "isTypeScript");
  function zTs(t, e) {
    if (!t) return !1;
    switch (t.type) {
      case "TSCallSignatureDeclaration":
      case "TSConstructSignatureDeclaration":
      case "TSPropertySignature":
      case "TSMethodSignature":
      case "TSIndexSignature":
        break;
      default:
        return !1;
    }
    return e == null || (0, j.default)(t, e);
  }
  n(zTs, "isTSTypeElement");
  function GTs(t, e) {
    if (!t) return !1;
    switch (t.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, j.default)(t, e);
  }
  n(GTs, "isTSType");
  function QTs(t, e) {
    if (!t) return !1;
    switch (t.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, j.default)(t, e);
  }
  n(QTs, "isTSBaseType");
  function ZTs(t, e) {
    return (0, XT.default)("isNumberLiteral", "isNumericLiteral"), !t || t.type !== "NumberLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ZTs, "isNumberLiteral");
  function ebs(t, e) {
    return (0, XT.default)("isRegexLiteral", "isRegExpLiteral"), !t || t.type !== "RegexLiteral" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(ebs, "isRegexLiteral");
  function tbs(t, e) {
    return (0, XT.default)("isRestProperty", "isRestElement"), !t || t.type !== "RestProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(tbs, "isRestProperty");
  function sbs(t, e) {
    return (0, XT.default)("isSpreadProperty", "isSpreadElement"), !t || t.type !== "SpreadProperty" ? !1 : e == null || (0, j.default)(t, e);
  }
  n(sbs, "isSpreadProperty");
  function rbs(t, e) {
    return (0, XT.default)("isModuleDeclaration", "isImportOrExportDeclaration"), Qfe(t, e);
  }
  n(rbs, "isModuleDeclaration");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/matchesPattern.js
var CR = g((vR) => {
  "use strict";
  Object.defineProperty(vR, "__esModule", {
    value: !0
  });
  vR.default = ibs;
  var zT = mi();
  function ibs(t, e, s) {
    if (!(0, zT.isMemberExpression)(t)) return !1;
    let r = Array.isArray(e) ? e : e.split("."), i = [], a;
    for (a = t; (0, zT.isMemberExpression)(a); a = a.object)
      i.push(a.property);
    if (i.push(a), i.length < r.length || !s && i.length > r.length) return !1;
    for (let o = 0, l = i.length - 1; o < r.length; o++, l--) {
      let u = i[l], c;
      if ((0, zT.isIdentifier)(u))
        c = u.name;
      else if ((0, zT.isStringLiteral)(u))
        c = u.value;
      else if ((0, zT.isThisExpression)(u))
        c = "this";
      else
        return !1;
      if (r[o] !== c) return !1;
    }
    return !0;
  }
  n(ibs, "matchesPattern");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js
var IR = g((wR) => {
  "use strict";
  Object.defineProperty(wR, "__esModule", {
    value: !0
  });
  wR.default = abs;
  var nbs = CR();
  function abs(t, e) {
    let s = t.split(".");
    return (r) => (0, nbs.default)(r, s, e);
  }
  n(abs, "buildMatchMemberExpression");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/react/isReactComponent.js
var Zfe = g((Ev) => {
  "use strict";
  Object.defineProperty(Ev, "__esModule", {
    value: !0
  });
  Ev.default = void 0;
  var obs = IR(), lbs = (0, obs.default)("React.Component"), Brr = Ev.default = lbs;
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/react/isCompatTag.js
var ede = g((NR) => {
  "use strict";
  Object.defineProperty(NR, "__esModule", {
    value: !0
  });
  NR.default = ubs;
  function ubs(t) {
    return !!t && /^[a-z]/.test(t);
  }
  n(ubs, "isCompatTag");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isType.js
var Av = g((kR) => {
  "use strict";
  Object.defineProperty(kR, "__esModule", {
    value: !0
  });
  kR.default = cbs;
  var tde = oo();
  function cbs(t, e) {
    if (t === e) return !0;
    if (t == null || tde.ALIAS_KEYS[e]) return !1;
    let s = tde.FLIPPED_ALIAS_KEYS[e];
    if (s) {
      if (s[0] === t) return !0;
      for (let r of s)
        if (t === r) return !0;
    }
    return !1;
  }
  n(cbs, "isType");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isPlaceholderType.js
var OR = g((DR) => {
  "use strict";
  Object.defineProperty(DR, "__esModule", {
    value: !0
  });
  DR.default = hbs;
  var pbs = oo();
  function hbs(t, e) {
    if (t === e) return !0;
    let s = pbs.PLACEHOLDERS_ALIAS[t];
    if (s) {
      for (let r of s)
        if (e === r) return !0;
    }
    return !1;
  }
  n(hbs, "isPlaceholderType");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/is.js
var xy = g((_R) => {
  "use strict";
  Object.defineProperty(_R, "__esModule", {
    value: !0
  });
  _R.default = gbs;
  var fbs = Pv(), dbs = Av(), mbs = OR(), ybs = oo();
  function gbs(t, e, s) {
    return e ? (0, dbs.default)(e.type, t) ? s === void 0 ? !0 : (0, fbs.default)(e, s) : !s && e.type === "Placeholder" && t in ybs.FLIPPED_ALIAS_KEYS ?
    (0, mbs.default)(e.expectedNode, t) : !1 : !1;
  }
  n(gbs, "is");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isValidIdentifier.js
var Sy = g((BR) => {
  "use strict";
  Object.defineProperty(BR, "__esModule", {
    value: !0
  });
  BR.default = Tbs;
  var LR = xa();
  function Tbs(t, e = !0) {
    return typeof t != "string" || e && ((0, LR.isKeyword)(t) || (0, LR.isStrictReservedWord)(t, !0)) ? !1 : (0, LR.isIdentifierName)(t);
  }
  n(Tbs, "isValidIdentifier");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/constants/index.js
var Wp = g((es) => {
  "use strict";
  Object.defineProperty(es, "__esModule", {
    value: !0
  });
  es.UPDATE_OPERATORS = es.UNARY_OPERATORS = es.STRING_UNARY_OPERATORS = es.STATEMENT_OR_BLOCK_KEYS = es.NUMBER_UNARY_OPERATORS = es.NUMBER_BINARY_OPERATORS =
  es.NOT_LOCAL_BINDING = es.LOGICAL_OPERATORS = es.INHERIT_KEYS = es.FOR_INIT_KEYS = es.FLATTENABLE_KEYS = es.EQUALITY_BINARY_OPERATORS = es.
  COMPARISON_BINARY_OPERATORS = es.COMMENT_KEYS = es.BOOLEAN_UNARY_OPERATORS = es.BOOLEAN_NUMBER_BINARY_OPERATORS = es.BOOLEAN_BINARY_OPERATORS =
  es.BLOCK_SCOPED_SYMBOL = es.BINARY_OPERATORS = es.ASSIGNMENT_OPERATORS = void 0;
  var Jrr = es.STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"], Yrr = es.FLATTENABLE_KEYS = ["body", "expressions"], Xrr = es.
  FOR_INIT_KEYS = ["left", "init"], zrr = es.COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"], bbs = es.LOGICAL_OPERATORS =
  ["||", "&&", "??"], Grr = es.UPDATE_OPERATORS = ["++", "--"], xbs = es.BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="], Sbs = es.
  EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="], Pbs = es.COMPARISON_BINARY_OPERATORS = [...Sbs, "in", "instanceof"], Ebs = es.BOOLEAN_BINARY_OPERATORS =
  [...Pbs, ...xbs], sde = es.NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"], Qrr = es.BINARY_OPERATORS =
  ["+", ...sde, ...Ebs, "|>"], Zrr = es.ASSIGNMENT_OPERATORS = ["=", "+=", ...sde.map((t) => t + "="), ...bbs.map((t) => t + "=")], Abs = es.
  BOOLEAN_UNARY_OPERATORS = ["delete", "!"], vbs = es.NUMBER_UNARY_OPERATORS = ["+", "-", "~"], Cbs = es.STRING_UNARY_OPERATORS = ["typeof"],
  eir = es.UNARY_OPERATORS = ["void", "throw", ...Abs, ...vbs, ...Cbs], tir = es.INHERIT_KEYS = {
    optional: ["typeAnnotation", "typeParameters", "returnType"],
    force: ["start", "loc", "end"]
  }, sir = es.BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped"), rir = es.NOT_LOCAL_BINDING = Symbol.for("should not be consid\
ered a local binding");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/utils.js
var Ol = g((Vs) => {
  "use strict";
  Object.defineProperty(Vs, "__esModule", {
    value: !0
  });
  Vs.VISITOR_KEYS = Vs.NODE_PARENT_VALIDATIONS = Vs.NODE_FIELDS = Vs.FLIPPED_ALIAS_KEYS = Vs.DEPRECATED_KEYS = Vs.BUILDER_KEYS = Vs.ALIAS_KEYS =
  void 0;
  Vs.arrayOf = ide;
  Vs.arrayOfType = nde;
  Vs.assertEach = ade;
  Vs.assertNodeOrValueType = jbs;
  Vs.assertNodeType = wv;
  Vs.assertOneOf = Fbs;
  Vs.assertOptionalChainStart = qbs;
  Vs.assertShape = Rbs;
  Vs.assertValueType = RR;
  Vs.chain = ode;
  Vs.default = lde;
  Vs.defineAliasedType = Vbs;
  Vs.validate = jR;
  Vs.validateArrayOfType = Mbs;
  Vs.validateOptional = Lbs;
  Vs.validateOptionalType = Bbs;
  Vs.validateType = _bs;
  var rde = xy(), Cv = Iv(), wbs = Vs.VISITOR_KEYS = {}, Ibs = Vs.ALIAS_KEYS = {}, MR = Vs.FLIPPED_ALIAS_KEYS = {}, Nbs = Vs.NODE_FIELDS = {},
  kbs = Vs.BUILDER_KEYS = {}, Dbs = Vs.DEPRECATED_KEYS = {}, Obs = Vs.NODE_PARENT_VALIDATIONS = {};
  function vv(t) {
    return Array.isArray(t) ? "array" : t === null ? "null" : typeof t;
  }
  n(vv, "getType");
  function jR(t) {
    return {
      validate: t
    };
  }
  n(jR, "validate");
  function _bs(...t) {
    return jR(wv(...t));
  }
  n(_bs, "validateType");
  function Lbs(t) {
    return {
      validate: t,
      optional: !0
    };
  }
  n(Lbs, "validateOptional");
  function Bbs(...t) {
    return {
      validate: wv(...t),
      optional: !0
    };
  }
  n(Bbs, "validateOptionalType");
  function ide(t) {
    return ode(RR("array"), ade(t));
  }
  n(ide, "arrayOf");
  function nde(...t) {
    return ide(wv(...t));
  }
  n(nde, "arrayOfType");
  function Mbs(...t) {
    return jR(nde(...t));
  }
  n(Mbs, "validateArrayOfType");
  function ade(t) {
    let e = process.env.BABEL_TYPES_8_BREAKING ? Cv.validateChild : () => {
    };
    function s(r, i, a) {
      if (Array.isArray(a))
        for (let o = 0; o < a.length; o++) {
          let l = `${i}[${o}]`, u = a[o];
          t(r, l, u), e(r, l, u);
        }
    }
    return n(s, "validator"), s.each = t, s;
  }
  n(ade, "assertEach");
  function Fbs(...t) {
    function e(s, r, i) {
      if (!t.includes(i))
        throw new TypeError(`Property ${r} expected value to be one of ${JSON.stringify(t)} but got ${JSON.stringify(i)}`);
    }
    return n(e, "validate"), e.oneOf = t, e;
  }
  n(Fbs, "assertOneOf");
  function wv(...t) {
    function e(s, r, i) {
      for (let a of t)
        if ((0, rde.default)(a, i)) {
          (0, Cv.validateChild)(s, r, i);
          return;
        }
      throw new TypeError(`Property ${r} of ${s.type} expected node to be of a type ${JSON.stringify(t)} but instead got ${JSON.stringify(i?.
      type)}`);
    }
    return n(e, "validate"), e.oneOfNodeTypes = t, e;
  }
  n(wv, "assertNodeType");
  function jbs(...t) {
    function e(s, r, i) {
      for (let a of t)
        if (vv(i) === a || (0, rde.default)(a, i)) {
          (0, Cv.validateChild)(s, r, i);
          return;
        }
      throw new TypeError(`Property ${r} of ${s.type} expected node to be of a type ${JSON.stringify(t)} but instead got ${JSON.stringify(i?.
      type)}`);
    }
    return n(e, "validate"), e.oneOfNodeOrValueTypes = t, e;
  }
  n(jbs, "assertNodeOrValueType");
  function RR(t) {
    function e(s, r, i) {
      if (!(vv(i) === t))
        throw new TypeError(`Property ${r} expected type of ${t} but got ${vv(i)}`);
    }
    return n(e, "validate"), e.type = t, e;
  }
  n(RR, "assertValueType");
  function Rbs(t) {
    function e(s, r, i) {
      let a = [];
      for (let o of Object.keys(t))
        try {
          (0, Cv.validateField)(s, o, i[o], t[o]);
        } catch (l) {
          if (l instanceof TypeError) {
            a.push(l.message);
            continue;
          }
          throw l;
        }
      if (a.length)
        throw new TypeError(`Property ${r} of ${s.type} expected to have the following:
${a.join(`
`)}`);
    }
    return n(e, "validate"), e.shapeOf = t, e;
  }
  n(Rbs, "assertShape");
  function qbs() {
    function t(e) {
      var s;
      let r = e;
      for (; e; ) {
        let {
          type: i
        } = r;
        if (i === "OptionalCallExpression") {
          if (r.optional) return;
          r = r.callee;
          continue;
        }
        if (i === "OptionalMemberExpression") {
          if (r.optional) return;
          r = r.object;
          continue;
        }
        break;
      }
      throw new TypeError(`Non-optional ${e.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chai\
n from ${(s = r) == null ? void 0 : s.type}`);
    }
    return n(t, "validate"), t;
  }
  n(qbs, "assertOptionalChainStart");
  function ode(...t) {
    function e(...s) {
      for (let r of t)
        r(...s);
    }
    if (n(e, "validate"), e.chainOf = t, t.length >= 2 && "type" in t[0] && t[0].type === "array" && !("each" in t[1]))
      throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');
    return e;
  }
  n(ode, "chain");
  var Ubs = /* @__PURE__ */ new Set(["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"]), Kbs = /* @__PURE__ */ new Set(
  ["default", "optional", "deprecated", "validate"]), FR = {};
  function Vbs(...t) {
    return (e, s = {}) => {
      let r = s.aliases;
      if (!r) {
        var i, a;
        s.inherits && (r = (i = FR[s.inherits].aliases) == null ? void 0 : i.slice()), (a = r) != null || (r = []), s.aliases = r;
      }
      let o = t.filter((l) => !r.includes(l));
      r.unshift(...o), lde(e, s);
    };
  }
  n(Vbs, "defineAliasedType");
  function lde(t, e = {}) {
    let s = e.inherits && FR[e.inherits] || {}, r = e.fields;
    if (!r && (r = {}, s.fields)) {
      let l = Object.getOwnPropertyNames(s.fields);
      for (let u of l) {
        let c = s.fields[u], p = c.default;
        if (Array.isArray(p) ? p.length > 0 : p && typeof p == "object")
          throw new Error("field defaults can only be primitives or empty arrays currently");
        r[u] = {
          default: Array.isArray(p) ? [] : p,
          optional: c.optional,
          deprecated: c.deprecated,
          validate: c.validate
        };
      }
    }
    let i = e.visitor || s.visitor || [], a = e.aliases || s.aliases || [], o = e.builder || s.builder || e.visitor || [];
    for (let l of Object.keys(e))
      if (!Ubs.has(l))
        throw new Error(`Unknown type option "${l}" on ${t}`);
    e.deprecatedAlias && (Dbs[e.deprecatedAlias] = t);
    for (let l of i.concat(o))
      r[l] = r[l] || {};
    for (let l of Object.keys(r)) {
      let u = r[l];
      u.default !== void 0 && !o.includes(l) && (u.optional = !0), u.default === void 0 ? u.default = null : !u.validate && u.default != null &&
      (u.validate = RR(vv(u.default)));
      for (let c of Object.keys(u))
        if (!Kbs.has(c))
          throw new Error(`Unknown field key "${c}" on ${t}.${l}`);
    }
    wbs[t] = e.visitor = i, kbs[t] = e.builder = o, Nbs[t] = e.fields = r, Ibs[t] = e.aliases = a, a.forEach((l) => {
      MR[l] = MR[l] || [], MR[l].push(t);
    }), e.validate && (Obs[t] = e.validate), FR[t] = e;
  }
  n(lde, "defineType");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/core.js
var QT = g((pn) => {
  "use strict";
  Object.defineProperty(pn, "__esModule", {
    value: !0
  });
  pn.patternLikeCommon = pn.importAttributes = pn.functionTypeAnnotationCommon = pn.functionDeclarationCommon = pn.functionCommon = pn.classMethodOrPropertyCommon =
  pn.classMethodOrDeclareMethodCommon = void 0;
  var Yn = xy(), Wbs = Sy(), ude = xa(), $bs = bb(), GT = Wp(), K = Ol(), Fe = (0, K.defineAliasedType)("Standardized");
  Fe("ArrayExpression", {
    fields: {
      elements: {
        validate: (0, K.arrayOf)((0, K.assertNodeOrValueType)("null", "Expression", "SpreadElement")),
        default: process.env.BABEL_TYPES_8_BREAKING ? void 0 : []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  });
  Fe("AssignmentExpression", {
    fields: {
      operator: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? Object.assign(function() {
          let t = (0, K.assertOneOf)(...GT.ASSIGNMENT_OPERATORS), e = (0, K.assertOneOf)("=");
          return function(s, r, i) {
            ((0, Yn.default)("Pattern", s.left) ? e : t)(s, r, i);
          };
        }(), {
          type: "string"
        }) : (0, K.assertValueType)("string")
      },
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.assertNodeType)("Identifier", "MemberExpression", "OptionalMemberExpression", "\
ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, K.assertNodeType)(
        "LVal", "OptionalMemberExpression")
      },
      right: {
        validate: (0, K.assertNodeType)("Expression")
      }
    },
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Expression"]
  });
  Fe("BinaryExpression", {
    builder: ["operator", "left", "right"],
    fields: {
      operator: {
        validate: (0, K.assertOneOf)(...GT.BINARY_OPERATORS)
      },
      left: {
        validate: function() {
          let t = (0, K.assertNodeType)("Expression"), e = (0, K.assertNodeType)("Expression", "PrivateName");
          return Object.assign(function(r, i, a) {
            (r.operator === "in" ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "PrivateName"]
          });
        }()
      },
      right: {
        validate: (0, K.assertNodeType)("Expression")
      }
    },
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"]
  });
  Fe("InterpreterDirective", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, K.assertValueType)("string")
      }
    }
  });
  Fe("Directive", {
    visitor: ["value"],
    fields: {
      value: {
        validate: (0, K.assertNodeType)("DirectiveLiteral")
      }
    }
  });
  Fe("DirectiveLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, K.assertValueType)("string")
      }
    }
  });
  Fe("BlockStatement", {
    builder: ["body", "directives"],
    visitor: ["directives", "body"],
    fields: {
      directives: {
        validate: (0, K.arrayOfType)("Directive"),
        default: []
      },
      body: (0, K.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "Block", "Statement"]
  });
  Fe("BreakStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, K.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  });
  Fe("CallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, K.assertNodeType)("Expression", "Super", "V8IntrinsicIdentifier")
      },
      arguments: (0, K.validateArrayOfType)("Expression", "SpreadElement", "ArgumentPlaceholder"),
      typeArguments: {
        validate: (0, K.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      optional: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      typeParameters: {
        validate: (0, K.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  Fe("CatchClause", {
    visitor: ["param", "body"],
    fields: {
      param: {
        validate: (0, K.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"),
        optional: !0
      },
      body: {
        validate: (0, K.assertNodeType)("BlockStatement")
      }
    },
    aliases: ["Scopable", "BlockParent"]
  });
  Fe("ConditionalExpression", {
    visitor: ["test", "consequent", "alternate"],
    fields: {
      test: {
        validate: (0, K.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, K.assertNodeType)("Expression")
      },
      alternate: {
        validate: (0, K.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression", "Conditional"]
  });
  Fe("ContinueStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, K.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  });
  Fe("DebuggerStatement", {
    aliases: ["Statement"]
  });
  Fe("DoWhileStatement", {
    builder: ["test", "body"],
    visitor: ["body", "test"],
    fields: {
      test: {
        validate: (0, K.assertNodeType)("Expression")
      },
      body: {
        validate: (0, K.assertNodeType)("Statement")
      }
    },
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"]
  });
  Fe("EmptyStatement", {
    aliases: ["Statement"]
  });
  Fe("ExpressionStatement", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, K.assertNodeType)("Expression")
      }
    },
    aliases: ["Statement", "ExpressionWrapper"]
  });
  Fe("File", {
    builder: ["program", "comments", "tokens"],
    visitor: ["program"],
    fields: {
      program: {
        validate: (0, K.assertNodeType)("Program")
      },
      comments: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.assertEach)((0, K.assertNodeType)("CommentBlock", "CommentLine")) : Object.assign(
        () => {
        }, {
          each: {
            oneOfNodeTypes: ["CommentBlock", "CommentLine"]
          }
        }),
        optional: !0
      },
      tokens: {
        validate: (0, K.assertEach)(Object.assign(() => {
        }, {
          type: "any"
        })),
        optional: !0
      }
    }
  });
  Fe("ForInStatement", {
    visitor: ["left", "right", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "Array\
Pattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, K.assertNodeType)("Var\
iableDeclaration", "LVal")
      },
      right: {
        validate: (0, K.assertNodeType)("Expression")
      },
      body: {
        validate: (0, K.assertNodeType)("Statement")
      }
    }
  });
  Fe("ForStatement", {
    visitor: ["init", "test", "update", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"],
    fields: {
      init: {
        validate: (0, K.assertNodeType)("VariableDeclaration", "Expression"),
        optional: !0
      },
      test: {
        validate: (0, K.assertNodeType)("Expression"),
        optional: !0
      },
      update: {
        validate: (0, K.assertNodeType)("Expression"),
        optional: !0
      },
      body: {
        validate: (0, K.assertNodeType)("Statement")
      }
    }
  });
  var Py = /* @__PURE__ */ n(() => ({
    params: (0, K.validateArrayOfType)("Identifier", "Pattern", "RestElement"),
    generator: {
      default: !1
    },
    async: {
      default: !1
    }
  }), "functionCommon");
  pn.functionCommon = Py;
  var jf = /* @__PURE__ */ n(() => ({
    returnType: {
      validate: (0, K.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, K.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  }), "functionTypeAnnotationCommon");
  pn.functionTypeAnnotationCommon = jf;
  var cde = /* @__PURE__ */ n(() => Object.assign({}, Py(), {
    declare: {
      validate: (0, K.assertValueType)("boolean"),
      optional: !0
    },
    id: {
      validate: (0, K.assertNodeType)("Identifier"),
      optional: !0
    }
  }), "functionDeclarationCommon");
  pn.functionDeclarationCommon = cde;
  Fe("FunctionDeclaration", {
    builder: ["id", "params", "body", "generator", "async"],
    visitor: ["id", "typeParameters", "params", "predicate", "returnType", "body"],
    fields: Object.assign({}, cde(), jf(), {
      body: {
        validate: (0, K.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, K.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    }),
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"],
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, K.assertNodeType)("Identifier");
      return function(e, s, r) {
        (0, Yn.default)("ExportDefaultDeclaration", e) || t(r, "id", r.id);
      };
    }() : void 0
  });
  Fe("FunctionExpression", {
    inherits: "FunctionDeclaration",
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, Py(), jf(), {
      id: {
        validate: (0, K.assertNodeType)("Identifier"),
        optional: !0
      },
      body: {
        validate: (0, K.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, K.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  var Ey = /* @__PURE__ */ n(() => ({
    typeAnnotation: {
      validate: (0, K.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    optional: {
      validate: (0, K.assertValueType)("boolean"),
      optional: !0
    },
    decorators: {
      validate: (0, K.arrayOfType)("Decorator"),
      optional: !0
    }
  }), "patternLikeCommon");
  pn.patternLikeCommon = Ey;
  Fe("Identifier", {
    builder: ["name"],
    visitor: ["typeAnnotation", "decorators"],
    aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"],
    fields: Object.assign({}, Ey(), {
      name: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertValueType)("string"), Object.assign(function(t, e, s) {
          if (!(0, Wbs.default)(s, !1))
            throw new TypeError(`"${s}" is not a valid identifier name`);
        }, {
          type: "string"
        })) : (0, K.assertValueType)("string")
      }
    }),
    validate: process.env.BABEL_TYPES_8_BREAKING ? function(t, e, s) {
      let r = /\.(\w+)$/.exec(e);
      if (!r) return;
      let [, i] = r, a = {
        computed: !1
      };
      if (i === "property") {
        if ((0, Yn.default)("MemberExpression", t, a) || (0, Yn.default)("OptionalMemberExpression", t, a)) return;
      } else if (i === "key") {
        if ((0, Yn.default)("Property", t, a) || (0, Yn.default)("Method", t, a)) return;
      } else if (i === "exported") {
        if ((0, Yn.default)("ExportSpecifier", t)) return;
      } else if (i === "imported") {
        if ((0, Yn.default)("ImportSpecifier", t, {
          imported: s
        })) return;
      } else if (i === "meta" && (0, Yn.default)("MetaProperty", t, {
        meta: s
      }))
        return;
      if (((0, ude.isKeyword)(s.name) || (0, ude.isReservedWord)(s.name, !1)) && s.name !== "this")
        throw new TypeError(`"${s.name}" is not a valid identifier`);
    } : void 0
  });
  Fe("IfStatement", {
    visitor: ["test", "consequent", "alternate"],
    aliases: ["Statement", "Conditional"],
    fields: {
      test: {
        validate: (0, K.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, K.assertNodeType)("Statement")
      },
      alternate: {
        optional: !0,
        validate: (0, K.assertNodeType)("Statement")
      }
    }
  });
  Fe("LabeledStatement", {
    visitor: ["label", "body"],
    aliases: ["Statement"],
    fields: {
      label: {
        validate: (0, K.assertNodeType)("Identifier")
      },
      body: {
        validate: (0, K.assertNodeType)("Statement")
      }
    }
  });
  Fe("StringLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, K.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Fe("NumericLiteral", {
    builder: ["value"],
    deprecatedAlias: "NumberLiteral",
    fields: {
      value: {
        validate: (0, K.chain)((0, K.assertValueType)("number"), Object.assign(function(t, e, s) {
          if (1 / s < 0 || !Number.isFinite(s)) {
            let r = new Error(`NumericLiterals must be non-negative finite numbers. You can use t.valueToNode(${s}) instead.`);
          }
        }, {
          type: "number"
        }))
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Fe("NullLiteral", {
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Fe("BooleanLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, K.assertValueType)("boolean")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Fe("RegExpLiteral", {
    builder: ["pattern", "flags"],
    deprecatedAlias: "RegexLiteral",
    aliases: ["Expression", "Pureish", "Literal"],
    fields: {
      pattern: {
        validate: (0, K.assertValueType)("string")
      },
      flags: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertValueType)("string"), Object.assign(function(t, e, s) {
          let r = /[^gimsuy]/.exec(s);
          if (r)
            throw new TypeError(`"${r[0]}" is not a valid RegExp flag`);
        }, {
          type: "string"
        })) : (0, K.assertValueType)("string"),
        default: ""
      }
    }
  });
  Fe("LogicalExpression", {
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"],
    fields: {
      operator: {
        validate: (0, K.assertOneOf)(...GT.LOGICAL_OPERATORS)
      },
      left: {
        validate: (0, K.assertNodeType)("Expression")
      },
      right: {
        validate: (0, K.assertNodeType)("Expression")
      }
    }
  });
  Fe("MemberExpression", {
    builder: ["object", "property", "computed", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["optional"]],
    visitor: ["object", "property"],
    aliases: ["Expression", "LVal"],
    fields: Object.assign({
      object: {
        validate: (0, K.assertNodeType)("Expression", "Super")
      },
      property: {
        validate: function() {
          let t = (0, K.assertNodeType)("Identifier", "PrivateName"), e = (0, K.assertNodeType)("Expression"), s = /* @__PURE__ */ n(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, "validator");
          return s.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"], s;
        }()
      },
      computed: {
        default: !1
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  Fe("NewExpression", {
    inherits: "CallExpression"
  });
  Fe("Program", {
    visitor: ["directives", "body"],
    builder: ["body", "directives", "sourceType", "interpreter"],
    fields: {
      sourceType: {
        validate: (0, K.assertOneOf)("script", "module"),
        default: "script"
      },
      interpreter: {
        validate: (0, K.assertNodeType)("InterpreterDirective"),
        default: null,
        optional: !0
      },
      directives: {
        validate: (0, K.arrayOfType)("Directive"),
        default: []
      },
      body: (0, K.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "Block"]
  });
  Fe("ObjectExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: (0, K.validateArrayOfType)("ObjectMethod", "ObjectProperty", "SpreadElement")
    }
  });
  Fe("ObjectMethod", {
    builder: ["kind", "key", "params", "body", "computed", "generator", "async"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    fields: Object.assign({}, Py(), jf(), {
      kind: Object.assign({
        validate: (0, K.assertOneOf)("method", "get", "set")
      }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
        default: "method"
      }),
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          let t = (0, K.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), e = (0, K.assertNodeType)("Expres\
sion"), s = /* @__PURE__ */ n(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, "validator");
          return s.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"], s;
        }()
      },
      decorators: {
        validate: (0, K.arrayOfType)("Decorator"),
        optional: !0
      },
      body: {
        validate: (0, K.assertNodeType)("BlockStatement")
      }
    }),
    aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"]
  });
  Fe("ObjectProperty", {
    builder: ["key", "value", "computed", "shorthand", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["decorators"]],
    fields: {
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          let t = (0, K.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"), e = (0, K.
          assertNodeType)("Expression");
          return Object.assign(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"]
          });
        }()
      },
      value: {
        validate: (0, K.assertNodeType)("Expression", "PatternLike")
      },
      shorthand: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertValueType)("boolean"), Object.assign(function(t, e, s) {
          if (s) {
            if (t.computed)
              throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true");
            if (!(0, Yn.default)("Identifier", t.key))
              throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier");
          }
        }, {
          type: "boolean"
        })) : (0, K.assertValueType)("boolean"),
        default: !1
      },
      decorators: {
        validate: (0, K.arrayOfType)("Decorator"),
        optional: !0
      }
    },
    visitor: ["key", "value", "decorators"],
    aliases: ["UserWhitespacable", "Property", "ObjectMember"],
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, K.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssert\
ion"), e = (0, K.assertNodeType)("Expression");
      return function(s, r, i) {
        ((0, Yn.default)("ObjectPattern", s) ? t : e)(i, "value", i.value);
      };
    }() : void 0
  });
  Fe("RestElement", {
    visitor: ["argument", "typeAnnotation"],
    builder: ["argument"],
    aliases: ["LVal", "PatternLike"],
    deprecatedAlias: "RestProperty",
    fields: Object.assign({}, Ey(), {
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpressio\
n", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, K.assertNodeType)("LVal")
      }
    }),
    validate: process.env.BABEL_TYPES_8_BREAKING ? function(t, e) {
      let s = /(\w+)\[(\d+)\]/.exec(e);
      if (!s) throw new Error("Internal Babel error: malformed key.");
      let [, r, i] = s;
      if (t[r].length > +i + 1)
        throw new TypeError(`RestElement must be last element of ${r}`);
    } : void 0
  });
  Fe("ReturnStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, K.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  Fe("SequenceExpression", {
    visitor: ["expressions"],
    fields: {
      expressions: (0, K.validateArrayOfType)("Expression")
    },
    aliases: ["Expression"]
  });
  Fe("ParenthesizedExpression", {
    visitor: ["expression"],
    aliases: ["Expression", "ExpressionWrapper"],
    fields: {
      expression: {
        validate: (0, K.assertNodeType)("Expression")
      }
    }
  });
  Fe("SwitchCase", {
    visitor: ["test", "consequent"],
    fields: {
      test: {
        validate: (0, K.assertNodeType)("Expression"),
        optional: !0
      },
      consequent: (0, K.validateArrayOfType)("Statement")
    }
  });
  Fe("SwitchStatement", {
    visitor: ["discriminant", "cases"],
    aliases: ["Statement", "BlockParent", "Scopable"],
    fields: {
      discriminant: {
        validate: (0, K.assertNodeType)("Expression")
      },
      cases: (0, K.validateArrayOfType)("SwitchCase")
    }
  });
  Fe("ThisExpression", {
    aliases: ["Expression"]
  });
  Fe("ThrowStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, K.assertNodeType)("Expression")
      }
    }
  });
  Fe("TryStatement", {
    visitor: ["block", "handler", "finalizer"],
    aliases: ["Statement"],
    fields: {
      block: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertNodeType)("BlockStatement"), Object.assign(function(t) {
          if (!t.handler && !t.finalizer)
            throw new TypeError("TryStatement expects either a handler or finalizer, or both");
        }, {
          oneOfNodeTypes: ["BlockStatement"]
        })) : (0, K.assertNodeType)("BlockStatement")
      },
      handler: {
        optional: !0,
        validate: (0, K.assertNodeType)("CatchClause")
      },
      finalizer: {
        optional: !0,
        validate: (0, K.assertNodeType)("BlockStatement")
      }
    }
  });
  Fe("UnaryExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !0
      },
      argument: {
        validate: (0, K.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, K.assertOneOf)(...GT.UNARY_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["UnaryLike", "Expression"]
  });
  Fe("UpdateExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !1
      },
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.assertNodeType)("Identifier", "MemberExpression") : (0, K.assertNodeType)("Expr\
ession")
      },
      operator: {
        validate: (0, K.assertOneOf)(...GT.UPDATE_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["Expression"]
  });
  Fe("VariableDeclaration", {
    builder: ["kind", "declarations"],
    visitor: ["declarations"],
    aliases: ["Statement", "Declaration"],
    fields: {
      declare: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      kind: {
        validate: (0, K.assertOneOf)("var", "let", "const", "using", "await using")
      },
      declarations: (0, K.validateArrayOfType)("VariableDeclarator")
    },
    validate: process.env.BABEL_TYPES_8_BREAKING ? (() => {
      let t = (0, K.assertNodeType)("Identifier");
      return function(e, s, r) {
        if ((0, Yn.default)("ForXStatement", e, {
          left: r
        })) {
          if (r.declarations.length !== 1)
            throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${e.type}`);
        } else
          r.declarations.forEach((i) => {
            i.init || t(i, "id", i.id);
          });
      };
    })() : void 0
  });
  Fe("VariableDeclarator", {
    visitor: ["id", "init"],
    fields: {
      id: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern") : (0, K.assertNodeType)(
        "LVal")
      },
      definite: {
        optional: !0,
        validate: (0, K.assertValueType)("boolean")
      },
      init: {
        optional: !0,
        validate: (0, K.assertNodeType)("Expression")
      }
    }
  });
  Fe("WhileStatement", {
    visitor: ["test", "body"],
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"],
    fields: {
      test: {
        validate: (0, K.assertNodeType)("Expression")
      },
      body: {
        validate: (0, K.assertNodeType)("Statement")
      }
    }
  });
  Fe("WithStatement", {
    visitor: ["object", "body"],
    aliases: ["Statement"],
    fields: {
      object: {
        validate: (0, K.assertNodeType)("Expression")
      },
      body: {
        validate: (0, K.assertNodeType)("Statement")
      }
    }
  });
  Fe("AssignmentPattern", {
    visitor: ["left", "right", "decorators"],
    builder: ["left", "right"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, Ey(), {
      left: {
        validate: (0, K.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExp\
ression", "TSTypeAssertion", "TSNonNullExpression")
      },
      right: {
        validate: (0, K.assertNodeType)("Expression")
      },
      decorators: {
        validate: (0, K.arrayOfType)("Decorator"),
        optional: !0
      }
    })
  });
  Fe("ArrayPattern", {
    visitor: ["elements", "typeAnnotation"],
    builder: ["elements"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, Ey(), {
      elements: {
        validate: (0, K.chain)((0, K.assertValueType)("array"), (0, K.assertEach)((0, K.assertNodeOrValueType)("null", "PatternLike", "LVal")))
      }
    })
  });
  Fe("ArrowFunctionExpression", {
    builder: ["params", "body", "async"],
    visitor: ["typeParameters", "params", "predicate", "returnType", "body"],
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, Py(), jf(), {
      expression: {
        validate: (0, K.assertValueType)("boolean")
      },
      body: {
        validate: (0, K.assertNodeType)("BlockStatement", "Expression")
      },
      predicate: {
        validate: (0, K.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  Fe("ClassBody", {
    visitor: ["body"],
    fields: {
      body: (0, K.validateArrayOfType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty",
      "TSDeclareMethod", "TSIndexSignature", "StaticBlock")
    }
  });
  Fe("ClassExpression", {
    builder: ["id", "superClass", "body", "decorators"],
    visitor: ["decorators", "id", "typeParameters", "superClass", "superTypeParameters", "mixins", "implements", "body"],
    aliases: ["Scopable", "Class", "Expression"],
    fields: {
      id: {
        validate: (0, K.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, K.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, K.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, K.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, K.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, K.arrayOfType)("TSExpressionWithTypeArguments", "ClassImplements"),
        optional: !0
      },
      decorators: {
        validate: (0, K.arrayOfType)("Decorator"),
        optional: !0
      },
      mixins: {
        validate: (0, K.assertNodeType)("InterfaceExtends"),
        optional: !0
      }
    }
  });
  Fe("ClassDeclaration", {
    inherits: "ClassExpression",
    aliases: ["Scopable", "Class", "Statement", "Declaration"],
    fields: {
      id: {
        validate: (0, K.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, K.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, K.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, K.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, K.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, K.arrayOfType)("TSExpressionWithTypeArguments", "ClassImplements"),
        optional: !0
      },
      decorators: {
        validate: (0, K.arrayOfType)("Decorator"),
        optional: !0
      },
      mixins: {
        validate: (0, K.assertNodeType)("InterfaceExtends"),
        optional: !0
      },
      declare: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      abstract: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      }
    },
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      let t = (0, K.assertNodeType)("Identifier");
      return function(e, s, r) {
        (0, Yn.default)("ExportDefaultDeclaration", e) || t(r, "id", r.id);
      };
    }() : void 0
  });
  var qR = pn.importAttributes = {
    attributes: {
      optional: !0,
      validate: (0, K.arrayOfType)("ImportAttribute")
    },
    assertions: {
      deprecated: !0,
      optional: !0,
      validate: (0, K.arrayOfType)("ImportAttribute")
    }
  };
  Fe("ExportAllDeclaration", {
    builder: ["source"],
    visitor: ["source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: Object.assign({
      source: {
        validate: (0, K.assertNodeType)("StringLiteral")
      },
      exportKind: (0, K.validateOptional)((0, K.assertOneOf)("type", "value"))
    }, qR)
  });
  Fe("ExportDefaultDeclaration", {
    visitor: ["declaration"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: (0, K.validateType)("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression"),
      exportKind: (0, K.validateOptional)((0, K.assertOneOf)("value"))
    }
  });
  Fe("ExportNamedDeclaration", {
    builder: ["declaration", "specifiers", "source"],
    visitor: process.env ? ["declaration", "specifiers", "source", "attributes"] : ["declaration", "specifiers", "source", "attributes", "as\
sertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: Object.assign({
      declaration: {
        optional: !0,
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertNodeType)("Declaration"), Object.assign(function(t, e, s) {
          if (s && t.specifiers.length)
            throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration");
          if (s && t.source)
            throw new TypeError("Cannot export a declaration from a source");
        }, {
          oneOfNodeTypes: ["Declaration"]
        })) : (0, K.assertNodeType)("Declaration")
      }
    }, qR, {
      specifiers: {
        default: [],
        validate: (0, K.arrayOf)(function() {
          let t = (0, K.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"), e = (0, K.assertNodeType)(
          "ExportSpecifier");
          return process.env.BABEL_TYPES_8_BREAKING ? Object.assign(function(s, r, i) {
            (s.source ? t : e)(s, r, i);
          }, {
            oneOfNodeTypes: ["ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"]
          }) : t;
        }())
      },
      source: {
        validate: (0, K.assertNodeType)("StringLiteral"),
        optional: !0
      },
      exportKind: (0, K.validateOptional)((0, K.assertOneOf)("type", "value"))
    })
  });
  Fe("ExportSpecifier", {
    visitor: ["local", "exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, K.assertNodeType)("Identifier")
      },
      exported: {
        validate: (0, K.assertNodeType)("Identifier", "StringLiteral")
      },
      exportKind: {
        validate: (0, K.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  });
  Fe("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, K.assertNodeType)("VariableDeclaration", "LVal");
          let t = (0, K.assertNodeType)("VariableDeclaration"), e = (0, K.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "\
ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression");
          return Object.assign(function(s, r, i) {
            (0, Yn.default)("VariableDeclaration", i) ? t(s, r, i) : e(s, r, i);
          }, {
            oneOfNodeTypes: ["VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TS\
SatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression"]
          });
        }()
      },
      right: {
        validate: (0, K.assertNodeType)("Expression")
      },
      body: {
        validate: (0, K.assertNodeType)("Statement")
      },
      await: {
        default: !1
      }
    }
  });
  Fe("ImportDeclaration", {
    builder: ["specifiers", "source"],
    visitor: ["specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration"],
    fields: Object.assign({}, qR, {
      module: {
        optional: !0,
        validate: (0, K.assertValueType)("boolean")
      },
      phase: {
        default: null,
        validate: (0, K.assertOneOf)("source", "defer")
      },
      specifiers: (0, K.validateArrayOfType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"),
      source: {
        validate: (0, K.assertNodeType)("StringLiteral")
      },
      importKind: {
        validate: (0, K.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    })
  });
  Fe("ImportDefaultSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, K.assertNodeType)("Identifier")
      }
    }
  });
  Fe("ImportNamespaceSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, K.assertNodeType)("Identifier")
      }
    }
  });
  Fe("ImportSpecifier", {
    visitor: ["imported", "local"],
    builder: ["local", "imported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, K.assertNodeType)("Identifier")
      },
      imported: {
        validate: (0, K.assertNodeType)("Identifier", "StringLiteral")
      },
      importKind: {
        validate: (0, K.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  });
  Fe("ImportExpression", {
    visitor: ["source", "options"],
    aliases: ["Expression"],
    fields: {
      phase: {
        default: null,
        validate: (0, K.assertOneOf)("source", "defer")
      },
      source: {
        validate: (0, K.assertNodeType)("Expression")
      },
      options: {
        validate: (0, K.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  Fe("MetaProperty", {
    visitor: ["meta", "property"],
    aliases: ["Expression"],
    fields: {
      meta: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertNodeType)("Identifier"), Object.assign(function(t, e, s) {
          let r;
          switch (s.name) {
            case "function":
              r = "sent";
              break;
            case "new":
              r = "target";
              break;
            case "import":
              r = "meta";
              break;
          }
          if (!(0, Yn.default)("Identifier", t.property, {
            name: r
          }))
            throw new TypeError("Unrecognised MetaProperty");
        }, {
          oneOfNodeTypes: ["Identifier"]
        })) : (0, K.assertNodeType)("Identifier")
      },
      property: {
        validate: (0, K.assertNodeType)("Identifier")
      }
    }
  });
  var Nv = /* @__PURE__ */ n(() => ({
    abstract: {
      validate: (0, K.assertValueType)("boolean"),
      optional: !0
    },
    accessibility: {
      validate: (0, K.assertOneOf)("public", "private", "protected"),
      optional: !0
    },
    static: {
      default: !1
    },
    override: {
      default: !1
    },
    computed: {
      default: !1
    },
    optional: {
      validate: (0, K.assertValueType)("boolean"),
      optional: !0
    },
    key: {
      validate: (0, K.chain)(function() {
        let t = (0, K.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), e = (0, K.assertNodeType)("Expressi\
on");
        return function(s, r, i) {
          (s.computed ? e : t)(s, r, i);
        };
      }(), (0, K.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression"))
    }
  }), "classMethodOrPropertyCommon");
  pn.classMethodOrPropertyCommon = Nv;
  var UR = /* @__PURE__ */ n(() => Object.assign({}, Py(), Nv(), {
    params: (0, K.validateArrayOfType)("Identifier", "Pattern", "RestElement", "TSParameterProperty"),
    kind: {
      validate: (0, K.assertOneOf)("get", "set", "method", "constructor"),
      default: "method"
    },
    access: {
      validate: (0, K.chain)((0, K.assertValueType)("string"), (0, K.assertOneOf)("public", "private", "protected")),
      optional: !0
    },
    decorators: {
      validate: (0, K.arrayOfType)("Decorator"),
      optional: !0
    }
  }), "classMethodOrDeclareMethodCommon");
  pn.classMethodOrDeclareMethodCommon = UR;
  Fe("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({}, UR(), jf(), {
      body: {
        validate: (0, K.assertNodeType)("BlockStatement")
      }
    })
  });
  Fe("ObjectPattern", {
    visitor: ["properties", "typeAnnotation", "decorators"],
    builder: ["properties"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, Ey(), {
      properties: (0, K.validateArrayOfType)("RestElement", "ObjectProperty")
    })
  });
  Fe("SpreadElement", {
    visitor: ["argument"],
    aliases: ["UnaryLike"],
    deprecatedAlias: "SpreadProperty",
    fields: {
      argument: {
        validate: (0, K.assertNodeType)("Expression")
      }
    }
  });
  Fe("Super", {
    aliases: ["Expression"]
  });
  Fe("TaggedTemplateExpression", {
    visitor: ["tag", "typeParameters", "quasi"],
    builder: ["tag", "quasi"],
    aliases: ["Expression"],
    fields: {
      tag: {
        validate: (0, K.assertNodeType)("Expression")
      },
      quasi: {
        validate: (0, K.assertNodeType)("TemplateLiteral")
      },
      typeParameters: {
        validate: (0, K.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  });
  Fe("TemplateElement", {
    builder: ["value", "tail"],
    fields: {
      value: {
        validate: (0, K.chain)((0, K.assertShape)({
          raw: {
            validate: (0, K.assertValueType)("string")
          },
          cooked: {
            validate: (0, K.assertValueType)("string"),
            optional: !0
          }
        }), /* @__PURE__ */ n(function(e) {
          let s = e.value.raw, r = !1, i = /* @__PURE__ */ n(() => {
            throw new Error("Internal @babel/types error.");
          }, "error"), {
            str: a,
            firstInvalidLoc: o
          } = (0, $bs.readStringContents)("template", s, 0, 0, 0, {
            unterminated() {
              r = !0;
            },
            strictNumericEscape: i,
            invalidEscapeSequence: i,
            numericSeparatorInEscapeSequence: i,
            unexpectedNumericSeparator: i,
            invalidDigit: i,
            invalidCodePoint: i
          });
          if (!r) throw new Error("Invalid raw");
          e.value.cooked = o ? null : a;
        }, "templateElementCookedValidator"))
      },
      tail: {
        default: !1
      }
    }
  });
  Fe("TemplateLiteral", {
    visitor: ["quasis", "expressions"],
    aliases: ["Expression", "Literal"],
    fields: {
      quasis: (0, K.validateArrayOfType)("TemplateElement"),
      expressions: {
        validate: (0, K.chain)((0, K.assertValueType)("array"), (0, K.assertEach)((0, K.assertNodeType)("Expression", "TSType")), function(t, e, s) {
          if (t.quasis.length !== s.length + 1)
            throw new TypeError(`Number of ${t.type} quasis should be exactly one more than the number of expressions.
Expected ${s.length + 1} quasis but got ${t.quasis.length}`);
        })
      }
    }
  });
  Fe("YieldExpression", {
    builder: ["argument", "delegate"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      delegate: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertValueType)("boolean"), Object.assign(function(t, e, s) {
          if (s && !t.argument)
            throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument");
        }, {
          type: "boolean"
        })) : (0, K.assertValueType)("boolean"),
        default: !1
      },
      argument: {
        optional: !0,
        validate: (0, K.assertNodeType)("Expression")
      }
    }
  });
  Fe("AwaitExpression", {
    builder: ["argument"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      argument: {
        validate: (0, K.assertNodeType)("Expression")
      }
    }
  });
  Fe("Import", {
    aliases: ["Expression"]
  });
  Fe("BigIntLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, K.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  Fe("ExportNamespaceSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, K.assertNodeType)("Identifier")
      }
    }
  });
  Fe("OptionalMemberExpression", {
    builder: ["object", "property", "computed", "optional"],
    visitor: ["object", "property"],
    aliases: ["Expression"],
    fields: {
      object: {
        validate: (0, K.assertNodeType)("Expression")
      },
      property: {
        validate: function() {
          let t = (0, K.assertNodeType)("Identifier"), e = (0, K.assertNodeType)("Expression");
          return Object.assign(function(r, i, a) {
            (r.computed ? e : t)(r, i, a);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier"]
          });
        }()
      },
      computed: {
        default: !1
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertValueType)("boolean"), (0, K.assertOptionalChainStart)()) : (0, K.
        assertValueType)("boolean")
      }
    }
  });
  Fe("OptionalCallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments", "optional"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, K.assertNodeType)("Expression")
      },
      arguments: (0, K.validateArrayOfType)("Expression", "SpreadElement", "ArgumentPlaceholder"),
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, K.chain)((0, K.assertValueType)("boolean"), (0, K.assertOptionalChainStart)()) : (0, K.
        assertValueType)("boolean")
      },
      typeArguments: {
        validate: (0, K.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      typeParameters: {
        validate: (0, K.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  });
  Fe("ClassProperty", {
    visitor: ["decorators", "variance", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property"],
    fields: Object.assign({}, Nv(), {
      value: {
        validate: (0, K.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, K.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, K.arrayOfType)("Decorator"),
        optional: !0
      },
      readonly: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, K.assertNodeType)("Variance"),
        optional: !0
      }
    })
  });
  Fe("ClassAccessorProperty", {
    visitor: ["decorators", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property", "Accessor"],
    fields: Object.assign({}, Nv(), {
      key: {
        validate: (0, K.chain)(function() {
          let t = (0, K.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"), e = (0, K.assertNodeType)(
          "Expression");
          return function(s, r, i) {
            (s.computed ? e : t)(s, r, i);
          };
        }(), (0, K.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName"))
      },
      value: {
        validate: (0, K.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, K.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, K.arrayOfType)("Decorator"),
        optional: !0
      },
      readonly: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, K.assertNodeType)("Variance"),
        optional: !0
      }
    })
  });
  Fe("ClassPrivateProperty", {
    visitor: ["decorators", "variance", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "decorators", "static"],
    aliases: ["Property", "Private"],
    fields: {
      key: {
        validate: (0, K.assertNodeType)("PrivateName")
      },
      value: {
        validate: (0, K.assertNodeType)("Expression"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, K.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, K.arrayOfType)("Decorator"),
        optional: !0
      },
      static: {
        validate: (0, K.assertValueType)("boolean"),
        default: !1
      },
      readonly: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      definite: {
        validate: (0, K.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, K.assertNodeType)("Variance"),
        optional: !0
      }
    }
  });
  Fe("ClassPrivateMethod", {
    builder: ["kind", "key", "params", "body", "static"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"],
    fields: Object.assign({}, UR(), jf(), {
      kind: {
        validate: (0, K.assertOneOf)("get", "set", "method"),
        default: "method"
      },
      key: {
        validate: (0, K.assertNodeType)("PrivateName")
      },
      body: {
        validate: (0, K.assertNodeType)("BlockStatement")
      }
    })
  });
  Fe("PrivateName", {
    visitor: ["id"],
    aliases: ["Private"],
    fields: {
      id: {
        validate: (0, K.assertNodeType)("Identifier")
      }
    }
  });
  Fe("StaticBlock", {
    visitor: ["body"],
    fields: {
      body: (0, K.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "FunctionParent"]
  });
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/flow.js
var hde = g(() => {
  "use strict";
  var pde = QT(), pe = Ol(), xt = (0, pe.defineAliasedType)("Flow"), KR = /* @__PURE__ */ n((t) => {
    let e = t === "DeclareClass";
    xt(t, {
      builder: ["id", "typeParameters", "extends", "body"],
      visitor: ["id", "typeParameters", "extends", ...e ? ["mixins", "implements"] : [], "body"],
      aliases: ["FlowDeclaration", "Statement", "Declaration"],
      fields: Object.assign({
        id: (0, pe.validateType)("Identifier"),
        typeParameters: (0, pe.validateOptionalType)("TypeParameterDeclaration"),
        extends: (0, pe.validateOptional)((0, pe.arrayOfType)("InterfaceExtends"))
      }, e ? {
        mixins: (0, pe.validateOptional)((0, pe.arrayOfType)("InterfaceExtends")),
        implements: (0, pe.validateOptional)((0, pe.arrayOfType)("ClassImplements"))
      } : {}, {
        body: (0, pe.validateType)("ObjectTypeAnnotation")
      })
    });
  }, "defineInterfaceishType");
  xt("AnyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("ArrayTypeAnnotation", {
    visitor: ["elementType"],
    aliases: ["FlowType"],
    fields: {
      elementType: (0, pe.validateType)("FlowType")
    }
  });
  xt("BooleanTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("BooleanLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("NullLiteralTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("ClassImplements", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      typeParameters: (0, pe.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  KR("DeclareClass");
  xt("DeclareFunction", {
    builder: ["id"],
    visitor: ["id", "predicate"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      predicate: (0, pe.validateOptionalType)("DeclaredPredicate")
    }
  });
  KR("DeclareInterface");
  xt("DeclareModule", {
    builder: ["id", "body", "kind"],
    visitor: ["id", "body"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, pe.validateType)("Identifier", "StringLiteral"),
      body: (0, pe.validateType)("BlockStatement"),
      kind: (0, pe.validateOptional)((0, pe.assertOneOf)("CommonJS", "ES"))
    }
  });
  xt("DeclareModuleExports", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      typeAnnotation: (0, pe.validateType)("TypeAnnotation")
    }
  });
  xt("DeclareTypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      typeParameters: (0, pe.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, pe.validateType)("FlowType")
    }
  });
  xt("DeclareOpaqueType", {
    visitor: ["id", "typeParameters", "supertype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      typeParameters: (0, pe.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, pe.validateOptionalType)("FlowType"),
      impltype: (0, pe.validateOptionalType)("FlowType")
    }
  });
  xt("DeclareVariable", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, pe.validateType)("Identifier")
    }
  });
  xt("DeclareExportDeclaration", {
    visitor: ["declaration", "specifiers", "source", "attributes"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: Object.assign({
      declaration: (0, pe.validateOptionalType)("Flow"),
      specifiers: (0, pe.validateOptional)((0, pe.arrayOfType)("ExportSpecifier", "ExportNamespaceSpecifier")),
      source: (0, pe.validateOptionalType)("StringLiteral"),
      default: (0, pe.validateOptional)((0, pe.assertValueType)("boolean"))
    }, pde.importAttributes)
  });
  xt("DeclareExportAllDeclaration", {
    visitor: ["source", "attributes"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: Object.assign({
      source: (0, pe.validateType)("StringLiteral"),
      exportKind: (0, pe.validateOptional)((0, pe.assertOneOf)("type", "value"))
    }, pde.importAttributes)
  });
  xt("DeclaredPredicate", {
    visitor: ["value"],
    aliases: ["FlowPredicate"],
    fields: {
      value: (0, pe.validateType)("Flow")
    }
  });
  xt("ExistsTypeAnnotation", {
    aliases: ["FlowType"]
  });
  xt("FunctionTypeAnnotation", {
    builder: ["typeParameters", "params", "rest", "returnType"],
    visitor: ["typeParameters", "this", "params", "rest", "returnType"],
    aliases: ["FlowType"],
    fields: {
      typeParameters: (0, pe.validateOptionalType)("TypeParameterDeclaration"),
      params: (0, pe.validateArrayOfType)("FunctionTypeParam"),
      rest: (0, pe.validateOptionalType)("FunctionTypeParam"),
      this: (0, pe.validateOptionalType)("FunctionTypeParam"),
      returnType: (0, pe.validateType)("FlowType")
    }
  });
  xt("FunctionTypeParam", {
    visitor: ["name", "typeAnnotation"],
    fields: {
      name: (0, pe.validateOptionalType)("Identifier"),
      typeAnnotation: (0, pe.validateType)("FlowType"),
      optional: (0, pe.validateOptional)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("GenericTypeAnnotation", {
    visitor: ["id", "typeParameters"],
    aliases: ["FlowType"],
    fields: {
      id: (0, pe.validateType)("Identifier", "QualifiedTypeIdentifier"),
      typeParameters: (0, pe.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  xt("InferredPredicate", {
    aliases: ["FlowPredicate"]
  });
  xt("InterfaceExtends", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, pe.validateType)("Identifier", "QualifiedTypeIdentifier"),
      typeParameters: (0, pe.validateOptionalType)("TypeParameterInstantiation")
    }
  });
  KR("InterfaceDeclaration");
  xt("InterfaceTypeAnnotation", {
    visitor: ["extends", "body"],
    aliases: ["FlowType"],
    fields: {
      extends: (0, pe.validateOptional)((0, pe.arrayOfType)("InterfaceExtends")),
      body: (0, pe.validateType)("ObjectTypeAnnotation")
    }
  });
  xt("IntersectionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, pe.validate)((0, pe.arrayOfType)("FlowType"))
    }
  });
  xt("MixedTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("EmptyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("NullableTypeAnnotation", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowType"],
    fields: {
      typeAnnotation: (0, pe.validateType)("FlowType")
    }
  });
  xt("NumberLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, pe.validate)((0, pe.assertValueType)("number"))
    }
  });
  xt("NumberTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("ObjectTypeAnnotation", {
    visitor: ["properties", "indexers", "callProperties", "internalSlots"],
    aliases: ["FlowType"],
    builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"],
    fields: {
      properties: (0, pe.validate)((0, pe.arrayOfType)("ObjectTypeProperty", "ObjectTypeSpreadProperty")),
      indexers: {
        validate: (0, pe.arrayOfType)("ObjectTypeIndexer"),
        optional: !0,
        default: []
      },
      callProperties: {
        validate: (0, pe.arrayOfType)("ObjectTypeCallProperty"),
        optional: !0,
        default: []
      },
      internalSlots: {
        validate: (0, pe.arrayOfType)("ObjectTypeInternalSlot"),
        optional: !0,
        default: []
      },
      exact: {
        validate: (0, pe.assertValueType)("boolean"),
        default: !1
      },
      inexact: (0, pe.validateOptional)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("ObjectTypeInternalSlot", {
    visitor: ["id", "value"],
    builder: ["id", "value", "optional", "static", "method"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      value: (0, pe.validateType)("FlowType"),
      optional: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      static: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      method: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("ObjectTypeCallProperty", {
    visitor: ["value"],
    aliases: ["UserWhitespacable"],
    fields: {
      value: (0, pe.validateType)("FlowType"),
      static: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("ObjectTypeIndexer", {
    visitor: ["variance", "id", "key", "value"],
    builder: ["id", "key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, pe.validateOptionalType)("Identifier"),
      key: (0, pe.validateType)("FlowType"),
      value: (0, pe.validateType)("FlowType"),
      static: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      variance: (0, pe.validateOptionalType)("Variance")
    }
  });
  xt("ObjectTypeProperty", {
    visitor: ["key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      key: (0, pe.validateType)("Identifier", "StringLiteral"),
      value: (0, pe.validateType)("FlowType"),
      kind: (0, pe.validate)((0, pe.assertOneOf)("init", "get", "set")),
      static: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      proto: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      optional: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      variance: (0, pe.validateOptionalType)("Variance"),
      method: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("ObjectTypeSpreadProperty", {
    visitor: ["argument"],
    aliases: ["UserWhitespacable"],
    fields: {
      argument: (0, pe.validateType)("FlowType")
    }
  });
  xt("OpaqueType", {
    visitor: ["id", "typeParameters", "supertype", "impltype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      typeParameters: (0, pe.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, pe.validateOptionalType)("FlowType"),
      impltype: (0, pe.validateType)("FlowType")
    }
  });
  xt("QualifiedTypeIdentifier", {
    visitor: ["qualification", "id"],
    builder: ["id", "qualification"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      qualification: (0, pe.validateType)("Identifier", "QualifiedTypeIdentifier")
    }
  });
  xt("StringLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, pe.validate)((0, pe.assertValueType)("string"))
    }
  });
  xt("StringTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("SymbolTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("ThisTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("TupleTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, pe.validate)((0, pe.arrayOfType)("FlowType"))
    }
  });
  xt("TypeofTypeAnnotation", {
    visitor: ["argument"],
    aliases: ["FlowType"],
    fields: {
      argument: (0, pe.validateType)("FlowType")
    }
  });
  xt("TypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      typeParameters: (0, pe.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, pe.validateType)("FlowType")
    }
  });
  xt("TypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, pe.validateType)("FlowType")
    }
  });
  xt("TypeCastExpression", {
    visitor: ["expression", "typeAnnotation"],
    aliases: ["ExpressionWrapper", "Expression"],
    fields: {
      expression: (0, pe.validateType)("Expression"),
      typeAnnotation: (0, pe.validateType)("TypeAnnotation")
    }
  });
  xt("TypeParameter", {
    visitor: ["bound", "default", "variance"],
    fields: {
      name: (0, pe.validate)((0, pe.assertValueType)("string")),
      bound: (0, pe.validateOptionalType)("TypeAnnotation"),
      default: (0, pe.validateOptionalType)("FlowType"),
      variance: (0, pe.validateOptionalType)("Variance")
    }
  });
  xt("TypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, pe.validate)((0, pe.arrayOfType)("TypeParameter"))
    }
  });
  xt("TypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, pe.validate)((0, pe.arrayOfType)("FlowType"))
    }
  });
  xt("UnionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, pe.validate)((0, pe.arrayOfType)("FlowType"))
    }
  });
  xt("Variance", {
    builder: ["kind"],
    fields: {
      kind: (0, pe.validate)((0, pe.assertOneOf)("minus", "plus"))
    }
  });
  xt("VoidTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  });
  xt("EnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      body: (0, pe.validateType)("EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody")
    }
  });
  xt("EnumBooleanBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      members: (0, pe.validateArrayOfType)("EnumBooleanMember"),
      hasUnknownMembers: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("EnumNumberBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      members: (0, pe.validateArrayOfType)("EnumNumberMember"),
      hasUnknownMembers: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("EnumStringBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, pe.validate)((0, pe.assertValueType)("boolean")),
      members: (0, pe.validateArrayOfType)("EnumStringMember", "EnumDefaultedMember"),
      hasUnknownMembers: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("EnumSymbolBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      members: (0, pe.validateArrayOfType)("EnumDefaultedMember"),
      hasUnknownMembers: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
  xt("EnumBooleanMember", {
    aliases: ["EnumMember"],
    builder: ["id"],
    visitor: ["id", "init"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      init: (0, pe.validateType)("BooleanLiteral")
    }
  });
  xt("EnumNumberMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      init: (0, pe.validateType)("NumericLiteral")
    }
  });
  xt("EnumStringMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, pe.validateType)("Identifier"),
      init: (0, pe.validateType)("StringLiteral")
    }
  });
  xt("EnumDefaultedMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, pe.validateType)("Identifier")
    }
  });
  xt("IndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, pe.validateType)("FlowType"),
      indexType: (0, pe.validateType)("FlowType")
    }
  });
  xt("OptionalIndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, pe.validateType)("FlowType"),
      indexType: (0, pe.validateType)("FlowType"),
      optional: (0, pe.validate)((0, pe.assertValueType)("boolean"))
    }
  });
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/jsx.js
var fde = g(() => {
  "use strict";
  var $r = Ol(), Xn = (0, $r.defineAliasedType)("JSX");
  Xn("JSXAttribute", {
    visitor: ["name", "value"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, $r.assertNodeType)("JSXIdentifier", "JSXNamespacedName")
      },
      value: {
        optional: !0,
        validate: (0, $r.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer")
      }
    }
  });
  Xn("JSXClosingElement", {
    visitor: ["name"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, $r.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      }
    }
  });
  Xn("JSXElement", {
    builder: ["openingElement", "closingElement", "children", "selfClosing"],
    visitor: ["openingElement", "children", "closingElement"],
    aliases: ["Immutable", "Expression"],
    fields: Object.assign({
      openingElement: {
        validate: (0, $r.assertNodeType)("JSXOpeningElement")
      },
      closingElement: {
        optional: !0,
        validate: (0, $r.assertNodeType)("JSXClosingElement")
      },
      children: (0, $r.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
    }, {
      selfClosing: {
        validate: (0, $r.assertValueType)("boolean"),
        optional: !0
      }
    })
  });
  Xn("JSXEmptyExpression", {});
  Xn("JSXExpressionContainer", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, $r.assertNodeType)("Expression", "JSXEmptyExpression")
      }
    }
  });
  Xn("JSXSpreadChild", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, $r.assertNodeType)("Expression")
      }
    }
  });
  Xn("JSXIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, $r.assertValueType)("string")
      }
    }
  });
  Xn("JSXMemberExpression", {
    visitor: ["object", "property"],
    fields: {
      object: {
        validate: (0, $r.assertNodeType)("JSXMemberExpression", "JSXIdentifier")
      },
      property: {
        validate: (0, $r.assertNodeType)("JSXIdentifier")
      }
    }
  });
  Xn("JSXNamespacedName", {
    visitor: ["namespace", "name"],
    fields: {
      namespace: {
        validate: (0, $r.assertNodeType)("JSXIdentifier")
      },
      name: {
        validate: (0, $r.assertNodeType)("JSXIdentifier")
      }
    }
  });
  Xn("JSXOpeningElement", {
    builder: ["name", "attributes", "selfClosing"],
    visitor: ["name", "typeParameters", "typeArguments", "attributes"],
    aliases: ["Immutable"],
    fields: Object.assign({
      name: {
        validate: (0, $r.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      },
      selfClosing: {
        default: !1
      },
      attributes: (0, $r.validateArrayOfType)("JSXAttribute", "JSXSpreadAttribute"),
      typeArguments: {
        validate: (0, $r.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      }
    }, {
      typeParameters: {
        validate: (0, $r.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  });
  Xn("JSXSpreadAttribute", {
    visitor: ["argument"],
    fields: {
      argument: {
        validate: (0, $r.assertNodeType)("Expression")
      }
    }
  });
  Xn("JSXText", {
    aliases: ["Immutable"],
    builder: ["value"],
    fields: {
      value: {
        validate: (0, $r.assertValueType)("string")
      }
    }
  });
  Xn("JSXFragment", {
    builder: ["openingFragment", "closingFragment", "children"],
    visitor: ["openingFragment", "children", "closingFragment"],
    aliases: ["Immutable", "Expression"],
    fields: {
      openingFragment: {
        validate: (0, $r.assertNodeType)("JSXOpeningFragment")
      },
      closingFragment: {
        validate: (0, $r.assertNodeType)("JSXClosingFragment")
      },
      children: (0, $r.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
    }
  });
  Xn("JSXOpeningFragment", {
    aliases: ["Immutable"]
  });
  Xn("JSXClosingFragment", {
    aliases: ["Immutable"]
  });
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/placeholders.js
var $R = g(($p) => {
  "use strict";
  Object.defineProperty($p, "__esModule", {
    value: !0
  });
  $p.PLACEHOLDERS_FLIPPED_ALIAS = $p.PLACEHOLDERS_ALIAS = $p.PLACEHOLDERS = void 0;
  var Hbs = Ol(), Jbs = $p.PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "Class\
Body", "Pattern"], WR = $p.PLACEHOLDERS_ALIAS = {
    Declaration: ["Statement"],
    Pattern: ["PatternLike", "LVal"]
  };
  for (let t of Jbs) {
    let e = Hbs.ALIAS_KEYS[t];
    e != null && e.length && (WR[t] = e);
  }
  var VR = $p.PLACEHOLDERS_FLIPPED_ALIAS = {};
  Object.keys(WR).forEach((t) => {
    WR[t].forEach((e) => {
      hasOwnProperty.call(VR, e) || (VR[e] = []), VR[e].push(t);
    });
  });
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/misc.js
var dde = g(() => {
  "use strict";
  var kv = Ol(), Ybs = $R(), Xbs = QT(), HR = (0, kv.defineAliasedType)("Miscellaneous");
  HR("Noop", {
    visitor: []
  });
  HR("Placeholder", {
    visitor: [],
    builder: ["expectedNode", "name"],
    fields: Object.assign({
      name: {
        validate: (0, kv.assertNodeType)("Identifier")
      },
      expectedNode: {
        validate: (0, kv.assertOneOf)(...Ybs.PLACEHOLDERS)
      }
    }, (0, Xbs.patternLikeCommon)())
  });
  HR("V8IntrinsicIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, kv.assertValueType)("string")
      }
    }
  });
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/experimental.js
var mde = g(() => {
  "use strict";
  var Sr = Ol();
  (0, Sr.default)("ArgumentPlaceholder", {});
  (0, Sr.default)("BindExpression", {
    visitor: ["object", "callee"],
    aliases: ["Expression"],
    fields: process.env.BABEL_TYPES_8_BREAKING ? {
      object: {
        validate: (0, Sr.assertNodeType)("Expression")
      },
      callee: {
        validate: (0, Sr.assertNodeType)("Expression")
      }
    } : {
      object: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      },
      callee: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      }
    }
  });
  (0, Sr.default)("ImportAttribute", {
    visitor: ["key", "value"],
    fields: {
      key: {
        validate: (0, Sr.assertNodeType)("Identifier", "StringLiteral")
      },
      value: {
        validate: (0, Sr.assertNodeType)("StringLiteral")
      }
    }
  });
  (0, Sr.default)("Decorator", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, Sr.assertNodeType)("Expression")
      }
    }
  });
  (0, Sr.default)("DoExpression", {
    visitor: ["body"],
    builder: ["body", "async"],
    aliases: ["Expression"],
    fields: {
      body: {
        validate: (0, Sr.assertNodeType)("BlockStatement")
      },
      async: {
        validate: (0, Sr.assertValueType)("boolean"),
        default: !1
      }
    }
  });
  (0, Sr.default)("ExportDefaultSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, Sr.assertNodeType)("Identifier")
      }
    }
  });
  (0, Sr.default)("RecordExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: (0, Sr.validateArrayOfType)("ObjectProperty", "SpreadElement")
    }
  });
  (0, Sr.default)("TupleExpression", {
    fields: {
      elements: {
        validate: (0, Sr.arrayOfType)("Expression", "SpreadElement"),
        default: []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  });
  (0, Sr.default)("DecimalLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, Sr.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  });
  (0, Sr.default)("ModuleExpression", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, Sr.assertNodeType)("Program")
      }
    },
    aliases: ["Expression"]
  });
  (0, Sr.default)("TopicReference", {
    aliases: ["Expression"]
  });
  (0, Sr.default)("PipelineTopicExpression", {
    builder: ["expression"],
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, Sr.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  });
  (0, Sr.default)("PipelineBareFunction", {
    builder: ["callee"],
    visitor: ["callee"],
    fields: {
      callee: {
        validate: (0, Sr.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  });
  (0, Sr.default)("PipelinePrimaryTopicReference", {
    aliases: ["Expression"]
  });
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/typescript.js
var Ede = g(() => {
  "use strict";
  var Se = Ol(), yde = QT(), zbs = xy(), qt = (0, Se.defineAliasedType)("TypeScript"), aa = (0, Se.assertValueType)("boolean"), gde = /* @__PURE__ */ n(
  () => ({
    returnType: {
      validate: (0, Se.assertNodeType)("TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, Se.assertNodeType)("TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  }), "tSFunctionTypeAnnotationCommon");
  qt("TSParameterProperty", {
    aliases: ["LVal"],
    visitor: ["parameter"],
    fields: {
      accessibility: {
        validate: (0, Se.assertOneOf)("public", "private", "protected"),
        optional: !0
      },
      readonly: {
        validate: (0, Se.assertValueType)("boolean"),
        optional: !0
      },
      parameter: {
        validate: (0, Se.assertNodeType)("Identifier", "AssignmentPattern")
      },
      override: {
        validate: (0, Se.assertValueType)("boolean"),
        optional: !0
      },
      decorators: {
        validate: (0, Se.arrayOfType)("Decorator"),
        optional: !0
      }
    }
  });
  qt("TSDeclareFunction", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, yde.functionDeclarationCommon)(), gde())
  });
  qt("TSDeclareMethod", {
    visitor: ["decorators", "key", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, yde.classMethodOrDeclareMethodCommon)(), gde())
  });
  qt("TSQualifiedName", {
    aliases: ["TSEntityName"],
    visitor: ["left", "right"],
    fields: {
      left: (0, Se.validateType)("TSEntityName"),
      right: (0, Se.validateType)("Identifier")
    }
  });
  var Dv = /* @__PURE__ */ n(() => ({
    typeParameters: (0, Se.validateOptionalType)("TSTypeParameterDeclaration"),
    parameters: (0, Se.validateArrayOfType)("ArrayPattern", "Identifier", "ObjectPattern", "RestElement"),
    typeAnnotation: (0, Se.validateOptionalType)("TSTypeAnnotation")
  }), "signatureDeclarationCommon"), Tde = {
    aliases: ["TSTypeElement"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"],
    fields: Dv()
  };
  qt("TSCallSignatureDeclaration", Tde);
  qt("TSConstructSignatureDeclaration", Tde);
  var bde = /* @__PURE__ */ n(() => ({
    key: (0, Se.validateType)("Expression"),
    computed: {
      default: !1
    },
    optional: (0, Se.validateOptional)(aa)
  }), "namedTypeElementCommon");
  qt("TSPropertySignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeAnnotation"],
    fields: Object.assign({}, bde(), {
      readonly: (0, Se.validateOptional)(aa),
      typeAnnotation: (0, Se.validateOptionalType)("TSTypeAnnotation"),
      kind: {
        validate: (0, Se.assertOneOf)("get", "set")
      }
    })
  });
  qt("TSMethodSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeParameters", "parameters", "typeAnnotation"],
    fields: Object.assign({}, Dv(), bde(), {
      kind: {
        validate: (0, Se.assertOneOf)("method", "get", "set")
      }
    })
  });
  qt("TSIndexSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["parameters", "typeAnnotation"],
    fields: {
      readonly: (0, Se.validateOptional)(aa),
      static: (0, Se.validateOptional)(aa),
      parameters: (0, Se.validateArrayOfType)("Identifier"),
      typeAnnotation: (0, Se.validateOptionalType)("TSTypeAnnotation")
    }
  });
  var Gbs = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeywor\
d", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"];
  for (let t of Gbs)
    qt(t, {
      aliases: ["TSType", "TSBaseType"],
      visitor: [],
      fields: {}
    });
  qt("TSThisType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: [],
    fields: {}
  });
  var xde = {
    aliases: ["TSType"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"]
  };
  qt("TSFunctionType", Object.assign({}, xde, {
    fields: Dv()
  }));
  qt("TSConstructorType", Object.assign({}, xde, {
    fields: Object.assign({}, Dv(), {
      abstract: (0, Se.validateOptional)(aa)
    })
  }));
  qt("TSTypeReference", {
    aliases: ["TSType"],
    visitor: ["typeName", "typeParameters"],
    fields: {
      typeName: (0, Se.validateType)("TSEntityName"),
      typeParameters: (0, Se.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  qt("TSTypePredicate", {
    aliases: ["TSType"],
    visitor: ["parameterName", "typeAnnotation"],
    builder: ["parameterName", "typeAnnotation", "asserts"],
    fields: {
      parameterName: (0, Se.validateType)("Identifier", "TSThisType"),
      typeAnnotation: (0, Se.validateOptionalType)("TSTypeAnnotation"),
      asserts: (0, Se.validateOptional)(aa)
    }
  });
  qt("TSTypeQuery", {
    aliases: ["TSType"],
    visitor: ["exprName", "typeParameters"],
    fields: {
      exprName: (0, Se.validateType)("TSEntityName", "TSImportType"),
      typeParameters: (0, Se.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  qt("TSTypeLiteral", {
    aliases: ["TSType"],
    visitor: ["members"],
    fields: {
      members: (0, Se.validateArrayOfType)("TSTypeElement")
    }
  });
  qt("TSArrayType", {
    aliases: ["TSType"],
    visitor: ["elementType"],
    fields: {
      elementType: (0, Se.validateType)("TSType")
    }
  });
  qt("TSTupleType", {
    aliases: ["TSType"],
    visitor: ["elementTypes"],
    fields: {
      elementTypes: (0, Se.validateArrayOfType)("TSType", "TSNamedTupleMember")
    }
  });
  qt("TSOptionalType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, Se.validateType)("TSType")
    }
  });
  qt("TSRestType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, Se.validateType)("TSType")
    }
  });
  qt("TSNamedTupleMember", {
    visitor: ["label", "elementType"],
    builder: ["label", "elementType", "optional"],
    fields: {
      label: (0, Se.validateType)("Identifier"),
      optional: {
        validate: aa,
        default: !1
      },
      elementType: (0, Se.validateType)("TSType")
    }
  });
  var Sde = {
    aliases: ["TSType"],
    visitor: ["types"],
    fields: {
      types: (0, Se.validateArrayOfType)("TSType")
    }
  };
  qt("TSUnionType", Sde);
  qt("TSIntersectionType", Sde);
  qt("TSConditionalType", {
    aliases: ["TSType"],
    visitor: ["checkType", "extendsType", "trueType", "falseType"],
    fields: {
      checkType: (0, Se.validateType)("TSType"),
      extendsType: (0, Se.validateType)("TSType"),
      trueType: (0, Se.validateType)("TSType"),
      falseType: (0, Se.validateType)("TSType")
    }
  });
  qt("TSInferType", {
    aliases: ["TSType"],
    visitor: ["typeParameter"],
    fields: {
      typeParameter: (0, Se.validateType)("TSTypeParameter")
    }
  });
  qt("TSParenthesizedType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, Se.validateType)("TSType")
    }
  });
  qt("TSTypeOperator", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      operator: (0, Se.validate)((0, Se.assertValueType)("string")),
      typeAnnotation: (0, Se.validateType)("TSType")
    }
  });
  qt("TSIndexedAccessType", {
    aliases: ["TSType"],
    visitor: ["objectType", "indexType"],
    fields: {
      objectType: (0, Se.validateType)("TSType"),
      indexType: (0, Se.validateType)("TSType")
    }
  });
  qt("TSMappedType", {
    aliases: ["TSType"],
    visitor: ["typeParameter", "nameType", "typeAnnotation"],
    builder: ["typeParameter", "typeAnnotation", "nameType"],
    fields: Object.assign({}, {
      typeParameter: (0, Se.validateType)("TSTypeParameter")
    }, {
      readonly: (0, Se.validateOptional)((0, Se.assertOneOf)(!0, !1, "+", "-")),
      optional: (0, Se.validateOptional)((0, Se.assertOneOf)(!0, !1, "+", "-")),
      typeAnnotation: (0, Se.validateOptionalType)("TSType"),
      nameType: (0, Se.validateOptionalType)("TSType")
    })
  });
  qt("TSLiteralType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: ["literal"],
    fields: {
      literal: {
        validate: function() {
          let t = (0, Se.assertNodeType)("NumericLiteral", "BigIntLiteral"), e = (0, Se.assertOneOf)("-"), s = (0, Se.assertNodeType)("Numer\
icLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral");
          function r(i, a, o) {
            (0, zbs.default)("UnaryExpression", o) ? (e(o, "operator", o.operator), t(o, "argument", o.argument)) : s(i, a, o);
          }
          return n(r, "validator"), r.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiter\
al", "UnaryExpression"], r;
        }()
      }
    }
  });
  qt("TSExpressionWithTypeArguments", {
    aliases: ["TSType"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, Se.validateType)("TSEntityName"),
      typeParameters: (0, Se.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  qt("TSInterfaceDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "extends", "body"],
    fields: {
      declare: (0, Se.validateOptional)(aa),
      id: (0, Se.validateType)("Identifier"),
      typeParameters: (0, Se.validateOptionalType)("TSTypeParameterDeclaration"),
      extends: (0, Se.validateOptional)((0, Se.arrayOfType)("TSExpressionWithTypeArguments")),
      body: (0, Se.validateType)("TSInterfaceBody")
    }
  });
  qt("TSInterfaceBody", {
    visitor: ["body"],
    fields: {
      body: (0, Se.validateArrayOfType)("TSTypeElement")
    }
  });
  qt("TSTypeAliasDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "typeAnnotation"],
    fields: {
      declare: (0, Se.validateOptional)(aa),
      id: (0, Se.validateType)("Identifier"),
      typeParameters: (0, Se.validateOptionalType)("TSTypeParameterDeclaration"),
      typeAnnotation: (0, Se.validateType)("TSType")
    }
  });
  qt("TSInstantiationExpression", {
    aliases: ["Expression"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, Se.validateType)("Expression"),
      typeParameters: (0, Se.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  var Pde = {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression", "typeAnnotation"],
    fields: {
      expression: (0, Se.validateType)("Expression"),
      typeAnnotation: (0, Se.validateType)("TSType")
    }
  };
  qt("TSAsExpression", Pde);
  qt("TSSatisfiesExpression", Pde);
  qt("TSTypeAssertion", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["typeAnnotation", "expression"],
    fields: {
      typeAnnotation: (0, Se.validateType)("TSType"),
      expression: (0, Se.validateType)("Expression")
    }
  });
  qt("TSEnumBody", {
    visitor: ["members"],
    fields: {
      members: (0, Se.validateArrayOfType)("TSEnumMember")
    }
  });
  qt("TSEnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "members"],
    fields: {
      declare: (0, Se.validateOptional)(aa),
      const: (0, Se.validateOptional)(aa),
      id: (0, Se.validateType)("Identifier"),
      members: (0, Se.validateArrayOfType)("TSEnumMember"),
      initializer: (0, Se.validateOptionalType)("Expression"),
      body: (0, Se.validateOptionalType)("TSEnumBody")
    }
  });
  qt("TSEnumMember", {
    visitor: ["id", "initializer"],
    fields: {
      id: (0, Se.validateType)("Identifier", "StringLiteral"),
      initializer: (0, Se.validateOptionalType)("Expression")
    }
  });
  qt("TSModuleDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: Object.assign({
      kind: {
        validate: (0, Se.assertOneOf)("global", "module", "namespace")
      },
      declare: (0, Se.validateOptional)(aa)
    }, {
      global: (0, Se.validateOptional)(aa)
    }, {
      id: (0, Se.validateType)("Identifier", "StringLiteral"),
      body: (0, Se.validateType)("TSModuleBlock", "TSModuleDeclaration")
    })
  });
  qt("TSModuleBlock", {
    aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"],
    visitor: ["body"],
    fields: {
      body: (0, Se.validateArrayOfType)("Statement")
    }
  });
  qt("TSImportType", {
    aliases: ["TSType"],
    builder: ["argument", "qualifier", "typeParameters"],
    visitor: ["argument", "options", "qualifier", "typeParameters"],
    fields: {
      argument: (0, Se.validateType)("StringLiteral"),
      qualifier: (0, Se.validateOptionalType)("TSEntityName"),
      typeParameters: (0, Se.validateOptionalType)("TSTypeParameterInstantiation"),
      options: {
        validate: (0, Se.assertNodeType)("Expression"),
        optional: !0
      }
    }
  });
  qt("TSImportEqualsDeclaration", {
    aliases: ["Statement"],
    visitor: ["id", "moduleReference"],
    fields: {
      isExport: (0, Se.validate)(aa),
      id: (0, Se.validateType)("Identifier"),
      moduleReference: (0, Se.validateType)("TSEntityName", "TSExternalModuleReference"),
      importKind: {
        validate: (0, Se.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  });
  qt("TSExternalModuleReference", {
    visitor: ["expression"],
    fields: {
      expression: (0, Se.validateType)("StringLiteral")
    }
  });
  qt("TSNonNullExpression", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression"],
    fields: {
      expression: (0, Se.validateType)("Expression")
    }
  });
  qt("TSExportAssignment", {
    aliases: ["Statement"],
    visitor: ["expression"],
    fields: {
      expression: (0, Se.validateType)("Expression")
    }
  });
  qt("TSNamespaceExportDeclaration", {
    aliases: ["Statement"],
    visitor: ["id"],
    fields: {
      id: (0, Se.validateType)("Identifier")
    }
  });
  qt("TSTypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: {
        validate: (0, Se.assertNodeType)("TSType")
      }
    }
  });
  qt("TSTypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, Se.validateArrayOfType)("TSType")
    }
  });
  qt("TSTypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, Se.validateArrayOfType)("TSTypeParameter")
    }
  });
  qt("TSTypeParameter", {
    builder: ["constraint", "default", "name"],
    visitor: ["constraint", "default"],
    fields: {
      name: {
        validate: (0, Se.assertValueType)("string")
      },
      in: {
        validate: (0, Se.assertValueType)("boolean"),
        optional: !0
      },
      out: {
        validate: (0, Se.assertValueType)("boolean"),
        optional: !0
      },
      const: {
        validate: (0, Se.assertValueType)("boolean"),
        optional: !0
      },
      constraint: {
        validate: (0, Se.assertNodeType)("TSType"),
        optional: !0
      },
      default: {
        validate: (0, Se.assertNodeType)("TSType"),
        optional: !0
      }
    }
  });
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/deprecated-aliases.js
var Ade = g((Ov) => {
  "use strict";
  Object.defineProperty(Ov, "__esModule", {
    value: !0
  });
  Ov.DEPRECATED_ALIASES = void 0;
  var Pir = Ov.DEPRECATED_ALIASES = {
    ModuleDeclaration: "ImportOrExportDeclaration"
  };
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/definitions/index.js
var oo = g((zn) => {
  "use strict";
  Object.defineProperty(zn, "__esModule", {
    value: !0
  });
  Object.defineProperty(zn, "ALIAS_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lo.ALIAS_KEYS;
    }, "get")
  });
  Object.defineProperty(zn, "BUILDER_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lo.BUILDER_KEYS;
    }, "get")
  });
  Object.defineProperty(zn, "DEPRECATED_ALIASES", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return JR.DEPRECATED_ALIASES;
    }, "get")
  });
  Object.defineProperty(zn, "DEPRECATED_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lo.DEPRECATED_KEYS;
    }, "get")
  });
  Object.defineProperty(zn, "FLIPPED_ALIAS_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lo.FLIPPED_ALIAS_KEYS;
    }, "get")
  });
  Object.defineProperty(zn, "NODE_FIELDS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lo.NODE_FIELDS;
    }, "get")
  });
  Object.defineProperty(zn, "NODE_PARENT_VALIDATIONS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lo.NODE_PARENT_VALIDATIONS;
    }, "get")
  });
  Object.defineProperty(zn, "PLACEHOLDERS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return YR.PLACEHOLDERS;
    }, "get")
  });
  Object.defineProperty(zn, "PLACEHOLDERS_ALIAS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return YR.PLACEHOLDERS_ALIAS;
    }, "get")
  });
  Object.defineProperty(zn, "PLACEHOLDERS_FLIPPED_ALIAS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return YR.PLACEHOLDERS_FLIPPED_ALIAS;
    }, "get")
  });
  zn.TYPES = void 0;
  Object.defineProperty(zn, "VISITOR_KEYS", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lo.VISITOR_KEYS;
    }, "get")
  });
  QT();
  hde();
  fde();
  dde();
  mde();
  Ede();
  var lo = Ol(), YR = $R(), JR = Ade();
  Object.keys(JR.DEPRECATED_ALIASES).forEach((t) => {
    lo.FLIPPED_ALIAS_KEYS[t] = lo.FLIPPED_ALIAS_KEYS[JR.DEPRECATED_ALIASES[t]];
  });
  var Air = zn.TYPES = [].concat(Object.keys(lo.VISITOR_KEYS), Object.keys(lo.FLIPPED_ALIAS_KEYS), Object.keys(lo.DEPRECATED_KEYS));
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/validate.js
var Iv = g((Ay) => {
  "use strict";
  Object.defineProperty(Ay, "__esModule", {
    value: !0
  });
  Ay.default = Qbs;
  Ay.validateChild = Cde;
  Ay.validateField = vde;
  Ay.validateInternal = Zbs;
  var ZT = oo();
  function Qbs(t, e, s) {
    if (!t) return;
    let r = ZT.NODE_FIELDS[t.type];
    if (!r) return;
    let i = r[e];
    vde(t, e, s, i), Cde(t, e, s);
  }
  n(Qbs, "validate");
  function Zbs(t, e, s, r, i) {
    if (t != null && t.validate && !(t.optional && r == null) && (t.validate(e, s, r), i)) {
      var a;
      let o = r.type;
      if (o == null) return;
      (a = ZT.NODE_PARENT_VALIDATIONS[o]) == null || a.call(ZT.NODE_PARENT_VALIDATIONS, e, s, r);
    }
  }
  n(Zbs, "validateInternal");
  function vde(t, e, s, r) {
    r != null && r.validate && (r.optional && s == null || r.validate(t, e, s));
  }
  n(vde, "validateField");
  function Cde(t, e, s) {
    var r;
    let i = s?.type;
    i != null && ((r = ZT.NODE_PARENT_VALIDATIONS[i]) == null || r.call(ZT.NODE_PARENT_VALIDATIONS, t, e, s));
  }
  n(Cde, "validateChild");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/builders/generated/index.js
var Gn = g((C) => {
  "use strict";
  Object.defineProperty(C, "__esModule", {
    value: !0
  });
  C.anyTypeAnnotation = OSs;
  C.argumentPlaceholder = oEs;
  C.arrayExpression = sxs;
  C.arrayPattern = Gxs;
  C.arrayTypeAnnotation = _Ss;
  C.arrowFunctionExpression = Qxs;
  C.assignmentExpression = rxs;
  C.assignmentPattern = zxs;
  C.awaitExpression = xSs;
  C.bigIntLiteral = PSs;
  C.binaryExpression = ixs;
  C.bindExpression = lEs;
  C.blockStatement = lxs;
  C.booleanLiteral = Ixs;
  C.booleanLiteralTypeAnnotation = BSs;
  C.booleanTypeAnnotation = LSs;
  C.breakStatement = uxs;
  C.callExpression = cxs;
  C.catchClause = pxs;
  C.classAccessorProperty = wSs;
  C.classBody = Zxs;
  C.classDeclaration = tSs;
  C.classExpression = eSs;
  C.classImplements = FSs;
  C.classMethod = fSs;
  C.classPrivateMethod = NSs;
  C.classPrivateProperty = ISs;
  C.classProperty = CSs;
  C.conditionalExpression = hxs;
  C.continueStatement = fxs;
  C.debuggerStatement = dxs;
  C.decimalLiteral = mEs;
  C.declareClass = jSs;
  C.declareExportAllDeclaration = JSs;
  C.declareExportDeclaration = HSs;
  C.declareFunction = RSs;
  C.declareInterface = qSs;
  C.declareModule = USs;
  C.declareModuleExports = KSs;
  C.declareOpaqueType = WSs;
  C.declareTypeAlias = VSs;
  C.declareVariable = $Ss;
  C.declaredPredicate = YSs;
  C.decorator = cEs;
  C.directive = axs;
  C.directiveLiteral = oxs;
  C.doExpression = pEs;
  C.doWhileStatement = mxs;
  C.emptyStatement = yxs;
  C.emptyTypeAnnotation = nPs;
  C.enumBooleanBody = _Ps;
  C.enumBooleanMember = FPs;
  C.enumDeclaration = OPs;
  C.enumDefaultedMember = qPs;
  C.enumNumberBody = LPs;
  C.enumNumberMember = jPs;
  C.enumStringBody = BPs;
  C.enumStringMember = RPs;
  C.enumSymbolBody = MPs;
  C.existsTypeAnnotation = XSs;
  C.exportAllDeclaration = sSs;
  C.exportDefaultDeclaration = rSs;
  C.exportDefaultSpecifier = hEs;
  C.exportNamedDeclaration = iSs;
  C.exportNamespaceSpecifier = ESs;
  C.exportSpecifier = nSs;
  C.expressionStatement = gxs;
  C.file = Txs;
  C.forInStatement = bxs;
  C.forOfStatement = aSs;
  C.forStatement = xxs;
  C.functionDeclaration = Sxs;
  C.functionExpression = Pxs;
  C.functionTypeAnnotation = zSs;
  C.functionTypeParam = GSs;
  C.genericTypeAnnotation = QSs;
  C.identifier = Exs;
  C.ifStatement = Axs;
  C.import = SSs;
  C.importAttribute = uEs;
  C.importDeclaration = oSs;
  C.importDefaultSpecifier = lSs;
  C.importExpression = pSs;
  C.importNamespaceSpecifier = uSs;
  C.importSpecifier = cSs;
  C.indexedAccessType = UPs;
  C.inferredPredicate = ZSs;
  C.interfaceDeclaration = tPs;
  C.interfaceExtends = ePs;
  C.interfaceTypeAnnotation = sPs;
  C.interpreterDirective = nxs;
  C.intersectionTypeAnnotation = rPs;
  C.jSXAttribute = C.jsxAttribute = VPs;
  C.jSXClosingElement = C.jsxClosingElement = WPs;
  C.jSXClosingFragment = C.jsxClosingFragment = rEs;
  C.jSXElement = C.jsxElement = $Ps;
  C.jSXEmptyExpression = C.jsxEmptyExpression = HPs;
  C.jSXExpressionContainer = C.jsxExpressionContainer = JPs;
  C.jSXFragment = C.jsxFragment = tEs;
  C.jSXIdentifier = C.jsxIdentifier = XPs;
  C.jSXMemberExpression = C.jsxMemberExpression = zPs;
  C.jSXNamespacedName = C.jsxNamespacedName = GPs;
  C.jSXOpeningElement = C.jsxOpeningElement = QPs;
  C.jSXOpeningFragment = C.jsxOpeningFragment = sEs;
  C.jSXSpreadAttribute = C.jsxSpreadAttribute = ZPs;
  C.jSXSpreadChild = C.jsxSpreadChild = YPs;
  C.jSXText = C.jsxText = eEs;
  C.labeledStatement = vxs;
  C.logicalExpression = Nxs;
  C.memberExpression = kxs;
  C.metaProperty = hSs;
  C.mixedTypeAnnotation = iPs;
  C.moduleExpression = yEs;
  C.newExpression = Dxs;
  C.noop = iEs;
  C.nullLiteral = wxs;
  C.nullLiteralTypeAnnotation = MSs;
  C.nullableTypeAnnotation = aPs;
  C.numberLiteral = _As;
  C.numberLiteralTypeAnnotation = oPs;
  C.numberTypeAnnotation = lPs;
  C.numericLiteral = wde;
  C.objectExpression = _xs;
  C.objectMethod = Lxs;
  C.objectPattern = dSs;
  C.objectProperty = Bxs;
  C.objectTypeAnnotation = uPs;
  C.objectTypeCallProperty = pPs;
  C.objectTypeIndexer = hPs;
  C.objectTypeInternalSlot = cPs;
  C.objectTypeProperty = fPs;
  C.objectTypeSpreadProperty = dPs;
  C.opaqueType = mPs;
  C.optionalCallExpression = vSs;
  C.optionalIndexedAccessType = KPs;
  C.optionalMemberExpression = ASs;
  C.parenthesizedExpression = jxs;
  C.pipelineBareFunction = bEs;
  C.pipelinePrimaryTopicReference = xEs;
  C.pipelineTopicExpression = TEs;
  C.placeholder = nEs;
  C.privateName = kSs;
  C.program = Oxs;
  C.qualifiedTypeIdentifier = yPs;
  C.recordExpression = fEs;
  C.regExpLiteral = Ide;
  C.regexLiteral = LAs;
  C.restElement = Nde;
  C.restProperty = BAs;
  C.returnStatement = Mxs;
  C.sequenceExpression = Fxs;
  C.spreadElement = kde;
  C.spreadProperty = MAs;
  C.staticBlock = DSs;
  C.stringLiteral = Cxs;
  C.stringLiteralTypeAnnotation = gPs;
  C.stringTypeAnnotation = TPs;
  C.super = mSs;
  C.switchCase = Rxs;
  C.switchStatement = qxs;
  C.symbolTypeAnnotation = bPs;
  C.taggedTemplateExpression = ySs;
  C.templateElement = gSs;
  C.templateLiteral = TSs;
  C.thisExpression = Uxs;
  C.thisTypeAnnotation = xPs;
  C.throwStatement = Kxs;
  C.topicReference = gEs;
  C.tryStatement = Vxs;
  C.tSAnyKeyword = C.tsAnyKeyword = kEs;
  C.tSArrayType = C.tsArrayType = zEs;
  C.tSAsExpression = C.tsAsExpression = mAs;
  C.tSBigIntKeyword = C.tsBigIntKeyword = OEs;
  C.tSBooleanKeyword = C.tsBooleanKeyword = DEs;
  C.tSCallSignatureDeclaration = C.tsCallSignatureDeclaration = vEs;
  C.tSConditionalType = C.tsConditionalType = rAs;
  C.tSConstructSignatureDeclaration = C.tsConstructSignatureDeclaration = CEs;
  C.tSConstructorType = C.tsConstructorType = $Es;
  C.tSDeclareFunction = C.tsDeclareFunction = PEs;
  C.tSDeclareMethod = C.tsDeclareMethod = EEs;
  C.tSEnumBody = C.tsEnumBody = TAs;
  C.tSEnumDeclaration = C.tsEnumDeclaration = bAs;
  C.tSEnumMember = C.tsEnumMember = xAs;
  C.tSExportAssignment = C.tsExportAssignment = wAs;
  C.tSExpressionWithTypeArguments = C.tsExpressionWithTypeArguments = cAs;
  C.tSExternalModuleReference = C.tsExternalModuleReference = vAs;
  C.tSFunctionType = C.tsFunctionType = WEs;
  C.tSImportEqualsDeclaration = C.tsImportEqualsDeclaration = AAs;
  C.tSImportType = C.tsImportType = EAs;
  C.tSIndexSignature = C.tsIndexSignature = NEs;
  C.tSIndexedAccessType = C.tsIndexedAccessType = oAs;
  C.tSInferType = C.tsInferType = iAs;
  C.tSInstantiationExpression = C.tsInstantiationExpression = dAs;
  C.tSInterfaceBody = C.tsInterfaceBody = hAs;
  C.tSInterfaceDeclaration = C.tsInterfaceDeclaration = pAs;
  C.tSIntersectionType = C.tsIntersectionType = sAs;
  C.tSIntrinsicKeyword = C.tsIntrinsicKeyword = _Es;
  C.tSLiteralType = C.tsLiteralType = uAs;
  C.tSMappedType = C.tsMappedType = lAs;
  C.tSMethodSignature = C.tsMethodSignature = IEs;
  C.tSModuleBlock = C.tsModuleBlock = PAs;
  C.tSModuleDeclaration = C.tsModuleDeclaration = SAs;
  C.tSNamedTupleMember = C.tsNamedTupleMember = eAs;
  C.tSNamespaceExportDeclaration = C.tsNamespaceExportDeclaration = IAs;
  C.tSNeverKeyword = C.tsNeverKeyword = LEs;
  C.tSNonNullExpression = C.tsNonNullExpression = CAs;
  C.tSNullKeyword = C.tsNullKeyword = BEs;
  C.tSNumberKeyword = C.tsNumberKeyword = MEs;
  C.tSObjectKeyword = C.tsObjectKeyword = FEs;
  C.tSOptionalType = C.tsOptionalType = QEs;
  C.tSParameterProperty = C.tsParameterProperty = SEs;
  C.tSParenthesizedType = C.tsParenthesizedType = nAs;
  C.tSPropertySignature = C.tsPropertySignature = wEs;
  C.tSQualifiedName = C.tsQualifiedName = AEs;
  C.tSRestType = C.tsRestType = ZEs;
  C.tSSatisfiesExpression = C.tsSatisfiesExpression = yAs;
  C.tSStringKeyword = C.tsStringKeyword = jEs;
  C.tSSymbolKeyword = C.tsSymbolKeyword = REs;
  C.tSThisType = C.tsThisType = VEs;
  C.tSTupleType = C.tsTupleType = GEs;
  C.tSTypeAliasDeclaration = C.tsTypeAliasDeclaration = fAs;
  C.tSTypeAnnotation = C.tsTypeAnnotation = NAs;
  C.tSTypeAssertion = C.tsTypeAssertion = gAs;
  C.tSTypeLiteral = C.tsTypeLiteral = XEs;
  C.tSTypeOperator = C.tsTypeOperator = aAs;
  C.tSTypeParameter = C.tsTypeParameter = OAs;
  C.tSTypeParameterDeclaration = C.tsTypeParameterDeclaration = DAs;
  C.tSTypeParameterInstantiation = C.tsTypeParameterInstantiation = kAs;
  C.tSTypePredicate = C.tsTypePredicate = JEs;
  C.tSTypeQuery = C.tsTypeQuery = YEs;
  C.tSTypeReference = C.tsTypeReference = HEs;
  C.tSUndefinedKeyword = C.tsUndefinedKeyword = qEs;
  C.tSUnionType = C.tsUnionType = tAs;
  C.tSUnknownKeyword = C.tsUnknownKeyword = UEs;
  C.tSVoidKeyword = C.tsVoidKeyword = KEs;
  C.tupleExpression = dEs;
  C.tupleTypeAnnotation = SPs;
  C.typeAlias = EPs;
  C.typeAnnotation = APs;
  C.typeCastExpression = vPs;
  C.typeParameter = CPs;
  C.typeParameterDeclaration = wPs;
  C.typeParameterInstantiation = IPs;
  C.typeofTypeAnnotation = PPs;
  C.unaryExpression = Wxs;
  C.unionTypeAnnotation = NPs;
  C.updateExpression = $xs;
  C.v8IntrinsicIdentifier = aEs;
  C.variableDeclaration = Hxs;
  C.variableDeclarator = Jxs;
  C.variance = kPs;
  C.voidTypeAnnotation = DPs;
  C.whileStatement = Yxs;
  C.withStatement = Xxs;
  C.yieldExpression = bSs;
  var exs = Iv(), _v = YT(), txs = Ol(), {
    validateInternal: P
  } = exs, {
    NODE_FIELDS: ne
  } = txs;
  function sxs(t = []) {
    let e = {
      type: "ArrayExpression",
      elements: t
    }, s = ne.ArrayExpression;
    return P(s.elements, e, "elements", t, 1), e;
  }
  n(sxs, "arrayExpression");
  function rxs(t, e, s) {
    let r = {
      type: "AssignmentExpression",
      operator: t,
      left: e,
      right: s
    }, i = ne.AssignmentExpression;
    return P(i.operator, r, "operator", t), P(i.left, r, "left", e, 1), P(i.right, r, "right", s, 1), r;
  }
  n(rxs, "assignmentExpression");
  function ixs(t, e, s) {
    let r = {
      type: "BinaryExpression",
      operator: t,
      left: e,
      right: s
    }, i = ne.BinaryExpression;
    return P(i.operator, r, "operator", t), P(i.left, r, "left", e, 1), P(i.right, r, "right", s, 1), r;
  }
  n(ixs, "binaryExpression");
  function nxs(t) {
    let e = {
      type: "InterpreterDirective",
      value: t
    }, s = ne.InterpreterDirective;
    return P(s.value, e, "value", t), e;
  }
  n(nxs, "interpreterDirective");
  function axs(t) {
    let e = {
      type: "Directive",
      value: t
    }, s = ne.Directive;
    return P(s.value, e, "value", t, 1), e;
  }
  n(axs, "directive");
  function oxs(t) {
    let e = {
      type: "DirectiveLiteral",
      value: t
    }, s = ne.DirectiveLiteral;
    return P(s.value, e, "value", t), e;
  }
  n(oxs, "directiveLiteral");
  function lxs(t, e = []) {
    let s = {
      type: "BlockStatement",
      body: t,
      directives: e
    }, r = ne.BlockStatement;
    return P(r.body, s, "body", t, 1), P(r.directives, s, "directives", e, 1), s;
  }
  n(lxs, "blockStatement");
  function uxs(t = null) {
    let e = {
      type: "BreakStatement",
      label: t
    }, s = ne.BreakStatement;
    return P(s.label, e, "label", t, 1), e;
  }
  n(uxs, "breakStatement");
  function cxs(t, e) {
    let s = {
      type: "CallExpression",
      callee: t,
      arguments: e
    }, r = ne.CallExpression;
    return P(r.callee, s, "callee", t, 1), P(r.arguments, s, "arguments", e, 1), s;
  }
  n(cxs, "callExpression");
  function pxs(t = null, e) {
    let s = {
      type: "CatchClause",
      param: t,
      body: e
    }, r = ne.CatchClause;
    return P(r.param, s, "param", t, 1), P(r.body, s, "body", e, 1), s;
  }
  n(pxs, "catchClause");
  function hxs(t, e, s) {
    let r = {
      type: "ConditionalExpression",
      test: t,
      consequent: e,
      alternate: s
    }, i = ne.ConditionalExpression;
    return P(i.test, r, "test", t, 1), P(i.consequent, r, "consequent", e, 1), P(i.alternate, r, "alternate", s, 1), r;
  }
  n(hxs, "conditionalExpression");
  function fxs(t = null) {
    let e = {
      type: "ContinueStatement",
      label: t
    }, s = ne.ContinueStatement;
    return P(s.label, e, "label", t, 1), e;
  }
  n(fxs, "continueStatement");
  function dxs() {
    return {
      type: "DebuggerStatement"
    };
  }
  n(dxs, "debuggerStatement");
  function mxs(t, e) {
    let s = {
      type: "DoWhileStatement",
      test: t,
      body: e
    }, r = ne.DoWhileStatement;
    return P(r.test, s, "test", t, 1), P(r.body, s, "body", e, 1), s;
  }
  n(mxs, "doWhileStatement");
  function yxs() {
    return {
      type: "EmptyStatement"
    };
  }
  n(yxs, "emptyStatement");
  function gxs(t) {
    let e = {
      type: "ExpressionStatement",
      expression: t
    }, s = ne.ExpressionStatement;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(gxs, "expressionStatement");
  function Txs(t, e = null, s = null) {
    let r = {
      type: "File",
      program: t,
      comments: e,
      tokens: s
    }, i = ne.File;
    return P(i.program, r, "program", t, 1), P(i.comments, r, "comments", e, 1), P(i.tokens, r, "tokens", s), r;
  }
  n(Txs, "file");
  function bxs(t, e, s) {
    let r = {
      type: "ForInStatement",
      left: t,
      right: e,
      body: s
    }, i = ne.ForInStatement;
    return P(i.left, r, "left", t, 1), P(i.right, r, "right", e, 1), P(i.body, r, "body", s, 1), r;
  }
  n(bxs, "forInStatement");
  function xxs(t = null, e = null, s = null, r) {
    let i = {
      type: "ForStatement",
      init: t,
      test: e,
      update: s,
      body: r
    }, a = ne.ForStatement;
    return P(a.init, i, "init", t, 1), P(a.test, i, "test", e, 1), P(a.update, i, "update", s, 1), P(a.body, i, "body", r, 1), i;
  }
  n(xxs, "forStatement");
  function Sxs(t = null, e, s, r = !1, i = !1) {
    let a = {
      type: "FunctionDeclaration",
      id: t,
      params: e,
      body: s,
      generator: r,
      async: i
    }, o = ne.FunctionDeclaration;
    return P(o.id, a, "id", t, 1), P(o.params, a, "params", e, 1), P(o.body, a, "body", s, 1), P(o.generator, a, "generator", r), P(o.async,
    a, "async", i), a;
  }
  n(Sxs, "functionDeclaration");
  function Pxs(t = null, e, s, r = !1, i = !1) {
    let a = {
      type: "FunctionExpression",
      id: t,
      params: e,
      body: s,
      generator: r,
      async: i
    }, o = ne.FunctionExpression;
    return P(o.id, a, "id", t, 1), P(o.params, a, "params", e, 1), P(o.body, a, "body", s, 1), P(o.generator, a, "generator", r), P(o.async,
    a, "async", i), a;
  }
  n(Pxs, "functionExpression");
  function Exs(t) {
    let e = {
      type: "Identifier",
      name: t
    }, s = ne.Identifier;
    return P(s.name, e, "name", t), e;
  }
  n(Exs, "identifier");
  function Axs(t, e, s = null) {
    let r = {
      type: "IfStatement",
      test: t,
      consequent: e,
      alternate: s
    }, i = ne.IfStatement;
    return P(i.test, r, "test", t, 1), P(i.consequent, r, "consequent", e, 1), P(i.alternate, r, "alternate", s, 1), r;
  }
  n(Axs, "ifStatement");
  function vxs(t, e) {
    let s = {
      type: "LabeledStatement",
      label: t,
      body: e
    }, r = ne.LabeledStatement;
    return P(r.label, s, "label", t, 1), P(r.body, s, "body", e, 1), s;
  }
  n(vxs, "labeledStatement");
  function Cxs(t) {
    let e = {
      type: "StringLiteral",
      value: t
    }, s = ne.StringLiteral;
    return P(s.value, e, "value", t), e;
  }
  n(Cxs, "stringLiteral");
  function wde(t) {
    let e = {
      type: "NumericLiteral",
      value: t
    }, s = ne.NumericLiteral;
    return P(s.value, e, "value", t), e;
  }
  n(wde, "numericLiteral");
  function wxs() {
    return {
      type: "NullLiteral"
    };
  }
  n(wxs, "nullLiteral");
  function Ixs(t) {
    let e = {
      type: "BooleanLiteral",
      value: t
    }, s = ne.BooleanLiteral;
    return P(s.value, e, "value", t), e;
  }
  n(Ixs, "booleanLiteral");
  function Ide(t, e = "") {
    let s = {
      type: "RegExpLiteral",
      pattern: t,
      flags: e
    }, r = ne.RegExpLiteral;
    return P(r.pattern, s, "pattern", t), P(r.flags, s, "flags", e), s;
  }
  n(Ide, "regExpLiteral");
  function Nxs(t, e, s) {
    let r = {
      type: "LogicalExpression",
      operator: t,
      left: e,
      right: s
    }, i = ne.LogicalExpression;
    return P(i.operator, r, "operator", t), P(i.left, r, "left", e, 1), P(i.right, r, "right", s, 1), r;
  }
  n(Nxs, "logicalExpression");
  function kxs(t, e, s = !1, r = null) {
    let i = {
      type: "MemberExpression",
      object: t,
      property: e,
      computed: s,
      optional: r
    }, a = ne.MemberExpression;
    return P(a.object, i, "object", t, 1), P(a.property, i, "property", e, 1), P(a.computed, i, "computed", s), P(a.optional, i, "optional",
    r), i;
  }
  n(kxs, "memberExpression");
  function Dxs(t, e) {
    let s = {
      type: "NewExpression",
      callee: t,
      arguments: e
    }, r = ne.NewExpression;
    return P(r.callee, s, "callee", t, 1), P(r.arguments, s, "arguments", e, 1), s;
  }
  n(Dxs, "newExpression");
  function Oxs(t, e = [], s = "script", r = null) {
    let i = {
      type: "Program",
      body: t,
      directives: e,
      sourceType: s,
      interpreter: r
    }, a = ne.Program;
    return P(a.body, i, "body", t, 1), P(a.directives, i, "directives", e, 1), P(a.sourceType, i, "sourceType", s), P(a.interpreter, i, "int\
erpreter", r, 1), i;
  }
  n(Oxs, "program");
  function _xs(t) {
    let e = {
      type: "ObjectExpression",
      properties: t
    }, s = ne.ObjectExpression;
    return P(s.properties, e, "properties", t, 1), e;
  }
  n(_xs, "objectExpression");
  function Lxs(t = "method", e, s, r, i = !1, a = !1, o = !1) {
    let l = {
      type: "ObjectMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      computed: i,
      generator: a,
      async: o
    }, u = ne.ObjectMethod;
    return P(u.kind, l, "kind", t), P(u.key, l, "key", e, 1), P(u.params, l, "params", s, 1), P(u.body, l, "body", r, 1), P(u.computed, l, "\
computed", i), P(u.generator, l, "generator", a), P(u.async, l, "async", o), l;
  }
  n(Lxs, "objectMethod");
  function Bxs(t, e, s = !1, r = !1, i = null) {
    let a = {
      type: "ObjectProperty",
      key: t,
      value: e,
      computed: s,
      shorthand: r,
      decorators: i
    }, o = ne.ObjectProperty;
    return P(o.key, a, "key", t, 1), P(o.value, a, "value", e, 1), P(o.computed, a, "computed", s), P(o.shorthand, a, "shorthand", r), P(o.decorators,
    a, "decorators", i, 1), a;
  }
  n(Bxs, "objectProperty");
  function Nde(t) {
    let e = {
      type: "RestElement",
      argument: t
    }, s = ne.RestElement;
    return P(s.argument, e, "argument", t, 1), e;
  }
  n(Nde, "restElement");
  function Mxs(t = null) {
    let e = {
      type: "ReturnStatement",
      argument: t
    }, s = ne.ReturnStatement;
    return P(s.argument, e, "argument", t, 1), e;
  }
  n(Mxs, "returnStatement");
  function Fxs(t) {
    let e = {
      type: "SequenceExpression",
      expressions: t
    }, s = ne.SequenceExpression;
    return P(s.expressions, e, "expressions", t, 1), e;
  }
  n(Fxs, "sequenceExpression");
  function jxs(t) {
    let e = {
      type: "ParenthesizedExpression",
      expression: t
    }, s = ne.ParenthesizedExpression;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(jxs, "parenthesizedExpression");
  function Rxs(t = null, e) {
    let s = {
      type: "SwitchCase",
      test: t,
      consequent: e
    }, r = ne.SwitchCase;
    return P(r.test, s, "test", t, 1), P(r.consequent, s, "consequent", e, 1), s;
  }
  n(Rxs, "switchCase");
  function qxs(t, e) {
    let s = {
      type: "SwitchStatement",
      discriminant: t,
      cases: e
    }, r = ne.SwitchStatement;
    return P(r.discriminant, s, "discriminant", t, 1), P(r.cases, s, "cases", e, 1), s;
  }
  n(qxs, "switchStatement");
  function Uxs() {
    return {
      type: "ThisExpression"
    };
  }
  n(Uxs, "thisExpression");
  function Kxs(t) {
    let e = {
      type: "ThrowStatement",
      argument: t
    }, s = ne.ThrowStatement;
    return P(s.argument, e, "argument", t, 1), e;
  }
  n(Kxs, "throwStatement");
  function Vxs(t, e = null, s = null) {
    let r = {
      type: "TryStatement",
      block: t,
      handler: e,
      finalizer: s
    }, i = ne.TryStatement;
    return P(i.block, r, "block", t, 1), P(i.handler, r, "handler", e, 1), P(i.finalizer, r, "finalizer", s, 1), r;
  }
  n(Vxs, "tryStatement");
  function Wxs(t, e, s = !0) {
    let r = {
      type: "UnaryExpression",
      operator: t,
      argument: e,
      prefix: s
    }, i = ne.UnaryExpression;
    return P(i.operator, r, "operator", t), P(i.argument, r, "argument", e, 1), P(i.prefix, r, "prefix", s), r;
  }
  n(Wxs, "unaryExpression");
  function $xs(t, e, s = !1) {
    let r = {
      type: "UpdateExpression",
      operator: t,
      argument: e,
      prefix: s
    }, i = ne.UpdateExpression;
    return P(i.operator, r, "operator", t), P(i.argument, r, "argument", e, 1), P(i.prefix, r, "prefix", s), r;
  }
  n($xs, "updateExpression");
  function Hxs(t, e) {
    let s = {
      type: "VariableDeclaration",
      kind: t,
      declarations: e
    }, r = ne.VariableDeclaration;
    return P(r.kind, s, "kind", t), P(r.declarations, s, "declarations", e, 1), s;
  }
  n(Hxs, "variableDeclaration");
  function Jxs(t, e = null) {
    let s = {
      type: "VariableDeclarator",
      id: t,
      init: e
    }, r = ne.VariableDeclarator;
    return P(r.id, s, "id", t, 1), P(r.init, s, "init", e, 1), s;
  }
  n(Jxs, "variableDeclarator");
  function Yxs(t, e) {
    let s = {
      type: "WhileStatement",
      test: t,
      body: e
    }, r = ne.WhileStatement;
    return P(r.test, s, "test", t, 1), P(r.body, s, "body", e, 1), s;
  }
  n(Yxs, "whileStatement");
  function Xxs(t, e) {
    let s = {
      type: "WithStatement",
      object: t,
      body: e
    }, r = ne.WithStatement;
    return P(r.object, s, "object", t, 1), P(r.body, s, "body", e, 1), s;
  }
  n(Xxs, "withStatement");
  function zxs(t, e) {
    let s = {
      type: "AssignmentPattern",
      left: t,
      right: e
    }, r = ne.AssignmentPattern;
    return P(r.left, s, "left", t, 1), P(r.right, s, "right", e, 1), s;
  }
  n(zxs, "assignmentPattern");
  function Gxs(t) {
    let e = {
      type: "ArrayPattern",
      elements: t
    }, s = ne.ArrayPattern;
    return P(s.elements, e, "elements", t, 1), e;
  }
  n(Gxs, "arrayPattern");
  function Qxs(t, e, s = !1) {
    let r = {
      type: "ArrowFunctionExpression",
      params: t,
      body: e,
      async: s,
      expression: null
    }, i = ne.ArrowFunctionExpression;
    return P(i.params, r, "params", t, 1), P(i.body, r, "body", e, 1), P(i.async, r, "async", s), r;
  }
  n(Qxs, "arrowFunctionExpression");
  function Zxs(t) {
    let e = {
      type: "ClassBody",
      body: t
    }, s = ne.ClassBody;
    return P(s.body, e, "body", t, 1), e;
  }
  n(Zxs, "classBody");
  function eSs(t = null, e = null, s, r = null) {
    let i = {
      type: "ClassExpression",
      id: t,
      superClass: e,
      body: s,
      decorators: r
    }, a = ne.ClassExpression;
    return P(a.id, i, "id", t, 1), P(a.superClass, i, "superClass", e, 1), P(a.body, i, "body", s, 1), P(a.decorators, i, "decorators", r, 1),
    i;
  }
  n(eSs, "classExpression");
  function tSs(t = null, e = null, s, r = null) {
    let i = {
      type: "ClassDeclaration",
      id: t,
      superClass: e,
      body: s,
      decorators: r
    }, a = ne.ClassDeclaration;
    return P(a.id, i, "id", t, 1), P(a.superClass, i, "superClass", e, 1), P(a.body, i, "body", s, 1), P(a.decorators, i, "decorators", r, 1),
    i;
  }
  n(tSs, "classDeclaration");
  function sSs(t) {
    let e = {
      type: "ExportAllDeclaration",
      source: t
    }, s = ne.ExportAllDeclaration;
    return P(s.source, e, "source", t, 1), e;
  }
  n(sSs, "exportAllDeclaration");
  function rSs(t) {
    let e = {
      type: "ExportDefaultDeclaration",
      declaration: t
    }, s = ne.ExportDefaultDeclaration;
    return P(s.declaration, e, "declaration", t, 1), e;
  }
  n(rSs, "exportDefaultDeclaration");
  function iSs(t = null, e = [], s = null) {
    let r = {
      type: "ExportNamedDeclaration",
      declaration: t,
      specifiers: e,
      source: s
    }, i = ne.ExportNamedDeclaration;
    return P(i.declaration, r, "declaration", t, 1), P(i.specifiers, r, "specifiers", e, 1), P(i.source, r, "source", s, 1), r;
  }
  n(iSs, "exportNamedDeclaration");
  function nSs(t, e) {
    let s = {
      type: "ExportSpecifier",
      local: t,
      exported: e
    }, r = ne.ExportSpecifier;
    return P(r.local, s, "local", t, 1), P(r.exported, s, "exported", e, 1), s;
  }
  n(nSs, "exportSpecifier");
  function aSs(t, e, s, r = !1) {
    let i = {
      type: "ForOfStatement",
      left: t,
      right: e,
      body: s,
      await: r
    }, a = ne.ForOfStatement;
    return P(a.left, i, "left", t, 1), P(a.right, i, "right", e, 1), P(a.body, i, "body", s, 1), P(a.await, i, "await", r), i;
  }
  n(aSs, "forOfStatement");
  function oSs(t, e) {
    let s = {
      type: "ImportDeclaration",
      specifiers: t,
      source: e
    }, r = ne.ImportDeclaration;
    return P(r.specifiers, s, "specifiers", t, 1), P(r.source, s, "source", e, 1), s;
  }
  n(oSs, "importDeclaration");
  function lSs(t) {
    let e = {
      type: "ImportDefaultSpecifier",
      local: t
    }, s = ne.ImportDefaultSpecifier;
    return P(s.local, e, "local", t, 1), e;
  }
  n(lSs, "importDefaultSpecifier");
  function uSs(t) {
    let e = {
      type: "ImportNamespaceSpecifier",
      local: t
    }, s = ne.ImportNamespaceSpecifier;
    return P(s.local, e, "local", t, 1), e;
  }
  n(uSs, "importNamespaceSpecifier");
  function cSs(t, e) {
    let s = {
      type: "ImportSpecifier",
      local: t,
      imported: e
    }, r = ne.ImportSpecifier;
    return P(r.local, s, "local", t, 1), P(r.imported, s, "imported", e, 1), s;
  }
  n(cSs, "importSpecifier");
  function pSs(t, e = null) {
    let s = {
      type: "ImportExpression",
      source: t,
      options: e
    }, r = ne.ImportExpression;
    return P(r.source, s, "source", t, 1), P(r.options, s, "options", e, 1), s;
  }
  n(pSs, "importExpression");
  function hSs(t, e) {
    let s = {
      type: "MetaProperty",
      meta: t,
      property: e
    }, r = ne.MetaProperty;
    return P(r.meta, s, "meta", t, 1), P(r.property, s, "property", e, 1), s;
  }
  n(hSs, "metaProperty");
  function fSs(t = "method", e, s, r, i = !1, a = !1, o = !1, l = !1) {
    let u = {
      type: "ClassMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      computed: i,
      static: a,
      generator: o,
      async: l
    }, c = ne.ClassMethod;
    return P(c.kind, u, "kind", t), P(c.key, u, "key", e, 1), P(c.params, u, "params", s, 1), P(c.body, u, "body", r, 1), P(c.computed, u, "\
computed", i), P(c.static, u, "static", a), P(c.generator, u, "generator", o), P(c.async, u, "async", l), u;
  }
  n(fSs, "classMethod");
  function dSs(t) {
    let e = {
      type: "ObjectPattern",
      properties: t
    }, s = ne.ObjectPattern;
    return P(s.properties, e, "properties", t, 1), e;
  }
  n(dSs, "objectPattern");
  function kde(t) {
    let e = {
      type: "SpreadElement",
      argument: t
    }, s = ne.SpreadElement;
    return P(s.argument, e, "argument", t, 1), e;
  }
  n(kde, "spreadElement");
  function mSs() {
    return {
      type: "Super"
    };
  }
  n(mSs, "_super");
  function ySs(t, e) {
    let s = {
      type: "TaggedTemplateExpression",
      tag: t,
      quasi: e
    }, r = ne.TaggedTemplateExpression;
    return P(r.tag, s, "tag", t, 1), P(r.quasi, s, "quasi", e, 1), s;
  }
  n(ySs, "taggedTemplateExpression");
  function gSs(t, e = !1) {
    let s = {
      type: "TemplateElement",
      value: t,
      tail: e
    }, r = ne.TemplateElement;
    return P(r.value, s, "value", t), P(r.tail, s, "tail", e), s;
  }
  n(gSs, "templateElement");
  function TSs(t, e) {
    let s = {
      type: "TemplateLiteral",
      quasis: t,
      expressions: e
    }, r = ne.TemplateLiteral;
    return P(r.quasis, s, "quasis", t, 1), P(r.expressions, s, "expressions", e, 1), s;
  }
  n(TSs, "templateLiteral");
  function bSs(t = null, e = !1) {
    let s = {
      type: "YieldExpression",
      argument: t,
      delegate: e
    }, r = ne.YieldExpression;
    return P(r.argument, s, "argument", t, 1), P(r.delegate, s, "delegate", e), s;
  }
  n(bSs, "yieldExpression");
  function xSs(t) {
    let e = {
      type: "AwaitExpression",
      argument: t
    }, s = ne.AwaitExpression;
    return P(s.argument, e, "argument", t, 1), e;
  }
  n(xSs, "awaitExpression");
  function SSs() {
    return {
      type: "Import"
    };
  }
  n(SSs, "_import");
  function PSs(t) {
    let e = {
      type: "BigIntLiteral",
      value: t
    }, s = ne.BigIntLiteral;
    return P(s.value, e, "value", t), e;
  }
  n(PSs, "bigIntLiteral");
  function ESs(t) {
    let e = {
      type: "ExportNamespaceSpecifier",
      exported: t
    }, s = ne.ExportNamespaceSpecifier;
    return P(s.exported, e, "exported", t, 1), e;
  }
  n(ESs, "exportNamespaceSpecifier");
  function ASs(t, e, s = !1, r) {
    let i = {
      type: "OptionalMemberExpression",
      object: t,
      property: e,
      computed: s,
      optional: r
    }, a = ne.OptionalMemberExpression;
    return P(a.object, i, "object", t, 1), P(a.property, i, "property", e, 1), P(a.computed, i, "computed", s), P(a.optional, i, "optional",
    r), i;
  }
  n(ASs, "optionalMemberExpression");
  function vSs(t, e, s) {
    let r = {
      type: "OptionalCallExpression",
      callee: t,
      arguments: e,
      optional: s
    }, i = ne.OptionalCallExpression;
    return P(i.callee, r, "callee", t, 1), P(i.arguments, r, "arguments", e, 1), P(i.optional, r, "optional", s), r;
  }
  n(vSs, "optionalCallExpression");
  function CSs(t, e = null, s = null, r = null, i = !1, a = !1) {
    let o = {
      type: "ClassProperty",
      key: t,
      value: e,
      typeAnnotation: s,
      decorators: r,
      computed: i,
      static: a
    }, l = ne.ClassProperty;
    return P(l.key, o, "key", t, 1), P(l.value, o, "value", e, 1), P(l.typeAnnotation, o, "typeAnnotation", s, 1), P(l.decorators, o, "decor\
ators", r, 1), P(l.computed, o, "computed", i), P(l.static, o, "static", a), o;
  }
  n(CSs, "classProperty");
  function wSs(t, e = null, s = null, r = null, i = !1, a = !1) {
    let o = {
      type: "ClassAccessorProperty",
      key: t,
      value: e,
      typeAnnotation: s,
      decorators: r,
      computed: i,
      static: a
    }, l = ne.ClassAccessorProperty;
    return P(l.key, o, "key", t, 1), P(l.value, o, "value", e, 1), P(l.typeAnnotation, o, "typeAnnotation", s, 1), P(l.decorators, o, "decor\
ators", r, 1), P(l.computed, o, "computed", i), P(l.static, o, "static", a), o;
  }
  n(wSs, "classAccessorProperty");
  function ISs(t, e = null, s = null, r = !1) {
    let i = {
      type: "ClassPrivateProperty",
      key: t,
      value: e,
      decorators: s,
      static: r
    }, a = ne.ClassPrivateProperty;
    return P(a.key, i, "key", t, 1), P(a.value, i, "value", e, 1), P(a.decorators, i, "decorators", s, 1), P(a.static, i, "static", r), i;
  }
  n(ISs, "classPrivateProperty");
  function NSs(t = "method", e, s, r, i = !1) {
    let a = {
      type: "ClassPrivateMethod",
      kind: t,
      key: e,
      params: s,
      body: r,
      static: i
    }, o = ne.ClassPrivateMethod;
    return P(o.kind, a, "kind", t), P(o.key, a, "key", e, 1), P(o.params, a, "params", s, 1), P(o.body, a, "body", r, 1), P(o.static, a, "st\
atic", i), a;
  }
  n(NSs, "classPrivateMethod");
  function kSs(t) {
    let e = {
      type: "PrivateName",
      id: t
    }, s = ne.PrivateName;
    return P(s.id, e, "id", t, 1), e;
  }
  n(kSs, "privateName");
  function DSs(t) {
    let e = {
      type: "StaticBlock",
      body: t
    }, s = ne.StaticBlock;
    return P(s.body, e, "body", t, 1), e;
  }
  n(DSs, "staticBlock");
  function OSs() {
    return {
      type: "AnyTypeAnnotation"
    };
  }
  n(OSs, "anyTypeAnnotation");
  function _Ss(t) {
    let e = {
      type: "ArrayTypeAnnotation",
      elementType: t
    }, s = ne.ArrayTypeAnnotation;
    return P(s.elementType, e, "elementType", t, 1), e;
  }
  n(_Ss, "arrayTypeAnnotation");
  function LSs() {
    return {
      type: "BooleanTypeAnnotation"
    };
  }
  n(LSs, "booleanTypeAnnotation");
  function BSs(t) {
    let e = {
      type: "BooleanLiteralTypeAnnotation",
      value: t
    }, s = ne.BooleanLiteralTypeAnnotation;
    return P(s.value, e, "value", t), e;
  }
  n(BSs, "booleanLiteralTypeAnnotation");
  function MSs() {
    return {
      type: "NullLiteralTypeAnnotation"
    };
  }
  n(MSs, "nullLiteralTypeAnnotation");
  function FSs(t, e = null) {
    let s = {
      type: "ClassImplements",
      id: t,
      typeParameters: e
    }, r = ne.ClassImplements;
    return P(r.id, s, "id", t, 1), P(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(FSs, "classImplements");
  function jSs(t, e = null, s = null, r) {
    let i = {
      type: "DeclareClass",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = ne.DeclareClass;
    return P(a.id, i, "id", t, 1), P(a.typeParameters, i, "typeParameters", e, 1), P(a.extends, i, "extends", s, 1), P(a.body, i, "body", r,
    1), i;
  }
  n(jSs, "declareClass");
  function RSs(t) {
    let e = {
      type: "DeclareFunction",
      id: t
    }, s = ne.DeclareFunction;
    return P(s.id, e, "id", t, 1), e;
  }
  n(RSs, "declareFunction");
  function qSs(t, e = null, s = null, r) {
    let i = {
      type: "DeclareInterface",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = ne.DeclareInterface;
    return P(a.id, i, "id", t, 1), P(a.typeParameters, i, "typeParameters", e, 1), P(a.extends, i, "extends", s, 1), P(a.body, i, "body", r,
    1), i;
  }
  n(qSs, "declareInterface");
  function USs(t, e, s = null) {
    let r = {
      type: "DeclareModule",
      id: t,
      body: e,
      kind: s
    }, i = ne.DeclareModule;
    return P(i.id, r, "id", t, 1), P(i.body, r, "body", e, 1), P(i.kind, r, "kind", s), r;
  }
  n(USs, "declareModule");
  function KSs(t) {
    let e = {
      type: "DeclareModuleExports",
      typeAnnotation: t
    }, s = ne.DeclareModuleExports;
    return P(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(KSs, "declareModuleExports");
  function VSs(t, e = null, s) {
    let r = {
      type: "DeclareTypeAlias",
      id: t,
      typeParameters: e,
      right: s
    }, i = ne.DeclareTypeAlias;
    return P(i.id, r, "id", t, 1), P(i.typeParameters, r, "typeParameters", e, 1), P(i.right, r, "right", s, 1), r;
  }
  n(VSs, "declareTypeAlias");
  function WSs(t, e = null, s = null) {
    let r = {
      type: "DeclareOpaqueType",
      id: t,
      typeParameters: e,
      supertype: s
    }, i = ne.DeclareOpaqueType;
    return P(i.id, r, "id", t, 1), P(i.typeParameters, r, "typeParameters", e, 1), P(i.supertype, r, "supertype", s, 1), r;
  }
  n(WSs, "declareOpaqueType");
  function $Ss(t) {
    let e = {
      type: "DeclareVariable",
      id: t
    }, s = ne.DeclareVariable;
    return P(s.id, e, "id", t, 1), e;
  }
  n($Ss, "declareVariable");
  function HSs(t = null, e = null, s = null, r = null) {
    let i = {
      type: "DeclareExportDeclaration",
      declaration: t,
      specifiers: e,
      source: s,
      attributes: r
    }, a = ne.DeclareExportDeclaration;
    return P(a.declaration, i, "declaration", t, 1), P(a.specifiers, i, "specifiers", e, 1), P(a.source, i, "source", s, 1), P(a.attributes,
    i, "attributes", r, 1), i;
  }
  n(HSs, "declareExportDeclaration");
  function JSs(t, e = null) {
    let s = {
      type: "DeclareExportAllDeclaration",
      source: t,
      attributes: e
    }, r = ne.DeclareExportAllDeclaration;
    return P(r.source, s, "source", t, 1), P(r.attributes, s, "attributes", e, 1), s;
  }
  n(JSs, "declareExportAllDeclaration");
  function YSs(t) {
    let e = {
      type: "DeclaredPredicate",
      value: t
    }, s = ne.DeclaredPredicate;
    return P(s.value, e, "value", t, 1), e;
  }
  n(YSs, "declaredPredicate");
  function XSs() {
    return {
      type: "ExistsTypeAnnotation"
    };
  }
  n(XSs, "existsTypeAnnotation");
  function zSs(t = null, e, s = null, r) {
    let i = {
      type: "FunctionTypeAnnotation",
      typeParameters: t,
      params: e,
      rest: s,
      returnType: r
    }, a = ne.FunctionTypeAnnotation;
    return P(a.typeParameters, i, "typeParameters", t, 1), P(a.params, i, "params", e, 1), P(a.rest, i, "rest", s, 1), P(a.returnType, i, "r\
eturnType", r, 1), i;
  }
  n(zSs, "functionTypeAnnotation");
  function GSs(t = null, e) {
    let s = {
      type: "FunctionTypeParam",
      name: t,
      typeAnnotation: e
    }, r = ne.FunctionTypeParam;
    return P(r.name, s, "name", t, 1), P(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(GSs, "functionTypeParam");
  function QSs(t, e = null) {
    let s = {
      type: "GenericTypeAnnotation",
      id: t,
      typeParameters: e
    }, r = ne.GenericTypeAnnotation;
    return P(r.id, s, "id", t, 1), P(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(QSs, "genericTypeAnnotation");
  function ZSs() {
    return {
      type: "InferredPredicate"
    };
  }
  n(ZSs, "inferredPredicate");
  function ePs(t, e = null) {
    let s = {
      type: "InterfaceExtends",
      id: t,
      typeParameters: e
    }, r = ne.InterfaceExtends;
    return P(r.id, s, "id", t, 1), P(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(ePs, "interfaceExtends");
  function tPs(t, e = null, s = null, r) {
    let i = {
      type: "InterfaceDeclaration",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = ne.InterfaceDeclaration;
    return P(a.id, i, "id", t, 1), P(a.typeParameters, i, "typeParameters", e, 1), P(a.extends, i, "extends", s, 1), P(a.body, i, "body", r,
    1), i;
  }
  n(tPs, "interfaceDeclaration");
  function sPs(t = null, e) {
    let s = {
      type: "InterfaceTypeAnnotation",
      extends: t,
      body: e
    }, r = ne.InterfaceTypeAnnotation;
    return P(r.extends, s, "extends", t, 1), P(r.body, s, "body", e, 1), s;
  }
  n(sPs, "interfaceTypeAnnotation");
  function rPs(t) {
    let e = {
      type: "IntersectionTypeAnnotation",
      types: t
    }, s = ne.IntersectionTypeAnnotation;
    return P(s.types, e, "types", t, 1), e;
  }
  n(rPs, "intersectionTypeAnnotation");
  function iPs() {
    return {
      type: "MixedTypeAnnotation"
    };
  }
  n(iPs, "mixedTypeAnnotation");
  function nPs() {
    return {
      type: "EmptyTypeAnnotation"
    };
  }
  n(nPs, "emptyTypeAnnotation");
  function aPs(t) {
    let e = {
      type: "NullableTypeAnnotation",
      typeAnnotation: t
    }, s = ne.NullableTypeAnnotation;
    return P(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(aPs, "nullableTypeAnnotation");
  function oPs(t) {
    let e = {
      type: "NumberLiteralTypeAnnotation",
      value: t
    }, s = ne.NumberLiteralTypeAnnotation;
    return P(s.value, e, "value", t), e;
  }
  n(oPs, "numberLiteralTypeAnnotation");
  function lPs() {
    return {
      type: "NumberTypeAnnotation"
    };
  }
  n(lPs, "numberTypeAnnotation");
  function uPs(t, e = [], s = [], r = [], i = !1) {
    let a = {
      type: "ObjectTypeAnnotation",
      properties: t,
      indexers: e,
      callProperties: s,
      internalSlots: r,
      exact: i
    }, o = ne.ObjectTypeAnnotation;
    return P(o.properties, a, "properties", t, 1), P(o.indexers, a, "indexers", e, 1), P(o.callProperties, a, "callProperties", s, 1), P(o.internalSlots,
    a, "internalSlots", r, 1), P(o.exact, a, "exact", i), a;
  }
  n(uPs, "objectTypeAnnotation");
  function cPs(t, e, s, r, i) {
    let a = {
      type: "ObjectTypeInternalSlot",
      id: t,
      value: e,
      optional: s,
      static: r,
      method: i
    }, o = ne.ObjectTypeInternalSlot;
    return P(o.id, a, "id", t, 1), P(o.value, a, "value", e, 1), P(o.optional, a, "optional", s), P(o.static, a, "static", r), P(o.method, a,
    "method", i), a;
  }
  n(cPs, "objectTypeInternalSlot");
  function pPs(t) {
    let e = {
      type: "ObjectTypeCallProperty",
      value: t,
      static: null
    }, s = ne.ObjectTypeCallProperty;
    return P(s.value, e, "value", t, 1), e;
  }
  n(pPs, "objectTypeCallProperty");
  function hPs(t = null, e, s, r = null) {
    let i = {
      type: "ObjectTypeIndexer",
      id: t,
      key: e,
      value: s,
      variance: r,
      static: null
    }, a = ne.ObjectTypeIndexer;
    return P(a.id, i, "id", t, 1), P(a.key, i, "key", e, 1), P(a.value, i, "value", s, 1), P(a.variance, i, "variance", r, 1), i;
  }
  n(hPs, "objectTypeIndexer");
  function fPs(t, e, s = null) {
    let r = {
      type: "ObjectTypeProperty",
      key: t,
      value: e,
      variance: s,
      kind: null,
      method: null,
      optional: null,
      proto: null,
      static: null
    }, i = ne.ObjectTypeProperty;
    return P(i.key, r, "key", t, 1), P(i.value, r, "value", e, 1), P(i.variance, r, "variance", s, 1), r;
  }
  n(fPs, "objectTypeProperty");
  function dPs(t) {
    let e = {
      type: "ObjectTypeSpreadProperty",
      argument: t
    }, s = ne.ObjectTypeSpreadProperty;
    return P(s.argument, e, "argument", t, 1), e;
  }
  n(dPs, "objectTypeSpreadProperty");
  function mPs(t, e = null, s = null, r) {
    let i = {
      type: "OpaqueType",
      id: t,
      typeParameters: e,
      supertype: s,
      impltype: r
    }, a = ne.OpaqueType;
    return P(a.id, i, "id", t, 1), P(a.typeParameters, i, "typeParameters", e, 1), P(a.supertype, i, "supertype", s, 1), P(a.impltype, i, "i\
mpltype", r, 1), i;
  }
  n(mPs, "opaqueType");
  function yPs(t, e) {
    let s = {
      type: "QualifiedTypeIdentifier",
      id: t,
      qualification: e
    }, r = ne.QualifiedTypeIdentifier;
    return P(r.id, s, "id", t, 1), P(r.qualification, s, "qualification", e, 1), s;
  }
  n(yPs, "qualifiedTypeIdentifier");
  function gPs(t) {
    let e = {
      type: "StringLiteralTypeAnnotation",
      value: t
    }, s = ne.StringLiteralTypeAnnotation;
    return P(s.value, e, "value", t), e;
  }
  n(gPs, "stringLiteralTypeAnnotation");
  function TPs() {
    return {
      type: "StringTypeAnnotation"
    };
  }
  n(TPs, "stringTypeAnnotation");
  function bPs() {
    return {
      type: "SymbolTypeAnnotation"
    };
  }
  n(bPs, "symbolTypeAnnotation");
  function xPs() {
    return {
      type: "ThisTypeAnnotation"
    };
  }
  n(xPs, "thisTypeAnnotation");
  function SPs(t) {
    let e = {
      type: "TupleTypeAnnotation",
      types: t
    }, s = ne.TupleTypeAnnotation;
    return P(s.types, e, "types", t, 1), e;
  }
  n(SPs, "tupleTypeAnnotation");
  function PPs(t) {
    let e = {
      type: "TypeofTypeAnnotation",
      argument: t
    }, s = ne.TypeofTypeAnnotation;
    return P(s.argument, e, "argument", t, 1), e;
  }
  n(PPs, "typeofTypeAnnotation");
  function EPs(t, e = null, s) {
    let r = {
      type: "TypeAlias",
      id: t,
      typeParameters: e,
      right: s
    }, i = ne.TypeAlias;
    return P(i.id, r, "id", t, 1), P(i.typeParameters, r, "typeParameters", e, 1), P(i.right, r, "right", s, 1), r;
  }
  n(EPs, "typeAlias");
  function APs(t) {
    let e = {
      type: "TypeAnnotation",
      typeAnnotation: t
    }, s = ne.TypeAnnotation;
    return P(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(APs, "typeAnnotation");
  function vPs(t, e) {
    let s = {
      type: "TypeCastExpression",
      expression: t,
      typeAnnotation: e
    }, r = ne.TypeCastExpression;
    return P(r.expression, s, "expression", t, 1), P(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(vPs, "typeCastExpression");
  function CPs(t = null, e = null, s = null) {
    let r = {
      type: "TypeParameter",
      bound: t,
      default: e,
      variance: s,
      name: null
    }, i = ne.TypeParameter;
    return P(i.bound, r, "bound", t, 1), P(i.default, r, "default", e, 1), P(i.variance, r, "variance", s, 1), r;
  }
  n(CPs, "typeParameter");
  function wPs(t) {
    let e = {
      type: "TypeParameterDeclaration",
      params: t
    }, s = ne.TypeParameterDeclaration;
    return P(s.params, e, "params", t, 1), e;
  }
  n(wPs, "typeParameterDeclaration");
  function IPs(t) {
    let e = {
      type: "TypeParameterInstantiation",
      params: t
    }, s = ne.TypeParameterInstantiation;
    return P(s.params, e, "params", t, 1), e;
  }
  n(IPs, "typeParameterInstantiation");
  function NPs(t) {
    let e = {
      type: "UnionTypeAnnotation",
      types: t
    }, s = ne.UnionTypeAnnotation;
    return P(s.types, e, "types", t, 1), e;
  }
  n(NPs, "unionTypeAnnotation");
  function kPs(t) {
    let e = {
      type: "Variance",
      kind: t
    }, s = ne.Variance;
    return P(s.kind, e, "kind", t), e;
  }
  n(kPs, "variance");
  function DPs() {
    return {
      type: "VoidTypeAnnotation"
    };
  }
  n(DPs, "voidTypeAnnotation");
  function OPs(t, e) {
    let s = {
      type: "EnumDeclaration",
      id: t,
      body: e
    }, r = ne.EnumDeclaration;
    return P(r.id, s, "id", t, 1), P(r.body, s, "body", e, 1), s;
  }
  n(OPs, "enumDeclaration");
  function _Ps(t) {
    let e = {
      type: "EnumBooleanBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = ne.EnumBooleanBody;
    return P(s.members, e, "members", t, 1), e;
  }
  n(_Ps, "enumBooleanBody");
  function LPs(t) {
    let e = {
      type: "EnumNumberBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = ne.EnumNumberBody;
    return P(s.members, e, "members", t, 1), e;
  }
  n(LPs, "enumNumberBody");
  function BPs(t) {
    let e = {
      type: "EnumStringBody",
      members: t,
      explicitType: null,
      hasUnknownMembers: null
    }, s = ne.EnumStringBody;
    return P(s.members, e, "members", t, 1), e;
  }
  n(BPs, "enumStringBody");
  function MPs(t) {
    let e = {
      type: "EnumSymbolBody",
      members: t,
      hasUnknownMembers: null
    }, s = ne.EnumSymbolBody;
    return P(s.members, e, "members", t, 1), e;
  }
  n(MPs, "enumSymbolBody");
  function FPs(t) {
    let e = {
      type: "EnumBooleanMember",
      id: t,
      init: null
    }, s = ne.EnumBooleanMember;
    return P(s.id, e, "id", t, 1), e;
  }
  n(FPs, "enumBooleanMember");
  function jPs(t, e) {
    let s = {
      type: "EnumNumberMember",
      id: t,
      init: e
    }, r = ne.EnumNumberMember;
    return P(r.id, s, "id", t, 1), P(r.init, s, "init", e, 1), s;
  }
  n(jPs, "enumNumberMember");
  function RPs(t, e) {
    let s = {
      type: "EnumStringMember",
      id: t,
      init: e
    }, r = ne.EnumStringMember;
    return P(r.id, s, "id", t, 1), P(r.init, s, "init", e, 1), s;
  }
  n(RPs, "enumStringMember");
  function qPs(t) {
    let e = {
      type: "EnumDefaultedMember",
      id: t
    }, s = ne.EnumDefaultedMember;
    return P(s.id, e, "id", t, 1), e;
  }
  n(qPs, "enumDefaultedMember");
  function UPs(t, e) {
    let s = {
      type: "IndexedAccessType",
      objectType: t,
      indexType: e
    }, r = ne.IndexedAccessType;
    return P(r.objectType, s, "objectType", t, 1), P(r.indexType, s, "indexType", e, 1), s;
  }
  n(UPs, "indexedAccessType");
  function KPs(t, e) {
    let s = {
      type: "OptionalIndexedAccessType",
      objectType: t,
      indexType: e,
      optional: null
    }, r = ne.OptionalIndexedAccessType;
    return P(r.objectType, s, "objectType", t, 1), P(r.indexType, s, "indexType", e, 1), s;
  }
  n(KPs, "optionalIndexedAccessType");
  function VPs(t, e = null) {
    let s = {
      type: "JSXAttribute",
      name: t,
      value: e
    }, r = ne.JSXAttribute;
    return P(r.name, s, "name", t, 1), P(r.value, s, "value", e, 1), s;
  }
  n(VPs, "jsxAttribute");
  function WPs(t) {
    let e = {
      type: "JSXClosingElement",
      name: t
    }, s = ne.JSXClosingElement;
    return P(s.name, e, "name", t, 1), e;
  }
  n(WPs, "jsxClosingElement");
  function $Ps(t, e = null, s, r = null) {
    let i = {
      type: "JSXElement",
      openingElement: t,
      closingElement: e,
      children: s,
      selfClosing: r
    }, a = ne.JSXElement;
    return P(a.openingElement, i, "openingElement", t, 1), P(a.closingElement, i, "closingElement", e, 1), P(a.children, i, "children", s, 1),
    P(a.selfClosing, i, "selfClosing", r), i;
  }
  n($Ps, "jsxElement");
  function HPs() {
    return {
      type: "JSXEmptyExpression"
    };
  }
  n(HPs, "jsxEmptyExpression");
  function JPs(t) {
    let e = {
      type: "JSXExpressionContainer",
      expression: t
    }, s = ne.JSXExpressionContainer;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(JPs, "jsxExpressionContainer");
  function YPs(t) {
    let e = {
      type: "JSXSpreadChild",
      expression: t
    }, s = ne.JSXSpreadChild;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(YPs, "jsxSpreadChild");
  function XPs(t) {
    let e = {
      type: "JSXIdentifier",
      name: t
    }, s = ne.JSXIdentifier;
    return P(s.name, e, "name", t), e;
  }
  n(XPs, "jsxIdentifier");
  function zPs(t, e) {
    let s = {
      type: "JSXMemberExpression",
      object: t,
      property: e
    }, r = ne.JSXMemberExpression;
    return P(r.object, s, "object", t, 1), P(r.property, s, "property", e, 1), s;
  }
  n(zPs, "jsxMemberExpression");
  function GPs(t, e) {
    let s = {
      type: "JSXNamespacedName",
      namespace: t,
      name: e
    }, r = ne.JSXNamespacedName;
    return P(r.namespace, s, "namespace", t, 1), P(r.name, s, "name", e, 1), s;
  }
  n(GPs, "jsxNamespacedName");
  function QPs(t, e, s = !1) {
    let r = {
      type: "JSXOpeningElement",
      name: t,
      attributes: e,
      selfClosing: s
    }, i = ne.JSXOpeningElement;
    return P(i.name, r, "name", t, 1), P(i.attributes, r, "attributes", e, 1), P(i.selfClosing, r, "selfClosing", s), r;
  }
  n(QPs, "jsxOpeningElement");
  function ZPs(t) {
    let e = {
      type: "JSXSpreadAttribute",
      argument: t
    }, s = ne.JSXSpreadAttribute;
    return P(s.argument, e, "argument", t, 1), e;
  }
  n(ZPs, "jsxSpreadAttribute");
  function eEs(t) {
    let e = {
      type: "JSXText",
      value: t
    }, s = ne.JSXText;
    return P(s.value, e, "value", t), e;
  }
  n(eEs, "jsxText");
  function tEs(t, e, s) {
    let r = {
      type: "JSXFragment",
      openingFragment: t,
      closingFragment: e,
      children: s
    }, i = ne.JSXFragment;
    return P(i.openingFragment, r, "openingFragment", t, 1), P(i.closingFragment, r, "closingFragment", e, 1), P(i.children, r, "children", s,
    1), r;
  }
  n(tEs, "jsxFragment");
  function sEs() {
    return {
      type: "JSXOpeningFragment"
    };
  }
  n(sEs, "jsxOpeningFragment");
  function rEs() {
    return {
      type: "JSXClosingFragment"
    };
  }
  n(rEs, "jsxClosingFragment");
  function iEs() {
    return {
      type: "Noop"
    };
  }
  n(iEs, "noop");
  function nEs(t, e) {
    let s = {
      type: "Placeholder",
      expectedNode: t,
      name: e
    }, r = ne.Placeholder;
    return P(r.expectedNode, s, "expectedNode", t), P(r.name, s, "name", e, 1), s;
  }
  n(nEs, "placeholder");
  function aEs(t) {
    let e = {
      type: "V8IntrinsicIdentifier",
      name: t
    }, s = ne.V8IntrinsicIdentifier;
    return P(s.name, e, "name", t), e;
  }
  n(aEs, "v8IntrinsicIdentifier");
  function oEs() {
    return {
      type: "ArgumentPlaceholder"
    };
  }
  n(oEs, "argumentPlaceholder");
  function lEs(t, e) {
    let s = {
      type: "BindExpression",
      object: t,
      callee: e
    }, r = ne.BindExpression;
    return P(r.object, s, "object", t, 1), P(r.callee, s, "callee", e, 1), s;
  }
  n(lEs, "bindExpression");
  function uEs(t, e) {
    let s = {
      type: "ImportAttribute",
      key: t,
      value: e
    }, r = ne.ImportAttribute;
    return P(r.key, s, "key", t, 1), P(r.value, s, "value", e, 1), s;
  }
  n(uEs, "importAttribute");
  function cEs(t) {
    let e = {
      type: "Decorator",
      expression: t
    }, s = ne.Decorator;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(cEs, "decorator");
  function pEs(t, e = !1) {
    let s = {
      type: "DoExpression",
      body: t,
      async: e
    }, r = ne.DoExpression;
    return P(r.body, s, "body", t, 1), P(r.async, s, "async", e), s;
  }
  n(pEs, "doExpression");
  function hEs(t) {
    let e = {
      type: "ExportDefaultSpecifier",
      exported: t
    }, s = ne.ExportDefaultSpecifier;
    return P(s.exported, e, "exported", t, 1), e;
  }
  n(hEs, "exportDefaultSpecifier");
  function fEs(t) {
    let e = {
      type: "RecordExpression",
      properties: t
    }, s = ne.RecordExpression;
    return P(s.properties, e, "properties", t, 1), e;
  }
  n(fEs, "recordExpression");
  function dEs(t = []) {
    let e = {
      type: "TupleExpression",
      elements: t
    }, s = ne.TupleExpression;
    return P(s.elements, e, "elements", t, 1), e;
  }
  n(dEs, "tupleExpression");
  function mEs(t) {
    let e = {
      type: "DecimalLiteral",
      value: t
    }, s = ne.DecimalLiteral;
    return P(s.value, e, "value", t), e;
  }
  n(mEs, "decimalLiteral");
  function yEs(t) {
    let e = {
      type: "ModuleExpression",
      body: t
    }, s = ne.ModuleExpression;
    return P(s.body, e, "body", t, 1), e;
  }
  n(yEs, "moduleExpression");
  function gEs() {
    return {
      type: "TopicReference"
    };
  }
  n(gEs, "topicReference");
  function TEs(t) {
    let e = {
      type: "PipelineTopicExpression",
      expression: t
    }, s = ne.PipelineTopicExpression;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(TEs, "pipelineTopicExpression");
  function bEs(t) {
    let e = {
      type: "PipelineBareFunction",
      callee: t
    }, s = ne.PipelineBareFunction;
    return P(s.callee, e, "callee", t, 1), e;
  }
  n(bEs, "pipelineBareFunction");
  function xEs() {
    return {
      type: "PipelinePrimaryTopicReference"
    };
  }
  n(xEs, "pipelinePrimaryTopicReference");
  function SEs(t) {
    let e = {
      type: "TSParameterProperty",
      parameter: t
    }, s = ne.TSParameterProperty;
    return P(s.parameter, e, "parameter", t, 1), e;
  }
  n(SEs, "tsParameterProperty");
  function PEs(t = null, e = null, s, r = null) {
    let i = {
      type: "TSDeclareFunction",
      id: t,
      typeParameters: e,
      params: s,
      returnType: r
    }, a = ne.TSDeclareFunction;
    return P(a.id, i, "id", t, 1), P(a.typeParameters, i, "typeParameters", e, 1), P(a.params, i, "params", s, 1), P(a.returnType, i, "retur\
nType", r, 1), i;
  }
  n(PEs, "tsDeclareFunction");
  function EEs(t = null, e, s = null, r, i = null) {
    let a = {
      type: "TSDeclareMethod",
      decorators: t,
      key: e,
      typeParameters: s,
      params: r,
      returnType: i
    }, o = ne.TSDeclareMethod;
    return P(o.decorators, a, "decorators", t, 1), P(o.key, a, "key", e, 1), P(o.typeParameters, a, "typeParameters", s, 1), P(o.params, a, "\
params", r, 1), P(o.returnType, a, "returnType", i, 1), a;
  }
  n(EEs, "tsDeclareMethod");
  function AEs(t, e) {
    let s = {
      type: "TSQualifiedName",
      left: t,
      right: e
    }, r = ne.TSQualifiedName;
    return P(r.left, s, "left", t, 1), P(r.right, s, "right", e, 1), s;
  }
  n(AEs, "tsQualifiedName");
  function vEs(t = null, e, s = null) {
    let r = {
      type: "TSCallSignatureDeclaration",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = ne.TSCallSignatureDeclaration;
    return P(i.typeParameters, r, "typeParameters", t, 1), P(i.parameters, r, "parameters", e, 1), P(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(vEs, "tsCallSignatureDeclaration");
  function CEs(t = null, e, s = null) {
    let r = {
      type: "TSConstructSignatureDeclaration",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = ne.TSConstructSignatureDeclaration;
    return P(i.typeParameters, r, "typeParameters", t, 1), P(i.parameters, r, "parameters", e, 1), P(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(CEs, "tsConstructSignatureDeclaration");
  function wEs(t, e = null) {
    let s = {
      type: "TSPropertySignature",
      key: t,
      typeAnnotation: e,
      kind: null
    }, r = ne.TSPropertySignature;
    return P(r.key, s, "key", t, 1), P(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(wEs, "tsPropertySignature");
  function IEs(t, e = null, s, r = null) {
    let i = {
      type: "TSMethodSignature",
      key: t,
      typeParameters: e,
      parameters: s,
      typeAnnotation: r,
      kind: null
    }, a = ne.TSMethodSignature;
    return P(a.key, i, "key", t, 1), P(a.typeParameters, i, "typeParameters", e, 1), P(a.parameters, i, "parameters", s, 1), P(a.typeAnnotation,
    i, "typeAnnotation", r, 1), i;
  }
  n(IEs, "tsMethodSignature");
  function NEs(t, e = null) {
    let s = {
      type: "TSIndexSignature",
      parameters: t,
      typeAnnotation: e
    }, r = ne.TSIndexSignature;
    return P(r.parameters, s, "parameters", t, 1), P(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(NEs, "tsIndexSignature");
  function kEs() {
    return {
      type: "TSAnyKeyword"
    };
  }
  n(kEs, "tsAnyKeyword");
  function DEs() {
    return {
      type: "TSBooleanKeyword"
    };
  }
  n(DEs, "tsBooleanKeyword");
  function OEs() {
    return {
      type: "TSBigIntKeyword"
    };
  }
  n(OEs, "tsBigIntKeyword");
  function _Es() {
    return {
      type: "TSIntrinsicKeyword"
    };
  }
  n(_Es, "tsIntrinsicKeyword");
  function LEs() {
    return {
      type: "TSNeverKeyword"
    };
  }
  n(LEs, "tsNeverKeyword");
  function BEs() {
    return {
      type: "TSNullKeyword"
    };
  }
  n(BEs, "tsNullKeyword");
  function MEs() {
    return {
      type: "TSNumberKeyword"
    };
  }
  n(MEs, "tsNumberKeyword");
  function FEs() {
    return {
      type: "TSObjectKeyword"
    };
  }
  n(FEs, "tsObjectKeyword");
  function jEs() {
    return {
      type: "TSStringKeyword"
    };
  }
  n(jEs, "tsStringKeyword");
  function REs() {
    return {
      type: "TSSymbolKeyword"
    };
  }
  n(REs, "tsSymbolKeyword");
  function qEs() {
    return {
      type: "TSUndefinedKeyword"
    };
  }
  n(qEs, "tsUndefinedKeyword");
  function UEs() {
    return {
      type: "TSUnknownKeyword"
    };
  }
  n(UEs, "tsUnknownKeyword");
  function KEs() {
    return {
      type: "TSVoidKeyword"
    };
  }
  n(KEs, "tsVoidKeyword");
  function VEs() {
    return {
      type: "TSThisType"
    };
  }
  n(VEs, "tsThisType");
  function WEs(t = null, e, s = null) {
    let r = {
      type: "TSFunctionType",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = ne.TSFunctionType;
    return P(i.typeParameters, r, "typeParameters", t, 1), P(i.parameters, r, "parameters", e, 1), P(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n(WEs, "tsFunctionType");
  function $Es(t = null, e, s = null) {
    let r = {
      type: "TSConstructorType",
      typeParameters: t,
      parameters: e,
      typeAnnotation: s
    }, i = ne.TSConstructorType;
    return P(i.typeParameters, r, "typeParameters", t, 1), P(i.parameters, r, "parameters", e, 1), P(i.typeAnnotation, r, "typeAnnotation", s,
    1), r;
  }
  n($Es, "tsConstructorType");
  function HEs(t, e = null) {
    let s = {
      type: "TSTypeReference",
      typeName: t,
      typeParameters: e
    }, r = ne.TSTypeReference;
    return P(r.typeName, s, "typeName", t, 1), P(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(HEs, "tsTypeReference");
  function JEs(t, e = null, s = null) {
    let r = {
      type: "TSTypePredicate",
      parameterName: t,
      typeAnnotation: e,
      asserts: s
    }, i = ne.TSTypePredicate;
    return P(i.parameterName, r, "parameterName", t, 1), P(i.typeAnnotation, r, "typeAnnotation", e, 1), P(i.asserts, r, "asserts", s), r;
  }
  n(JEs, "tsTypePredicate");
  function YEs(t, e = null) {
    let s = {
      type: "TSTypeQuery",
      exprName: t,
      typeParameters: e
    }, r = ne.TSTypeQuery;
    return P(r.exprName, s, "exprName", t, 1), P(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(YEs, "tsTypeQuery");
  function XEs(t) {
    let e = {
      type: "TSTypeLiteral",
      members: t
    }, s = ne.TSTypeLiteral;
    return P(s.members, e, "members", t, 1), e;
  }
  n(XEs, "tsTypeLiteral");
  function zEs(t) {
    let e = {
      type: "TSArrayType",
      elementType: t
    }, s = ne.TSArrayType;
    return P(s.elementType, e, "elementType", t, 1), e;
  }
  n(zEs, "tsArrayType");
  function GEs(t) {
    let e = {
      type: "TSTupleType",
      elementTypes: t
    }, s = ne.TSTupleType;
    return P(s.elementTypes, e, "elementTypes", t, 1), e;
  }
  n(GEs, "tsTupleType");
  function QEs(t) {
    let e = {
      type: "TSOptionalType",
      typeAnnotation: t
    }, s = ne.TSOptionalType;
    return P(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(QEs, "tsOptionalType");
  function ZEs(t) {
    let e = {
      type: "TSRestType",
      typeAnnotation: t
    }, s = ne.TSRestType;
    return P(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(ZEs, "tsRestType");
  function eAs(t, e, s = !1) {
    let r = {
      type: "TSNamedTupleMember",
      label: t,
      elementType: e,
      optional: s
    }, i = ne.TSNamedTupleMember;
    return P(i.label, r, "label", t, 1), P(i.elementType, r, "elementType", e, 1), P(i.optional, r, "optional", s), r;
  }
  n(eAs, "tsNamedTupleMember");
  function tAs(t) {
    let e = {
      type: "TSUnionType",
      types: t
    }, s = ne.TSUnionType;
    return P(s.types, e, "types", t, 1), e;
  }
  n(tAs, "tsUnionType");
  function sAs(t) {
    let e = {
      type: "TSIntersectionType",
      types: t
    }, s = ne.TSIntersectionType;
    return P(s.types, e, "types", t, 1), e;
  }
  n(sAs, "tsIntersectionType");
  function rAs(t, e, s, r) {
    let i = {
      type: "TSConditionalType",
      checkType: t,
      extendsType: e,
      trueType: s,
      falseType: r
    }, a = ne.TSConditionalType;
    return P(a.checkType, i, "checkType", t, 1), P(a.extendsType, i, "extendsType", e, 1), P(a.trueType, i, "trueType", s, 1), P(a.falseType,
    i, "falseType", r, 1), i;
  }
  n(rAs, "tsConditionalType");
  function iAs(t) {
    let e = {
      type: "TSInferType",
      typeParameter: t
    }, s = ne.TSInferType;
    return P(s.typeParameter, e, "typeParameter", t, 1), e;
  }
  n(iAs, "tsInferType");
  function nAs(t) {
    let e = {
      type: "TSParenthesizedType",
      typeAnnotation: t
    }, s = ne.TSParenthesizedType;
    return P(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(nAs, "tsParenthesizedType");
  function aAs(t) {
    let e = {
      type: "TSTypeOperator",
      typeAnnotation: t,
      operator: null
    }, s = ne.TSTypeOperator;
    return P(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(aAs, "tsTypeOperator");
  function oAs(t, e) {
    let s = {
      type: "TSIndexedAccessType",
      objectType: t,
      indexType: e
    }, r = ne.TSIndexedAccessType;
    return P(r.objectType, s, "objectType", t, 1), P(r.indexType, s, "indexType", e, 1), s;
  }
  n(oAs, "tsIndexedAccessType");
  function lAs(t, e = null, s = null) {
    let r = {
      type: "TSMappedType",
      typeParameter: t,
      typeAnnotation: e,
      nameType: s
    }, i = ne.TSMappedType;
    return P(i.typeParameter, r, "typeParameter", t, 1), P(i.typeAnnotation, r, "typeAnnotation", e, 1), P(i.nameType, r, "nameType", s, 1),
    r;
  }
  n(lAs, "tsMappedType");
  function uAs(t) {
    let e = {
      type: "TSLiteralType",
      literal: t
    }, s = ne.TSLiteralType;
    return P(s.literal, e, "literal", t, 1), e;
  }
  n(uAs, "tsLiteralType");
  function cAs(t, e = null) {
    let s = {
      type: "TSExpressionWithTypeArguments",
      expression: t,
      typeParameters: e
    }, r = ne.TSExpressionWithTypeArguments;
    return P(r.expression, s, "expression", t, 1), P(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(cAs, "tsExpressionWithTypeArguments");
  function pAs(t, e = null, s = null, r) {
    let i = {
      type: "TSInterfaceDeclaration",
      id: t,
      typeParameters: e,
      extends: s,
      body: r
    }, a = ne.TSInterfaceDeclaration;
    return P(a.id, i, "id", t, 1), P(a.typeParameters, i, "typeParameters", e, 1), P(a.extends, i, "extends", s, 1), P(a.body, i, "body", r,
    1), i;
  }
  n(pAs, "tsInterfaceDeclaration");
  function hAs(t) {
    let e = {
      type: "TSInterfaceBody",
      body: t
    }, s = ne.TSInterfaceBody;
    return P(s.body, e, "body", t, 1), e;
  }
  n(hAs, "tsInterfaceBody");
  function fAs(t, e = null, s) {
    let r = {
      type: "TSTypeAliasDeclaration",
      id: t,
      typeParameters: e,
      typeAnnotation: s
    }, i = ne.TSTypeAliasDeclaration;
    return P(i.id, r, "id", t, 1), P(i.typeParameters, r, "typeParameters", e, 1), P(i.typeAnnotation, r, "typeAnnotation", s, 1), r;
  }
  n(fAs, "tsTypeAliasDeclaration");
  function dAs(t, e = null) {
    let s = {
      type: "TSInstantiationExpression",
      expression: t,
      typeParameters: e
    }, r = ne.TSInstantiationExpression;
    return P(r.expression, s, "expression", t, 1), P(r.typeParameters, s, "typeParameters", e, 1), s;
  }
  n(dAs, "tsInstantiationExpression");
  function mAs(t, e) {
    let s = {
      type: "TSAsExpression",
      expression: t,
      typeAnnotation: e
    }, r = ne.TSAsExpression;
    return P(r.expression, s, "expression", t, 1), P(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(mAs, "tsAsExpression");
  function yAs(t, e) {
    let s = {
      type: "TSSatisfiesExpression",
      expression: t,
      typeAnnotation: e
    }, r = ne.TSSatisfiesExpression;
    return P(r.expression, s, "expression", t, 1), P(r.typeAnnotation, s, "typeAnnotation", e, 1), s;
  }
  n(yAs, "tsSatisfiesExpression");
  function gAs(t, e) {
    let s = {
      type: "TSTypeAssertion",
      typeAnnotation: t,
      expression: e
    }, r = ne.TSTypeAssertion;
    return P(r.typeAnnotation, s, "typeAnnotation", t, 1), P(r.expression, s, "expression", e, 1), s;
  }
  n(gAs, "tsTypeAssertion");
  function TAs(t) {
    let e = {
      type: "TSEnumBody",
      members: t
    }, s = ne.TSEnumBody;
    return P(s.members, e, "members", t, 1), e;
  }
  n(TAs, "tsEnumBody");
  function bAs(t, e) {
    let s = {
      type: "TSEnumDeclaration",
      id: t,
      members: e
    }, r = ne.TSEnumDeclaration;
    return P(r.id, s, "id", t, 1), P(r.members, s, "members", e, 1), s;
  }
  n(bAs, "tsEnumDeclaration");
  function xAs(t, e = null) {
    let s = {
      type: "TSEnumMember",
      id: t,
      initializer: e
    }, r = ne.TSEnumMember;
    return P(r.id, s, "id", t, 1), P(r.initializer, s, "initializer", e, 1), s;
  }
  n(xAs, "tsEnumMember");
  function SAs(t, e) {
    let s = {
      type: "TSModuleDeclaration",
      id: t,
      body: e,
      kind: null
    }, r = ne.TSModuleDeclaration;
    return P(r.id, s, "id", t, 1), P(r.body, s, "body", e, 1), s;
  }
  n(SAs, "tsModuleDeclaration");
  function PAs(t) {
    let e = {
      type: "TSModuleBlock",
      body: t
    }, s = ne.TSModuleBlock;
    return P(s.body, e, "body", t, 1), e;
  }
  n(PAs, "tsModuleBlock");
  function EAs(t, e = null, s = null) {
    let r = {
      type: "TSImportType",
      argument: t,
      qualifier: e,
      typeParameters: s
    }, i = ne.TSImportType;
    return P(i.argument, r, "argument", t, 1), P(i.qualifier, r, "qualifier", e, 1), P(i.typeParameters, r, "typeParameters", s, 1), r;
  }
  n(EAs, "tsImportType");
  function AAs(t, e) {
    let s = {
      type: "TSImportEqualsDeclaration",
      id: t,
      moduleReference: e,
      isExport: null
    }, r = ne.TSImportEqualsDeclaration;
    return P(r.id, s, "id", t, 1), P(r.moduleReference, s, "moduleReference", e, 1), s;
  }
  n(AAs, "tsImportEqualsDeclaration");
  function vAs(t) {
    let e = {
      type: "TSExternalModuleReference",
      expression: t
    }, s = ne.TSExternalModuleReference;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(vAs, "tsExternalModuleReference");
  function CAs(t) {
    let e = {
      type: "TSNonNullExpression",
      expression: t
    }, s = ne.TSNonNullExpression;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(CAs, "tsNonNullExpression");
  function wAs(t) {
    let e = {
      type: "TSExportAssignment",
      expression: t
    }, s = ne.TSExportAssignment;
    return P(s.expression, e, "expression", t, 1), e;
  }
  n(wAs, "tsExportAssignment");
  function IAs(t) {
    let e = {
      type: "TSNamespaceExportDeclaration",
      id: t
    }, s = ne.TSNamespaceExportDeclaration;
    return P(s.id, e, "id", t, 1), e;
  }
  n(IAs, "tsNamespaceExportDeclaration");
  function NAs(t) {
    let e = {
      type: "TSTypeAnnotation",
      typeAnnotation: t
    }, s = ne.TSTypeAnnotation;
    return P(s.typeAnnotation, e, "typeAnnotation", t, 1), e;
  }
  n(NAs, "tsTypeAnnotation");
  function kAs(t) {
    let e = {
      type: "TSTypeParameterInstantiation",
      params: t
    }, s = ne.TSTypeParameterInstantiation;
    return P(s.params, e, "params", t, 1), e;
  }
  n(kAs, "tsTypeParameterInstantiation");
  function DAs(t) {
    let e = {
      type: "TSTypeParameterDeclaration",
      params: t
    }, s = ne.TSTypeParameterDeclaration;
    return P(s.params, e, "params", t, 1), e;
  }
  n(DAs, "tsTypeParameterDeclaration");
  function OAs(t = null, e = null, s) {
    let r = {
      type: "TSTypeParameter",
      constraint: t,
      default: e,
      name: s
    }, i = ne.TSTypeParameter;
    return P(i.constraint, r, "constraint", t, 1), P(i.default, r, "default", e, 1), P(i.name, r, "name", s), r;
  }
  n(OAs, "tsTypeParameter");
  function _As(t) {
    return (0, _v.default)("NumberLiteral", "NumericLiteral", "The node type "), wde(t);
  }
  n(_As, "NumberLiteral");
  function LAs(t, e = "") {
    return (0, _v.default)("RegexLiteral", "RegExpLiteral", "The node type "), Ide(t, e);
  }
  n(LAs, "RegexLiteral");
  function BAs(t) {
    return (0, _v.default)("RestProperty", "RestElement", "The node type "), Nde(t);
  }
  n(BAs, "RestProperty");
  function MAs(t) {
    return (0, _v.default)("SpreadProperty", "SpreadElement", "The node type "), kde(t);
  }
  n(MAs, "SpreadProperty");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js
var Dde = g((XR) => {
  "use strict";
  Object.defineProperty(XR, "__esModule", {
    value: !0
  });
  XR.default = RAs;
  var FAs = Gn(), jAs = jr();
  function RAs(t, e) {
    let s = t.value.split(/\r\n|\n|\r/), r = 0;
    for (let a = 0; a < s.length; a++)
      /[^ \t]/.exec(s[a]) && (r = a);
    let i = "";
    for (let a = 0; a < s.length; a++) {
      let o = s[a], l = a === 0, u = a === s.length - 1, c = a === r, p = o.replace(/\t/g, " ");
      l || (p = p.replace(/^ +/, "")), u || (p = p.replace(/ +$/, "")), p && (c || (p += " "), i += p);
    }
    i && e.push((0, jAs.inherits)((0, FAs.stringLiteral)(i), t));
  }
  n(RAs, "cleanJSXElementLiteralChild");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/builders/react/buildChildren.js
var Ode = g((GR) => {
  "use strict";
  Object.defineProperty(GR, "__esModule", {
    value: !0
  });
  GR.default = UAs;
  var zR = mi(), qAs = Dde();
  function UAs(t) {
    let e = [];
    for (let s = 0; s < t.children.length; s++) {
      let r = t.children[s];
      if ((0, zR.isJSXText)(r)) {
        (0, qAs.default)(r, e);
        continue;
      }
      (0, zR.isJSXExpressionContainer)(r) && (r = r.expression), !(0, zR.isJSXEmptyExpression)(r) && e.push(r);
    }
    return e;
  }
  n(UAs, "buildChildren");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isNode.js
var ZR = g((QR) => {
  "use strict";
  Object.defineProperty(QR, "__esModule", {
    value: !0
  });
  QR.default = VAs;
  var KAs = oo();
  function VAs(t) {
    return !!(t && KAs.VISITOR_KEYS[t.type]);
  }
  n(VAs, "isNode");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/asserts/assertNode.js
var _de = g((e5) => {
  "use strict";
  Object.defineProperty(e5, "__esModule", {
    value: !0
  });
  e5.default = $As;
  var WAs = ZR();
  function $As(t) {
    if (!(0, WAs.default)(t)) {
      var e;
      let s = (e = t?.type) != null ? e : JSON.stringify(t);
      throw new TypeError(`Not a valid node of type "${s}"`);
    }
  }
  n($As, "assertNode");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/asserts/generated/index.js
var Lde = g((O) => {
  "use strict";
  Object.defineProperty(O, "__esModule", {
    value: !0
  });
  O.assertAccessor = lNs;
  O.assertAnyTypeAnnotation = wvs;
  O.assertArgumentPlaceholder = sws;
  O.assertArrayExpression = JAs;
  O.assertArrayPattern = $1s;
  O.assertArrayTypeAnnotation = Ivs;
  O.assertArrowFunctionExpression = H1s;
  O.assertAssignmentExpression = YAs;
  O.assertAssignmentPattern = W1s;
  O.assertAwaitExpression = mvs;
  O.assertBigIntLiteral = gvs;
  O.assertBinary = kIs;
  O.assertBinaryExpression = XAs;
  O.assertBindExpression = rws;
  O.assertBlock = _Is;
  O.assertBlockParent = OIs;
  O.assertBlockStatement = ZAs;
  O.assertBooleanLiteral = x1s;
  O.assertBooleanLiteralTypeAnnotation = kvs;
  O.assertBooleanTypeAnnotation = Nvs;
  O.assertBreakStatement = e1s;
  O.assertCallExpression = t1s;
  O.assertCatchClause = s1s;
  O.assertClass = iNs;
  O.assertClassAccessorProperty = Pvs;
  O.assertClassBody = J1s;
  O.assertClassDeclaration = X1s;
  O.assertClassExpression = Y1s;
  O.assertClassImplements = Ovs;
  O.assertClassMethod = ovs;
  O.assertClassPrivateMethod = Avs;
  O.assertClassPrivateProperty = Evs;
  O.assertClassProperty = Svs;
  O.assertCompletionStatement = MIs;
  O.assertConditional = FIs;
  O.assertConditionalExpression = r1s;
  O.assertContinueStatement = i1s;
  O.assertDebuggerStatement = n1s;
  O.assertDecimalLiteral = cws;
  O.assertDeclaration = HIs;
  O.assertDeclareClass = _vs;
  O.assertDeclareExportAllDeclaration = Kvs;
  O.assertDeclareExportDeclaration = Uvs;
  O.assertDeclareFunction = Lvs;
  O.assertDeclareInterface = Bvs;
  O.assertDeclareModule = Mvs;
  O.assertDeclareModuleExports = Fvs;
  O.assertDeclareOpaqueType = Rvs;
  O.assertDeclareTypeAlias = jvs;
  O.assertDeclareVariable = qvs;
  O.assertDeclaredPredicate = Vvs;
  O.assertDecorator = nws;
  O.assertDirective = GAs;
  O.assertDirectiveLiteral = QAs;
  O.assertDoExpression = aws;
  O.assertDoWhileStatement = a1s;
  O.assertEmptyStatement = o1s;
  O.assertEmptyTypeAnnotation = eCs;
  O.assertEnumBody = mNs;
  O.assertEnumBooleanBody = ICs;
  O.assertEnumBooleanMember = OCs;
  O.assertEnumDeclaration = wCs;
  O.assertEnumDefaultedMember = BCs;
  O.assertEnumMember = yNs;
  O.assertEnumNumberBody = NCs;
  O.assertEnumNumberMember = _Cs;
  O.assertEnumStringBody = kCs;
  O.assertEnumStringMember = LCs;
  O.assertEnumSymbolBody = DCs;
  O.assertExistsTypeAnnotation = Wvs;
  O.assertExportAllDeclaration = z1s;
  O.assertExportDeclaration = aNs;
  O.assertExportDefaultDeclaration = G1s;
  O.assertExportDefaultSpecifier = ows;
  O.assertExportNamedDeclaration = Q1s;
  O.assertExportNamespaceSpecifier = Tvs;
  O.assertExportSpecifier = Z1s;
  O.assertExpression = NIs;
  O.assertExpressionStatement = l1s;
  O.assertExpressionWrapper = qIs;
  O.assertFile = u1s;
  O.assertFlow = cNs;
  O.assertFlowBaseAnnotation = hNs;
  O.assertFlowDeclaration = fNs;
  O.assertFlowPredicate = dNs;
  O.assertFlowType = pNs;
  O.assertFor = UIs;
  O.assertForInStatement = c1s;
  O.assertForOfStatement = evs;
  O.assertForStatement = p1s;
  O.assertForXStatement = KIs;
  O.assertFunction = VIs;
  O.assertFunctionDeclaration = h1s;
  O.assertFunctionExpression = f1s;
  O.assertFunctionParent = WIs;
  O.assertFunctionTypeAnnotation = $vs;
  O.assertFunctionTypeParam = Hvs;
  O.assertGenericTypeAnnotation = Jvs;
  O.assertIdentifier = d1s;
  O.assertIfStatement = m1s;
  O.assertImmutable = GIs;
  O.assertImport = yvs;
  O.assertImportAttribute = iws;
  O.assertImportDeclaration = tvs;
  O.assertImportDefaultSpecifier = svs;
  O.assertImportExpression = nvs;
  O.assertImportNamespaceSpecifier = rvs;
  O.assertImportOrExportDeclaration = nNs;
  O.assertImportSpecifier = ivs;
  O.assertIndexedAccessType = MCs;
  O.assertInferredPredicate = Yvs;
  O.assertInterfaceDeclaration = zvs;
  O.assertInterfaceExtends = Xvs;
  O.assertInterfaceTypeAnnotation = Gvs;
  O.assertInterpreterDirective = zAs;
  O.assertIntersectionTypeAnnotation = Qvs;
  O.assertJSX = gNs;
  O.assertJSXAttribute = jCs;
  O.assertJSXClosingElement = RCs;
  O.assertJSXClosingFragment = QCs;
  O.assertJSXElement = qCs;
  O.assertJSXEmptyExpression = UCs;
  O.assertJSXExpressionContainer = KCs;
  O.assertJSXFragment = zCs;
  O.assertJSXIdentifier = WCs;
  O.assertJSXMemberExpression = $Cs;
  O.assertJSXNamespacedName = HCs;
  O.assertJSXOpeningElement = JCs;
  O.assertJSXOpeningFragment = GCs;
  O.assertJSXSpreadAttribute = YCs;
  O.assertJSXSpreadChild = VCs;
  O.assertJSXText = XCs;
  O.assertLVal = YIs;
  O.assertLabeledStatement = y1s;
  O.assertLiteral = zIs;
  O.assertLogicalExpression = P1s;
  O.assertLoop = jIs;
  O.assertMemberExpression = E1s;
  O.assertMetaProperty = avs;
  O.assertMethod = ZIs;
  O.assertMiscellaneous = TNs;
  O.assertMixedTypeAnnotation = Zvs;
  O.assertModuleDeclaration = wNs;
  O.assertModuleExpression = pws;
  O.assertModuleSpecifier = oNs;
  O.assertNewExpression = A1s;
  O.assertNoop = ZCs;
  O.assertNullLiteral = b1s;
  O.assertNullLiteralTypeAnnotation = Dvs;
  O.assertNullableTypeAnnotation = tCs;
  O.assertNumberLiteral = ENs;
  O.assertNumberLiteralTypeAnnotation = sCs;
  O.assertNumberTypeAnnotation = rCs;
  O.assertNumericLiteral = T1s;
  O.assertObjectExpression = C1s;
  O.assertObjectMember = eNs;
  O.assertObjectMethod = w1s;
  O.assertObjectPattern = lvs;
  O.assertObjectProperty = I1s;
  O.assertObjectTypeAnnotation = iCs;
  O.assertObjectTypeCallProperty = aCs;
  O.assertObjectTypeIndexer = oCs;
  O.assertObjectTypeInternalSlot = nCs;
  O.assertObjectTypeProperty = lCs;
  O.assertObjectTypeSpreadProperty = uCs;
  O.assertOpaqueType = cCs;
  O.assertOptionalCallExpression = xvs;
  O.assertOptionalIndexedAccessType = FCs;
  O.assertOptionalMemberExpression = bvs;
  O.assertParenthesizedExpression = O1s;
  O.assertPattern = rNs;
  O.assertPatternLike = JIs;
  O.assertPipelineBareFunction = dws;
  O.assertPipelinePrimaryTopicReference = mws;
  O.assertPipelineTopicExpression = fws;
  O.assertPlaceholder = ews;
  O.assertPrivate = uNs;
  O.assertPrivateName = vvs;
  O.assertProgram = v1s;
  O.assertProperty = tNs;
  O.assertPureish = $Is;
  O.assertQualifiedTypeIdentifier = pCs;
  O.assertRecordExpression = lws;
  O.assertRegExpLiteral = S1s;
  O.assertRegexLiteral = ANs;
  O.assertRestElement = N1s;
  O.assertRestProperty = vNs;
  O.assertReturnStatement = k1s;
  O.assertScopable = DIs;
  O.assertSequenceExpression = D1s;
  O.assertSpreadElement = uvs;
  O.assertSpreadProperty = CNs;
  O.assertStandardized = IIs;
  O.assertStatement = LIs;
  O.assertStaticBlock = Cvs;
  O.assertStringLiteral = g1s;
  O.assertStringLiteralTypeAnnotation = hCs;
  O.assertStringTypeAnnotation = fCs;
  O.assertSuper = cvs;
  O.assertSwitchCase = _1s;
  O.assertSwitchStatement = L1s;
  O.assertSymbolTypeAnnotation = dCs;
  O.assertTSAnyKeyword = vws;
  O.assertTSArrayType = $ws;
  O.assertTSAsExpression = cIs;
  O.assertTSBaseType = PNs;
  O.assertTSBigIntKeyword = wws;
  O.assertTSBooleanKeyword = Cws;
  O.assertTSCallSignatureDeclaration = xws;
  O.assertTSConditionalType = Qws;
  O.assertTSConstructSignatureDeclaration = Sws;
  O.assertTSConstructorType = qws;
  O.assertTSDeclareFunction = gws;
  O.assertTSDeclareMethod = Tws;
  O.assertTSEntityName = XIs;
  O.assertTSEnumBody = fIs;
  O.assertTSEnumDeclaration = dIs;
  O.assertTSEnumMember = mIs;
  O.assertTSExportAssignment = PIs;
  O.assertTSExpressionWithTypeArguments = nIs;
  O.assertTSExternalModuleReference = xIs;
  O.assertTSFunctionType = Rws;
  O.assertTSImportEqualsDeclaration = bIs;
  O.assertTSImportType = TIs;
  O.assertTSIndexSignature = Aws;
  O.assertTSIndexedAccessType = sIs;
  O.assertTSInferType = Zws;
  O.assertTSInstantiationExpression = uIs;
  O.assertTSInterfaceBody = oIs;
  O.assertTSInterfaceDeclaration = aIs;
  O.assertTSIntersectionType = Gws;
  O.assertTSIntrinsicKeyword = Iws;
  O.assertTSLiteralType = iIs;
  O.assertTSMappedType = rIs;
  O.assertTSMethodSignature = Ews;
  O.assertTSModuleBlock = gIs;
  O.assertTSModuleDeclaration = yIs;
  O.assertTSNamedTupleMember = Xws;
  O.assertTSNamespaceExportDeclaration = EIs;
  O.assertTSNeverKeyword = Nws;
  O.assertTSNonNullExpression = SIs;
  O.assertTSNullKeyword = kws;
  O.assertTSNumberKeyword = Dws;
  O.assertTSObjectKeyword = Ows;
  O.assertTSOptionalType = Jws;
  O.assertTSParameterProperty = yws;
  O.assertTSParenthesizedType = eIs;
  O.assertTSPropertySignature = Pws;
  O.assertTSQualifiedName = bws;
  O.assertTSRestType = Yws;
  O.assertTSSatisfiesExpression = pIs;
  O.assertTSStringKeyword = _ws;
  O.assertTSSymbolKeyword = Lws;
  O.assertTSThisType = jws;
  O.assertTSTupleType = Hws;
  O.assertTSType = SNs;
  O.assertTSTypeAliasDeclaration = lIs;
  O.assertTSTypeAnnotation = AIs;
  O.assertTSTypeAssertion = hIs;
  O.assertTSTypeElement = xNs;
  O.assertTSTypeLiteral = Wws;
  O.assertTSTypeOperator = tIs;
  O.assertTSTypeParameter = wIs;
  O.assertTSTypeParameterDeclaration = CIs;
  O.assertTSTypeParameterInstantiation = vIs;
  O.assertTSTypePredicate = Kws;
  O.assertTSTypeQuery = Vws;
  O.assertTSTypeReference = Uws;
  O.assertTSUndefinedKeyword = Bws;
  O.assertTSUnionType = zws;
  O.assertTSUnknownKeyword = Mws;
  O.assertTSVoidKeyword = Fws;
  O.assertTaggedTemplateExpression = pvs;
  O.assertTemplateElement = hvs;
  O.assertTemplateLiteral = fvs;
  O.assertTerminatorless = BIs;
  O.assertThisExpression = B1s;
  O.assertThisTypeAnnotation = mCs;
  O.assertThrowStatement = M1s;
  O.assertTopicReference = hws;
  O.assertTryStatement = F1s;
  O.assertTupleExpression = uws;
  O.assertTupleTypeAnnotation = yCs;
  O.assertTypeAlias = TCs;
  O.assertTypeAnnotation = bCs;
  O.assertTypeCastExpression = xCs;
  O.assertTypeParameter = SCs;
  O.assertTypeParameterDeclaration = PCs;
  O.assertTypeParameterInstantiation = ECs;
  O.assertTypeScript = bNs;
  O.assertTypeofTypeAnnotation = gCs;
  O.assertUnaryExpression = j1s;
  O.assertUnaryLike = sNs;
  O.assertUnionTypeAnnotation = ACs;
  O.assertUpdateExpression = R1s;
  O.assertUserWhitespacable = QIs;
  O.assertV8IntrinsicIdentifier = tws;
  O.assertVariableDeclaration = q1s;
  O.assertVariableDeclarator = U1s;
  O.assertVariance = vCs;
  O.assertVoidTypeAnnotation = CCs;
  O.assertWhile = RIs;
  O.assertWhileStatement = K1s;
  O.assertWithStatement = V1s;
  O.assertYieldExpression = dvs;
  var HAs = xy(), eb = YT();
  function M(t, e, s) {
    if (!(0, HAs.default)(t, e, s))
      throw new Error(`Expected type "${t}" with option ${JSON.stringify(s)}, but instead got "${e.type}".`);
  }
  n(M, "assert");
  function JAs(t, e) {
    M("ArrayExpression", t, e);
  }
  n(JAs, "assertArrayExpression");
  function YAs(t, e) {
    M("AssignmentExpression", t, e);
  }
  n(YAs, "assertAssignmentExpression");
  function XAs(t, e) {
    M("BinaryExpression", t, e);
  }
  n(XAs, "assertBinaryExpression");
  function zAs(t, e) {
    M("InterpreterDirective", t, e);
  }
  n(zAs, "assertInterpreterDirective");
  function GAs(t, e) {
    M("Directive", t, e);
  }
  n(GAs, "assertDirective");
  function QAs(t, e) {
    M("DirectiveLiteral", t, e);
  }
  n(QAs, "assertDirectiveLiteral");
  function ZAs(t, e) {
    M("BlockStatement", t, e);
  }
  n(ZAs, "assertBlockStatement");
  function e1s(t, e) {
    M("BreakStatement", t, e);
  }
  n(e1s, "assertBreakStatement");
  function t1s(t, e) {
    M("CallExpression", t, e);
  }
  n(t1s, "assertCallExpression");
  function s1s(t, e) {
    M("CatchClause", t, e);
  }
  n(s1s, "assertCatchClause");
  function r1s(t, e) {
    M("ConditionalExpression", t, e);
  }
  n(r1s, "assertConditionalExpression");
  function i1s(t, e) {
    M("ContinueStatement", t, e);
  }
  n(i1s, "assertContinueStatement");
  function n1s(t, e) {
    M("DebuggerStatement", t, e);
  }
  n(n1s, "assertDebuggerStatement");
  function a1s(t, e) {
    M("DoWhileStatement", t, e);
  }
  n(a1s, "assertDoWhileStatement");
  function o1s(t, e) {
    M("EmptyStatement", t, e);
  }
  n(o1s, "assertEmptyStatement");
  function l1s(t, e) {
    M("ExpressionStatement", t, e);
  }
  n(l1s, "assertExpressionStatement");
  function u1s(t, e) {
    M("File", t, e);
  }
  n(u1s, "assertFile");
  function c1s(t, e) {
    M("ForInStatement", t, e);
  }
  n(c1s, "assertForInStatement");
  function p1s(t, e) {
    M("ForStatement", t, e);
  }
  n(p1s, "assertForStatement");
  function h1s(t, e) {
    M("FunctionDeclaration", t, e);
  }
  n(h1s, "assertFunctionDeclaration");
  function f1s(t, e) {
    M("FunctionExpression", t, e);
  }
  n(f1s, "assertFunctionExpression");
  function d1s(t, e) {
    M("Identifier", t, e);
  }
  n(d1s, "assertIdentifier");
  function m1s(t, e) {
    M("IfStatement", t, e);
  }
  n(m1s, "assertIfStatement");
  function y1s(t, e) {
    M("LabeledStatement", t, e);
  }
  n(y1s, "assertLabeledStatement");
  function g1s(t, e) {
    M("StringLiteral", t, e);
  }
  n(g1s, "assertStringLiteral");
  function T1s(t, e) {
    M("NumericLiteral", t, e);
  }
  n(T1s, "assertNumericLiteral");
  function b1s(t, e) {
    M("NullLiteral", t, e);
  }
  n(b1s, "assertNullLiteral");
  function x1s(t, e) {
    M("BooleanLiteral", t, e);
  }
  n(x1s, "assertBooleanLiteral");
  function S1s(t, e) {
    M("RegExpLiteral", t, e);
  }
  n(S1s, "assertRegExpLiteral");
  function P1s(t, e) {
    M("LogicalExpression", t, e);
  }
  n(P1s, "assertLogicalExpression");
  function E1s(t, e) {
    M("MemberExpression", t, e);
  }
  n(E1s, "assertMemberExpression");
  function A1s(t, e) {
    M("NewExpression", t, e);
  }
  n(A1s, "assertNewExpression");
  function v1s(t, e) {
    M("Program", t, e);
  }
  n(v1s, "assertProgram");
  function C1s(t, e) {
    M("ObjectExpression", t, e);
  }
  n(C1s, "assertObjectExpression");
  function w1s(t, e) {
    M("ObjectMethod", t, e);
  }
  n(w1s, "assertObjectMethod");
  function I1s(t, e) {
    M("ObjectProperty", t, e);
  }
  n(I1s, "assertObjectProperty");
  function N1s(t, e) {
    M("RestElement", t, e);
  }
  n(N1s, "assertRestElement");
  function k1s(t, e) {
    M("ReturnStatement", t, e);
  }
  n(k1s, "assertReturnStatement");
  function D1s(t, e) {
    M("SequenceExpression", t, e);
  }
  n(D1s, "assertSequenceExpression");
  function O1s(t, e) {
    M("ParenthesizedExpression", t, e);
  }
  n(O1s, "assertParenthesizedExpression");
  function _1s(t, e) {
    M("SwitchCase", t, e);
  }
  n(_1s, "assertSwitchCase");
  function L1s(t, e) {
    M("SwitchStatement", t, e);
  }
  n(L1s, "assertSwitchStatement");
  function B1s(t, e) {
    M("ThisExpression", t, e);
  }
  n(B1s, "assertThisExpression");
  function M1s(t, e) {
    M("ThrowStatement", t, e);
  }
  n(M1s, "assertThrowStatement");
  function F1s(t, e) {
    M("TryStatement", t, e);
  }
  n(F1s, "assertTryStatement");
  function j1s(t, e) {
    M("UnaryExpression", t, e);
  }
  n(j1s, "assertUnaryExpression");
  function R1s(t, e) {
    M("UpdateExpression", t, e);
  }
  n(R1s, "assertUpdateExpression");
  function q1s(t, e) {
    M("VariableDeclaration", t, e);
  }
  n(q1s, "assertVariableDeclaration");
  function U1s(t, e) {
    M("VariableDeclarator", t, e);
  }
  n(U1s, "assertVariableDeclarator");
  function K1s(t, e) {
    M("WhileStatement", t, e);
  }
  n(K1s, "assertWhileStatement");
  function V1s(t, e) {
    M("WithStatement", t, e);
  }
  n(V1s, "assertWithStatement");
  function W1s(t, e) {
    M("AssignmentPattern", t, e);
  }
  n(W1s, "assertAssignmentPattern");
  function $1s(t, e) {
    M("ArrayPattern", t, e);
  }
  n($1s, "assertArrayPattern");
  function H1s(t, e) {
    M("ArrowFunctionExpression", t, e);
  }
  n(H1s, "assertArrowFunctionExpression");
  function J1s(t, e) {
    M("ClassBody", t, e);
  }
  n(J1s, "assertClassBody");
  function Y1s(t, e) {
    M("ClassExpression", t, e);
  }
  n(Y1s, "assertClassExpression");
  function X1s(t, e) {
    M("ClassDeclaration", t, e);
  }
  n(X1s, "assertClassDeclaration");
  function z1s(t, e) {
    M("ExportAllDeclaration", t, e);
  }
  n(z1s, "assertExportAllDeclaration");
  function G1s(t, e) {
    M("ExportDefaultDeclaration", t, e);
  }
  n(G1s, "assertExportDefaultDeclaration");
  function Q1s(t, e) {
    M("ExportNamedDeclaration", t, e);
  }
  n(Q1s, "assertExportNamedDeclaration");
  function Z1s(t, e) {
    M("ExportSpecifier", t, e);
  }
  n(Z1s, "assertExportSpecifier");
  function evs(t, e) {
    M("ForOfStatement", t, e);
  }
  n(evs, "assertForOfStatement");
  function tvs(t, e) {
    M("ImportDeclaration", t, e);
  }
  n(tvs, "assertImportDeclaration");
  function svs(t, e) {
    M("ImportDefaultSpecifier", t, e);
  }
  n(svs, "assertImportDefaultSpecifier");
  function rvs(t, e) {
    M("ImportNamespaceSpecifier", t, e);
  }
  n(rvs, "assertImportNamespaceSpecifier");
  function ivs(t, e) {
    M("ImportSpecifier", t, e);
  }
  n(ivs, "assertImportSpecifier");
  function nvs(t, e) {
    M("ImportExpression", t, e);
  }
  n(nvs, "assertImportExpression");
  function avs(t, e) {
    M("MetaProperty", t, e);
  }
  n(avs, "assertMetaProperty");
  function ovs(t, e) {
    M("ClassMethod", t, e);
  }
  n(ovs, "assertClassMethod");
  function lvs(t, e) {
    M("ObjectPattern", t, e);
  }
  n(lvs, "assertObjectPattern");
  function uvs(t, e) {
    M("SpreadElement", t, e);
  }
  n(uvs, "assertSpreadElement");
  function cvs(t, e) {
    M("Super", t, e);
  }
  n(cvs, "assertSuper");
  function pvs(t, e) {
    M("TaggedTemplateExpression", t, e);
  }
  n(pvs, "assertTaggedTemplateExpression");
  function hvs(t, e) {
    M("TemplateElement", t, e);
  }
  n(hvs, "assertTemplateElement");
  function fvs(t, e) {
    M("TemplateLiteral", t, e);
  }
  n(fvs, "assertTemplateLiteral");
  function dvs(t, e) {
    M("YieldExpression", t, e);
  }
  n(dvs, "assertYieldExpression");
  function mvs(t, e) {
    M("AwaitExpression", t, e);
  }
  n(mvs, "assertAwaitExpression");
  function yvs(t, e) {
    M("Import", t, e);
  }
  n(yvs, "assertImport");
  function gvs(t, e) {
    M("BigIntLiteral", t, e);
  }
  n(gvs, "assertBigIntLiteral");
  function Tvs(t, e) {
    M("ExportNamespaceSpecifier", t, e);
  }
  n(Tvs, "assertExportNamespaceSpecifier");
  function bvs(t, e) {
    M("OptionalMemberExpression", t, e);
  }
  n(bvs, "assertOptionalMemberExpression");
  function xvs(t, e) {
    M("OptionalCallExpression", t, e);
  }
  n(xvs, "assertOptionalCallExpression");
  function Svs(t, e) {
    M("ClassProperty", t, e);
  }
  n(Svs, "assertClassProperty");
  function Pvs(t, e) {
    M("ClassAccessorProperty", t, e);
  }
  n(Pvs, "assertClassAccessorProperty");
  function Evs(t, e) {
    M("ClassPrivateProperty", t, e);
  }
  n(Evs, "assertClassPrivateProperty");
  function Avs(t, e) {
    M("ClassPrivateMethod", t, e);
  }
  n(Avs, "assertClassPrivateMethod");
  function vvs(t, e) {
    M("PrivateName", t, e);
  }
  n(vvs, "assertPrivateName");
  function Cvs(t, e) {
    M("StaticBlock", t, e);
  }
  n(Cvs, "assertStaticBlock");
  function wvs(t, e) {
    M("AnyTypeAnnotation", t, e);
  }
  n(wvs, "assertAnyTypeAnnotation");
  function Ivs(t, e) {
    M("ArrayTypeAnnotation", t, e);
  }
  n(Ivs, "assertArrayTypeAnnotation");
  function Nvs(t, e) {
    M("BooleanTypeAnnotation", t, e);
  }
  n(Nvs, "assertBooleanTypeAnnotation");
  function kvs(t, e) {
    M("BooleanLiteralTypeAnnotation", t, e);
  }
  n(kvs, "assertBooleanLiteralTypeAnnotation");
  function Dvs(t, e) {
    M("NullLiteralTypeAnnotation", t, e);
  }
  n(Dvs, "assertNullLiteralTypeAnnotation");
  function Ovs(t, e) {
    M("ClassImplements", t, e);
  }
  n(Ovs, "assertClassImplements");
  function _vs(t, e) {
    M("DeclareClass", t, e);
  }
  n(_vs, "assertDeclareClass");
  function Lvs(t, e) {
    M("DeclareFunction", t, e);
  }
  n(Lvs, "assertDeclareFunction");
  function Bvs(t, e) {
    M("DeclareInterface", t, e);
  }
  n(Bvs, "assertDeclareInterface");
  function Mvs(t, e) {
    M("DeclareModule", t, e);
  }
  n(Mvs, "assertDeclareModule");
  function Fvs(t, e) {
    M("DeclareModuleExports", t, e);
  }
  n(Fvs, "assertDeclareModuleExports");
  function jvs(t, e) {
    M("DeclareTypeAlias", t, e);
  }
  n(jvs, "assertDeclareTypeAlias");
  function Rvs(t, e) {
    M("DeclareOpaqueType", t, e);
  }
  n(Rvs, "assertDeclareOpaqueType");
  function qvs(t, e) {
    M("DeclareVariable", t, e);
  }
  n(qvs, "assertDeclareVariable");
  function Uvs(t, e) {
    M("DeclareExportDeclaration", t, e);
  }
  n(Uvs, "assertDeclareExportDeclaration");
  function Kvs(t, e) {
    M("DeclareExportAllDeclaration", t, e);
  }
  n(Kvs, "assertDeclareExportAllDeclaration");
  function Vvs(t, e) {
    M("DeclaredPredicate", t, e);
  }
  n(Vvs, "assertDeclaredPredicate");
  function Wvs(t, e) {
    M("ExistsTypeAnnotation", t, e);
  }
  n(Wvs, "assertExistsTypeAnnotation");
  function $vs(t, e) {
    M("FunctionTypeAnnotation", t, e);
  }
  n($vs, "assertFunctionTypeAnnotation");
  function Hvs(t, e) {
    M("FunctionTypeParam", t, e);
  }
  n(Hvs, "assertFunctionTypeParam");
  function Jvs(t, e) {
    M("GenericTypeAnnotation", t, e);
  }
  n(Jvs, "assertGenericTypeAnnotation");
  function Yvs(t, e) {
    M("InferredPredicate", t, e);
  }
  n(Yvs, "assertInferredPredicate");
  function Xvs(t, e) {
    M("InterfaceExtends", t, e);
  }
  n(Xvs, "assertInterfaceExtends");
  function zvs(t, e) {
    M("InterfaceDeclaration", t, e);
  }
  n(zvs, "assertInterfaceDeclaration");
  function Gvs(t, e) {
    M("InterfaceTypeAnnotation", t, e);
  }
  n(Gvs, "assertInterfaceTypeAnnotation");
  function Qvs(t, e) {
    M("IntersectionTypeAnnotation", t, e);
  }
  n(Qvs, "assertIntersectionTypeAnnotation");
  function Zvs(t, e) {
    M("MixedTypeAnnotation", t, e);
  }
  n(Zvs, "assertMixedTypeAnnotation");
  function eCs(t, e) {
    M("EmptyTypeAnnotation", t, e);
  }
  n(eCs, "assertEmptyTypeAnnotation");
  function tCs(t, e) {
    M("NullableTypeAnnotation", t, e);
  }
  n(tCs, "assertNullableTypeAnnotation");
  function sCs(t, e) {
    M("NumberLiteralTypeAnnotation", t, e);
  }
  n(sCs, "assertNumberLiteralTypeAnnotation");
  function rCs(t, e) {
    M("NumberTypeAnnotation", t, e);
  }
  n(rCs, "assertNumberTypeAnnotation");
  function iCs(t, e) {
    M("ObjectTypeAnnotation", t, e);
  }
  n(iCs, "assertObjectTypeAnnotation");
  function nCs(t, e) {
    M("ObjectTypeInternalSlot", t, e);
  }
  n(nCs, "assertObjectTypeInternalSlot");
  function aCs(t, e) {
    M("ObjectTypeCallProperty", t, e);
  }
  n(aCs, "assertObjectTypeCallProperty");
  function oCs(t, e) {
    M("ObjectTypeIndexer", t, e);
  }
  n(oCs, "assertObjectTypeIndexer");
  function lCs(t, e) {
    M("ObjectTypeProperty", t, e);
  }
  n(lCs, "assertObjectTypeProperty");
  function uCs(t, e) {
    M("ObjectTypeSpreadProperty", t, e);
  }
  n(uCs, "assertObjectTypeSpreadProperty");
  function cCs(t, e) {
    M("OpaqueType", t, e);
  }
  n(cCs, "assertOpaqueType");
  function pCs(t, e) {
    M("QualifiedTypeIdentifier", t, e);
  }
  n(pCs, "assertQualifiedTypeIdentifier");
  function hCs(t, e) {
    M("StringLiteralTypeAnnotation", t, e);
  }
  n(hCs, "assertStringLiteralTypeAnnotation");
  function fCs(t, e) {
    M("StringTypeAnnotation", t, e);
  }
  n(fCs, "assertStringTypeAnnotation");
  function dCs(t, e) {
    M("SymbolTypeAnnotation", t, e);
  }
  n(dCs, "assertSymbolTypeAnnotation");
  function mCs(t, e) {
    M("ThisTypeAnnotation", t, e);
  }
  n(mCs, "assertThisTypeAnnotation");
  function yCs(t, e) {
    M("TupleTypeAnnotation", t, e);
  }
  n(yCs, "assertTupleTypeAnnotation");
  function gCs(t, e) {
    M("TypeofTypeAnnotation", t, e);
  }
  n(gCs, "assertTypeofTypeAnnotation");
  function TCs(t, e) {
    M("TypeAlias", t, e);
  }
  n(TCs, "assertTypeAlias");
  function bCs(t, e) {
    M("TypeAnnotation", t, e);
  }
  n(bCs, "assertTypeAnnotation");
  function xCs(t, e) {
    M("TypeCastExpression", t, e);
  }
  n(xCs, "assertTypeCastExpression");
  function SCs(t, e) {
    M("TypeParameter", t, e);
  }
  n(SCs, "assertTypeParameter");
  function PCs(t, e) {
    M("TypeParameterDeclaration", t, e);
  }
  n(PCs, "assertTypeParameterDeclaration");
  function ECs(t, e) {
    M("TypeParameterInstantiation", t, e);
  }
  n(ECs, "assertTypeParameterInstantiation");
  function ACs(t, e) {
    M("UnionTypeAnnotation", t, e);
  }
  n(ACs, "assertUnionTypeAnnotation");
  function vCs(t, e) {
    M("Variance", t, e);
  }
  n(vCs, "assertVariance");
  function CCs(t, e) {
    M("VoidTypeAnnotation", t, e);
  }
  n(CCs, "assertVoidTypeAnnotation");
  function wCs(t, e) {
    M("EnumDeclaration", t, e);
  }
  n(wCs, "assertEnumDeclaration");
  function ICs(t, e) {
    M("EnumBooleanBody", t, e);
  }
  n(ICs, "assertEnumBooleanBody");
  function NCs(t, e) {
    M("EnumNumberBody", t, e);
  }
  n(NCs, "assertEnumNumberBody");
  function kCs(t, e) {
    M("EnumStringBody", t, e);
  }
  n(kCs, "assertEnumStringBody");
  function DCs(t, e) {
    M("EnumSymbolBody", t, e);
  }
  n(DCs, "assertEnumSymbolBody");
  function OCs(t, e) {
    M("EnumBooleanMember", t, e);
  }
  n(OCs, "assertEnumBooleanMember");
  function _Cs(t, e) {
    M("EnumNumberMember", t, e);
  }
  n(_Cs, "assertEnumNumberMember");
  function LCs(t, e) {
    M("EnumStringMember", t, e);
  }
  n(LCs, "assertEnumStringMember");
  function BCs(t, e) {
    M("EnumDefaultedMember", t, e);
  }
  n(BCs, "assertEnumDefaultedMember");
  function MCs(t, e) {
    M("IndexedAccessType", t, e);
  }
  n(MCs, "assertIndexedAccessType");
  function FCs(t, e) {
    M("OptionalIndexedAccessType", t, e);
  }
  n(FCs, "assertOptionalIndexedAccessType");
  function jCs(t, e) {
    M("JSXAttribute", t, e);
  }
  n(jCs, "assertJSXAttribute");
  function RCs(t, e) {
    M("JSXClosingElement", t, e);
  }
  n(RCs, "assertJSXClosingElement");
  function qCs(t, e) {
    M("JSXElement", t, e);
  }
  n(qCs, "assertJSXElement");
  function UCs(t, e) {
    M("JSXEmptyExpression", t, e);
  }
  n(UCs, "assertJSXEmptyExpression");
  function KCs(t, e) {
    M("JSXExpressionContainer", t, e);
  }
  n(KCs, "assertJSXExpressionContainer");
  function VCs(t, e) {
    M("JSXSpreadChild", t, e);
  }
  n(VCs, "assertJSXSpreadChild");
  function WCs(t, e) {
    M("JSXIdentifier", t, e);
  }
  n(WCs, "assertJSXIdentifier");
  function $Cs(t, e) {
    M("JSXMemberExpression", t, e);
  }
  n($Cs, "assertJSXMemberExpression");
  function HCs(t, e) {
    M("JSXNamespacedName", t, e);
  }
  n(HCs, "assertJSXNamespacedName");
  function JCs(t, e) {
    M("JSXOpeningElement", t, e);
  }
  n(JCs, "assertJSXOpeningElement");
  function YCs(t, e) {
    M("JSXSpreadAttribute", t, e);
  }
  n(YCs, "assertJSXSpreadAttribute");
  function XCs(t, e) {
    M("JSXText", t, e);
  }
  n(XCs, "assertJSXText");
  function zCs(t, e) {
    M("JSXFragment", t, e);
  }
  n(zCs, "assertJSXFragment");
  function GCs(t, e) {
    M("JSXOpeningFragment", t, e);
  }
  n(GCs, "assertJSXOpeningFragment");
  function QCs(t, e) {
    M("JSXClosingFragment", t, e);
  }
  n(QCs, "assertJSXClosingFragment");
  function ZCs(t, e) {
    M("Noop", t, e);
  }
  n(ZCs, "assertNoop");
  function ews(t, e) {
    M("Placeholder", t, e);
  }
  n(ews, "assertPlaceholder");
  function tws(t, e) {
    M("V8IntrinsicIdentifier", t, e);
  }
  n(tws, "assertV8IntrinsicIdentifier");
  function sws(t, e) {
    M("ArgumentPlaceholder", t, e);
  }
  n(sws, "assertArgumentPlaceholder");
  function rws(t, e) {
    M("BindExpression", t, e);
  }
  n(rws, "assertBindExpression");
  function iws(t, e) {
    M("ImportAttribute", t, e);
  }
  n(iws, "assertImportAttribute");
  function nws(t, e) {
    M("Decorator", t, e);
  }
  n(nws, "assertDecorator");
  function aws(t, e) {
    M("DoExpression", t, e);
  }
  n(aws, "assertDoExpression");
  function ows(t, e) {
    M("ExportDefaultSpecifier", t, e);
  }
  n(ows, "assertExportDefaultSpecifier");
  function lws(t, e) {
    M("RecordExpression", t, e);
  }
  n(lws, "assertRecordExpression");
  function uws(t, e) {
    M("TupleExpression", t, e);
  }
  n(uws, "assertTupleExpression");
  function cws(t, e) {
    M("DecimalLiteral", t, e);
  }
  n(cws, "assertDecimalLiteral");
  function pws(t, e) {
    M("ModuleExpression", t, e);
  }
  n(pws, "assertModuleExpression");
  function hws(t, e) {
    M("TopicReference", t, e);
  }
  n(hws, "assertTopicReference");
  function fws(t, e) {
    M("PipelineTopicExpression", t, e);
  }
  n(fws, "assertPipelineTopicExpression");
  function dws(t, e) {
    M("PipelineBareFunction", t, e);
  }
  n(dws, "assertPipelineBareFunction");
  function mws(t, e) {
    M("PipelinePrimaryTopicReference", t, e);
  }
  n(mws, "assertPipelinePrimaryTopicReference");
  function yws(t, e) {
    M("TSParameterProperty", t, e);
  }
  n(yws, "assertTSParameterProperty");
  function gws(t, e) {
    M("TSDeclareFunction", t, e);
  }
  n(gws, "assertTSDeclareFunction");
  function Tws(t, e) {
    M("TSDeclareMethod", t, e);
  }
  n(Tws, "assertTSDeclareMethod");
  function bws(t, e) {
    M("TSQualifiedName", t, e);
  }
  n(bws, "assertTSQualifiedName");
  function xws(t, e) {
    M("TSCallSignatureDeclaration", t, e);
  }
  n(xws, "assertTSCallSignatureDeclaration");
  function Sws(t, e) {
    M("TSConstructSignatureDeclaration", t, e);
  }
  n(Sws, "assertTSConstructSignatureDeclaration");
  function Pws(t, e) {
    M("TSPropertySignature", t, e);
  }
  n(Pws, "assertTSPropertySignature");
  function Ews(t, e) {
    M("TSMethodSignature", t, e);
  }
  n(Ews, "assertTSMethodSignature");
  function Aws(t, e) {
    M("TSIndexSignature", t, e);
  }
  n(Aws, "assertTSIndexSignature");
  function vws(t, e) {
    M("TSAnyKeyword", t, e);
  }
  n(vws, "assertTSAnyKeyword");
  function Cws(t, e) {
    M("TSBooleanKeyword", t, e);
  }
  n(Cws, "assertTSBooleanKeyword");
  function wws(t, e) {
    M("TSBigIntKeyword", t, e);
  }
  n(wws, "assertTSBigIntKeyword");
  function Iws(t, e) {
    M("TSIntrinsicKeyword", t, e);
  }
  n(Iws, "assertTSIntrinsicKeyword");
  function Nws(t, e) {
    M("TSNeverKeyword", t, e);
  }
  n(Nws, "assertTSNeverKeyword");
  function kws(t, e) {
    M("TSNullKeyword", t, e);
  }
  n(kws, "assertTSNullKeyword");
  function Dws(t, e) {
    M("TSNumberKeyword", t, e);
  }
  n(Dws, "assertTSNumberKeyword");
  function Ows(t, e) {
    M("TSObjectKeyword", t, e);
  }
  n(Ows, "assertTSObjectKeyword");
  function _ws(t, e) {
    M("TSStringKeyword", t, e);
  }
  n(_ws, "assertTSStringKeyword");
  function Lws(t, e) {
    M("TSSymbolKeyword", t, e);
  }
  n(Lws, "assertTSSymbolKeyword");
  function Bws(t, e) {
    M("TSUndefinedKeyword", t, e);
  }
  n(Bws, "assertTSUndefinedKeyword");
  function Mws(t, e) {
    M("TSUnknownKeyword", t, e);
  }
  n(Mws, "assertTSUnknownKeyword");
  function Fws(t, e) {
    M("TSVoidKeyword", t, e);
  }
  n(Fws, "assertTSVoidKeyword");
  function jws(t, e) {
    M("TSThisType", t, e);
  }
  n(jws, "assertTSThisType");
  function Rws(t, e) {
    M("TSFunctionType", t, e);
  }
  n(Rws, "assertTSFunctionType");
  function qws(t, e) {
    M("TSConstructorType", t, e);
  }
  n(qws, "assertTSConstructorType");
  function Uws(t, e) {
    M("TSTypeReference", t, e);
  }
  n(Uws, "assertTSTypeReference");
  function Kws(t, e) {
    M("TSTypePredicate", t, e);
  }
  n(Kws, "assertTSTypePredicate");
  function Vws(t, e) {
    M("TSTypeQuery", t, e);
  }
  n(Vws, "assertTSTypeQuery");
  function Wws(t, e) {
    M("TSTypeLiteral", t, e);
  }
  n(Wws, "assertTSTypeLiteral");
  function $ws(t, e) {
    M("TSArrayType", t, e);
  }
  n($ws, "assertTSArrayType");
  function Hws(t, e) {
    M("TSTupleType", t, e);
  }
  n(Hws, "assertTSTupleType");
  function Jws(t, e) {
    M("TSOptionalType", t, e);
  }
  n(Jws, "assertTSOptionalType");
  function Yws(t, e) {
    M("TSRestType", t, e);
  }
  n(Yws, "assertTSRestType");
  function Xws(t, e) {
    M("TSNamedTupleMember", t, e);
  }
  n(Xws, "assertTSNamedTupleMember");
  function zws(t, e) {
    M("TSUnionType", t, e);
  }
  n(zws, "assertTSUnionType");
  function Gws(t, e) {
    M("TSIntersectionType", t, e);
  }
  n(Gws, "assertTSIntersectionType");
  function Qws(t, e) {
    M("TSConditionalType", t, e);
  }
  n(Qws, "assertTSConditionalType");
  function Zws(t, e) {
    M("TSInferType", t, e);
  }
  n(Zws, "assertTSInferType");
  function eIs(t, e) {
    M("TSParenthesizedType", t, e);
  }
  n(eIs, "assertTSParenthesizedType");
  function tIs(t, e) {
    M("TSTypeOperator", t, e);
  }
  n(tIs, "assertTSTypeOperator");
  function sIs(t, e) {
    M("TSIndexedAccessType", t, e);
  }
  n(sIs, "assertTSIndexedAccessType");
  function rIs(t, e) {
    M("TSMappedType", t, e);
  }
  n(rIs, "assertTSMappedType");
  function iIs(t, e) {
    M("TSLiteralType", t, e);
  }
  n(iIs, "assertTSLiteralType");
  function nIs(t, e) {
    M("TSExpressionWithTypeArguments", t, e);
  }
  n(nIs, "assertTSExpressionWithTypeArguments");
  function aIs(t, e) {
    M("TSInterfaceDeclaration", t, e);
  }
  n(aIs, "assertTSInterfaceDeclaration");
  function oIs(t, e) {
    M("TSInterfaceBody", t, e);
  }
  n(oIs, "assertTSInterfaceBody");
  function lIs(t, e) {
    M("TSTypeAliasDeclaration", t, e);
  }
  n(lIs, "assertTSTypeAliasDeclaration");
  function uIs(t, e) {
    M("TSInstantiationExpression", t, e);
  }
  n(uIs, "assertTSInstantiationExpression");
  function cIs(t, e) {
    M("TSAsExpression", t, e);
  }
  n(cIs, "assertTSAsExpression");
  function pIs(t, e) {
    M("TSSatisfiesExpression", t, e);
  }
  n(pIs, "assertTSSatisfiesExpression");
  function hIs(t, e) {
    M("TSTypeAssertion", t, e);
  }
  n(hIs, "assertTSTypeAssertion");
  function fIs(t, e) {
    M("TSEnumBody", t, e);
  }
  n(fIs, "assertTSEnumBody");
  function dIs(t, e) {
    M("TSEnumDeclaration", t, e);
  }
  n(dIs, "assertTSEnumDeclaration");
  function mIs(t, e) {
    M("TSEnumMember", t, e);
  }
  n(mIs, "assertTSEnumMember");
  function yIs(t, e) {
    M("TSModuleDeclaration", t, e);
  }
  n(yIs, "assertTSModuleDeclaration");
  function gIs(t, e) {
    M("TSModuleBlock", t, e);
  }
  n(gIs, "assertTSModuleBlock");
  function TIs(t, e) {
    M("TSImportType", t, e);
  }
  n(TIs, "assertTSImportType");
  function bIs(t, e) {
    M("TSImportEqualsDeclaration", t, e);
  }
  n(bIs, "assertTSImportEqualsDeclaration");
  function xIs(t, e) {
    M("TSExternalModuleReference", t, e);
  }
  n(xIs, "assertTSExternalModuleReference");
  function SIs(t, e) {
    M("TSNonNullExpression", t, e);
  }
  n(SIs, "assertTSNonNullExpression");
  function PIs(t, e) {
    M("TSExportAssignment", t, e);
  }
  n(PIs, "assertTSExportAssignment");
  function EIs(t, e) {
    M("TSNamespaceExportDeclaration", t, e);
  }
  n(EIs, "assertTSNamespaceExportDeclaration");
  function AIs(t, e) {
    M("TSTypeAnnotation", t, e);
  }
  n(AIs, "assertTSTypeAnnotation");
  function vIs(t, e) {
    M("TSTypeParameterInstantiation", t, e);
  }
  n(vIs, "assertTSTypeParameterInstantiation");
  function CIs(t, e) {
    M("TSTypeParameterDeclaration", t, e);
  }
  n(CIs, "assertTSTypeParameterDeclaration");
  function wIs(t, e) {
    M("TSTypeParameter", t, e);
  }
  n(wIs, "assertTSTypeParameter");
  function IIs(t, e) {
    M("Standardized", t, e);
  }
  n(IIs, "assertStandardized");
  function NIs(t, e) {
    M("Expression", t, e);
  }
  n(NIs, "assertExpression");
  function kIs(t, e) {
    M("Binary", t, e);
  }
  n(kIs, "assertBinary");
  function DIs(t, e) {
    M("Scopable", t, e);
  }
  n(DIs, "assertScopable");
  function OIs(t, e) {
    M("BlockParent", t, e);
  }
  n(OIs, "assertBlockParent");
  function _Is(t, e) {
    M("Block", t, e);
  }
  n(_Is, "assertBlock");
  function LIs(t, e) {
    M("Statement", t, e);
  }
  n(LIs, "assertStatement");
  function BIs(t, e) {
    M("Terminatorless", t, e);
  }
  n(BIs, "assertTerminatorless");
  function MIs(t, e) {
    M("CompletionStatement", t, e);
  }
  n(MIs, "assertCompletionStatement");
  function FIs(t, e) {
    M("Conditional", t, e);
  }
  n(FIs, "assertConditional");
  function jIs(t, e) {
    M("Loop", t, e);
  }
  n(jIs, "assertLoop");
  function RIs(t, e) {
    M("While", t, e);
  }
  n(RIs, "assertWhile");
  function qIs(t, e) {
    M("ExpressionWrapper", t, e);
  }
  n(qIs, "assertExpressionWrapper");
  function UIs(t, e) {
    M("For", t, e);
  }
  n(UIs, "assertFor");
  function KIs(t, e) {
    M("ForXStatement", t, e);
  }
  n(KIs, "assertForXStatement");
  function VIs(t, e) {
    M("Function", t, e);
  }
  n(VIs, "assertFunction");
  function WIs(t, e) {
    M("FunctionParent", t, e);
  }
  n(WIs, "assertFunctionParent");
  function $Is(t, e) {
    M("Pureish", t, e);
  }
  n($Is, "assertPureish");
  function HIs(t, e) {
    M("Declaration", t, e);
  }
  n(HIs, "assertDeclaration");
  function JIs(t, e) {
    M("PatternLike", t, e);
  }
  n(JIs, "assertPatternLike");
  function YIs(t, e) {
    M("LVal", t, e);
  }
  n(YIs, "assertLVal");
  function XIs(t, e) {
    M("TSEntityName", t, e);
  }
  n(XIs, "assertTSEntityName");
  function zIs(t, e) {
    M("Literal", t, e);
  }
  n(zIs, "assertLiteral");
  function GIs(t, e) {
    M("Immutable", t, e);
  }
  n(GIs, "assertImmutable");
  function QIs(t, e) {
    M("UserWhitespacable", t, e);
  }
  n(QIs, "assertUserWhitespacable");
  function ZIs(t, e) {
    M("Method", t, e);
  }
  n(ZIs, "assertMethod");
  function eNs(t, e) {
    M("ObjectMember", t, e);
  }
  n(eNs, "assertObjectMember");
  function tNs(t, e) {
    M("Property", t, e);
  }
  n(tNs, "assertProperty");
  function sNs(t, e) {
    M("UnaryLike", t, e);
  }
  n(sNs, "assertUnaryLike");
  function rNs(t, e) {
    M("Pattern", t, e);
  }
  n(rNs, "assertPattern");
  function iNs(t, e) {
    M("Class", t, e);
  }
  n(iNs, "assertClass");
  function nNs(t, e) {
    M("ImportOrExportDeclaration", t, e);
  }
  n(nNs, "assertImportOrExportDeclaration");
  function aNs(t, e) {
    M("ExportDeclaration", t, e);
  }
  n(aNs, "assertExportDeclaration");
  function oNs(t, e) {
    M("ModuleSpecifier", t, e);
  }
  n(oNs, "assertModuleSpecifier");
  function lNs(t, e) {
    M("Accessor", t, e);
  }
  n(lNs, "assertAccessor");
  function uNs(t, e) {
    M("Private", t, e);
  }
  n(uNs, "assertPrivate");
  function cNs(t, e) {
    M("Flow", t, e);
  }
  n(cNs, "assertFlow");
  function pNs(t, e) {
    M("FlowType", t, e);
  }
  n(pNs, "assertFlowType");
  function hNs(t, e) {
    M("FlowBaseAnnotation", t, e);
  }
  n(hNs, "assertFlowBaseAnnotation");
  function fNs(t, e) {
    M("FlowDeclaration", t, e);
  }
  n(fNs, "assertFlowDeclaration");
  function dNs(t, e) {
    M("FlowPredicate", t, e);
  }
  n(dNs, "assertFlowPredicate");
  function mNs(t, e) {
    M("EnumBody", t, e);
  }
  n(mNs, "assertEnumBody");
  function yNs(t, e) {
    M("EnumMember", t, e);
  }
  n(yNs, "assertEnumMember");
  function gNs(t, e) {
    M("JSX", t, e);
  }
  n(gNs, "assertJSX");
  function TNs(t, e) {
    M("Miscellaneous", t, e);
  }
  n(TNs, "assertMiscellaneous");
  function bNs(t, e) {
    M("TypeScript", t, e);
  }
  n(bNs, "assertTypeScript");
  function xNs(t, e) {
    M("TSTypeElement", t, e);
  }
  n(xNs, "assertTSTypeElement");
  function SNs(t, e) {
    M("TSType", t, e);
  }
  n(SNs, "assertTSType");
  function PNs(t, e) {
    M("TSBaseType", t, e);
  }
  n(PNs, "assertTSBaseType");
  function ENs(t, e) {
    (0, eb.default)("assertNumberLiteral", "assertNumericLiteral"), M("NumberLiteral", t, e);
  }
  n(ENs, "assertNumberLiteral");
  function ANs(t, e) {
    (0, eb.default)("assertRegexLiteral", "assertRegExpLiteral"), M("RegexLiteral", t, e);
  }
  n(ANs, "assertRegexLiteral");
  function vNs(t, e) {
    (0, eb.default)("assertRestProperty", "assertRestElement"), M("RestProperty", t, e);
  }
  n(vNs, "assertRestProperty");
  function CNs(t, e) {
    (0, eb.default)("assertSpreadProperty", "assertSpreadElement"), M("SpreadProperty", t, e);
  }
  n(CNs, "assertSpreadProperty");
  function wNs(t, e) {
    (0, eb.default)("assertModuleDeclaration", "assertImportOrExportDeclaration"), M("ModuleDeclaration", t, e);
  }
  n(wNs, "assertModuleDeclaration");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js
var Bde = g((Lv) => {
  "use strict";
  Object.defineProperty(Lv, "__esModule", {
    value: !0
  });
  Lv.default = void 0;
  var Ko = Gn(), Uir = Lv.default = INs;
  function INs(t) {
    switch (t) {
      case "string":
        return (0, Ko.stringTypeAnnotation)();
      case "number":
        return (0, Ko.numberTypeAnnotation)();
      case "undefined":
        return (0, Ko.voidTypeAnnotation)();
      case "boolean":
        return (0, Ko.booleanTypeAnnotation)();
      case "function":
        return (0, Ko.genericTypeAnnotation)((0, Ko.identifier)("Function"));
      case "object":
        return (0, Ko.genericTypeAnnotation)((0, Ko.identifier)("Object"));
      case "symbol":
        return (0, Ko.genericTypeAnnotation)((0, Ko.identifier)("Symbol"));
      case "bigint":
        return (0, Ko.anyTypeAnnotation)();
    }
    throw new Error("Invalid typeof value: " + t);
  }
  n(INs, "createTypeAnnotationBasedOnTypeof");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js
var s5 = g((t5) => {
  "use strict";
  Object.defineProperty(t5, "__esModule", {
    value: !0
  });
  t5.default = Fde;
  var tb = mi();
  function Mde(t) {
    return (0, tb.isIdentifier)(t) ? t.name : `${t.id.name}.${Mde(t.qualification)}`;
  }
  n(Mde, "getQualifiedName");
  function Fde(t) {
    let e = Array.from(t), s = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = [];
    for (let o = 0; o < e.length; o++) {
      let l = e[o];
      if (l && !a.includes(l)) {
        if ((0, tb.isAnyTypeAnnotation)(l))
          return [l];
        if ((0, tb.isFlowBaseAnnotation)(l)) {
          r.set(l.type, l);
          continue;
        }
        if ((0, tb.isUnionTypeAnnotation)(l)) {
          i.has(l.types) || (e.push(...l.types), i.add(l.types));
          continue;
        }
        if ((0, tb.isGenericTypeAnnotation)(l)) {
          let u = Mde(l.id);
          if (s.has(u)) {
            let c = s.get(u);
            c.typeParameters ? l.typeParameters && (c.typeParameters.params.push(...l.typeParameters.params), c.typeParameters.params = Fde(
            c.typeParameters.params)) : c = l.typeParameters;
          } else
            s.set(u, l);
          continue;
        }
        a.push(l);
      }
    }
    for (let [, o] of r)
      a.push(o);
    for (let [, o] of s)
      a.push(o);
    return a;
  }
  n(Fde, "removeTypeDuplicates");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js
var jde = g((r5) => {
  "use strict";
  Object.defineProperty(r5, "__esModule", {
    value: !0
  });
  r5.default = DNs;
  var NNs = Gn(), kNs = s5();
  function DNs(t) {
    let e = (0, kNs.default)(t);
    return e.length === 1 ? e[0] : (0, NNs.unionTypeAnnotation)(e);
  }
  n(DNs, "createFlowUnionType");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js
var Ude = g((i5) => {
  "use strict";
  Object.defineProperty(i5, "__esModule", {
    value: !0
  });
  i5.default = qde;
  var sb = mi();
  function Rde(t) {
    return (0, sb.isIdentifier)(t) ? t.name : `${t.right.name}.${Rde(t.left)}`;
  }
  n(Rde, "getQualifiedName");
  function qde(t) {
    let e = Array.from(t), s = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = [];
    for (let o = 0; o < e.length; o++) {
      let l = e[o];
      if (!l || a.includes(l))
        continue;
      if ((0, sb.isTSAnyKeyword)(l))
        return [l];
      if ((0, sb.isTSBaseType)(l)) {
        r.set(l.type, l);
        continue;
      }
      if ((0, sb.isTSUnionType)(l)) {
        i.has(l.types) || (e.push(...l.types), i.add(l.types));
        continue;
      }
      let u = "typeParameters";
      if ((0, sb.isTSTypeReference)(l) && l[u]) {
        let c = l[u], p = Rde(l.typeName);
        if (s.has(p)) {
          let h = s.get(p), f = h[u];
          f ? (f.params.push(...c.params), f.params = qde(f.params)) : h = c;
        } else
          s.set(p, l);
        continue;
      }
      a.push(l);
    }
    for (let [, o] of r)
      a.push(o);
    for (let [, o] of s)
      a.push(o);
    return a;
  }
  n(qde, "removeTypeDuplicates");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js
var Kde = g((n5) => {
  "use strict";
  Object.defineProperty(n5, "__esModule", {
    value: !0
  });
  n5.default = BNs;
  var ONs = Gn(), _Ns = Ude(), LNs = mi();
  function BNs(t) {
    let e = t.map((r) => (0, LNs.isTSTypeAnnotation)(r) ? r.typeAnnotation : r), s = (0, _Ns.default)(e);
    return s.length === 1 ? s[0] : (0, ONs.tsUnionType)(s);
  }
  n(BNs, "createTSUnionType");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/builders/generated/uppercase.js
var Vde = g((J) => {
  "use strict";
  Object.defineProperty(J, "__esModule", {
    value: !0
  });
  Object.defineProperty(J, "AnyTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.anyTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "ArgumentPlaceholder", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.argumentPlaceholder;
    }, "get")
  });
  Object.defineProperty(J, "ArrayExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.arrayExpression;
    }, "get")
  });
  Object.defineProperty(J, "ArrayPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.arrayPattern;
    }, "get")
  });
  Object.defineProperty(J, "ArrayTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.arrayTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "ArrowFunctionExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.arrowFunctionExpression;
    }, "get")
  });
  Object.defineProperty(J, "AssignmentExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.assignmentExpression;
    }, "get")
  });
  Object.defineProperty(J, "AssignmentPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.assignmentPattern;
    }, "get")
  });
  Object.defineProperty(J, "AwaitExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.awaitExpression;
    }, "get")
  });
  Object.defineProperty(J, "BigIntLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.bigIntLiteral;
    }, "get")
  });
  Object.defineProperty(J, "BinaryExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.binaryExpression;
    }, "get")
  });
  Object.defineProperty(J, "BindExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.bindExpression;
    }, "get")
  });
  Object.defineProperty(J, "BlockStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.blockStatement;
    }, "get")
  });
  Object.defineProperty(J, "BooleanLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.booleanLiteral;
    }, "get")
  });
  Object.defineProperty(J, "BooleanLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.booleanLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "BooleanTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.booleanTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "BreakStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.breakStatement;
    }, "get")
  });
  Object.defineProperty(J, "CallExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.callExpression;
    }, "get")
  });
  Object.defineProperty(J, "CatchClause", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.catchClause;
    }, "get")
  });
  Object.defineProperty(J, "ClassAccessorProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classAccessorProperty;
    }, "get")
  });
  Object.defineProperty(J, "ClassBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classBody;
    }, "get")
  });
  Object.defineProperty(J, "ClassDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "ClassExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classExpression;
    }, "get")
  });
  Object.defineProperty(J, "ClassImplements", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classImplements;
    }, "get")
  });
  Object.defineProperty(J, "ClassMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classMethod;
    }, "get")
  });
  Object.defineProperty(J, "ClassPrivateMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classPrivateMethod;
    }, "get")
  });
  Object.defineProperty(J, "ClassPrivateProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classPrivateProperty;
    }, "get")
  });
  Object.defineProperty(J, "ClassProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.classProperty;
    }, "get")
  });
  Object.defineProperty(J, "ConditionalExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.conditionalExpression;
    }, "get")
  });
  Object.defineProperty(J, "ContinueStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.continueStatement;
    }, "get")
  });
  Object.defineProperty(J, "DebuggerStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.debuggerStatement;
    }, "get")
  });
  Object.defineProperty(J, "DecimalLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.decimalLiteral;
    }, "get")
  });
  Object.defineProperty(J, "DeclareClass", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareClass;
    }, "get")
  });
  Object.defineProperty(J, "DeclareExportAllDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareExportAllDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "DeclareExportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareExportDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "DeclareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareFunction;
    }, "get")
  });
  Object.defineProperty(J, "DeclareInterface", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareInterface;
    }, "get")
  });
  Object.defineProperty(J, "DeclareModule", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareModule;
    }, "get")
  });
  Object.defineProperty(J, "DeclareModuleExports", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareModuleExports;
    }, "get")
  });
  Object.defineProperty(J, "DeclareOpaqueType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareOpaqueType;
    }, "get")
  });
  Object.defineProperty(J, "DeclareTypeAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareTypeAlias;
    }, "get")
  });
  Object.defineProperty(J, "DeclareVariable", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declareVariable;
    }, "get")
  });
  Object.defineProperty(J, "DeclaredPredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.declaredPredicate;
    }, "get")
  });
  Object.defineProperty(J, "Decorator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.decorator;
    }, "get")
  });
  Object.defineProperty(J, "Directive", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.directive;
    }, "get")
  });
  Object.defineProperty(J, "DirectiveLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.directiveLiteral;
    }, "get")
  });
  Object.defineProperty(J, "DoExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.doExpression;
    }, "get")
  });
  Object.defineProperty(J, "DoWhileStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.doWhileStatement;
    }, "get")
  });
  Object.defineProperty(J, "EmptyStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.emptyStatement;
    }, "get")
  });
  Object.defineProperty(J, "EmptyTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.emptyTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "EnumBooleanBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumBooleanBody;
    }, "get")
  });
  Object.defineProperty(J, "EnumBooleanMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumBooleanMember;
    }, "get")
  });
  Object.defineProperty(J, "EnumDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "EnumDefaultedMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumDefaultedMember;
    }, "get")
  });
  Object.defineProperty(J, "EnumNumberBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumNumberBody;
    }, "get")
  });
  Object.defineProperty(J, "EnumNumberMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumNumberMember;
    }, "get")
  });
  Object.defineProperty(J, "EnumStringBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumStringBody;
    }, "get")
  });
  Object.defineProperty(J, "EnumStringMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumStringMember;
    }, "get")
  });
  Object.defineProperty(J, "EnumSymbolBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.enumSymbolBody;
    }, "get")
  });
  Object.defineProperty(J, "ExistsTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.existsTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "ExportAllDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.exportAllDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "ExportDefaultDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.exportDefaultDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "ExportDefaultSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.exportDefaultSpecifier;
    }, "get")
  });
  Object.defineProperty(J, "ExportNamedDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.exportNamedDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "ExportNamespaceSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.exportNamespaceSpecifier;
    }, "get")
  });
  Object.defineProperty(J, "ExportSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.exportSpecifier;
    }, "get")
  });
  Object.defineProperty(J, "ExpressionStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.expressionStatement;
    }, "get")
  });
  Object.defineProperty(J, "File", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.file;
    }, "get")
  });
  Object.defineProperty(J, "ForInStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.forInStatement;
    }, "get")
  });
  Object.defineProperty(J, "ForOfStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.forOfStatement;
    }, "get")
  });
  Object.defineProperty(J, "ForStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.forStatement;
    }, "get")
  });
  Object.defineProperty(J, "FunctionDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.functionDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "FunctionExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.functionExpression;
    }, "get")
  });
  Object.defineProperty(J, "FunctionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.functionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "FunctionTypeParam", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.functionTypeParam;
    }, "get")
  });
  Object.defineProperty(J, "GenericTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.genericTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.identifier;
    }, "get")
  });
  Object.defineProperty(J, "IfStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.ifStatement;
    }, "get")
  });
  Object.defineProperty(J, "Import", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.import;
    }, "get")
  });
  Object.defineProperty(J, "ImportAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.importAttribute;
    }, "get")
  });
  Object.defineProperty(J, "ImportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.importDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "ImportDefaultSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.importDefaultSpecifier;
    }, "get")
  });
  Object.defineProperty(J, "ImportExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.importExpression;
    }, "get")
  });
  Object.defineProperty(J, "ImportNamespaceSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.importNamespaceSpecifier;
    }, "get")
  });
  Object.defineProperty(J, "ImportSpecifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.importSpecifier;
    }, "get")
  });
  Object.defineProperty(J, "IndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.indexedAccessType;
    }, "get")
  });
  Object.defineProperty(J, "InferredPredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.inferredPredicate;
    }, "get")
  });
  Object.defineProperty(J, "InterfaceDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.interfaceDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "InterfaceExtends", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.interfaceExtends;
    }, "get")
  });
  Object.defineProperty(J, "InterfaceTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.interfaceTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "InterpreterDirective", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.interpreterDirective;
    }, "get")
  });
  Object.defineProperty(J, "IntersectionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.intersectionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "JSXAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxAttribute;
    }, "get")
  });
  Object.defineProperty(J, "JSXClosingElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxClosingElement;
    }, "get")
  });
  Object.defineProperty(J, "JSXClosingFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxClosingFragment;
    }, "get")
  });
  Object.defineProperty(J, "JSXElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxElement;
    }, "get")
  });
  Object.defineProperty(J, "JSXEmptyExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxEmptyExpression;
    }, "get")
  });
  Object.defineProperty(J, "JSXExpressionContainer", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxExpressionContainer;
    }, "get")
  });
  Object.defineProperty(J, "JSXFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxFragment;
    }, "get")
  });
  Object.defineProperty(J, "JSXIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxIdentifier;
    }, "get")
  });
  Object.defineProperty(J, "JSXMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxMemberExpression;
    }, "get")
  });
  Object.defineProperty(J, "JSXNamespacedName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxNamespacedName;
    }, "get")
  });
  Object.defineProperty(J, "JSXOpeningElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxOpeningElement;
    }, "get")
  });
  Object.defineProperty(J, "JSXOpeningFragment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxOpeningFragment;
    }, "get")
  });
  Object.defineProperty(J, "JSXSpreadAttribute", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxSpreadAttribute;
    }, "get")
  });
  Object.defineProperty(J, "JSXSpreadChild", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxSpreadChild;
    }, "get")
  });
  Object.defineProperty(J, "JSXText", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.jsxText;
    }, "get")
  });
  Object.defineProperty(J, "LabeledStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.labeledStatement;
    }, "get")
  });
  Object.defineProperty(J, "LogicalExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.logicalExpression;
    }, "get")
  });
  Object.defineProperty(J, "MemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.memberExpression;
    }, "get")
  });
  Object.defineProperty(J, "MetaProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.metaProperty;
    }, "get")
  });
  Object.defineProperty(J, "MixedTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.mixedTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "ModuleExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.moduleExpression;
    }, "get")
  });
  Object.defineProperty(J, "NewExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.newExpression;
    }, "get")
  });
  Object.defineProperty(J, "Noop", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.noop;
    }, "get")
  });
  Object.defineProperty(J, "NullLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.nullLiteral;
    }, "get")
  });
  Object.defineProperty(J, "NullLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.nullLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "NullableTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.nullableTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "NumberLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.numberLiteral;
    }, "get")
  });
  Object.defineProperty(J, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.numberLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "NumberTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.numberTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "NumericLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.numericLiteral;
    }, "get")
  });
  Object.defineProperty(J, "ObjectExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectExpression;
    }, "get")
  });
  Object.defineProperty(J, "ObjectMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectMethod;
    }, "get")
  });
  Object.defineProperty(J, "ObjectPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectPattern;
    }, "get")
  });
  Object.defineProperty(J, "ObjectProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectProperty;
    }, "get")
  });
  Object.defineProperty(J, "ObjectTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "ObjectTypeCallProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectTypeCallProperty;
    }, "get")
  });
  Object.defineProperty(J, "ObjectTypeIndexer", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectTypeIndexer;
    }, "get")
  });
  Object.defineProperty(J, "ObjectTypeInternalSlot", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectTypeInternalSlot;
    }, "get")
  });
  Object.defineProperty(J, "ObjectTypeProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectTypeProperty;
    }, "get")
  });
  Object.defineProperty(J, "ObjectTypeSpreadProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.objectTypeSpreadProperty;
    }, "get")
  });
  Object.defineProperty(J, "OpaqueType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.opaqueType;
    }, "get")
  });
  Object.defineProperty(J, "OptionalCallExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.optionalCallExpression;
    }, "get")
  });
  Object.defineProperty(J, "OptionalIndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.optionalIndexedAccessType;
    }, "get")
  });
  Object.defineProperty(J, "OptionalMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.optionalMemberExpression;
    }, "get")
  });
  Object.defineProperty(J, "ParenthesizedExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.parenthesizedExpression;
    }, "get")
  });
  Object.defineProperty(J, "PipelineBareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.pipelineBareFunction;
    }, "get")
  });
  Object.defineProperty(J, "PipelinePrimaryTopicReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.pipelinePrimaryTopicReference;
    }, "get")
  });
  Object.defineProperty(J, "PipelineTopicExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.pipelineTopicExpression;
    }, "get")
  });
  Object.defineProperty(J, "Placeholder", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.placeholder;
    }, "get")
  });
  Object.defineProperty(J, "PrivateName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.privateName;
    }, "get")
  });
  Object.defineProperty(J, "Program", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.program;
    }, "get")
  });
  Object.defineProperty(J, "QualifiedTypeIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.qualifiedTypeIdentifier;
    }, "get")
  });
  Object.defineProperty(J, "RecordExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.recordExpression;
    }, "get")
  });
  Object.defineProperty(J, "RegExpLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.regExpLiteral;
    }, "get")
  });
  Object.defineProperty(J, "RegexLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.regexLiteral;
    }, "get")
  });
  Object.defineProperty(J, "RestElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.restElement;
    }, "get")
  });
  Object.defineProperty(J, "RestProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.restProperty;
    }, "get")
  });
  Object.defineProperty(J, "ReturnStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.returnStatement;
    }, "get")
  });
  Object.defineProperty(J, "SequenceExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.sequenceExpression;
    }, "get")
  });
  Object.defineProperty(J, "SpreadElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.spreadElement;
    }, "get")
  });
  Object.defineProperty(J, "SpreadProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.spreadProperty;
    }, "get")
  });
  Object.defineProperty(J, "StaticBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.staticBlock;
    }, "get")
  });
  Object.defineProperty(J, "StringLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.stringLiteral;
    }, "get")
  });
  Object.defineProperty(J, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.stringLiteralTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "StringTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.stringTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "Super", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.super;
    }, "get")
  });
  Object.defineProperty(J, "SwitchCase", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.switchCase;
    }, "get")
  });
  Object.defineProperty(J, "SwitchStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.switchStatement;
    }, "get")
  });
  Object.defineProperty(J, "SymbolTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.symbolTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "TSAnyKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsAnyKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSArrayType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsArrayType;
    }, "get")
  });
  Object.defineProperty(J, "TSAsExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsAsExpression;
    }, "get")
  });
  Object.defineProperty(J, "TSBigIntKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsBigIntKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSBooleanKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsBooleanKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSCallSignatureDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsCallSignatureDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSConditionalType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsConditionalType;
    }, "get")
  });
  Object.defineProperty(J, "TSConstructSignatureDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsConstructSignatureDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSConstructorType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsConstructorType;
    }, "get")
  });
  Object.defineProperty(J, "TSDeclareFunction", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsDeclareFunction;
    }, "get")
  });
  Object.defineProperty(J, "TSDeclareMethod", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsDeclareMethod;
    }, "get")
  });
  Object.defineProperty(J, "TSEnumBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsEnumBody;
    }, "get")
  });
  Object.defineProperty(J, "TSEnumDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsEnumDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSEnumMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsEnumMember;
    }, "get")
  });
  Object.defineProperty(J, "TSExportAssignment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsExportAssignment;
    }, "get")
  });
  Object.defineProperty(J, "TSExpressionWithTypeArguments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsExpressionWithTypeArguments;
    }, "get")
  });
  Object.defineProperty(J, "TSExternalModuleReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsExternalModuleReference;
    }, "get")
  });
  Object.defineProperty(J, "TSFunctionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsFunctionType;
    }, "get")
  });
  Object.defineProperty(J, "TSImportEqualsDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsImportEqualsDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSImportType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsImportType;
    }, "get")
  });
  Object.defineProperty(J, "TSIndexSignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsIndexSignature;
    }, "get")
  });
  Object.defineProperty(J, "TSIndexedAccessType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsIndexedAccessType;
    }, "get")
  });
  Object.defineProperty(J, "TSInferType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsInferType;
    }, "get")
  });
  Object.defineProperty(J, "TSInstantiationExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsInstantiationExpression;
    }, "get")
  });
  Object.defineProperty(J, "TSInterfaceBody", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsInterfaceBody;
    }, "get")
  });
  Object.defineProperty(J, "TSInterfaceDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsInterfaceDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSIntersectionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsIntersectionType;
    }, "get")
  });
  Object.defineProperty(J, "TSIntrinsicKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsIntrinsicKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSLiteralType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsLiteralType;
    }, "get")
  });
  Object.defineProperty(J, "TSMappedType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsMappedType;
    }, "get")
  });
  Object.defineProperty(J, "TSMethodSignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsMethodSignature;
    }, "get")
  });
  Object.defineProperty(J, "TSModuleBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsModuleBlock;
    }, "get")
  });
  Object.defineProperty(J, "TSModuleDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsModuleDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSNamedTupleMember", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsNamedTupleMember;
    }, "get")
  });
  Object.defineProperty(J, "TSNamespaceExportDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsNamespaceExportDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSNeverKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsNeverKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSNonNullExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsNonNullExpression;
    }, "get")
  });
  Object.defineProperty(J, "TSNullKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsNullKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSNumberKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsNumberKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSObjectKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsObjectKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSOptionalType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsOptionalType;
    }, "get")
  });
  Object.defineProperty(J, "TSParameterProperty", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsParameterProperty;
    }, "get")
  });
  Object.defineProperty(J, "TSParenthesizedType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsParenthesizedType;
    }, "get")
  });
  Object.defineProperty(J, "TSPropertySignature", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsPropertySignature;
    }, "get")
  });
  Object.defineProperty(J, "TSQualifiedName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsQualifiedName;
    }, "get")
  });
  Object.defineProperty(J, "TSRestType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsRestType;
    }, "get")
  });
  Object.defineProperty(J, "TSSatisfiesExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsSatisfiesExpression;
    }, "get")
  });
  Object.defineProperty(J, "TSStringKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsStringKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSSymbolKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsSymbolKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSThisType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsThisType;
    }, "get")
  });
  Object.defineProperty(J, "TSTupleType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTupleType;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeAliasDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeAliasDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeAssertion", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeAssertion;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeLiteral;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeOperator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeOperator;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeParameter", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeParameter;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeParameterDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeParameterDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeParameterInstantiation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeParameterInstantiation;
    }, "get")
  });
  Object.defineProperty(J, "TSTypePredicate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypePredicate;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeQuery", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeQuery;
    }, "get")
  });
  Object.defineProperty(J, "TSTypeReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsTypeReference;
    }, "get")
  });
  Object.defineProperty(J, "TSUndefinedKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsUndefinedKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsUnionType;
    }, "get")
  });
  Object.defineProperty(J, "TSUnknownKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsUnknownKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TSVoidKeyword", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tsVoidKeyword;
    }, "get")
  });
  Object.defineProperty(J, "TaggedTemplateExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.taggedTemplateExpression;
    }, "get")
  });
  Object.defineProperty(J, "TemplateElement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.templateElement;
    }, "get")
  });
  Object.defineProperty(J, "TemplateLiteral", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.templateLiteral;
    }, "get")
  });
  Object.defineProperty(J, "ThisExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.thisExpression;
    }, "get")
  });
  Object.defineProperty(J, "ThisTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.thisTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "ThrowStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.throwStatement;
    }, "get")
  });
  Object.defineProperty(J, "TopicReference", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.topicReference;
    }, "get")
  });
  Object.defineProperty(J, "TryStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tryStatement;
    }, "get")
  });
  Object.defineProperty(J, "TupleExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tupleExpression;
    }, "get")
  });
  Object.defineProperty(J, "TupleTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.tupleTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "TypeAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.typeAlias;
    }, "get")
  });
  Object.defineProperty(J, "TypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.typeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "TypeCastExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.typeCastExpression;
    }, "get")
  });
  Object.defineProperty(J, "TypeParameter", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.typeParameter;
    }, "get")
  });
  Object.defineProperty(J, "TypeParameterDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.typeParameterDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "TypeParameterInstantiation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.typeParameterInstantiation;
    }, "get")
  });
  Object.defineProperty(J, "TypeofTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.typeofTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "UnaryExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.unaryExpression;
    }, "get")
  });
  Object.defineProperty(J, "UnionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.unionTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "UpdateExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.updateExpression;
    }, "get")
  });
  Object.defineProperty(J, "V8IntrinsicIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.v8IntrinsicIdentifier;
    }, "get")
  });
  Object.defineProperty(J, "VariableDeclaration", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.variableDeclaration;
    }, "get")
  });
  Object.defineProperty(J, "VariableDeclarator", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.variableDeclarator;
    }, "get")
  });
  Object.defineProperty(J, "Variance", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.variance;
    }, "get")
  });
  Object.defineProperty(J, "VoidTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.voidTypeAnnotation;
    }, "get")
  });
  Object.defineProperty(J, "WhileStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.whileStatement;
    }, "get")
  });
  Object.defineProperty(J, "WithStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.withStatement;
    }, "get")
  });
  Object.defineProperty(J, "YieldExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return z.yieldExpression;
    }, "get")
  });
  var z = Gn();
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/builders/productions.js
var o5 = g((a5) => {
  "use strict";
  Object.defineProperty(a5, "__esModule", {
    value: !0
  });
  a5.buildUndefinedNode = MNs;
  var Wde = Gn();
  function MNs() {
    return (0, Wde.unaryExpression)("void", (0, Wde.numericLiteral)(0), !0);
  }
  n(MNs, "buildUndefinedNode");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/clone/cloneNode.js
var Hp = g((u5) => {
  "use strict";
  Object.defineProperty(u5, "__esModule", {
    value: !0
  });
  u5.default = FNs;
  var $de = oo(), Hde = mi(), {
    hasOwn: _l
  } = {
    hasOwn: Function.call.bind(Object.prototype.hasOwnProperty)
  };
  function Jde(t, e, s, r) {
    return t && typeof t.type == "string" ? Yde(t, e, s, r) : t;
  }
  n(Jde, "cloneIfNode");
  function l5(t, e, s, r) {
    return Array.isArray(t) ? t.map((i) => Jde(i, e, s, r)) : Jde(t, e, s, r);
  }
  n(l5, "cloneIfNodeOrArray");
  function FNs(t, e = !0, s = !1) {
    return Yde(t, e, s, /* @__PURE__ */ new Map());
  }
  n(FNs, "cloneNode");
  function Yde(t, e = !0, s = !1, r) {
    if (!t) return t;
    let {
      type: i
    } = t, a = {
      type: t.type
    };
    if ((0, Hde.isIdentifier)(t))
      a.name = t.name, _l(t, "optional") && typeof t.optional == "boolean" && (a.optional = t.optional), _l(t, "typeAnnotation") && (a.typeAnnotation =
      e ? l5(t.typeAnnotation, !0, s, r) : t.typeAnnotation), _l(t, "decorators") && (a.decorators = e ? l5(t.decorators, !0, s, r) : t.decorators);
    else if (_l($de.NODE_FIELDS, i))
      for (let o of Object.keys($de.NODE_FIELDS[i]))
        _l(t, o) && (e ? a[o] = (0, Hde.isFile)(t) && o === "comments" ? Bv(t.comments, e, s, r) : l5(t[o], !0, s, r) : a[o] = t[o]);
    else
      throw new Error(`Unknown node type: "${i}"`);
    return _l(t, "loc") && (s ? a.loc = null : a.loc = t.loc), _l(t, "leadingComments") && (a.leadingComments = Bv(t.leadingComments, e, s, r)),
    _l(t, "innerComments") && (a.innerComments = Bv(t.innerComments, e, s, r)), _l(t, "trailingComments") && (a.trailingComments = Bv(t.trailingComments,
    e, s, r)), _l(t, "extra") && (a.extra = Object.assign({}, t.extra)), a;
  }
  n(Yde, "cloneNodeInternal");
  function Bv(t, e, s, r) {
    return !t || !e ? t : t.map((i) => {
      let a = r.get(i);
      if (a) return a;
      let {
        type: o,
        value: l,
        loc: u
      } = i, c = {
        type: o,
        value: l,
        loc: u
      };
      return s && (c.loc = null), r.set(i, c), c;
    });
  }
  n(Bv, "maybeCloneComments");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/clone/clone.js
var Xde = g((c5) => {
  "use strict";
  Object.defineProperty(c5, "__esModule", {
    value: !0
  });
  c5.default = RNs;
  var jNs = Hp();
  function RNs(t) {
    return (0, jNs.default)(t, !1);
  }
  n(RNs, "clone");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/clone/cloneDeep.js
var zde = g((p5) => {
  "use strict";
  Object.defineProperty(p5, "__esModule", {
    value: !0
  });
  p5.default = UNs;
  var qNs = Hp();
  function UNs(t) {
    return (0, qNs.default)(t);
  }
  n(UNs, "cloneDeep");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js
var Gde = g((h5) => {
  "use strict";
  Object.defineProperty(h5, "__esModule", {
    value: !0
  });
  h5.default = VNs;
  var KNs = Hp();
  function VNs(t) {
    return (0, KNs.default)(t, !0, !0);
  }
  n(VNs, "cloneDeepWithoutLoc");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js
var Qde = g((f5) => {
  "use strict";
  Object.defineProperty(f5, "__esModule", {
    value: !0
  });
  f5.default = $Ns;
  var WNs = Hp();
  function $Ns(t) {
    return (0, WNs.default)(t, !1, !0);
  }
  n($Ns, "cloneWithoutLoc");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/comments/addComments.js
var m5 = g((d5) => {
  "use strict";
  Object.defineProperty(d5, "__esModule", {
    value: !0
  });
  d5.default = HNs;
  function HNs(t, e, s) {
    if (!s || !t) return t;
    let r = `${e}Comments`;
    return t[r] ? e === "leading" ? t[r] = s.concat(t[r]) : t[r].push(...s) : t[r] = s, t;
  }
  n(HNs, "addComments");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/comments/addComment.js
var Zde = g((y5) => {
  "use strict";
  Object.defineProperty(y5, "__esModule", {
    value: !0
  });
  y5.default = YNs;
  var JNs = m5();
  function YNs(t, e, s, r) {
    return (0, JNs.default)(t, e, [{
      type: r ? "CommentLine" : "CommentBlock",
      value: s
    }]);
  }
  n(YNs, "addComment");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/utils/inherit.js
var Mv = g((g5) => {
  "use strict";
  Object.defineProperty(g5, "__esModule", {
    value: !0
  });
  g5.default = XNs;
  function XNs(t, e, s) {
    e && s && (e[t] = Array.from(new Set([].concat(e[t], s[t]).filter(Boolean))));
  }
  n(XNs, "inherit");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/comments/inheritInnerComments.js
var b5 = g((T5) => {
  "use strict";
  Object.defineProperty(T5, "__esModule", {
    value: !0
  });
  T5.default = GNs;
  var zNs = Mv();
  function GNs(t, e) {
    (0, zNs.default)("innerComments", t, e);
  }
  n(GNs, "inheritInnerComments");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/comments/inheritLeadingComments.js
var S5 = g((x5) => {
  "use strict";
  Object.defineProperty(x5, "__esModule", {
    value: !0
  });
  x5.default = ZNs;
  var QNs = Mv();
  function ZNs(t, e) {
    (0, QNs.default)("leadingComments", t, e);
  }
  n(ZNs, "inheritLeadingComments");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/comments/inheritTrailingComments.js
var E5 = g((P5) => {
  "use strict";
  Object.defineProperty(P5, "__esModule", {
    value: !0
  });
  P5.default = tks;
  var eks = Mv();
  function tks(t, e) {
    (0, eks.default)("trailingComments", t, e);
  }
  n(tks, "inheritTrailingComments");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/comments/inheritsComments.js
var v5 = g((A5) => {
  "use strict";
  Object.defineProperty(A5, "__esModule", {
    value: !0
  });
  A5.default = nks;
  var sks = E5(), rks = S5(), iks = b5();
  function nks(t, e) {
    return (0, sks.default)(t, e), (0, rks.default)(t, e), (0, iks.default)(t, e), t;
  }
  n(nks, "inheritsComments");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/comments/removeComments.js
var eme = g((C5) => {
  "use strict";
  Object.defineProperty(C5, "__esModule", {
    value: !0
  });
  C5.default = oks;
  var aks = Wp();
  function oks(t) {
    return aks.COMMENT_KEYS.forEach((e) => {
      t[e] = null;
    }), t;
  }
  n(oks, "removeComments");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/constants/generated/index.js
var tme = g((Ie) => {
  "use strict";
  Object.defineProperty(Ie, "__esModule", {
    value: !0
  });
  Ie.WHILE_TYPES = Ie.USERWHITESPACABLE_TYPES = Ie.UNARYLIKE_TYPES = Ie.TYPESCRIPT_TYPES = Ie.TSTYPE_TYPES = Ie.TSTYPEELEMENT_TYPES = Ie.TSENTITYNAME_TYPES =
  Ie.TSBASETYPE_TYPES = Ie.TERMINATORLESS_TYPES = Ie.STATEMENT_TYPES = Ie.STANDARDIZED_TYPES = Ie.SCOPABLE_TYPES = Ie.PUREISH_TYPES = Ie.PROPERTY_TYPES =
  Ie.PRIVATE_TYPES = Ie.PATTERN_TYPES = Ie.PATTERNLIKE_TYPES = Ie.OBJECTMEMBER_TYPES = Ie.MODULESPECIFIER_TYPES = Ie.MODULEDECLARATION_TYPES =
  Ie.MISCELLANEOUS_TYPES = Ie.METHOD_TYPES = Ie.LVAL_TYPES = Ie.LOOP_TYPES = Ie.LITERAL_TYPES = Ie.JSX_TYPES = Ie.IMPORTOREXPORTDECLARATION_TYPES =
  Ie.IMMUTABLE_TYPES = Ie.FUNCTION_TYPES = Ie.FUNCTIONPARENT_TYPES = Ie.FOR_TYPES = Ie.FORXSTATEMENT_TYPES = Ie.FLOW_TYPES = Ie.FLOWTYPE_TYPES =
  Ie.FLOWPREDICATE_TYPES = Ie.FLOWDECLARATION_TYPES = Ie.FLOWBASEANNOTATION_TYPES = Ie.EXPRESSION_TYPES = Ie.EXPRESSIONWRAPPER_TYPES = Ie.EXPORTDECLARATION_TYPES =
  Ie.ENUMMEMBER_TYPES = Ie.ENUMBODY_TYPES = Ie.DECLARATION_TYPES = Ie.CONDITIONAL_TYPES = Ie.COMPLETIONSTATEMENT_TYPES = Ie.CLASS_TYPES = Ie.
  BLOCK_TYPES = Ie.BLOCKPARENT_TYPES = Ie.BINARY_TYPES = Ie.ACCESSOR_TYPES = void 0;
  var Jt = oo(), Inr = Ie.STANDARDIZED_TYPES = Jt.FLIPPED_ALIAS_KEYS.Standardized, Nnr = Ie.EXPRESSION_TYPES = Jt.FLIPPED_ALIAS_KEYS.Expression,
  knr = Ie.BINARY_TYPES = Jt.FLIPPED_ALIAS_KEYS.Binary, Dnr = Ie.SCOPABLE_TYPES = Jt.FLIPPED_ALIAS_KEYS.Scopable, Onr = Ie.BLOCKPARENT_TYPES =
  Jt.FLIPPED_ALIAS_KEYS.BlockParent, _nr = Ie.BLOCK_TYPES = Jt.FLIPPED_ALIAS_KEYS.Block, Lnr = Ie.STATEMENT_TYPES = Jt.FLIPPED_ALIAS_KEYS.Statement,
  Bnr = Ie.TERMINATORLESS_TYPES = Jt.FLIPPED_ALIAS_KEYS.Terminatorless, Mnr = Ie.COMPLETIONSTATEMENT_TYPES = Jt.FLIPPED_ALIAS_KEYS.CompletionStatement,
  Fnr = Ie.CONDITIONAL_TYPES = Jt.FLIPPED_ALIAS_KEYS.Conditional, jnr = Ie.LOOP_TYPES = Jt.FLIPPED_ALIAS_KEYS.Loop, Rnr = Ie.WHILE_TYPES = Jt.
  FLIPPED_ALIAS_KEYS.While, qnr = Ie.EXPRESSIONWRAPPER_TYPES = Jt.FLIPPED_ALIAS_KEYS.ExpressionWrapper, Unr = Ie.FOR_TYPES = Jt.FLIPPED_ALIAS_KEYS.
  For, Knr = Ie.FORXSTATEMENT_TYPES = Jt.FLIPPED_ALIAS_KEYS.ForXStatement, Vnr = Ie.FUNCTION_TYPES = Jt.FLIPPED_ALIAS_KEYS.Function, Wnr = Ie.
  FUNCTIONPARENT_TYPES = Jt.FLIPPED_ALIAS_KEYS.FunctionParent, $nr = Ie.PUREISH_TYPES = Jt.FLIPPED_ALIAS_KEYS.Pureish, Hnr = Ie.DECLARATION_TYPES =
  Jt.FLIPPED_ALIAS_KEYS.Declaration, Jnr = Ie.PATTERNLIKE_TYPES = Jt.FLIPPED_ALIAS_KEYS.PatternLike, Ynr = Ie.LVAL_TYPES = Jt.FLIPPED_ALIAS_KEYS.
  LVal, Xnr = Ie.TSENTITYNAME_TYPES = Jt.FLIPPED_ALIAS_KEYS.TSEntityName, znr = Ie.LITERAL_TYPES = Jt.FLIPPED_ALIAS_KEYS.Literal, Gnr = Ie.IMMUTABLE_TYPES =
  Jt.FLIPPED_ALIAS_KEYS.Immutable, Qnr = Ie.USERWHITESPACABLE_TYPES = Jt.FLIPPED_ALIAS_KEYS.UserWhitespacable, Znr = Ie.METHOD_TYPES = Jt.FLIPPED_ALIAS_KEYS.
  Method, ear = Ie.OBJECTMEMBER_TYPES = Jt.FLIPPED_ALIAS_KEYS.ObjectMember, tar = Ie.PROPERTY_TYPES = Jt.FLIPPED_ALIAS_KEYS.Property, sar = Ie.
  UNARYLIKE_TYPES = Jt.FLIPPED_ALIAS_KEYS.UnaryLike, rar = Ie.PATTERN_TYPES = Jt.FLIPPED_ALIAS_KEYS.Pattern, iar = Ie.CLASS_TYPES = Jt.FLIPPED_ALIAS_KEYS.
  Class, lks = Ie.IMPORTOREXPORTDECLARATION_TYPES = Jt.FLIPPED_ALIAS_KEYS.ImportOrExportDeclaration, nar = Ie.EXPORTDECLARATION_TYPES = Jt.FLIPPED_ALIAS_KEYS.
  ExportDeclaration, aar = Ie.MODULESPECIFIER_TYPES = Jt.FLIPPED_ALIAS_KEYS.ModuleSpecifier, oar = Ie.ACCESSOR_TYPES = Jt.FLIPPED_ALIAS_KEYS.
  Accessor, lar = Ie.PRIVATE_TYPES = Jt.FLIPPED_ALIAS_KEYS.Private, uar = Ie.FLOW_TYPES = Jt.FLIPPED_ALIAS_KEYS.Flow, car = Ie.FLOWTYPE_TYPES =
  Jt.FLIPPED_ALIAS_KEYS.FlowType, par = Ie.FLOWBASEANNOTATION_TYPES = Jt.FLIPPED_ALIAS_KEYS.FlowBaseAnnotation, har = Ie.FLOWDECLARATION_TYPES =
  Jt.FLIPPED_ALIAS_KEYS.FlowDeclaration, far = Ie.FLOWPREDICATE_TYPES = Jt.FLIPPED_ALIAS_KEYS.FlowPredicate, dar = Ie.ENUMBODY_TYPES = Jt.FLIPPED_ALIAS_KEYS.
  EnumBody, mar = Ie.ENUMMEMBER_TYPES = Jt.FLIPPED_ALIAS_KEYS.EnumMember, yar = Ie.JSX_TYPES = Jt.FLIPPED_ALIAS_KEYS.JSX, gar = Ie.MISCELLANEOUS_TYPES =
  Jt.FLIPPED_ALIAS_KEYS.Miscellaneous, Tar = Ie.TYPESCRIPT_TYPES = Jt.FLIPPED_ALIAS_KEYS.TypeScript, bar = Ie.TSTYPEELEMENT_TYPES = Jt.FLIPPED_ALIAS_KEYS.
  TSTypeElement, xar = Ie.TSTYPE_TYPES = Jt.FLIPPED_ALIAS_KEYS.TSType, Sar = Ie.TSBASETYPE_TYPES = Jt.FLIPPED_ALIAS_KEYS.TSBaseType, Par = Ie.
  MODULEDECLARATION_TYPES = lks;
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/toBlock.js
var N5 = g((I5) => {
  "use strict";
  Object.defineProperty(I5, "__esModule", {
    value: !0
  });
  I5.default = uks;
  var Fv = mi(), w5 = Gn();
  function uks(t, e) {
    if ((0, Fv.isBlockStatement)(t))
      return t;
    let s = [];
    return (0, Fv.isEmptyStatement)(t) ? s = [] : ((0, Fv.isStatement)(t) || ((0, Fv.isFunction)(e) ? t = (0, w5.returnStatement)(t) : t = (0, w5.
    expressionStatement)(t)), s = [t]), (0, w5.blockStatement)(s);
  }
  n(uks, "toBlock");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/ensureBlock.js
var sme = g((k5) => {
  "use strict";
  Object.defineProperty(k5, "__esModule", {
    value: !0
  });
  k5.default = pks;
  var cks = N5();
  function pks(t, e = "body") {
    let s = (0, cks.default)(t[e], t);
    return t[e] = s, s;
  }
  n(pks, "ensureBlock");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/toIdentifier.js
var O5 = g((D5) => {
  "use strict";
  Object.defineProperty(D5, "__esModule", {
    value: !0
  });
  D5.default = dks;
  var hks = Sy(), fks = xa();
  function dks(t) {
    t = t + "";
    let e = "";
    for (let s of t)
      e += (0, fks.isIdentifierChar)(s.codePointAt(0)) ? s : "-";
    return e = e.replace(/^[-0-9]+/, ""), e = e.replace(/[-\s]+(.)?/g, function(s, r) {
      return r ? r.toUpperCase() : "";
    }), (0, hks.default)(e) || (e = `_${e}`), e || "_";
  }
  n(dks, "toIdentifier");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js
var rme = g((_5) => {
  "use strict";
  Object.defineProperty(_5, "__esModule", {
    value: !0
  });
  _5.default = yks;
  var mks = O5();
  function yks(t) {
    return t = (0, mks.default)(t), (t === "eval" || t === "arguments") && (t = "_" + t), t;
  }
  n(yks, "toBindingIdentifierName");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/toComputedKey.js
var ime = g((L5) => {
  "use strict";
  Object.defineProperty(L5, "__esModule", {
    value: !0
  });
  L5.default = bks;
  var gks = mi(), Tks = Gn();
  function bks(t, e = t.key || t.property) {
    return !t.computed && (0, gks.isIdentifier)(e) && (e = (0, Tks.stringLiteral)(e.name)), e;
  }
  n(bks, "toComputedKey");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/toExpression.js
var nme = g((jv) => {
  "use strict";
  Object.defineProperty(jv, "__esModule", {
    value: !0
  });
  jv.default = void 0;
  var rb = mi(), Bar = jv.default = xks;
  function xks(t) {
    if ((0, rb.isExpressionStatement)(t) && (t = t.expression), (0, rb.isExpression)(t))
      return t;
    if ((0, rb.isClass)(t) ? t.type = "ClassExpression" : (0, rb.isFunction)(t) && (t.type = "FunctionExpression"), !(0, rb.isExpression)(t))
      throw new Error(`cannot turn ${t.type} to an expression`);
    return t;
  }
  n(xks, "toExpression");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/traverse/traverseFast.js
var F5 = g((M5) => {
  "use strict";
  Object.defineProperty(M5, "__esModule", {
    value: !0
  });
  M5.default = B5;
  var Sks = oo();
  function B5(t, e, s) {
    if (!t) return;
    let r = Sks.VISITOR_KEYS[t.type];
    if (r) {
      s = s || {}, e(t, s);
      for (let i of r) {
        let a = t[i];
        if (Array.isArray(a))
          for (let o of a)
            B5(o, e, s);
        else
          B5(a, e, s);
      }
    }
  }
  n(B5, "traverseFast");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/modifications/removeProperties.js
var R5 = g((j5) => {
  "use strict";
  Object.defineProperty(j5, "__esModule", {
    value: !0
  });
  j5.default = Aks;
  var Pks = Wp(), ame = ["tokens", "start", "end", "loc", "raw", "rawValue"], Eks = [...Pks.COMMENT_KEYS, "comments", ...ame];
  function Aks(t, e = {}) {
    let s = e.preserveComments ? ame : Eks;
    for (let i of s)
      t[i] != null && (t[i] = void 0);
    for (let i of Object.keys(t))
      i[0] === "_" && t[i] != null && (t[i] = void 0);
    let r = Object.getOwnPropertySymbols(t);
    for (let i of r)
      t[i] = null;
  }
  n(Aks, "removeProperties");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js
var U5 = g((q5) => {
  "use strict";
  Object.defineProperty(q5, "__esModule", {
    value: !0
  });
  q5.default = wks;
  var vks = F5(), Cks = R5();
  function wks(t, e) {
    return (0, vks.default)(t, Cks.default, e), t;
  }
  n(wks, "removePropertiesDeep");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/toKeyAlias.js
var lme = g((K5) => {
  "use strict";
  Object.defineProperty(K5, "__esModule", {
    value: !0
  });
  K5.default = Rf;
  var ome = mi(), Iks = Hp(), Nks = U5();
  function Rf(t, e = t.key) {
    let s;
    return t.kind === "method" ? Rf.increment() + "" : ((0, ome.isIdentifier)(e) ? s = e.name : (0, ome.isStringLiteral)(e) ? s = JSON.stringify(
    e.value) : s = JSON.stringify((0, Nks.default)((0, Iks.default)(e))), t.computed && (s = `[${s}]`), t.static && (s = `static:${s}`), s);
  }
  n(Rf, "toKeyAlias");
  Rf.uid = 0;
  Rf.increment = function() {
    return Rf.uid >= Number.MAX_SAFE_INTEGER ? Rf.uid = 0 : Rf.uid++;
  };
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/toStatement.js
var ume = g((qv) => {
  "use strict";
  Object.defineProperty(qv, "__esModule", {
    value: !0
  });
  qv.default = void 0;
  var Rv = mi(), kks = Gn(), Har = qv.default = Dks;
  function Dks(t, e) {
    if ((0, Rv.isStatement)(t))
      return t;
    let s = !1, r;
    if ((0, Rv.isClass)(t))
      s = !0, r = "ClassDeclaration";
    else if ((0, Rv.isFunction)(t))
      s = !0, r = "FunctionDeclaration";
    else if ((0, Rv.isAssignmentExpression)(t))
      return (0, kks.expressionStatement)(t);
    if (s && !t.id && (r = !1), !r) {
      if (e)
        return !1;
      throw new Error(`cannot turn ${t.type} to a statement`);
    }
    return t.type = r, t;
  }
  n(Dks, "toStatement");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/valueToNode.js
var cme = g((Uv) => {
  "use strict";
  Object.defineProperty(Uv, "__esModule", {
    value: !0
  });
  Uv.default = void 0;
  var Oks = Sy(), hn = Gn(), Xar = Uv.default = V5, _ks = Function.call.bind(Object.prototype.toString);
  function Lks(t) {
    return _ks(t) === "[object RegExp]";
  }
  n(Lks, "isRegExp");
  function Bks(t) {
    if (typeof t != "object" || t === null || Object.prototype.toString.call(t) !== "[object Object]")
      return !1;
    let e = Object.getPrototypeOf(t);
    return e === null || Object.getPrototypeOf(e) === null;
  }
  n(Bks, "isPlainObject");
  function V5(t) {
    if (t === void 0)
      return (0, hn.identifier)("undefined");
    if (t === !0 || t === !1)
      return (0, hn.booleanLiteral)(t);
    if (t === null)
      return (0, hn.nullLiteral)();
    if (typeof t == "string")
      return (0, hn.stringLiteral)(t);
    if (typeof t == "number") {
      let e;
      if (Number.isFinite(t))
        e = (0, hn.numericLiteral)(Math.abs(t));
      else {
        let s;
        Number.isNaN(t) ? s = (0, hn.numericLiteral)(0) : s = (0, hn.numericLiteral)(1), e = (0, hn.binaryExpression)("/", s, (0, hn.numericLiteral)(
        0));
      }
      return (t < 0 || Object.is(t, -0)) && (e = (0, hn.unaryExpression)("-", e)), e;
    }
    if (Lks(t)) {
      let e = t.source, s = /\/([a-z]*)$/.exec(t.toString())[1];
      return (0, hn.regExpLiteral)(e, s);
    }
    if (Array.isArray(t))
      return (0, hn.arrayExpression)(t.map(V5));
    if (Bks(t)) {
      let e = [];
      for (let s of Object.keys(t)) {
        let r;
        (0, Oks.default)(s) ? r = (0, hn.identifier)(s) : r = (0, hn.stringLiteral)(s), e.push((0, hn.objectProperty)(r, V5(t[s])));
      }
      return (0, hn.objectExpression)(e);
    }
    throw new Error("don't know how to turn this value into a node");
  }
  n(V5, "valueToNode");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js
var pme = g((W5) => {
  "use strict";
  Object.defineProperty(W5, "__esModule", {
    value: !0
  });
  W5.default = Fks;
  var Mks = Gn();
  function Fks(t, e, s = !1) {
    return t.object = (0, Mks.memberExpression)(t.object, t.property, t.computed), t.property = e, t.computed = !!s, t;
  }
  n(Fks, "appendToMemberExpression");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/modifications/inherits.js
var fme = g(($5) => {
  "use strict";
  Object.defineProperty($5, "__esModule", {
    value: !0
  });
  $5.default = Rks;
  var hme = Wp(), jks = v5();
  function Rks(t, e) {
    if (!t || !e) return t;
    for (let s of hme.INHERIT_KEYS.optional)
      t[s] == null && (t[s] = e[s]);
    for (let s of Object.keys(e))
      s[0] === "_" && s !== "__clone" && (t[s] = e[s]);
    for (let s of hme.INHERIT_KEYS.force)
      t[s] = e[s];
    return (0, jks.default)(t, e), t;
  }
  n(Rks, "inherits");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js
var dme = g((H5) => {
  "use strict";
  Object.defineProperty(H5, "__esModule", {
    value: !0
  });
  H5.default = Kks;
  var qks = Gn(), Uks = jr();
  function Kks(t, e) {
    if ((0, Uks.isSuper)(t.object))
      throw new Error("Cannot prepend node to super property access (`super.foo`).");
    return t.object = (0, qks.memberExpression)(e, t.object), t;
  }
  n(Kks, "prependToMemberExpression");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js
var mme = g((J5) => {
  "use strict";
  Object.defineProperty(J5, "__esModule", {
    value: !0
  });
  J5.default = Vks;
  function Vks(t) {
    let e = [].concat(t), s = /* @__PURE__ */ Object.create(null);
    for (; e.length; ) {
      let r = e.pop();
      if (r)
        switch (r.type) {
          case "ArrayPattern":
            e.push(...r.elements);
            break;
          case "AssignmentExpression":
          case "AssignmentPattern":
          case "ForInStatement":
          case "ForOfStatement":
            e.push(r.left);
            break;
          case "ObjectPattern":
            e.push(...r.properties);
            break;
          case "ObjectProperty":
            e.push(r.value);
            break;
          case "RestElement":
          case "UpdateExpression":
            e.push(r.argument);
            break;
          case "UnaryExpression":
            r.operator === "delete" && e.push(r.argument);
            break;
          case "Identifier":
            s[r.name] = r;
            break;
          default:
            break;
        }
    }
    return s;
  }
  n(Vks, "getAssignmentIdentifiers");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js
var ib = g((X5) => {
  "use strict";
  Object.defineProperty(X5, "__esModule", {
    value: !0
  });
  X5.default = Y5;
  var dc = mi();
  function Y5(t, e, s, r) {
    let i = [].concat(t), a = /* @__PURE__ */ Object.create(null);
    for (; i.length; ) {
      let o = i.shift();
      if (!o || r && ((0, dc.isAssignmentExpression)(o) || (0, dc.isUnaryExpression)(o) || (0, dc.isUpdateExpression)(o)))
        continue;
      if ((0, dc.isIdentifier)(o)) {
        e ? (a[o.name] = a[o.name] || []).push(o) : a[o.name] = o;
        continue;
      }
      if ((0, dc.isExportDeclaration)(o) && !(0, dc.isExportAllDeclaration)(o)) {
        (0, dc.isDeclaration)(o.declaration) && i.push(o.declaration);
        continue;
      }
      if (s) {
        if ((0, dc.isFunctionDeclaration)(o)) {
          i.push(o.id);
          continue;
        }
        if ((0, dc.isFunctionExpression)(o))
          continue;
      }
      let l = Y5.keys[o.type];
      if (l)
        for (let u = 0; u < l.length; u++) {
          let c = l[u], p = o[c];
          p && (Array.isArray(p) ? i.push(...p) : i.push(p));
        }
    }
    return a;
  }
  n(Y5, "getBindingIdentifiers");
  var Wks = {
    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"]
  };
  Y5.keys = Wks;
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js
var yme = g((Kv) => {
  "use strict";
  Object.defineProperty(Kv, "__esModule", {
    value: !0
  });
  Kv.default = void 0;
  var $ks = ib(), lor = Kv.default = Hks;
  function Hks(t, e) {
    return (0, $ks.default)(t, e, !0);
  }
  n(Hks, "getOuterBindingIdentifiers");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/retrievers/getFunctionName.js
var Tme = g((z5) => {
  "use strict";
  Object.defineProperty(z5, "__esModule", {
    value: !0
  });
  z5.default = Yks;
  var uo = mi();
  function Jks(t) {
    return (0, uo.isNullLiteral)(t) ? "null" : (0, uo.isRegExpLiteral)(t) ? `/${t.pattern}/${t.flags}` : (0, uo.isTemplateLiteral)(t) ? t.quasis.
    map((e) => e.value.raw).join("") : t.value !== void 0 ? String(t.value) : null;
  }
  n(Jks, "getNameFromLiteralId");
  function gme(t) {
    if (!t.computed || (0, uo.isLiteral)(t.key))
      return t.key;
  }
  n(gme, "getObjectMemberKey");
  function Yks(t, e) {
    if ("id" in t && t.id)
      return {
        name: t.id.name,
        originalNode: t.id
      };
    let s = "", r;
    if ((0, uo.isObjectProperty)(e, {
      value: t
    }) ? r = gme(e) : (0, uo.isObjectMethod)(t) || (0, uo.isClassMethod)(t) ? (r = gme(t), t.kind === "get" ? s = "get " : t.kind === "set" &&
    (s = "set ")) : (0, uo.isVariableDeclarator)(e, {
      init: t
    }) ? r = e.id : (0, uo.isAssignmentExpression)(e, {
      operator: "=",
      right: t
    }) && (r = e.left), !r) return null;
    let i = (0, uo.isLiteral)(r) ? Jks(r) : (0, uo.isIdentifier)(r) ? r.name : (0, uo.isPrivateName)(r) ? r.id.name : null;
    return i == null ? null : {
      name: s + i,
      originalNode: r
    };
  }
  n(Yks, "getFunctionName");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/traverse/traverse.js
var bme = g((Q5) => {
  "use strict";
  Object.defineProperty(Q5, "__esModule", {
    value: !0
  });
  Q5.default = zks;
  var Xks = oo();
  function zks(t, e, s) {
    typeof e == "function" && (e = {
      enter: e
    });
    let {
      enter: r,
      exit: i
    } = e;
    G5(t, r, i, s, []);
  }
  n(zks, "traverse");
  function G5(t, e, s, r, i) {
    let a = Xks.VISITOR_KEYS[t.type];
    if (a) {
      e && e(t, i, r);
      for (let o of a) {
        let l = t[o];
        if (Array.isArray(l))
          for (let u = 0; u < l.length; u++) {
            let c = l[u];
            c && (i.push({
              node: t,
              key: o,
              index: u
            }), G5(c, e, s, r, i), i.pop());
          }
        else l && (i.push({
          node: t,
          key: o
        }), G5(l, e, s, r, i), i.pop());
      }
      s && s(t, i, r);
    }
  }
  n(G5, "traverseSimpleImpl");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isBinding.js
var xme = g((Z5) => {
  "use strict";
  Object.defineProperty(Z5, "__esModule", {
    value: !0
  });
  Z5.default = Qks;
  var Gks = ib();
  function Qks(t, e, s) {
    if (s && t.type === "Identifier" && e.type === "ObjectProperty" && s.type === "ObjectExpression")
      return !1;
    let r = Gks.default.keys[e.type];
    if (r)
      for (let i = 0; i < r.length; i++) {
        let a = r[i], o = e[a];
        if (Array.isArray(o)) {
          if (o.includes(t)) return !0;
        } else if (o === t) return !0;
      }
    return !1;
  }
  n(Qks, "isBinding");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isLet.js
var t9 = g((e9) => {
  "use strict";
  Object.defineProperty(e9, "__esModule", {
    value: !0
  });
  e9.default = tDs;
  var Zks = mi(), eDs = Wp();
  function tDs(t) {
    return (0, Zks.isVariableDeclaration)(t) && (t.kind !== "var" || t[eDs.BLOCK_SCOPED_SYMBOL]);
  }
  n(tDs, "isLet");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isBlockScoped.js
var Pme = g((s9) => {
  "use strict";
  Object.defineProperty(s9, "__esModule", {
    value: !0
  });
  s9.default = rDs;
  var Sme = mi(), sDs = t9();
  function rDs(t) {
    return (0, Sme.isFunctionDeclaration)(t) || (0, Sme.isClassDeclaration)(t) || (0, sDs.default)(t);
  }
  n(rDs, "isBlockScoped");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isImmutable.js
var Eme = g((r9) => {
  "use strict";
  Object.defineProperty(r9, "__esModule", {
    value: !0
  });
  r9.default = aDs;
  var iDs = Av(), nDs = mi();
  function aDs(t) {
    return (0, iDs.default)(t.type, "Immutable") ? !0 : (0, nDs.isIdentifier)(t) ? t.name === "undefined" : !1;
  }
  n(aDs, "isImmutable");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isNodesEquivalent.js
var vme = g((n9) => {
  "use strict";
  Object.defineProperty(n9, "__esModule", {
    value: !0
  });
  n9.default = i9;
  var Ame = oo();
  function i9(t, e) {
    if (typeof t != "object" || typeof e != "object" || t == null || e == null)
      return t === e;
    if (t.type !== e.type)
      return !1;
    let s = Object.keys(Ame.NODE_FIELDS[t.type] || t.type), r = Ame.VISITOR_KEYS[t.type];
    for (let i of s) {
      let a = t[i], o = e[i];
      if (typeof a != typeof o)
        return !1;
      if (!(a == null && o == null)) {
        if (a == null || o == null)
          return !1;
        if (Array.isArray(a)) {
          if (!Array.isArray(o) || a.length !== o.length)
            return !1;
          for (let l = 0; l < a.length; l++)
            if (!i9(a[l], o[l]))
              return !1;
          continue;
        }
        if (typeof a == "object" && !(r != null && r.includes(i))) {
          for (let l of Object.keys(a))
            if (a[l] !== o[l])
              return !1;
          continue;
        }
        if (!i9(a, o))
          return !1;
      }
    }
    return !0;
  }
  n(i9, "isNodesEquivalent");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isReferenced.js
var Cme = g((a9) => {
  "use strict";
  Object.defineProperty(a9, "__esModule", {
    value: !0
  });
  a9.default = oDs;
  function oDs(t, e, s) {
    switch (e.type) {
      case "MemberExpression":
      case "OptionalMemberExpression":
        return e.property === t ? !!e.computed : e.object === t;
      case "JSXMemberExpression":
        return e.object === t;
      case "VariableDeclarator":
        return e.init === t;
      case "ArrowFunctionExpression":
        return e.body === t;
      case "PrivateName":
        return !1;
      case "ClassMethod":
      case "ClassPrivateMethod":
      case "ObjectMethod":
        return e.key === t ? !!e.computed : !1;
      case "ObjectProperty":
        return e.key === t ? !!e.computed : !s || s.type !== "ObjectPattern";
      case "ClassProperty":
      case "ClassAccessorProperty":
        return e.key === t ? !!e.computed : !0;
      case "ClassPrivateProperty":
        return e.key !== t;
      case "ClassDeclaration":
      case "ClassExpression":
        return e.superClass === t;
      case "AssignmentExpression":
        return e.right === t;
      case "AssignmentPattern":
        return e.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 s != null && s.source ? !1 : e.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 e.key !== t;
      case "TSEnumMember":
        return e.id !== t;
      case "TSPropertySignature":
        return e.key === t ? !!e.computed : !0;
    }
    return !0;
  }
  n(oDs, "isReferenced");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isScope.js
var wme = g((o9) => {
  "use strict";
  Object.defineProperty(o9, "__esModule", {
    value: !0
  });
  o9.default = lDs;
  var qf = mi();
  function lDs(t, e) {
    return (0, qf.isBlockStatement)(t) && ((0, qf.isFunction)(e) || (0, qf.isCatchClause)(e)) ? !1 : (0, qf.isPattern)(t) && ((0, qf.isFunction)(
    e) || (0, qf.isCatchClause)(e)) ? !0 : (0, qf.isScopable)(t);
  }
  n(lDs, "isScope");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isSpecifierDefault.js
var Nme = g((l9) => {
  "use strict";
  Object.defineProperty(l9, "__esModule", {
    value: !0
  });
  l9.default = uDs;
  var Ime = mi();
  function uDs(t) {
    return (0, Ime.isImportDefaultSpecifier)(t) || (0, Ime.isIdentifier)(t.imported || t.exported, {
      name: "default"
    });
  }
  n(uDs, "isSpecifierDefault");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isValidES3Identifier.js
var kme = g((u9) => {
  "use strict";
  Object.defineProperty(u9, "__esModule", {
    value: !0
  });
  u9.default = hDs;
  var cDs = Sy(), pDs = /* @__PURE__ */ new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "impleme\
nts", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "trans\
ient", "volatile"]);
  function hDs(t) {
    return (0, cDs.default)(t) && !pDs.has(t);
  }
  n(hDs, "isValidES3Identifier");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/validators/isVar.js
var Dme = g((c9) => {
  "use strict";
  Object.defineProperty(c9, "__esModule", {
    value: !0
  });
  c9.default = mDs;
  var fDs = mi(), dDs = Wp();
  function mDs(t) {
    return (0, fDs.isVariableDeclaration)(t, {
      kind: "var"
    }) && !t[dDs.BLOCK_SCOPED_SYMBOL];
  }
  n(mDs, "isVar");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js
var Ome = g((f9) => {
  "use strict";
  Object.defineProperty(f9, "__esModule", {
    value: !0
  });
  f9.default = Vv;
  var yDs = ib(), Uf = mi(), p9 = Gn(), h9 = o5(), gDs = Hp();
  function Vv(t, e) {
    let s = [], r = !0;
    for (let i of t)
      if ((0, Uf.isEmptyStatement)(i) || (r = !1), (0, Uf.isExpression)(i))
        s.push(i);
      else if ((0, Uf.isExpressionStatement)(i))
        s.push(i.expression);
      else if ((0, Uf.isVariableDeclaration)(i)) {
        if (i.kind !== "var") return;
        for (let a of i.declarations) {
          let o = (0, yDs.default)(a);
          for (let l of Object.keys(o))
            e.push({
              kind: i.kind,
              id: (0, gDs.default)(o[l])
            });
          a.init && s.push((0, p9.assignmentExpression)("=", a.id, a.init));
        }
        r = !0;
      } else if ((0, Uf.isIfStatement)(i)) {
        let a = i.consequent ? Vv([i.consequent], e) : (0, h9.buildUndefinedNode)(), o = i.alternate ? Vv([i.alternate], e) : (0, h9.buildUndefinedNode)();
        if (!a || !o) return;
        s.push((0, p9.conditionalExpression)(i.test, a, o));
      } else if ((0, Uf.isBlockStatement)(i)) {
        let a = Vv(i.body, e);
        if (!a) return;
        s.push(a);
      } else if ((0, Uf.isEmptyStatement)(i))
        t.indexOf(i) === 0 && (r = !0);
      else
        return;
    return r && s.push((0, h9.buildUndefinedNode)()), s.length === 1 ? s[0] : (0, p9.sequenceExpression)(s);
  }
  n(Vv, "gatherSequenceExpressions");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/converters/toSequenceExpression.js
var _me = g((d9) => {
  "use strict";
  Object.defineProperty(d9, "__esModule", {
    value: !0
  });
  d9.default = bDs;
  var TDs = Ome();
  function bDs(t, e) {
    if (!(t != null && t.length)) return;
    let s = [], r = (0, TDs.default)(t, s);
    if (r) {
      for (let i of s)
        e.push(i);
      return r;
    }
  }
  n(bDs, "toSequenceExpression");
});

// ../node_modules/@babel/traverse/node_modules/@babel/types/lib/index.js
var jr = g((Le) => {
  "use strict";
  Object.defineProperty(Le, "__esModule", {
    value: !0
  });
  var mc = {
    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(Le, "__internal__deprecationWarning", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return EOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "addComment", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return DDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "addComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ODs.default;
    }, "get")
  });
  Object.defineProperty(Le, "appendToMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return JDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "assertNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return EDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "buildMatchMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return POs.default;
    }, "get")
  });
  Object.defineProperty(Le, "clone", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return wDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "cloneDeep", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return IDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "cloneDeepWithoutLoc", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return NDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "cloneNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return CDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "cloneWithoutLoc", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return kDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "createFlowUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Lme.default;
    }, "get")
  });
  Object.defineProperty(Le, "createTSUnionType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return vDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "createTypeAnnotationBasedOnTypeof", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ADs.default;
    }, "get")
  });
  Object.defineProperty(Le, "createUnionTypeAnnotation", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Lme.default;
    }, "get")
  });
  Object.defineProperty(Le, "ensureBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return jDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "getAssignmentIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return ZDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "getBindingIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return eOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "getFunctionName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return sOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "getOuterBindingIdentifiers", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return tOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "inheritInnerComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return _Ds.default;
    }, "get")
  });
  Object.defineProperty(Le, "inheritLeadingComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return LDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "inheritTrailingComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return MDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "inherits", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return YDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "inheritsComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return BDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "is", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return nOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isBinding", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return aOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isBlockScoped", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return oOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isImmutable", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return lOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isLet", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return uOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return cOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isNodesEquivalent", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return pOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isPlaceholderType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return hOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isReferenced", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return fOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isScope", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return dOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isSpecifierDefault", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return mOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isType", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return yOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isValidES3Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return gOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isValidIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return TOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "isVar", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return bOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "matchesPattern", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return xOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "prependToMemberExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return XDs.default;
    }, "get")
  });
  Le.react = void 0;
  Object.defineProperty(Le, "removeComments", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return FDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "removeProperties", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return zDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "removePropertiesDeep", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return GDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "removeTypeDuplicates", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return QDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "shallowEqual", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return iOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "toBindingIdentifierName", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return RDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "toBlock", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return qDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "toComputedKey", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return UDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "toExpression", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return KDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "toIdentifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return VDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "toKeyAlias", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return WDs.default;
    }, "get")
  });
  Object.defineProperty(Le, "toStatement", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return $Ds.default;
    }, "get")
  });
  Object.defineProperty(Le, "traverse", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return Wv.default;
    }, "get")
  });
  Object.defineProperty(Le, "traverseFast", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return rOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "validate", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return SOs.default;
    }, "get")
  });
  Object.defineProperty(Le, "valueToNode", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return HDs.default;
    }, "get")
  });
  var xDs = Zfe(), SDs = ede(), PDs = Ode(), EDs = _de(), m9 = Lde();
  Object.keys(m9).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === m9[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return m9[t];
      }, "get")
    });
  });
  var ADs = Bde(), Lme = jde(), vDs = Kde(), y9 = Gn();
  Object.keys(y9).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === y9[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return y9[t];
      }, "get")
    });
  });
  var g9 = Vde();
  Object.keys(g9).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === g9[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return g9[t];
      }, "get")
    });
  });
  var T9 = o5();
  Object.keys(T9).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === T9[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return T9[t];
      }, "get")
    });
  });
  var CDs = Hp(), wDs = Xde(), IDs = zde(), NDs = Gde(), kDs = Qde(), DDs = Zde(), ODs = m5(), _Ds = b5(), LDs = S5(), BDs = v5(), MDs = E5(),
  FDs = eme(), b9 = tme();
  Object.keys(b9).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === b9[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return b9[t];
      }, "get")
    });
  });
  var x9 = Wp();
  Object.keys(x9).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === x9[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return x9[t];
      }, "get")
    });
  });
  var jDs = sme(), RDs = rme(), qDs = N5(), UDs = ime(), KDs = nme(), VDs = O5(), WDs = lme(), $Ds = ume(), HDs = cme(), S9 = oo();
  Object.keys(S9).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === S9[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return S9[t];
      }, "get")
    });
  });
  var JDs = pme(), YDs = fme(), XDs = dme(), zDs = R5(), GDs = U5(), QDs = s5(), ZDs = mme(), eOs = ib(), tOs = yme(), sOs = Tme(), Wv = bme();
  Object.keys(Wv).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === Wv[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return Wv[t];
      }, "get")
    });
  });
  var rOs = F5(), iOs = Pv(), nOs = xy(), aOs = xme(), oOs = Pme(), lOs = Eme(), uOs = t9(), cOs = ZR(), pOs = vme(), hOs = OR(), fOs = Cme(),
  dOs = wme(), mOs = Nme(), yOs = Av(), gOs = kme(), TOs = Sy(), bOs = Dme(), xOs = CR(), SOs = Iv(), POs = IR(), P9 = mi();
  Object.keys(P9).forEach(function(t) {
    t === "default" || t === "__esModule" || Object.prototype.hasOwnProperty.call(mc, t) || t in Le && Le[t] === P9[t] || Object.defineProperty(
    Le, t, {
      enumerable: !0,
      get: /* @__PURE__ */ n(function() {
        return P9[t];
      }, "get")
    });
  });
  var EOs = YT(), qor = Le.react = {
    isReactComponent: xDs.default,
    isCompatTag: SDs.default,
    buildChildren: PDs.default
  };
  Le.toSequenceExpression = _me().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-releas\
e instead!");
});

// ../node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js
var A9 = g((ki) => {
  "use strict";
  Object.defineProperty(ki, "__esModule", {
    value: !0
  });
  ki.isBindingIdentifier = HOs;
  ki.isBlockScoped = GOs;
  ki.isExpression = YOs;
  ki.isFlow = s2s;
  ki.isForAwaitStatement = n2s;
  ki.isGenerated = e2s;
  ki.isPure = t2s;
  ki.isReferenced = zOs;
  ki.isReferencedIdentifier = WOs;
  ki.isReferencedMemberExpression = $Os;
  ki.isRestProperty = r2s;
  ki.isScope = XOs;
  ki.isSpreadProperty = i2s;
  ki.isStatement = JOs;
  ki.isUser = ZOs;
  ki.isVar = QOs;
  var AOs = jr(), {
    isBinding: vOs,
    isBlockScoped: COs,
    isExportDeclaration: wOs,
    isExpression: IOs,
    isFlow: NOs,
    isForStatement: kOs,
    isForXStatement: DOs,
    isIdentifier: Bme,
    isImportDeclaration: OOs,
    isImportSpecifier: _Os,
    isJSXIdentifier: LOs,
    isJSXMemberExpression: BOs,
    isMemberExpression: MOs,
    isRestElement: Mme,
    isReferenced: E9,
    isScope: FOs,
    isStatement: jOs,
    isVar: ROs,
    isVariableDeclaration: qOs,
    react: UOs,
    isForOfStatement: KOs
  } = AOs, {
    isCompatTag: VOs
  } = UOs;
  function WOs(t) {
    let {
      node: e,
      parent: s
    } = this;
    if (!Bme(e, t) && !BOs(s, t))
      if (LOs(e, t)) {
        if (VOs(e.name)) return !1;
      } else
        return !1;
    return E9(e, s, this.parentPath.parent);
  }
  n(WOs, "isReferencedIdentifier");
  function $Os() {
    let {
      node: t,
      parent: e
    } = this;
    return MOs(t) && E9(t, e);
  }
  n($Os, "isReferencedMemberExpression");
  function HOs() {
    let {
      node: t,
      parent: e
    } = this, s = this.parentPath.parent;
    return Bme(t) && vOs(t, e, s);
  }
  n(HOs, "isBindingIdentifier");
  function JOs() {
    let {
      node: t,
      parent: e
    } = this;
    return jOs(t) ? !(qOs(t) && (DOs(e, {
      left: t
    }) || kOs(e, {
      init: t
    }))) : !1;
  }
  n(JOs, "isStatement");
  function YOs() {
    return this.isIdentifier() ? this.isReferencedIdentifier() : IOs(this.node);
  }
  n(YOs, "isExpression");
  function XOs() {
    return FOs(this.node, this.parent);
  }
  n(XOs, "isScope");
  function zOs() {
    return E9(this.node, this.parent);
  }
  n(zOs, "isReferenced");
  function GOs() {
    return COs(this.node);
  }
  n(GOs, "isBlockScoped");
  function QOs() {
    return ROs(this.node);
  }
  n(QOs, "isVar");
  function ZOs() {
    return this.node && !!this.node.loc;
  }
  n(ZOs, "isUser");
  function e2s() {
    return !this.isUser();
  }
  n(e2s, "isGenerated");
  function t2s(t) {
    return this.scope.isPure(this.node, t);
  }
  n(t2s, "isPure");
  function s2s() {
    let {
      node: t
    } = this;
    return NOs(t) ? !0 : OOs(t) ? t.importKind === "type" || t.importKind === "typeof" : wOs(t) ? t.exportKind === "type" : _Os(t) ? t.importKind ===
    "type" || t.importKind === "typeof" : !1;
  }
  n(s2s, "isFlow");
  function r2s() {
    var t;
    return Mme(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectPattern());
  }
  n(r2s, "isRestProperty");
  function i2s() {
    var t;
    return Mme(this.node) && ((t = this.parentPath) == null ? void 0 : t.isObjectExpression());
  }
  n(i2s, "isSpreadProperty");
  function n2s() {
    return KOs(this.node, {
      await: !0
    });
  }
  n(n2s, "isForAwaitStatement");
  ki.isExistentialTypeParam = /* @__PURE__ */ n(function() {
    throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.");
  }, "isExistentialTypeParam"), ki.isNumericLiteralTypeAnnotation = /* @__PURE__ */ n(function() {
    throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.");
  }, "isNumericLiteralTypeAnnotation");
});

// ../node_modules/@babel/traverse/lib/visitors.js
var ab = g((Vf) => {
  "use strict";
  Object.defineProperty(Vf, "__esModule", {
    value: !0
  });
  Vf.environmentVisitor = f2s;
  Vf.explode = Jme;
  Vf.isExplodedVisitor = Hme;
  Vf.merge = Xme;
  Vf.verify = Yme;
  var $me = PR(), a2s = A9(), o2s = jr(), Fme = Ll(), {
    DEPRECATED_KEYS: jme,
    DEPRECATED_ALIASES: Rme,
    FLIPPED_ALIAS_KEYS: qme,
    TYPES: l2s,
    __internal__deprecationWarning: Ume
  } = o2s;
  function u2s(t) {
    return t in $me;
  }
  n(u2s, "isVirtualType");
  function Hme(t) {
    return t?._exploded;
  }
  n(Hme, "isExplodedVisitor");
  function Jme(t) {
    if (Hme(t)) return t;
    t._exploded = !0;
    for (let e of Object.keys(t)) {
      if (Kf(e)) continue;
      let s = e.split("|");
      if (s.length === 1) continue;
      let r = t[e];
      delete t[e];
      for (let i of s)
        t[i] = r;
    }
    Yme(t), delete t.__esModule, c2s(t), Wme(t);
    for (let e of Object.keys(t)) {
      if (Kf(e) || !u2s(e)) continue;
      let s = t[e];
      for (let i of Object.keys(s))
        s[i] = p2s(e, s[i]);
      delete t[e];
      let r = $me[e];
      if (r !== null)
        for (let i of r)
          t[i] ? nb(t[i], s) : t[i] = s;
      else
        nb(t, s);
    }
    for (let e of Object.keys(t)) {
      if (Kf(e)) continue;
      let s = qme[e];
      if (e in jme) {
        let i = jme[e];
        Ume(e, i, "Visitor "), s = [i];
      } else if (e in Rme) {
        let i = Rme[e];
        Ume(e, i, "Visitor "), s = qme[i];
      }
      if (!s) continue;
      let r = t[e];
      delete t[e];
      for (let i of s) {
        let a = t[i];
        a ? nb(a, r) : t[i] = Object.assign({}, r);
      }
    }
    for (let e of Object.keys(t))
      Kf(e) || Wme(t[e]);
    return t;
  }
  n(Jme, "explode$1");
  function Yme(t) {
    if (!t._verified) {
      if (typeof t == "function")
        throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Functi\
on }`?");
      for (let e of Object.keys(t)) {
        if ((e === "enter" || e === "exit") && Kme(e, t[e]), Kf(e)) continue;
        if (!l2s.includes(e))
          throw new Error(`You gave us a visitor for the node type ${e} but it's not a valid type in @babel/traverse 7.26.5`);
        let s = t[e];
        if (typeof s == "object")
          for (let r of Object.keys(s))
            if (r === "enter" || r === "exit")
              Kme(`${e}.${r}`, s[r]);
            else
              throw new Error(`You passed \`traverse()\` a visitor object with the property ${e} that has the invalid property ${r}`);
      }
      t._verified = !0;
    }
  }
  n(Yme, "verify$1");
  function Kme(t, e) {
    let s = [].concat(e);
    for (let r of s)
      if (typeof r != "function")
        throw new TypeError(`Non-function found defined in ${t} with type ${typeof r}`);
  }
  n(Kme, "validateVisitorMethods");
  function Xme(t, e = [], s) {
    let r = {
      _verified: !0,
      _exploded: !0
    };
    Object.defineProperty(r, "_exploded", {
      enumerable: !1
    }), Object.defineProperty(r, "_verified", {
      enumerable: !1
    });
    for (let i = 0; i < t.length; i++) {
      let a = Jme(t[i]), o = e[i], l = a;
      (o || s) && (l = Vme(l, o, s)), nb(r, l);
      for (let u of Object.keys(a)) {
        if (Kf(u)) continue;
        let c = a[u];
        (o || s) && (c = Vme(c, o, s));
        let p = r[u] || (r[u] = {});
        nb(p, c);
      }
    }
    return r;
  }
  n(Xme, "merge");
  function Vme(t, e, s) {
    let r = {};
    for (let i of ["enter", "exit"]) {
      let a = t[i];
      Array.isArray(a) && (a = a.map(function(o) {
        let l = o;
        return e && (l = /* @__PURE__ */ n(function(u) {
          o.call(e, u, e);
        }, "newFn")), s && (l = s(e?.key, i, l)), l !== o && (l.toString = () => o.toString()), l;
      }), r[i] = a);
    }
    return r;
  }
  n(Vme, "wrapWithStateOrWrapper");
  function c2s(t) {
    for (let e of Object.keys(t)) {
      if (Kf(e)) continue;
      let s = t[e];
      typeof s == "function" && (t[e] = {
        enter: s
      });
    }
  }
  n(c2s, "ensureEntranceObjects");
  function Wme(t) {
    t.enter && !Array.isArray(t.enter) && (t.enter = [t.enter]), t.exit && !Array.isArray(t.exit) && (t.exit = [t.exit]);
  }
  n(Wme, "ensureCallbackArrays");
  function p2s(t, e) {
    let s = `is${t}`, r = a2s[s], i = /* @__PURE__ */ n(function(a) {
      if (r.call(a))
        return e.apply(this, arguments);
    }, "newFn");
    return i.toString = () => e.toString(), i;
  }
  n(p2s, "wrapCheck");
  function Kf(t) {
    return t[0] === "_" || t === "enter" || t === "exit" || t === "shouldSkip" || t === "denylist" || t === "noScope" || t === "skipKeys" ||
    t === "blacklist";
  }
  n(Kf, "shouldIgnoreKey");
  function nb(t, e) {
    for (let s of ["enter", "exit"])
      e[s] && (t[s] = [].concat(t[s] || [], e[s]));
  }
  n(nb, "mergePair");
  var h2s = {
    FunctionParent(t) {
      t.isArrowFunctionExpression() || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() :
      Fme.requeueComputedKeyAndDecorators.call(t)));
    },
    Property(t) {
      t.isObjectProperty() || (t.skip(), t.requeueComputedKeyAndDecorators ? t.requeueComputedKeyAndDecorators() : Fme.requeueComputedKeyAndDecorators.
      call(t));
    }
  };
  function f2s(t) {
    return Xme([h2s, t]);
  }
  n(f2s, "environmentVisitor");
});

// ../node_modules/@babel/traverse/lib/scope/lib/renamer.js
var zme = g((Hv) => {
  "use strict";
  Object.defineProperty(Hv, "__esModule", {
    value: !0
  });
  Hv.default = void 0;
  var $v = jr(), d2s = $v, m2s = Jv(), y2s = ab(), g2s = Ll(), {
    getAssignmentIdentifiers: T2s
  } = d2s, b2s = {
    ReferencedIdentifier({
      node: t
    }, e) {
      t.name === e.oldName && (t.name = e.newName);
    },
    Scope(t, e) {
      t.scope.bindingIdentifierEquals(e.oldName, e.binding.identifier) || (t.skip(), t.isMethod() && (t.requeueComputedKeyAndDecorators ? t.
      requeueComputedKeyAndDecorators() : g2s.requeueComputedKeyAndDecorators.call(t)));
    },
    ObjectProperty({
      node: t,
      scope: e
    }, s) {
      let {
        name: r
      } = t.key;
      if (t.shorthand && (r === s.oldName || r === s.newName) && e.getBindingIdentifier(r) === s.binding.identifier) {
        t.shorthand = !1;
        {
          var i;
          (i = t.extra) != null && i.shorthand && (t.extra.shorthand = !1);
        }
      }
    },
    "AssignmentExpression|Declaration|VariableDeclarator"(t, e) {
      if (t.isVariableDeclaration()) return;
      let s = t.isAssignmentExpression() ? T2s(t.node) : t.getOuterBindingIdentifiers();
      for (let r in s)
        r === e.oldName && (s[r].name = e.newName);
    }
  }, v9 = class {
    static {
      n(this, "Renamer");
    }
    constructor(e, s, r) {
      this.newName = r, this.oldName = s, this.binding = e;
    }
    maybeConvertFromExportDeclaration(e) {
      let s = e.parentPath;
      if (s.isExportDeclaration()) {
        if (s.isExportDefaultDeclaration()) {
          let {
            declaration: r
          } = s.node;
          if ($v.isDeclaration(r) && !r.id)
            return;
        }
        s.isExportAllDeclaration() || s.splitExportDeclaration();
      }
    }
    maybeConvertFromClassFunctionDeclaration(e) {
      return e;
    }
    maybeConvertFromClassFunctionExpression(e) {
      return e;
    }
    rename() {
      let {
        binding: e,
        oldName: s,
        newName: r
      } = this, {
        scope: i,
        path: a
      } = e, o = a.find((c) => c.isDeclaration() || c.isFunctionExpression() || c.isClassExpression());
      o && o.getOuterBindingIdentifiers()[s] === e.identifier && this.maybeConvertFromExportDeclaration(o);
      let l = arguments[0] || i.block, u = {
        discriminant: !0
      };
      $v.isMethod(l) && (l.computed && (u.key = !0), $v.isObjectMethod(l) || (u.decorators = !0)), (0, m2s.traverseNode)(l, (0, y2s.explode)(
      b2s), i, this, i.path, u), arguments[0] || (i.removeOwnBinding(s), i.bindings[r] = e, this.binding.identifier.name = r), o && (this.maybeConvertFromClassFunctionDeclaration(
      a), this.maybeConvertFromClassFunctionExpression(a));
    }
  };
  Hv.default = v9;
});

// ../node_modules/@babel/traverse/lib/scope/binding.js
var Gme = g((Yv) => {
  "use strict";
  Object.defineProperty(Yv, "__esModule", {
    value: !0
  });
  Yv.default = void 0;
  var C9 = class {
    static {
      n(this, "Binding");
    }
    constructor({
      identifier: e,
      scope: s,
      path: r,
      kind: i
    }) {
      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 = e, this.scope = s, this.path = r, this.kind = i,
      (i === "var" || i === "hoisted") && x2s(r) && this.reassign(r), this.clearValue();
    }
    deoptValue() {
      this.clearValue(), this.hasDeoptedValue = !0;
    }
    setValue(e) {
      this.hasDeoptedValue || (this.hasValue = !0, this.value = e);
    }
    clearValue() {
      this.hasDeoptedValue = !1, this.hasValue = !1, this.value = null;
    }
    reassign(e) {
      this.constant = !1, !this.constantViolations.includes(e) && this.constantViolations.push(e);
    }
    reference(e) {
      this.referencePaths.includes(e) || (this.referenced = !0, this.references++, this.referencePaths.push(e));
    }
    dereference() {
      this.references--, this.referenced = !!this.references;
    }
  };
  Yv.default = C9;
  function x2s(t) {
    for (let {
      parentPath: e,
      key: s
    } = t; e; {
      parentPath: e,
      key: s
    } = e) {
      if (e.isFunctionParent()) return !1;
      if (e.isWhile() || e.isForXStatement() || e.isForStatement() && s === "body")
        return !0;
    }
    return !1;
  }
  n(x2s, "isDeclaredInLoop");
});

// ../node_modules/@babel/traverse/lib/cache.js
var Wf = g((Ta) => {
  "use strict";
  Object.defineProperty(Ta, "__esModule", {
    value: !0
  });
  Ta.clear = P2s;
  Ta.clearPath = Qme;
  Ta.clearScope = Zme;
  Ta.getCachedPaths = E2s;
  Ta.getOrCreateCachedPaths = A2s;
  Ta.scope = Ta.path = void 0;
  var Xv = Ta.path = /* @__PURE__ */ new WeakMap(), S2s = Ta.scope = /* @__PURE__ */ new WeakMap();
  function P2s() {
    Qme(), Zme();
  }
  n(P2s, "clear");
  function Qme() {
    Ta.path = Xv = /* @__PURE__ */ new WeakMap();
  }
  n(Qme, "clearPath");
  function Zme() {
    Ta.scope = S2s = /* @__PURE__ */ new WeakMap();
  }
  n(Zme, "clearScope");
  var w9 = Object.freeze({});
  function E2s(t, e) {
    var s, r;
    return t = null, (s = Xv.get((r = t) != null ? r : w9)) == null ? void 0 : s.get(e);
  }
  n(E2s, "getCachedPaths");
  function A2s(t, e) {
    var s, r;
    t = null;
    let i = Xv.get((s = t) != null ? s : w9);
    i || Xv.set((r = t) != null ? r : w9, i = /* @__PURE__ */ new WeakMap());
    let a = i.get(e);
    return a || i.set(e, a = /* @__PURE__ */ new Map()), a;
  }
  n(A2s, "getOrCreateCachedPaths");
});

// ../node_modules/@babel/traverse/lib/scope/index.js
var D9 = g((Gv) => {
  "use strict";
  Object.defineProperty(Gv, "__esModule", {
    value: !0
  });
  Gv.default = void 0;
  var v2s = zme(), C2s = ob(), w2s = Gme(), I2s = md(), lye = jr(), N2s = lye, eye = Wf(), k2s = ab(), {
    NOT_LOCAL_BINDING: tye,
    assignmentExpression: D2s,
    callExpression: sye,
    cloneNode: rye,
    getBindingIdentifiers: uye,
    identifier: Hf,
    isArrayExpression: cye,
    isBinary: O2s,
    isCallExpression: iye,
    isClass: _2s,
    isClassBody: L2s,
    isClassDeclaration: B2s,
    isExportAllDeclaration: pye,
    isExportDefaultDeclaration: M2s,
    isExportNamedDeclaration: I9,
    isFunctionDeclaration: F2s,
    isIdentifier: $f,
    isImportDeclaration: N9,
    isLiteral: j2s,
    isMemberExpression: R2s,
    isMethod: q2s,
    isModuleSpecifier: U2s,
    isNullLiteral: K2s,
    isObjectExpression: V2s,
    isProperty: W2s,
    isPureish: $2s,
    isRegExpLiteral: H2s,
    isSuper: J2s,
    isTaggedTemplateExpression: Y2s,
    isTemplateLiteral: hye,
    isThisExpression: nye,
    isUnaryExpression: X2s,
    isVariableDeclaration: z2s,
    expressionStatement: G2s,
    matchesPattern: aye,
    memberExpression: k9,
    numericLiteral: Q2s,
    toIdentifier: Z2s,
    variableDeclaration: e_s,
    variableDeclarator: t_s,
    isRecordExpression: s_s,
    isTupleExpression: r_s,
    isObjectProperty: i_s,
    isTopicReference: oye,
    isMetaProperty: n_s,
    isPrivateName: a_s,
    isExportDeclaration: o_s,
    buildUndefinedNode: l_s,
    sequenceExpression: u_s
  } = lye;
  function kr(t, e) {
    switch (t?.type) {
      default:
        if (N9(t) || o_s(t)) {
          var s;
          if ((pye(t) || I9(t) || N9(t)) && t.source)
            kr(t.source, e);
          else if ((I9(t) || N9(t)) && (s = t.specifiers) != null && s.length)
            for (let r of t.specifiers) kr(r, e);
          else (M2s(t) || I9(t)) && t.declaration && kr(t.declaration, e);
        } else U2s(t) ? kr(t.local, e) : j2s(t) && !K2s(t) && !H2s(t) && !hye(t) && e.push(t.value);
        break;
      case "MemberExpression":
      case "OptionalMemberExpression":
      case "JSXMemberExpression":
        kr(t.object, e), kr(t.property, e);
        break;
      case "Identifier":
      case "JSXIdentifier":
        e.push(t.name);
        break;
      case "CallExpression":
      case "OptionalCallExpression":
      case "NewExpression":
        kr(t.callee, e);
        break;
      case "ObjectExpression":
      case "ObjectPattern":
        for (let r of t.properties)
          kr(r, e);
        break;
      case "SpreadElement":
      case "RestElement":
        kr(t.argument, e);
        break;
      case "ObjectProperty":
      case "ObjectMethod":
      case "ClassProperty":
      case "ClassMethod":
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
        kr(t.key, e);
        break;
      case "ThisExpression":
        e.push("this");
        break;
      case "Super":
        e.push("super");
        break;
      case "Import":
        e.push("import");
        break;
      case "DoExpression":
        e.push("do");
        break;
      case "YieldExpression":
        e.push("yield"), kr(t.argument, e);
        break;
      case "AwaitExpression":
        e.push("await"), kr(t.argument, e);
        break;
      case "AssignmentExpression":
        kr(t.left, e);
        break;
      case "VariableDeclarator":
        kr(t.id, e);
        break;
      case "FunctionExpression":
      case "FunctionDeclaration":
      case "ClassExpression":
      case "ClassDeclaration":
        kr(t.id, e);
        break;
      case "PrivateName":
        kr(t.id, e);
        break;
      case "ParenthesizedExpression":
        kr(t.expression, e);
        break;
      case "UnaryExpression":
      case "UpdateExpression":
        kr(t.argument, e);
        break;
      case "MetaProperty":
        kr(t.meta, e), kr(t.property, e);
        break;
      case "JSXElement":
        kr(t.openingElement, e);
        break;
      case "JSXOpeningElement":
        kr(t.name, e);
        break;
      case "JSXFragment":
        kr(t.openingFragment, e);
        break;
      case "JSXOpeningFragment":
        e.push("Fragment");
        break;
      case "JSXNamespacedName":
        kr(t.namespace, e), kr(t.name, e);
        break;
    }
  }
  n(kr, "gatherNodeParts");
  var zv = {
    ForStatement(t) {
      let e = t.get("init");
      if (e.isVar()) {
        let {
          scope: s
        } = t;
        (s.getFunctionParent() || s.getProgramParent()).registerBinding("var", e);
      }
    },
    Declaration(t) {
      if (t.isBlockScoped() || t.isImportDeclaration() || t.isExportDeclaration()) return;
      (t.scope.getFunctionParent() || t.scope.getProgramParent()).registerDeclaration(t);
    },
    ImportDeclaration(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    ReferencedIdentifier(t, e) {
      e.references.push(t);
    },
    ForXStatement(t, e) {
      let s = t.get("left");
      if (s.isPattern() || s.isIdentifier())
        e.constantViolations.push(t);
      else if (s.isVar()) {
        let {
          scope: r
        } = t;
        (r.getFunctionParent() || r.getProgramParent()).registerBinding("var", s);
      }
    },
    ExportDeclaration: {
      exit(t) {
        let {
          node: e,
          scope: s
        } = t;
        if (pye(e)) return;
        let r = e.declaration;
        if (B2s(r) || F2s(r)) {
          let i = r.id;
          if (!i) return;
          let a = s.getBinding(i.name);
          a?.reference(t);
        } else if (z2s(r))
          for (let i of r.declarations)
            for (let a of Object.keys(uye(i))) {
              let o = s.getBinding(a);
              o?.reference(t);
            }
      }
    },
    LabeledStatement(t) {
      t.scope.getBlockParent().registerDeclaration(t);
    },
    AssignmentExpression(t, e) {
      e.assignments.push(t);
    },
    UpdateExpression(t, e) {
      e.constantViolations.push(t);
    },
    UnaryExpression(t, e) {
      t.node.operator === "delete" && e.constantViolations.push(t);
    },
    BlockScoped(t) {
      let e = t.scope;
      if (e.path === t && (e = e.parent), e.getBlockParent().registerDeclaration(t), t.isClassDeclaration() && t.node.id) {
        let i = t.node.id.name;
        t.scope.bindings[i] = t.scope.parent.getBinding(i);
      }
    },
    CatchClause(t) {
      t.scope.registerBinding("let", t);
    },
    Function(t) {
      let e = t.get("params");
      for (let s of e)
        t.scope.registerBinding("param", s);
      t.isFunctionExpression() && t.node.id && !t.node.id[tye] && t.scope.registerBinding("local", t.get("id"), t);
    },
    ClassExpression(t) {
      t.node.id && !t.node.id[tye] && t.scope.registerBinding("local", t.get("id"), t);
    },
    TSTypeAnnotation(t) {
      t.skip();
    }
  }, c_s = 0, Vo = class t {
    static {
      n(this, "Scope");
    }
    constructor(e) {
      this.uid = void 0, this.path = void 0, this.block = void 0, this.inited = void 0, this.labels = 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;
      let {
        node: s
      } = e, r = eye.scope.get(s);
      if (r?.path === e)
        return r;
      eye.scope.set(s, this), this.uid = c_s++, this.block = s, this.path = e, this.labels = /* @__PURE__ */ new Map(), this.inited = !1;
    }
    get parent() {
      var e;
      let s, r = this.path;
      do {
        var i;
        let a = r.key === "key" || r.listKey === "decorators";
        r = r.parentPath, a && r.isMethod() && (r = r.parentPath), (i = r) != null && i.isScope() && (s = r);
      } while (r && !s);
      return (e = s) == null ? void 0 : e.scope;
    }
    generateDeclaredUidIdentifier(e) {
      let s = this.generateUidIdentifier(e);
      return this.push({
        id: s
      }), rye(s);
    }
    generateUidIdentifier(e) {
      return Hf(this.generateUid(e));
    }
    generateUid(e = "temp") {
      e = Z2s(e).replace(/^_+/, "").replace(/\d+$/g, "");
      let s, r = 1;
      do
        s = `_${e}`, r > 1 && (s += r), r++;
      while (this.hasLabel(s) || this.hasBinding(s) || this.hasGlobal(s) || this.hasReference(s));
      let i = this.getProgramParent();
      return i.references[s] = !0, i.uids[s] = !0, s;
    }
    generateUidBasedOnNode(e, s) {
      let r = [];
      kr(e, r);
      let i = r.join("$");
      return i = i.replace(/^_/, "") || s || "ref", this.generateUid(i.slice(0, 20));
    }
    generateUidIdentifierBasedOnNode(e, s) {
      return Hf(this.generateUidBasedOnNode(e, s));
    }
    isStatic(e) {
      if (nye(e) || J2s(e) || oye(e))
        return !0;
      if ($f(e)) {
        let s = this.getBinding(e.name);
        return s ? s.constant : this.hasBinding(e.name);
      }
      return !1;
    }
    maybeGenerateMemoised(e, s) {
      if (this.isStatic(e))
        return null;
      {
        let r = this.generateUidIdentifierBasedOnNode(e);
        return s ? r : (this.push({
          id: r
        }), rye(r));
      }
    }
    checkBlockScopedCollisions(e, s, r, i) {
      if (s === "param" || e.kind === "local") return;
      if (s === "let" || e.kind === "let" || e.kind === "const" || e.kind === "module" || e.kind === "param" && s === "const")
        throw this.path.hub.buildError(i, `Duplicate declaration "${r}"`, TypeError);
    }
    rename(e, s) {
      let r = this.getBinding(e);
      r && (s || (s = this.generateUidIdentifier(e).name), new v2s.default(r, e, s).rename(arguments[2]));
    }
    dump() {
      let e = "-".repeat(60);
      console.log(e);
      let s = this;
      do {
        console.log("#", s.block.type);
        for (let r of Object.keys(s.bindings)) {
          let i = s.bindings[r];
          console.log(" -", r, {
            constant: i.constant,
            references: i.references,
            violations: i.constantViolations.length,
            kind: i.kind
          });
        }
      } while (s = s.parent);
      console.log(e);
    }
    hasLabel(e) {
      return !!this.getLabel(e);
    }
    getLabel(e) {
      return this.labels.get(e);
    }
    registerLabel(e) {
      this.labels.set(e.node.label.name, e);
    }
    registerDeclaration(e) {
      if (e.isLabeledStatement())
        this.registerLabel(e);
      else if (e.isFunctionDeclaration())
        this.registerBinding("hoisted", e.get("id"), e);
      else if (e.isVariableDeclaration()) {
        let s = e.get("declarations"), {
          kind: r
        } = e.node;
        for (let i of s)
          this.registerBinding(r === "using" || r === "await using" ? "const" : r, i);
      } else if (e.isClassDeclaration()) {
        if (e.node.declare) return;
        this.registerBinding("let", e);
      } else if (e.isImportDeclaration()) {
        let s = e.node.importKind === "type" || e.node.importKind === "typeof", r = e.get("specifiers");
        for (let i of r) {
          let a = s || i.isImportSpecifier() && (i.node.importKind === "type" || i.node.importKind === "typeof");
          this.registerBinding(a ? "unknown" : "module", i);
        }
      } else if (e.isExportDeclaration()) {
        let s = e.get("declaration");
        (s.isClassDeclaration() || s.isFunctionDeclaration() || s.isVariableDeclaration()) && this.registerDeclaration(s);
      } else
        this.registerBinding("unknown", e);
    }
    buildUndefinedNode() {
      return l_s();
    }
    registerConstantViolation(e) {
      let s = e.getAssignmentIdentifiers();
      for (let i of Object.keys(s)) {
        var r;
        (r = this.getBinding(i)) == null || r.reassign(e);
      }
    }
    registerBinding(e, s, r = s) {
      if (!e) throw new ReferenceError("no `kind`");
      if (s.isVariableDeclaration()) {
        let o = s.get("declarations");
        for (let l of o)
          this.registerBinding(e, l);
        return;
      }
      let i = this.getProgramParent(), a = s.getOuterBindingIdentifiers(!0);
      for (let o of Object.keys(a)) {
        i.references[o] = !0;
        for (let l of a[o]) {
          let u = this.getOwnBinding(o);
          if (u) {
            if (u.identifier === l) continue;
            this.checkBlockScopedCollisions(u, e, o, l);
          }
          u ? u.reassign(r) : this.bindings[o] = new w2s.default({
            identifier: l,
            scope: this,
            path: r,
            kind: e
          });
        }
      }
    }
    addGlobal(e) {
      this.globals[e.name] = e;
    }
    hasUid(e) {
      let s = this;
      do
        if (s.uids[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasGlobal(e) {
      let s = this;
      do
        if (s.globals[e]) return !0;
      while (s = s.parent);
      return !1;
    }
    hasReference(e) {
      return !!this.getProgramParent().references[e];
    }
    isPure(e, s) {
      if ($f(e)) {
        let o = this.getBinding(e.name);
        return o ? s ? o.constant : !0 : !1;
      } else {
        if (nye(e) || n_s(e) || oye(e) || a_s(e))
          return !0;
        if (_2s(e)) {
          var r;
          return e.superClass && !this.isPure(e.superClass, s) || ((r = e.decorators) == null ? void 0 : r.length) > 0 ? !1 : this.isPure(e.
          body, s);
        } else if (L2s(e)) {
          for (let o of e.body)
            if (!this.isPure(o, s)) return !1;
          return !0;
        } else {
          if (O2s(e))
            return this.isPure(e.left, s) && this.isPure(e.right, s);
          if (cye(e) || r_s(e)) {
            for (let o of e.elements)
              if (o !== null && !this.isPure(o, s)) return !1;
            return !0;
          } else if (V2s(e) || s_s(e)) {
            for (let o of e.properties)
              if (!this.isPure(o, s)) return !1;
            return !0;
          } else if (q2s(e)) {
            var i;
            return !(e.computed && !this.isPure(e.key, s) || ((i = e.decorators) == null ? void 0 : i.length) > 0);
          } else if (W2s(e)) {
            var a;
            return !(e.computed && !this.isPure(e.key, s) || ((a = e.decorators) == null ? void 0 : a.length) > 0 || (i_s(e) || e.static) &&
            e.value !== null && !this.isPure(e.value, s));
          } else {
            if (X2s(e))
              return this.isPure(e.argument, s);
            if (hye(e)) {
              for (let o of e.expressions)
                if (!this.isPure(o, s)) return !1;
              return !0;
            } else return Y2s(e) ? aye(e.tag, "String.raw") && !this.hasBinding("String", {
              noGlobals: !0
            }) && this.isPure(e.quasi, s) : R2s(e) ? !e.computed && $f(e.object) && e.object.name === "Symbol" && $f(e.property) && e.property.
            name !== "for" && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) : iye(e) ? aye(e.callee, "Symbol.for") && !this.hasBinding("Symbol", {
              noGlobals: !0
            }) && e.arguments.length === 1 && N2s.isStringLiteral(e.arguments[0]) : $2s(e);
          }
        }
      }
    }
    setData(e, s) {
      return this.data[e] = s;
    }
    getData(e) {
      let s = this;
      do {
        let r = s.data[e];
        if (r != null) return r;
      } while (s = s.parent);
    }
    removeData(e) {
      let s = this;
      do
        s.data[e] != null && (s.data[e] = null);
      while (s = s.parent);
    }
    init() {
      this.inited || (this.inited = !0, this.crawl());
    }
    crawl() {
      let e = 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);
      let s = this;
      do {
        if (s.crawling) return;
        if (s.path.isProgram())
          break;
      } while (s = s.parent);
      let r = s, i = {
        references: [],
        constantViolations: [],
        assignments: []
      };
      if (this.crawling = !0, e.type !== "Program" && (0, k2s.isExplodedVisitor)(zv)) {
        for (let o of zv.enter)
          o.call(i, e, i);
        let a = zv[e.type];
        if (a)
          for (let o of a.enter)
            o.call(i, e, i);
      }
      e.traverse(zv, i), this.crawling = !1;
      for (let a of i.assignments) {
        let o = a.getAssignmentIdentifiers();
        for (let l of Object.keys(o))
          a.scope.getBinding(l) || r.addGlobal(o[l]);
        a.scope.registerConstantViolation(a);
      }
      for (let a of i.references) {
        let o = a.scope.getBinding(a.node.name);
        o ? o.reference(a) : r.addGlobal(a.node);
      }
      for (let a of i.constantViolations)
        a.scope.registerConstantViolation(a);
    }
    push(e) {
      let s = this.path;
      s.isPattern() ? s = this.getPatternParent().path : !s.isBlockStatement() && !s.isProgram() && (s = this.getBlockParent().path), s.isSwitchStatement() &&
      (s = (this.getFunctionParent() || this.getProgramParent()).path);
      let {
        init: r,
        unique: i,
        kind: a = "var",
        id: o
      } = e;
      if (!r && !i && (a === "var" || a === "let") && s.isFunction() && !s.node.name && iye(s.parent, {
        callee: s.node
      }) && s.parent.arguments.length <= s.node.params.length && $f(o)) {
        s.pushContainer("params", o), s.scope.registerBinding("param", s.get("params")[s.node.params.length - 1]);
        return;
      }
      (s.isLoop() || s.isCatchClause() || s.isFunction()) && (s.ensureBlock(), s = s.get("body"));
      let l = e._blockHoist == null ? 2 : e._blockHoist, u = `declaration:${a}:${l}`, c = !i && s.getData(u);
      if (!c) {
        let f = e_s(a, []);
        f._blockHoist = l, [c] = s.unshiftContainer("body", [f]), i || s.setData(u, c);
      }
      let p = t_s(o, r), h = c.node.declarations.push(p);
      s.scope.registerBinding(a, c.get("declarations")[h - 1]);
    }
    getProgramParent() {
      let e = this;
      do
        if (e.path.isProgram())
          return e;
      while (e = e.parent);
      throw new Error("Couldn't find a Program");
    }
    getFunctionParent() {
      let e = this;
      do
        if (e.path.isFunctionParent())
          return e;
      while (e = e.parent);
      return null;
    }
    getBlockParent() {
      let e = this;
      do
        if (e.path.isBlockParent())
          return e;
      while (e = e.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getPatternParent() {
      let e = this;
      do
        if (!e.path.isPattern())
          return e.getBlockParent();
      while (e = e.parent.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getAllBindings() {
      let e = /* @__PURE__ */ Object.create(null), s = this;
      do {
        for (let r of Object.keys(s.bindings))
          r in e || (e[r] = s.bindings[r]);
        s = s.parent;
      } while (s);
      return e;
    }
    bindingIdentifierEquals(e, s) {
      return this.getBindingIdentifier(e) === s;
    }
    getBinding(e) {
      let s = this, r;
      do {
        let a = s.getOwnBinding(e);
        if (a) {
          var i;
          if (!((i = r) != null && i.isPattern() && a.kind !== "param" && a.kind !== "local"))
            return a;
        } else if (!a && e === "arguments" && s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
        r = s.path;
      } while (s = s.parent);
    }
    getOwnBinding(e) {
      return this.bindings[e];
    }
    getBindingIdentifier(e) {
      var s;
      return (s = this.getBinding(e)) == null ? void 0 : s.identifier;
    }
    getOwnBindingIdentifier(e) {
      let s = this.bindings[e];
      return s?.identifier;
    }
    hasOwnBinding(e) {
      return !!this.getOwnBinding(e);
    }
    hasBinding(e, s) {
      if (!e) return !1;
      let r = this;
      do
        if (r.hasOwnBinding(e))
          return !0;
      while (r = r.parent);
      let i, a;
      return typeof s == "object" ? (i = s.noGlobals, a = s.noUids) : typeof s == "boolean" && (i = s), !!(!a && this.hasUid(e) || !i && t.globals.
      includes(e) || !i && t.contextVariables.includes(e));
    }
    parentHasBinding(e, s) {
      var r;
      return (r = this.parent) == null ? void 0 : r.hasBinding(e, s);
    }
    moveBindingTo(e, s) {
      let r = this.getBinding(e);
      r && (r.scope.removeOwnBinding(e), r.scope = s, s.bindings[e] = r);
    }
    removeOwnBinding(e) {
      delete this.bindings[e];
    }
    removeBinding(e) {
      var s;
      (s = this.getBinding(e)) == null || s.scope.removeOwnBinding(e);
      let r = this;
      do
        r.uids[e] && (r.uids[e] = !1);
      while (r = r.parent);
    }
    hoistVariables(e = (s) => this.push({
      id: s
    })) {
      this.crawl();
      let s = /* @__PURE__ */ new Set();
      for (let i of Object.keys(this.bindings)) {
        let a = this.bindings[i];
        if (!a) continue;
        let {
          path: o
        } = a;
        if (!o.isVariableDeclarator()) continue;
        let {
          parent: l,
          parentPath: u
        } = o;
        if (l.kind !== "var" || s.has(l)) continue;
        s.add(o.parent);
        let c, p = [];
        for (let h of l.declarations) {
          var r;
          (r = c) != null || (c = h.id), h.init && p.push(D2s("=", h.id, h.init));
          let f = Object.keys(uye(h, !1, !0, !0));
          for (let d of f)
            e(Hf(d), h.init != null);
        }
        if (u.parentPath.isFor({
          left: l
        }))
          u.replaceWith(c);
        else if (p.length === 0)
          u.remove();
        else {
          let h = p.length === 1 ? p[0] : u_s(p);
          u.parentPath.isForStatement({
            init: l
          }) ? u.replaceWith(h) : u.replaceWith(G2s(h));
        }
      }
    }
  };
  Gv.default = Vo;
  Vo.globals = Object.keys(I2s.builtin);
  Vo.contextVariables = ["arguments", "undefined", "Infinity", "NaN"];
  Vo.prototype._renameFromMap = /* @__PURE__ */ n(function(e, s, r, i) {
    e[s] && (e[r] = i, e[s] = null);
  }, "_renameFromMap"), Vo.prototype.traverse = function(t, e, s) {
    (0, C2s.default)(t, e, this, s, this.path);
  }, Vo.prototype._generateUid = /* @__PURE__ */ n(function(e, s) {
    let r = e;
    return s > 1 && (r += s), `_${r}`;
  }, "_generateUid"), Vo.prototype.toArray = /* @__PURE__ */ n(function(e, s, r) {
    if ($f(e)) {
      let o = this.getBinding(e.name);
      if (o != null && o.constant && o.path.isGenericType("Array"))
        return e;
    }
    if (cye(e))
      return e;
    if ($f(e, {
      name: "arguments"
    }))
      return sye(k9(k9(k9(Hf("Array"), Hf("prototype")), Hf("slice")), Hf("call")), [e]);
    let i, a = [e];
    return s === !0 ? i = "toConsumableArray" : typeof s == "number" ? (a.push(Q2s(s)), i = "slicedToArray") : i = "toArray", r && (a.unshift(
    this.path.hub.addHelper(i)), i = "maybeArrayLike"), sye(this.path.hub.addHelper(i), a);
  }, "toArray"), Vo.prototype.getAllBindingsOfKind = /* @__PURE__ */ n(function(...e) {
    let s = /* @__PURE__ */ Object.create(null);
    for (let r of e) {
      let i = this;
      do {
        for (let a of Object.keys(i.bindings)) {
          let o = i.bindings[a];
          o.kind === r && (s[a] = o);
        }
        i = i.parent;
      } while (i);
    }
    return s;
  }, "getAllBindingsOfKind"), Object.defineProperties(Vo.prototype, {
    parentBlock: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.parent;
      }
    },
    hub: {
      configurable: !0,
      enumerable: !0,
      get() {
        return this.path.hub;
      }
    }
  });
});

// ../node_modules/@babel/traverse/lib/path/ancestry.js
var fye = g((co) => {
  "use strict";
  Object.defineProperty(co, "__esModule", {
    value: !0
  });
  co.find = d_s;
  co.findParent = f_s;
  co.getAncestry = b_s;
  co.getDeepestCommonAncestorFrom = T_s;
  co.getEarliestCommonAncestorFrom = g_s;
  co.getFunctionParent = m_s;
  co.getStatementParent = y_s;
  co.inType = P_s;
  co.isAncestor = x_s;
  co.isDescendant = S_s;
  var p_s = jr(), {
    VISITOR_KEYS: h_s
  } = p_s;
  function f_s(t) {
    let e = this;
    for (; e = e.parentPath; )
      if (t(e)) return e;
    return null;
  }
  n(f_s, "findParent");
  function d_s(t) {
    let e = this;
    do
      if (t(e)) return e;
    while (e = e.parentPath);
    return null;
  }
  n(d_s, "find");
  function m_s() {
    return this.findParent((t) => t.isFunction());
  }
  n(m_s, "getFunctionParent");
  function y_s() {
    let t = this;
    do {
      if (!t.parentPath || Array.isArray(t.container) && t.isStatement())
        break;
      t = t.parentPath;
    } while (t);
    if (t && (t.isProgram() || t.isFile()))
      throw new Error("File/Program node, we can't possibly find a statement parent to this");
    return t;
  }
  n(y_s, "getStatementParent");
  function g_s(t) {
    return this.getDeepestCommonAncestorFrom(t, function(e, s, r) {
      let i, a = h_s[e.type];
      for (let o of r) {
        let l = o[s + 1];
        if (!i) {
          i = l;
          continue;
        }
        if (l.listKey && i.listKey === l.listKey && l.key < i.key) {
          i = l;
          continue;
        }
        let u = a.indexOf(i.parentKey), c = a.indexOf(l.parentKey);
        u > c && (i = l);
      }
      return i;
    });
  }
  n(g_s, "getEarliestCommonAncestorFrom");
  function T_s(t, e) {
    if (!t.length)
      return this;
    if (t.length === 1)
      return t[0];
    let s = 1 / 0, r, i, a = t.map((l) => {
      let u = [];
      do
        u.unshift(l);
      while ((l = l.parentPath) && l !== this);
      return u.length < s && (s = u.length), u;
    }), o = a[0];
    e: for (let l = 0; l < s; l++) {
      let u = o[l];
      for (let c of a)
        if (c[l] !== u)
          break e;
      r = l, i = u;
    }
    if (i)
      return e ? e(i, r, a) : i;
    throw new Error("Couldn't find intersection");
  }
  n(T_s, "getDeepestCommonAncestorFrom");
  function b_s() {
    let t = this, e = [];
    do
      e.push(t);
    while (t = t.parentPath);
    return e;
  }
  n(b_s, "getAncestry");
  function x_s(t) {
    return t.isDescendant(this);
  }
  n(x_s, "isAncestor");
  function S_s(t) {
    return !!this.findParent((e) => e === t);
  }
  n(S_s, "isDescendant");
  function P_s(...t) {
    let e = this;
    for (; e; ) {
      for (let s of t)
        if (e.node.type === s) return !0;
      e = e.parentPath;
    }
    return !1;
  }
  n(P_s, "inType");
});

// ../node_modules/@babel/traverse/lib/path/inference/util.js
var _9 = g((O9) => {
  "use strict";
  Object.defineProperty(O9, "__esModule", {
    value: !0
  });
  O9.createUnionType = w_s;
  var E_s = jr(), {
    createFlowUnionType: dye,
    createTSUnionType: mye,
    createUnionTypeAnnotation: A_s,
    isFlowType: v_s,
    isTSType: C_s
  } = E_s;
  function w_s(t) {
    {
      if (t.every((e) => v_s(e)))
        return dye ? dye(t) : A_s(t);
      if (t.every((e) => C_s(e)) && mye)
        return mye(t);
    }
  }
  n(w_s, "createUnionType");
});

// ../node_modules/@babel/traverse/lib/path/inference/inferer-reference.js
var xye = g((L9) => {
  "use strict";
  Object.defineProperty(L9, "__esModule", {
    value: !0
  });
  L9.default = O_s;
  var I_s = jr(), gye = _9(), {
    BOOLEAN_NUMBER_BINARY_OPERATORS: N_s,
    createTypeAnnotationBasedOnTypeof: k_s,
    numberTypeAnnotation: Tye,
    voidTypeAnnotation: D_s
  } = I_s;
  function O_s(t) {
    if (!this.isReferenced()) return;
    let e = this.scope.getBinding(t.name);
    if (e)
      return e.identifier.typeAnnotation ? e.identifier.typeAnnotation : __s(e, this, t.name);
    if (t.name === "undefined")
      return D_s();
    if (t.name === "NaN" || t.name === "Infinity")
      return Tye();
    t.name;
  }
  n(O_s, "_default");
  function __s(t, e, s) {
    let r = [], i = [], a = yye(t, e, i), o = bye(t, e, s);
    if (o) {
      let l = yye(t, o.ifStatement);
      a = a.filter((u) => !l.includes(u)), r.push(o.typeAnnotation);
    }
    if (a.length) {
      a.push(...i);
      for (let l of a)
        r.push(l.getTypeAnnotation());
    }
    if (r.length)
      return (0, gye.createUnionType)(r);
  }
  n(__s, "getTypeAnnotationBindingConstantViolations");
  function yye(t, e, s) {
    let r = t.constantViolations.slice();
    return r.unshift(t.path), r.filter((i) => {
      i = i.resolve();
      let a = i._guessExecutionStatusRelativeTo(e);
      return s && a === "unknown" && s.push(i), a === "before";
    });
  }
  n(yye, "getConstantViolationsBefore");
  function L_s(t, e) {
    let s = e.node.operator, r = e.get("right").resolve(), i = e.get("left").resolve(), a;
    if (i.isIdentifier({
      name: t
    }) ? a = r : r.isIdentifier({
      name: t
    }) && (a = i), a)
      return s === "===" ? a.getTypeAnnotation() : N_s.includes(s) ? Tye() : void 0;
    if (s !== "===" && s !== "==") return;
    let o, l;
    if (i.isUnaryExpression({
      operator: "typeof"
    }) ? (o = i, l = r) : r.isUnaryExpression({
      operator: "typeof"
    }) && (o = r, l = i), !o || !o.get("argument").isIdentifier({
      name: t
    }) || (l = l.resolve(), !l.isLiteral())) return;
    let u = l.node.value;
    if (typeof u == "string")
      return k_s(u);
  }
  n(L_s, "inferAnnotationFromBinaryExpression");
  function B_s(t, e, s) {
    let r;
    for (; r = e.parentPath; ) {
      if (r.isIfStatement() || r.isConditionalExpression())
        return e.key === "test" ? void 0 : r;
      if (r.isFunction() && r.parentPath.scope.getBinding(s) !== t)
        return;
      e = r;
    }
  }
  n(B_s, "getParentConditionalPath");
  function bye(t, e, s) {
    let r = B_s(t, e, s);
    if (!r) return;
    let a = [r.get("test")], o = [];
    for (let l = 0; l < a.length; l++) {
      let u = a[l];
      if (u.isLogicalExpression())
        u.node.operator === "&&" && (a.push(u.get("left")), a.push(u.get("right")));
      else if (u.isBinaryExpression()) {
        let c = L_s(s, u);
        c && o.push(c);
      }
    }
    return o.length ? {
      typeAnnotation: (0, gye.createUnionType)(o),
      ifStatement: r
    } : bye(t, r, s);
  }
  n(bye, "getConditionalAnnotation");
});

// ../node_modules/@babel/traverse/lib/path/inference/inferers.js
var Iye = g((lr) => {
  "use strict";
  Object.defineProperty(lr, "__esModule", {
    value: !0
  });
  lr.ArrayExpression = vye;
  lr.AssignmentExpression = iLs;
  lr.BinaryExpression = Z_s;
  lr.BooleanLiteral = lLs;
  lr.CallExpression = gLs;
  lr.ConditionalExpression = tLs;
  lr.ClassDeclaration = lr.ClassExpression = lr.FunctionDeclaration = lr.ArrowFunctionExpression = lr.FunctionExpression = hLs;
  Object.defineProperty(lr, "Identifier", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return F_s.default;
    }, "get")
  });
  lr.LogicalExpression = eLs;
  lr.NewExpression = z_s;
  lr.NullLiteral = uLs;
  lr.NumericLiteral = oLs;
  lr.ObjectExpression = pLs;
  lr.ParenthesizedExpression = rLs;
  lr.RegExpLiteral = cLs;
  lr.RestElement = Cye;
  lr.SequenceExpression = sLs;
  lr.StringLiteral = aLs;
  lr.TSAsExpression = Aye;
  lr.TSNonNullExpression = X_s;
  lr.TaggedTemplateExpression = TLs;
  lr.TemplateLiteral = G_s;
  lr.TypeCastExpression = Eye;
  lr.UnaryExpression = Q_s;
  lr.UpdateExpression = nLs;
  lr.VariableDeclarator = Y_s;
  var M_s = jr(), F_s = xye(), Pye = _9(), {
    BOOLEAN_BINARY_OPERATORS: j_s,
    BOOLEAN_UNARY_OPERATORS: R_s,
    NUMBER_BINARY_OPERATORS: q_s,
    NUMBER_UNARY_OPERATORS: U_s,
    STRING_UNARY_OPERATORS: K_s,
    anyTypeAnnotation: Sye,
    arrayTypeAnnotation: B9,
    booleanTypeAnnotation: M9,
    buildMatchMemberExpression: Qv,
    genericTypeAnnotation: Jp,
    identifier: Jf,
    nullLiteralTypeAnnotation: V_s,
    numberTypeAnnotation: vy,
    stringTypeAnnotation: Yf,
    tupleTypeAnnotation: W_s,
    unionTypeAnnotation: $_s,
    voidTypeAnnotation: H_s,
    isIdentifier: J_s
  } = M_s;
  function Y_s() {
    if (this.get("id").isIdentifier())
      return this.get("init").getTypeAnnotation();
  }
  n(Y_s, "VariableDeclarator");
  function Eye(t) {
    return t.typeAnnotation;
  }
  n(Eye, "TypeCastExpression");
  Eye.validParent = !0;
  function Aye(t) {
    return t.typeAnnotation;
  }
  n(Aye, "TSAsExpression");
  Aye.validParent = !0;
  function X_s() {
    return this.get("expression").getTypeAnnotation();
  }
  n(X_s, "TSNonNullExpression");
  function z_s(t) {
    if (t.callee.type === "Identifier")
      return Jp(t.callee);
  }
  n(z_s, "NewExpression");
  function G_s() {
    return Yf();
  }
  n(G_s, "TemplateLiteral");
  function Q_s(t) {
    let e = t.operator;
    if (e === "void")
      return H_s();
    if (U_s.includes(e))
      return vy();
    if (K_s.includes(e))
      return Yf();
    if (R_s.includes(e))
      return M9();
  }
  n(Q_s, "UnaryExpression");
  function Z_s(t) {
    let e = t.operator;
    if (q_s.includes(e))
      return vy();
    if (j_s.includes(e))
      return M9();
    if (e === "+") {
      let s = this.get("right"), r = this.get("left");
      return r.isBaseType("number") && s.isBaseType("number") ? vy() : r.isBaseType("string") || s.isBaseType("string") ? Yf() : $_s([Yf(), vy()]);
    }
  }
  n(Z_s, "BinaryExpression");
  function eLs() {
    let t = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()];
    return (0, Pye.createUnionType)(t);
  }
  n(eLs, "LogicalExpression");
  function tLs() {
    let t = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()];
    return (0, Pye.createUnionType)(t);
  }
  n(tLs, "ConditionalExpression");
  function sLs() {
    return this.get("expressions").pop().getTypeAnnotation();
  }
  n(sLs, "SequenceExpression");
  function rLs() {
    return this.get("expression").getTypeAnnotation();
  }
  n(rLs, "ParenthesizedExpression");
  function iLs() {
    return this.get("right").getTypeAnnotation();
  }
  n(iLs, "AssignmentExpression");
  function nLs(t) {
    let e = t.operator;
    if (e === "++" || e === "--")
      return vy();
  }
  n(nLs, "UpdateExpression");
  function aLs() {
    return Yf();
  }
  n(aLs, "StringLiteral");
  function oLs() {
    return vy();
  }
  n(oLs, "NumericLiteral");
  function lLs() {
    return M9();
  }
  n(lLs, "BooleanLiteral");
  function uLs() {
    return V_s();
  }
  n(uLs, "NullLiteral");
  function cLs() {
    return Jp(Jf("RegExp"));
  }
  n(cLs, "RegExpLiteral");
  function pLs() {
    return Jp(Jf("Object"));
  }
  n(pLs, "ObjectExpression");
  function vye() {
    return Jp(Jf("Array"));
  }
  n(vye, "ArrayExpression");
  function Cye() {
    return vye();
  }
  n(Cye, "RestElement");
  Cye.validParent = !0;
  function hLs() {
    return Jp(Jf("Function"));
  }
  n(hLs, "Func");
  var fLs = Qv("Array.from"), dLs = Qv("Object.keys"), mLs = Qv("Object.values"), yLs = Qv("Object.entries");
  function gLs() {
    let {
      callee: t
    } = this.node;
    return dLs(t) ? B9(Yf()) : fLs(t) || mLs(t) || J_s(t, {
      name: "Array"
    }) ? B9(Sye()) : yLs(t) ? B9(W_s([Yf(), Sye()])) : wye(this.get("callee"));
  }
  n(gLs, "CallExpression");
  function TLs() {
    return wye(this.get("tag"));
  }
  n(TLs, "TaggedTemplateExpression");
  function wye(t) {
    if (t = t.resolve(), t.isFunction()) {
      let {
        node: e
      } = t;
      if (e.async)
        return e.generator ? Jp(Jf("AsyncIterator")) : Jp(Jf("Promise"));
      if (e.generator)
        return Jp(Jf("Iterator"));
      if (t.node.returnType)
        return t.node.returnType;
    }
  }
  n(wye, "resolveCall");
});

// ../node_modules/@babel/traverse/lib/path/inference/index.js
var _ye = g((Yp) => {
  "use strict";
  Object.defineProperty(Yp, "__esModule", {
    value: !0
  });
  Yp._getTypeAnnotation = Oye;
  Yp.baseTypeStrictlyMatches = qLs;
  Yp.couldBeBaseType = RLs;
  Yp.getTypeAnnotation = FLs;
  Yp.isBaseType = jLs;
  Yp.isGenericType = ULs;
  var Nye = Iye(), bLs = jr(), {
    anyTypeAnnotation: Dye,
    isAnyTypeAnnotation: Zv,
    isArrayTypeAnnotation: xLs,
    isBooleanTypeAnnotation: SLs,
    isEmptyTypeAnnotation: PLs,
    isFlowBaseAnnotation: ELs,
    isGenericTypeAnnotation: ALs,
    isIdentifier: kye,
    isMixedTypeAnnotation: vLs,
    isNumberTypeAnnotation: CLs,
    isStringTypeAnnotation: wLs,
    isTSArrayType: ILs,
    isTSTypeAnnotation: NLs,
    isTSTypeReference: kLs,
    isTupleTypeAnnotation: DLs,
    isTypeAnnotation: OLs,
    isUnionTypeAnnotation: _Ls,
    isVoidTypeAnnotation: LLs,
    stringTypeAnnotation: BLs,
    voidTypeAnnotation: MLs
  } = bLs;
  function FLs() {
    let t = this.getData("typeAnnotation");
    return t != null || (t = Oye.call(this) || Dye(), (OLs(t) || NLs(t)) && (t = t.typeAnnotation), this.setData("typeAnnotation", t)), t;
  }
  n(FLs, "getTypeAnnotation");
  var F9 = /* @__PURE__ */ new WeakSet();
  function Oye() {
    let t = this.node;
    if (!t)
      if (this.key === "init" && this.parentPath.isVariableDeclarator()) {
        let s = this.parentPath.parentPath, r = s.parentPath;
        return s.key === "left" && r.isForInStatement() ? BLs() : s.key === "left" && r.isForOfStatement() ? Dye() : MLs();
      } else
        return;
    if (t.typeAnnotation)
      return t.typeAnnotation;
    if (!F9.has(t)) {
      F9.add(t);
      try {
        var e;
        let s = Nye[t.type];
        if (s)
          return s.call(this, t);
        if (s = Nye[this.parentPath.type], (e = s) != null && e.validParent)
          return this.parentPath.getTypeAnnotation();
      } finally {
        F9.delete(t);
      }
    }
  }
  n(Oye, "_getTypeAnnotation");
  function jLs(t, e) {
    return j9(t, this.getTypeAnnotation(), e);
  }
  n(jLs, "isBaseType");
  function j9(t, e, s) {
    if (t === "string")
      return wLs(e);
    if (t === "number")
      return CLs(e);
    if (t === "boolean")
      return SLs(e);
    if (t === "any")
      return Zv(e);
    if (t === "mixed")
      return vLs(e);
    if (t === "empty")
      return PLs(e);
    if (t === "void")
      return LLs(e);
    if (s)
      return !1;
    throw new Error(`Unknown base type ${t}`);
  }
  n(j9, "_isBaseType");
  function RLs(t) {
    let e = this.getTypeAnnotation();
    if (Zv(e)) return !0;
    if (_Ls(e)) {
      for (let s of e.types)
        if (Zv(s) || j9(t, s, !0))
          return !0;
      return !1;
    } else
      return j9(t, e, !0);
  }
  n(RLs, "couldBeBaseType");
  function qLs(t) {
    let e = this.getTypeAnnotation(), s = t.getTypeAnnotation();
    return !Zv(e) && ELs(e) ? s.type === e.type : !1;
  }
  n(qLs, "baseTypeStrictlyMatches");
  function ULs(t) {
    let e = this.getTypeAnnotation();
    return t === "Array" && (ILs(e) || xLs(e) || DLs(e)) ? !0 : ALs(e) && kye(e.id, {
      name: t
    }) || kLs(e) && kye(e.typeName, {
      name: t
    });
  }
  n(ULs, "isGenericType");
});

// ../node_modules/@babel/traverse/lib/path/lib/hoister.js
var Bye = g((eC) => {
  "use strict";
  Object.defineProperty(eC, "__esModule", {
    value: !0
  });
  eC.default = void 0;
  var Lye = jr(), KLs = Lye, {
    react: VLs
  } = Lye, {
    cloneNode: WLs,
    jsxExpressionContainer: $Ls,
    variableDeclaration: HLs,
    variableDeclarator: JLs
  } = KLs, YLs = {
    ReferencedIdentifier(t, e) {
      if (t.isJSXIdentifier() && VLs.isCompatTag(t.node.name) && !t.parentPath.isJSXMemberExpression())
        return;
      if (t.node.name === "this") {
        let r = t.scope;
        do
          if (r.path.isFunction() && !r.path.isArrowFunctionExpression())
            break;
        while (r = r.parent);
        r && e.breakOnScopePaths.push(r.path);
      }
      let s = t.scope.getBinding(t.node.name);
      if (s) {
        for (let r of s.constantViolations)
          if (r.scope !== s.path.scope) {
            e.mutableBinding = !0, t.stop();
            return;
          }
        s === e.scope.getBinding(t.node.name) && (e.bindings[t.node.name] = s);
      }
    }
  }, R9 = class {
    static {
      n(this, "PathHoister");
    }
    constructor(e, s) {
      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 = s, this.path = e, this.attachAfter = !1;
    }
    isCompatibleScope(e) {
      for (let s of Object.keys(this.bindings)) {
        let r = this.bindings[s];
        if (!e.bindingIdentifierEquals(s, r.identifier))
          return !1;
      }
      return !0;
    }
    getCompatibleScopes() {
      let e = this.path.scope;
      do {
        if (this.isCompatibleScope(e))
          this.scopes.push(e);
        else
          break;
        if (this.breakOnScopePaths.includes(e.path))
          break;
      } while (e = e.parent);
    }
    getAttachmentPath() {
      let e = this._getAttachmentPath();
      if (!e) return;
      let s = e.scope;
      if (s.path === e && (s = e.scope.parent), s.path.isProgram() || s.path.isFunction())
        for (let r of Object.keys(this.bindings)) {
          if (!s.hasOwnBinding(r)) continue;
          let i = this.bindings[r];
          if (i.kind === "param" || i.path.parentKey === "params")
            continue;
          if (this.getAttachmentParentForPath(i.path).key >= e.key) {
            this.attachAfter = !0, e = i.path;
            for (let o of i.constantViolations)
              this.getAttachmentParentForPath(o).key > e.key && (e = o);
          }
        }
      return e;
    }
    _getAttachmentPath() {
      let s = this.scopes.pop();
      if (s) {
        if (s.path.isFunction())
          if (this.hasOwnParamBindings(s)) {
            if (this.scope === s) return;
            let r = s.path.get("body").get("body");
            for (let i = 0; i < r.length; i++)
              if (!r[i].node._blockHoist)
                return r[i];
          } else
            return this.getNextScopeAttachmentParent();
        else if (s.path.isProgram())
          return this.getNextScopeAttachmentParent();
      }
    }
    getNextScopeAttachmentParent() {
      let e = this.scopes.pop();
      if (e) return this.getAttachmentParentForPath(e.path);
    }
    getAttachmentParentForPath(e) {
      do
        if (!e.parentPath || Array.isArray(e.container) && e.isStatement())
          return e;
      while (e = e.parentPath);
    }
    hasOwnParamBindings(e) {
      for (let s of Object.keys(this.bindings)) {
        if (!e.hasOwnBinding(s)) continue;
        let r = this.bindings[s];
        if (r.kind === "param" && r.constant) return !0;
      }
      return !1;
    }
    run() {
      if (this.path.traverse(YLs, this), this.mutableBinding) return;
      this.getCompatibleScopes();
      let e = this.getAttachmentPath();
      if (!e || e.getFunctionParent() === this.path.getFunctionParent()) return;
      let s = e.scope.generateUidIdentifier("ref"), r = JLs(s, this.path.node), i = this.attachAfter ? "insertAfter" : "insertBefore", [a] = e[i](
      [e.isVariableDeclarator() ? r : HLs("var", [r])]), o = this.path.parentPath;
      return o.isJSXElement() && this.path.container === o.node.children && (s = $Ls(s)), this.path.replaceWith(WLs(s)), e.isVariableDeclarator() ?
      a.get("init") : a.get("declarations.0.init");
    }
  };
  eC.default = R9;
});

// ../node_modules/@babel/traverse/lib/path/lib/removal-hooks.js
var Mye = g((tC) => {
  "use strict";
  Object.defineProperty(tC, "__esModule", {
    value: !0
  });
  tC.hooks = void 0;
  var flr = tC.hooks = [function(t, e) {
    if (t.key === "test" && (e.isWhile() || e.isSwitchCase()) || t.key === "declaration" && e.isExportDeclaration() || t.key === "body" && e.
    isLabeledStatement() || t.listKey === "declarations" && e.isVariableDeclaration() && e.node.declarations.length === 1 || t.key === "expr\
ession" && e.isExpressionStatement())
      return e.remove(), !0;
  }, function(t, e) {
    if (e.isSequenceExpression() && e.node.expressions.length === 1)
      return e.replaceWith(e.node.expressions[0]), !0;
  }, function(t, e) {
    if (e.isBinary())
      return t.key === "left" ? e.replaceWith(e.node.right) : e.replaceWith(e.node.left), !0;
  }, function(t, e) {
    if (e.isIfStatement() && t.key === "consequent" || t.key === "body" && (e.isLoop() || e.isArrowFunctionExpression()))
      return t.replaceWith({
        type: "BlockStatement",
        body: []
      }), !0;
  }];
});

// ../node_modules/@babel/traverse/lib/path/removal.js
var sC = g((Xp) => {
  "use strict";
  Object.defineProperty(Xp, "__esModule", {
    value: !0
  });
  Xp._assertUnremoved = Uye;
  Xp._callRemovalHooks = Rye;
  Xp._markRemoved = q9;
  Xp._remove = qye;
  Xp._removeFromScope = jye;
  Xp.remove = sBs;
  var XLs = Mye(), zLs = Wf(), GLs = U9(), Fye = zp(), QLs = jr(), ZLs = rC(), eBs = Ll(), {
    getBindingIdentifiers: tBs
  } = QLs;
  function sBs() {
    var t;
    if (Uye.call(this), eBs.resync.call(this), Rye.call(this)) {
      q9.call(this);
      return;
    }
    (t = this.opts) != null && t.noScope || jye.call(this), this.shareCommentsWithSiblings(), qye.call(this), q9.call(this);
  }
  n(sBs, "remove");
  function jye() {
    let t = tBs(this.node, !1, !1, !0);
    Object.keys(t).forEach((e) => this.scope.removeBinding(e));
  }
  n(jye, "_removeFromScope");
  function Rye() {
    if (this.parentPath) {
      for (let t of XLs.hooks)
        if (t(this, this.parentPath)) return !0;
    }
  }
  n(Rye, "_callRemovalHooks");
  function qye() {
    Array.isArray(this.container) ? (this.container.splice(this.key, 1), ZLs.updateSiblingKeys.call(this, this.key, -1)) : GLs._replaceWith.
    call(this, null);
  }
  n(qye, "_remove");
  function q9() {
    this._traverseFlags |= Fye.SHOULD_SKIP | Fye.REMOVED, this.parent && (0, zLs.getCachedPaths)(this.hub, this.parent).delete(this.node), this.
    node = null;
  }
  n(q9, "_markRemoved");
  function Uye() {
    if (this.removed)
      throw this.buildCodeFrameError("NodePath has been removed so is read-only.");
  }
  n(Uye, "_assertUnremoved");
});

// ../node_modules/@babel/traverse/lib/path/modification.js
var rC = g((po) => {
  "use strict";
  Object.defineProperty(po, "__esModule", {
    value: !0
  });
  po._containerInsert = H9;
  po._containerInsertAfter = Wye;
  po._containerInsertBefore = J9;
  po._verifyNodeList = lb;
  po.insertAfter = bBs;
  po.insertBefore = gBs;
  po.pushContainer = SBs;
  po.unshiftContainer = xBs;
  po.updateSiblingKeys = Jye;
  var rBs = Wf(), iBs = Bye(), $9 = zp(), K9 = Ll(), iC = sC(), nBs = jr(), {
    arrowFunctionExpression: aBs,
    assertExpression: oBs,
    assignmentExpression: lBs,
    blockStatement: Kye,
    callExpression: uBs,
    cloneNode: V9,
    expressionStatement: W9,
    isAssignmentExpression: cBs,
    isCallExpression: pBs,
    isExportNamedDeclaration: Vye,
    isExpression: hBs,
    isIdentifier: fBs,
    isSequenceExpression: dBs,
    isSuper: mBs,
    thisExpression: yBs
  } = nBs;
  function gBs(t) {
    iC._assertUnremoved.call(this);
    let e = lb.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || Vye(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertBefore(e);
    if (this.isNodeType("Expression") && !this.isJSXElement() || s.isForStatement() && this.key === "init")
      return this.node && e.push(this.node), this.replaceExpressionWithStatements(e);
    if (Array.isArray(this.container))
      return J9.call(this, e);
    if (this.isStatementOrBlock()) {
      let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
      return this.replaceWith(Kye(a ? [i] : [])), this.unshiftContainer("body", e);
    } 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?");
  }
  n(gBs, "insertBefore");
  function H9(t, e) {
    Jye.call(this, t, e.length);
    let s = [];
    this.container.splice(t, 0, ...e);
    for (let a = 0; a < e.length; a++) {
      var r;
      let o = t + a, l = this.getSibling(o);
      s.push(l), (r = this.context) != null && r.queue && K9.pushContext.call(l, this.context);
    }
    let i = K9._getQueueContexts.call(this);
    for (let a of s) {
      K9.setScope.call(a), a.debug("Inserted.");
      for (let o of i)
        o.maybeQueue(a, !0);
    }
    return s;
  }
  n(H9, "_containerInsert");
  function J9(t) {
    return H9.call(this, this.key, t);
  }
  n(J9, "_containerInsertBefore");
  function Wye(t) {
    return H9.call(this, this.key + 1, t);
  }
  n(Wye, "_containerInsertAfter");
  var $ye = /* @__PURE__ */ n((t) => t[t.length - 1], "last");
  function Hye(t) {
    return dBs(t.parent) && ($ye(t.parent.expressions) !== t.node || Hye(t.parentPath));
  }
  n(Hye, "isHiddenInSequenceExpression");
  function TBs(t, e) {
    if (!cBs(t) || !fBs(t.left))
      return !1;
    let s = e.getBlockParent();
    return s.hasOwnBinding(t.left.name) && s.getOwnBinding(t.left.name).constantViolations.length <= 1;
  }
  n(TBs, "isAlmostConstantAssignment");
  function bBs(t) {
    if (iC._assertUnremoved.call(this), this.isSequenceExpression())
      return $ye(this.get("expressions")).insertAfter(t);
    let e = lb.call(this, t), {
      parentPath: s,
      parent: r
    } = this;
    if (s.isExpressionStatement() || s.isLabeledStatement() || Vye(r) || s.isExportDefaultDeclaration() && this.isDeclaration())
      return s.insertAfter(e.map((i) => hBs(i) ? W9(i) : i));
    if (this.isNodeType("Expression") && !this.isJSXElement() && !s.isJSXElement() || s.isForStatement() && this.key === "init") {
      let i = this;
      if (i.node) {
        let a = i.node, {
          scope: o
        } = this;
        if (o.path.isPattern())
          return oBs(a), i.replaceWith(uBs(aBs([], a), [])), i.get("callee.body").insertAfter(e), [i];
        if (Hye(i))
          e.unshift(a);
        else if (pBs(a) && mBs(a.callee))
          e.unshift(a), e.push(yBs());
        else if (TBs(a, o))
          e.unshift(a), e.push(V9(a.left));
        else if (o.isPure(a, !0))
          e.push(a);
        else {
          s.isMethod({
            computed: !0,
            key: a
          }) && (o = o.parent);
          let l = o.generateDeclaredUidIdentifier();
          e.unshift(W9(lBs("=", V9(l), a))), e.push(W9(V9(l)));
        }
      }
      return this.replaceExpressionWithStatements(e);
    } else {
      if (Array.isArray(this.container))
        return Wye.call(this, e);
      if (this.isStatementOrBlock()) {
        let i = this.node, a = i && (!this.isExpressionStatement() || i.expression != null);
        return this.replaceWith(Kye(a ? [i] : [])), this.pushContainer("body", e);
      } 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?");
    }
  }
  n(bBs, "insertAfter");
  function Jye(t, e) {
    if (!this.parent) return;
    let s = (0, rBs.getCachedPaths)(this.hub, this.parent) || [];
    for (let [, r] of s)
      typeof r.key == "number" && r.container === this.container && r.key >= t && (r.key += e);
  }
  n(Jye, "updateSiblingKeys");
  function lb(t) {
    if (!t)
      return [];
    Array.isArray(t) || (t = [t]);
    for (let e = 0; e < t.length; e++) {
      let s = t[e], r;
      if (s ? typeof s != "object" ? r = "contains a non-object node" : s.type ? s instanceof $9.default && (r = "has a NodePath when it exp\
ected a raw object") : r = "without a type" : r = "has falsy node", r) {
        let i = Array.isArray(s) ? "array" : typeof s;
        throw new Error(`Node list ${r} with the index of ${e} and type of ${i}`);
      }
    }
    return t;
  }
  n(lb, "_verifyNodeList");
  function xBs(t, e) {
    iC._assertUnremoved.call(this), e = lb.call(this, e);
    let s = $9.default.get({
      parentPath: this,
      parent: this.node,
      container: this.node[t],
      listKey: t,
      key: 0
    }).setContext(this.context);
    return J9.call(s, e);
  }
  n(xBs, "unshiftContainer");
  function SBs(t, e) {
    iC._assertUnremoved.call(this);
    let s = lb.call(this, e), r = this.node[t];
    return $9.default.get({
      parentPath: this,
      parent: this.node,
      container: r,
      listKey: t,
      key: r.length
    }).setContext(this.context).replaceWithMultiple(s);
  }
  n(SBs, "pushContainer");
  po.hoist = /* @__PURE__ */ n(function(e = this.scope) {
    return new iBs.default(this, e).run();
  }, "hoist");
});

// ../node_modules/@babel/traverse/lib/path/replacement.js
var U9 = g((Gp) => {
  "use strict";
  Object.defineProperty(Gp, "__esModule", {
    value: !0
  });
  Gp._replaceWith = tge;
  Gp.replaceExpressionWithStatements = XBs;
  Gp.replaceInline = zBs;
  Gp.replaceWith = YBs;
  Gp.replaceWithMultiple = HBs;
  Gp.replaceWithSourceString = JBs;
  var PBs = Hl(), X9 = ob(), EBs = zp(), Qye = Wf(), z9 = rC(), ABs = Sv(), vBs = jr(), Cy = Ll(), {
    FUNCTION_TYPES: Yye,
    arrowFunctionExpression: CBs,
    assignmentExpression: Zye,
    awaitExpression: wBs,
    blockStatement: IBs,
    buildUndefinedNode: Y9,
    callExpression: NBs,
    cloneNode: G9,
    conditionalExpression: kBs,
    expressionStatement: DBs,
    getBindingIdentifiers: OBs,
    identifier: _Bs,
    inheritLeadingComments: LBs,
    inheritTrailingComments: BBs,
    inheritsComments: MBs,
    isBlockStatement: FBs,
    isEmptyStatement: Xye,
    isExpression: ege,
    isExpressionStatement: jBs,
    isIfStatement: RBs,
    isProgram: qBs,
    isStatement: UBs,
    isVariableDeclaration: KBs,
    removeComments: VBs,
    returnStatement: zye,
    sequenceExpression: WBs,
    validate: Gye,
    yieldExpression: $Bs
  } = vBs;
  function HBs(t) {
    var e;
    Cy.resync.call(this), t = z9._verifyNodeList.call(this, t), LBs(t[0], this.node), BBs(t[t.length - 1], this.node), (e = (0, Qye.getCachedPaths)(
    this.hub, this.parent)) == null || e.delete(this.node), this.node = this.container[this.key] = null;
    let s = this.insertAfter(t);
    return this.node ? this.requeue() : this.remove(), s;
  }
  n(HBs, "replaceWithMultiple");
  function JBs(t) {
    Cy.resync.call(this);
    let e;
    try {
      t = `(${t})`, e = (0, ABs.parse)(t);
    } catch (r) {
      let i = r.loc;
      throw i && (r.message += ` - make sure this is an expression.
` + (0, PBs.codeFrameColumns)(t, {
        start: {
          line: i.line,
          column: i.column + 1
        }
      }), r.code = "BABEL_REPLACE_SOURCE_ERROR"), r;
    }
    let s = e.program.body[0].expression;
    return X9.default.removeProperties(s), this.replaceWith(s);
  }
  n(JBs, "replaceWithSourceString");
  function YBs(t) {
    if (Cy.resync.call(this), this.removed)
      throw new Error("You can't replace this node, we've already removed it");
    let e = t instanceof EBs.default ? t.node : t;
    if (!e)
      throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");
    if (this.node === e)
      return [this];
    if (this.isProgram() && !qBs(e))
      throw new Error("You can only replace a Program root node with another Program node");
    if (Array.isArray(e))
      throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");
    if (typeof e == "string")
      throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");
    let s = "";
    if (this.isNodeType("Statement") && ege(e) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(
    e) && !this.parentPath.isExportDefaultDeclaration() && (e = DBs(e), s = "expression"), this.isNodeType("Expression") && UBs(e) && !this.
    canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(e))
      return this.replaceExpressionWithStatements([e]);
    let r = this.node;
    return r && (MBs(e, r), VBs(r)), tge.call(this, e), this.type = e.type, Cy.setScope.call(this), this.requeue(), [s ? this.get(s) : this];
  }
  n(YBs, "replaceWith");
  function tge(t) {
    var e;
    if (!this.container)
      throw new ReferenceError("Container is falsy");
    this.inList ? Gye(this.parent, this.key, [t]) : Gye(this.parent, this.key, t), this.debug(`Replace with ${t?.type}`), (e = (0, Qye.getCachedPaths)(
    this.hub, this.parent)) == null || e.set(t, this).delete(this.node), this.node = this.container[this.key] = t;
  }
  n(tge, "_replaceWith");
  function XBs(t) {
    Cy.resync.call(this);
    let e = [], s = nC(t, e);
    if (s) {
      for (let f of e) this.scope.push({
        id: f
      });
      return this.replaceWith(s)[0].get("expressions");
    }
    let r = this.getFunctionParent(), i = r?.node.async, a = r?.node.generator, o = CBs([], IBs(t));
    this.replaceWith(NBs(o, []));
    let l = this.get("callee");
    l.get("body").scope.hoistVariables((f) => this.scope.push({
      id: f
    }));
    let u = l.getCompletionRecords();
    for (let f of u) {
      if (!f.isExpressionStatement()) continue;
      let d = f.findParent((m) => m.isLoop());
      if (d) {
        let m = d.getData("expressionReplacementReturnUid");
        m ? m = _Bs(m.name) : (m = l.scope.generateDeclaredUidIdentifier("ret"), l.get("body").pushContainer("body", zye(G9(m))), d.setData(
        "expressionReplacementReturnUid", m)), f.get("expression").replaceWith(Zye("=", G9(m), f.node.expression));
      } else
        f.replaceWith(zye(f.node.expression));
    }
    l.arrowFunctionToExpression();
    let c = l, p = i && X9.default.hasType(this.get("callee.body").node, "AwaitExpression", Yye), h = a && X9.default.hasType(this.get("call\
ee.body").node, "YieldExpression", Yye);
    return p && (c.set("async", !0), h || this.replaceWith(wBs(this.node))), h && (c.set("generator", !0), this.replaceWith($Bs(this.node, !0))),
    c.get("body.body");
  }
  n(XBs, "replaceExpressionWithStatements");
  function nC(t, e) {
    let s = [], r = !0;
    for (let i of t)
      if (Xye(i) || (r = !1), ege(i))
        s.push(i);
      else if (jBs(i))
        s.push(i.expression);
      else if (KBs(i)) {
        if (i.kind !== "var") return;
        for (let a of i.declarations) {
          let o = OBs(a);
          for (let l of Object.keys(o))
            e.push(G9(o[l]));
          a.init && s.push(Zye("=", a.id, a.init));
        }
        r = !0;
      } else if (RBs(i)) {
        let a = i.consequent ? nC([i.consequent], e) : Y9(), o = i.alternate ? nC([i.alternate], e) : Y9();
        if (!a || !o) return;
        s.push(kBs(i.test, a, o));
      } else if (FBs(i)) {
        let a = nC(i.body, e);
        if (!a) return;
        s.push(a);
      } else if (Xye(i))
        t.indexOf(i) === 0 && (r = !0);
      else
        return;
    return r && s.push(Y9()), s.length === 1 ? s[0] : WBs(s);
  }
  n(nC, "gatherSequenceExpressions");
  function zBs(t) {
    if (Cy.resync.call(this), Array.isArray(t))
      if (Array.isArray(this.container)) {
        t = z9._verifyNodeList.call(this, t);
        let e = z9._containerInsertAfter.call(this, t);
        return this.remove(), e;
      } else
        return this.replaceWithMultiple(t);
    else
      return this.replaceWith(t);
  }
  n(zBs, "replaceInline");
});

// ../node_modules/@babel/traverse/lib/path/evaluation.js
var nge = g((aC) => {
  "use strict";
  Object.defineProperty(aC, "__esModule", {
    value: !0
  });
  aC.evaluate = iMs;
  aC.evaluateTruthy = sMs;
  var GBs = ["Number", "String", "Math"], QBs = ["isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeUR\
I", "encodeURIComponent", null, null], ZBs = ["random"];
  function sge(t) {
    return GBs.includes(t);
  }
  n(sge, "isValidObjectCallee");
  function eMs(t) {
    return QBs.includes(t);
  }
  n(eMs, "isValidIdentifierCallee");
  function tMs(t) {
    return ZBs.includes(t);
  }
  n(tMs, "isInvalidMethod");
  function sMs() {
    let t = this.evaluate();
    if (t.confident) return !!t.value;
  }
  n(sMs, "evaluateTruthy");
  function yc(t, e) {
    e.confident && (e.deoptPath = t, e.confident = !1);
  }
  n(yc, "deopt");
  var rge = /* @__PURE__ */ new Map([["undefined", void 0], ["Infinity", 1 / 0], ["NaN", NaN]]);
  function Qn(t, e) {
    let {
      node: s
    } = t, {
      seen: r
    } = e;
    if (r.has(s)) {
      let i = r.get(s);
      if (i.resolved)
        return i.value;
      yc(t, e);
      return;
    } else {
      let i = {
        resolved: !1
      };
      r.set(s, i);
      let a = rMs(t, e);
      return e.confident && (i.resolved = !0, i.value = a), a;
    }
  }
  n(Qn, "evaluateCached");
  function rMs(t, e) {
    if (e.confident) {
      if (t.isSequenceExpression()) {
        let s = t.get("expressions");
        return Qn(s[s.length - 1], e);
      }
      if (t.isStringLiteral() || t.isNumericLiteral() || t.isBooleanLiteral())
        return t.node.value;
      if (t.isNullLiteral())
        return null;
      if (t.isTemplateLiteral())
        return ige(t, t.node.quasis, e);
      if (t.isTaggedTemplateExpression() && t.get("tag").isMemberExpression()) {
        let s = t.get("tag.object"), {
          node: {
            name: r
          }
        } = s, i = t.get("tag.property");
        if (s.isIdentifier() && r === "String" && !t.scope.getBinding(r) && i.isIdentifier() && i.node.name === "raw")
          return ige(t, t.node.quasi.quasis, e, !0);
      }
      if (t.isConditionalExpression()) {
        let s = Qn(t.get("test"), e);
        return e.confident ? Qn(s ? t.get("consequent") : t.get("alternate"), e) : void 0;
      }
      if (t.isExpressionWrapper())
        return Qn(t.get("expression"), e);
      if (t.isMemberExpression() && !t.parentPath.isCallExpression({
        callee: t.node
      })) {
        let s = t.get("property"), r = t.get("object");
        if (r.isLiteral()) {
          let i = r.node.value, a = typeof i, o = null;
          if (t.node.computed) {
            if (o = Qn(s, e), !e.confident) return;
          } else s.isIdentifier() && (o = s.node.name);
          if ((a === "number" || a === "string") && o != null && (typeof o == "number" || typeof o == "string"))
            return i[o];
        }
      }
      if (t.isReferencedIdentifier()) {
        let s = t.scope.getBinding(t.node.name);
        if (s) {
          if (s.constantViolations.length > 0 || t.node.start < s.path.node.end) {
            yc(s.path, e);
            return;
          }
          if (s.hasValue)
            return s.value;
        }
        let r = t.node.name;
        if (rge.has(r)) {
          if (!s)
            return rge.get(r);
          yc(s.path, e);
          return;
        }
        let i = t.resolve();
        if (i === t) {
          yc(t, e);
          return;
        } else
          return Qn(i, e);
      }
      if (t.isUnaryExpression({
        prefix: !0
      })) {
        if (t.node.operator === "void")
          return;
        let s = t.get("argument");
        if (t.node.operator === "typeof" && (s.isFunction() || s.isClass()))
          return "function";
        let r = Qn(s, e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "!":
            return !r;
          case "+":
            return +r;
          case "-":
            return -r;
          case "~":
            return ~r;
          case "typeof":
            return typeof r;
        }
      }
      if (t.isArrayExpression()) {
        let s = [], r = t.get("elements");
        for (let i of r) {
          let a = i.evaluate();
          if (a.confident)
            s.push(a.value);
          else {
            yc(a.deopt, e);
            return;
          }
        }
        return s;
      }
      if (t.isObjectExpression()) {
        let s = {}, r = t.get("properties");
        for (let i of r) {
          if (i.isObjectMethod() || i.isSpreadElement()) {
            yc(i, e);
            return;
          }
          let a = i.get("key"), o;
          if (i.node.computed) {
            if (o = a.evaluate(), !o.confident) {
              yc(o.deopt, e);
              return;
            }
            o = o.value;
          } else a.isIdentifier() ? o = a.node.name : o = a.node.value;
          let u = i.get("value").evaluate();
          if (!u.confident) {
            yc(u.deopt, e);
            return;
          }
          u = u.value, s[o] = u;
        }
        return s;
      }
      if (t.isLogicalExpression()) {
        let s = e.confident, r = Qn(t.get("left"), e), i = e.confident;
        e.confident = s;
        let a = Qn(t.get("right"), e), o = e.confident;
        switch (t.node.operator) {
          case "||":
            return e.confident = i && (!!r || o), e.confident ? r || a : void 0;
          case "&&":
            return e.confident = i && (!r || o), e.confident ? r && a : void 0;
          case "??":
            return e.confident = i && (r != null || o), e.confident ? r ?? a : void 0;
        }
      }
      if (t.isBinaryExpression()) {
        let s = Qn(t.get("left"), e);
        if (!e.confident) return;
        let r = Qn(t.get("right"), e);
        if (!e.confident) return;
        switch (t.node.operator) {
          case "-":
            return s - r;
          case "+":
            return s + r;
          case "/":
            return s / r;
          case "*":
            return s * r;
          case "%":
            return s % r;
          case "**":
            return Math.pow(s, r);
          case "<":
            return s < r;
          case ">":
            return s > r;
          case "<=":
            return s <= r;
          case ">=":
            return s >= r;
          case "==":
            return s == r;
          case "!=":
            return s != r;
          case "===":
            return s === r;
          case "!==":
            return s !== r;
          case "|":
            return s | r;
          case "&":
            return s & r;
          case "^":
            return s ^ r;
          case "<<":
            return s << r;
          case ">>":
            return s >> r;
          case ">>>":
            return s >>> r;
        }
      }
      if (t.isCallExpression()) {
        let s = t.get("callee"), r, i;
        if (s.isIdentifier() && !t.scope.getBinding(s.node.name) && (sge(s.node.name) || eMs(s.node.name)) && (i = global[s.node.name]), s.isMemberExpression()) {
          let a = s.get("object"), o = s.get("property");
          if (a.isIdentifier() && o.isIdentifier() && sge(a.node.name) && !tMs(o.node.name)) {
            r = global[a.node.name];
            let l = o.node.name;
            hasOwnProperty.call(r, l) && (i = r[l]);
          }
          if (a.isLiteral() && o.isIdentifier()) {
            let l = typeof a.node.value;
            (l === "string" || l === "number") && (r = a.node.value, i = r[o.node.name]);
          }
        }
        if (i) {
          let a = t.get("arguments").map((o) => Qn(o, e));
          return e.confident ? i.apply(r, a) : void 0;
        }
      }
      yc(t, e);
    }
  }
  n(rMs, "_evaluate");
  function ige(t, e, s, r = !1) {
    let i = "", a = 0, o = t.isTemplateLiteral() ? t.get("expressions") : t.get("quasi.expressions");
    for (let l of e) {
      if (!s.confident) break;
      i += r ? l.value.raw : l.value.cooked;
      let u = o[a++];
      u && (i += String(Qn(u, s)));
    }
    if (s.confident)
      return i;
  }
  n(ige, "evaluateQuasis");
  function iMs() {
    let t = {
      confident: !0,
      deoptPath: null,
      seen: /* @__PURE__ */ new Map()
    }, e = Qn(this, t);
    return t.confident || (e = void 0), {
      confident: t.confident,
      deopt: t.deoptPath,
      value: e
    };
  }
  n(iMs, "evaluate");
});

// ../node_modules/@babel/traverse/lib/path/conversion.js
var fge = g((gc) => {
  "use strict";
  Object.defineProperty(gc, "__esModule", {
    value: !0
  });
  gc.arrowFunctionToExpression = LMs;
  gc.ensureBlock = DMs;
  gc.ensureFunctionName = HMs;
  gc.splitExportDeclaration = WMs;
  gc.toComputedKey = kMs;
  gc.unwrapFunctionEnvironment = OMs;
  var nMs = jr(), aMs = Jl(), e7 = ab(), oMs = Ll(), {
    arrowFunctionExpression: t7,
    assignmentExpression: Xf,
    binaryExpression: Q9,
    blockStatement: lMs,
    callExpression: wy,
    conditionalExpression: uMs,
    expressionStatement: lge,
    identifier: Tr,
    isIdentifier: cMs,
    jsxIdentifier: pMs,
    logicalExpression: hMs,
    LOGICAL_OPERATORS: fMs,
    memberExpression: Wo,
    metaProperty: dMs,
    numericLiteral: mMs,
    objectExpression: yMs,
    restElement: gMs,
    returnStatement: TMs,
    sequenceExpression: bMs,
    spreadElement: xMs,
    stringLiteral: uge,
    super: Z9,
    thisExpression: ub,
    toExpression: cge,
    unaryExpression: SMs,
    toBindingIdentifierName: PMs,
    isFunction: EMs,
    isAssignmentPattern: AMs,
    isRestElement: vMs,
    getFunctionName: CMs,
    cloneNode: zf,
    variableDeclaration: wMs,
    variableDeclarator: IMs,
    exportNamedDeclaration: age,
    exportSpecifier: oge,
    inherits: NMs
  } = nMs;
  function kMs() {
    let t;
    if (this.isMemberExpression())
      t = this.node.property;
    else if (this.isProperty() || this.isMethod())
      t = this.node.key;
    else
      throw new ReferenceError("todo");
    return this.node.computed || cMs(t) && (t = uge(t.name)), t;
  }
  n(kMs, "toComputedKey");
  function DMs() {
    let t = this.get("body"), e = t.node;
    if (Array.isArray(t))
      throw new Error("Can't convert array path to a block statement");
    if (!e)
      throw new Error("Can't convert node without a body");
    if (t.isBlockStatement())
      return e;
    let s = [], r = "body", i, a;
    t.isStatement() ? (a = "body", i = 0, s.push(t.node)) : (r += ".body.0", this.isFunction() ? (i = "argument", s.push(TMs(t.node))) : (i =
    "expression", s.push(lge(t.node)))), this.node.body = lMs(s);
    let o = this.get(r);
    return oMs.setup.call(t, o, a ? o.node[a] : o.node, a, i), this.node;
  }
  n(DMs, "ensureBlock");
  gc.arrowFunctionToShadowed = function() {
    this.isArrowFunctionExpression() && this.arrowFunctionToExpression();
  };
  function OMs() {
    if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration())
      throw this.buildCodeFrameError("Can only unwrap the environment of a function.");
    pge(this);
  }
  n(OMs, "unwrapFunctionEnvironment");
  function _Ms(t, e) {
    t.node.type = e;
  }
  n(_Ms, "setType");
  function LMs({
    allowInsertArrow: t = !0,
    allowInsertArrowWithRest: e = t,
    noNewArrows: s = !((r) => (r = arguments[0]) == null ? void 0 : r.specCompliant)()
  } = {}) {
    if (!this.isArrowFunctionExpression())
      throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");
    let r = this;
    if (!s) {
      var i;
      r = (i = r.ensureFunctionName(!1)) != null ? i : r;
    }
    let {
      thisBinding: a,
      fnPath: o
    } = pge(r, s, t, e);
    if (o.ensureBlock(), _Ms(o, "FunctionExpression"), !s) {
      let l = a ? null : o.scope.generateUidIdentifier("arrowCheckId");
      return l && o.parentPath.scope.push({
        id: l,
        init: yMs([])
      }), o.get("body").unshiftContainer("body", lge(wy(this.hub.addHelper("newArrowCheck"), [ub(), Tr(l ? l.name : a)]))), o.replaceWith(wy(
      Wo(o.node, Tr("bind")), [l ? Tr(l.name) : ub()])), o.get("callee.object");
    }
    return o;
  }
  n(LMs, "arrowFunctionToExpression");
  var BMs = (0, e7.environmentVisitor)({
    CallExpression(t, {
      allSuperCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    }
  });
  function pge(t, e = !0, s = !0, r = !0) {
    let i, a = t.findParent((d) => {
      if (d.isArrowFunctionExpression()) {
        var m;
        return (m = i) != null || (i = d), !1;
      }
      return d.isFunction() || d.isProgram() || d.isClassProperty({
        static: !1
      }) || d.isClassPrivateProperty({
        static: !1
      });
    }), o = a.isClassMethod({
      kind: "constructor"
    });
    if (a.isClassProperty() || a.isClassPrivateProperty())
      if (i)
        a = i;
      else if (s)
        t.replaceWith(wy(t7([], cge(t.node)), [])), a = t.get("callee"), t = a.get("body");
      else
        throw t.buildCodeFrameError("Unable to transform arrow inside class property");
    let {
      thisPaths: l,
      argumentsPaths: u,
      newTargetPaths: c,
      superProps: p,
      superCalls: h
    } = VMs(t);
    if (o && h.length > 0) {
      if (!s)
        throw h[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an a\
rrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      if (!r)
        throw h[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\
.");
      let d = [];
      a.traverse(BMs, {
        allSuperCalls: d
      });
      let m = qMs(a);
      d.forEach((y) => {
        let T = Tr(m);
        T.loc = y.node.callee.loc, y.get("callee").replaceWith(T);
      });
    }
    if (u.length > 0) {
      let d = cb(a, "arguments", () => {
        let m = /* @__PURE__ */ n(() => Tr("arguments"), "args");
        return a.scope.path.isProgram() ? uMs(Q9("===", SMs("typeof", m()), uge("undefined")), a.scope.buildUndefinedNode(), m()) : m();
      });
      u.forEach((m) => {
        let y = Tr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (c.length > 0) {
      let d = cb(a, "newtarget", () => dMs(Tr("new"), Tr("target")));
      c.forEach((m) => {
        let y = Tr(d);
        y.loc = m.node.loc, m.replaceWith(y);
      });
    }
    if (p.length > 0) {
      if (!s)
        throw p[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in a\
n arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      p.reduce((m, y) => m.concat(FMs(y)), []).forEach((m) => {
        let y = m.node.computed ? "" : m.get("property").node.name, T = m.parentPath, b = T.isAssignmentExpression({
          left: m.node
        }), E = T.isCallExpression({
          callee: m.node
        }), V = T.isTaggedTemplateExpression({
          tag: m.node
        }), W = UMs(a, b, y), oe = [];
        if (m.node.computed && oe.push(m.get("property").node), b) {
          let ye = T.node.right;
          oe.push(ye);
        }
        let de = wy(Tr(W), oe);
        E ? (T.unshiftContainer("arguments", ub()), m.replaceWith(Wo(de, Tr("call"))), l.push(T.get("arguments.0"))) : b ? T.replaceWith(de) :
        V ? (m.replaceWith(wy(Wo(de, Tr("bind"), !1), [ub()])), l.push(m.get("arguments.0"))) : m.replaceWith(de);
      });
    }
    let f;
    return (l.length > 0 || !e) && (f = RMs(a, o), (e || o && hge(a)) && (l.forEach((d) => {
      let m = d.isJSX() ? pMs(f) : Tr(f);
      m.loc = d.node.loc, d.replaceWith(m);
    }), e || (f = null))), {
      thisBinding: f,
      fnPath: t
    };
  }
  n(pge, "hoistFunctionEnvironment");
  function MMs(t) {
    return fMs.includes(t);
  }
  n(MMs, "isLogicalOp");
  function FMs(t) {
    if (t.parentPath.isAssignmentExpression() && t.parentPath.node.operator !== "=") {
      let s = t.parentPath, r = s.node.operator.slice(0, -1), i = s.node.right, a = MMs(r);
      if (t.node.computed) {
        let o = t.scope.generateDeclaredUidIdentifier("tmp"), l = t.node.object, u = t.node.property;
        s.get("left").replaceWith(Wo(l, Xf("=", o, u), !0)), s.get("right").replaceWith(e(a ? "=" : r, Wo(l, Tr(o.name), !0), i));
      } else {
        let o = t.node.object, l = t.node.property;
        s.get("left").replaceWith(Wo(o, l)), s.get("right").replaceWith(e(a ? "=" : r, Wo(o, Tr(l.name)), i));
      }
      return a ? s.replaceWith(hMs(r, s.node.left, s.node.right)) : s.node.operator = "=", [s.get("left"), s.get("right").get("left")];
    } else if (t.parentPath.isUpdateExpression()) {
      let s = t.parentPath, r = t.scope.generateDeclaredUidIdentifier("tmp"), i = t.node.computed ? t.scope.generateDeclaredUidIdentifier("p\
rop") : null, a = [Xf("=", r, Wo(t.node.object, i ? Xf("=", i, t.node.property) : t.node.property, t.node.computed)), Xf("=", Wo(t.node.object,
      i ? Tr(i.name) : t.node.property, t.node.computed), Q9(t.parentPath.node.operator[0], Tr(r.name), mMs(1)))];
      t.parentPath.node.prefix || a.push(Tr(r.name)), s.replaceWith(bMs(a));
      let o = s.get("expressions.0.right"), l = s.get("expressions.1.left");
      return [o, l];
    }
    return [t];
    function e(s, r, i) {
      return s === "=" ? Xf("=", r, i) : Q9(s, r, i);
    }
  }
  n(FMs, "standardizeSuperProperty");
  function hge(t) {
    return t.isClassMethod() && !!t.parentPath.parentPath.node.superClass;
  }
  n(hge, "hasSuperClass");
  var jMs = (0, e7.environmentVisitor)({
    CallExpression(t, {
      supers: e,
      thisBinding: s
    }) {
      t.get("callee").isSuper() && (e.has(t.node) || (e.add(t.node), t.replaceWithMultiple([t.node, Xf("=", Tr(s), Tr("this"))])));
    }
  });
  function RMs(t, e) {
    return cb(t, "this", (s) => {
      if (!e || !hge(t)) return ub();
      t.traverse(jMs, {
        supers: /* @__PURE__ */ new WeakSet(),
        thisBinding: s
      });
    });
  }
  n(RMs, "getThisBinding");
  function qMs(t) {
    return cb(t, "supercall", () => {
      let e = t.scope.generateUidIdentifier("args");
      return t7([gMs(e)], wy(Z9(), [xMs(Tr(e.name))]));
    });
  }
  n(qMs, "getSuperBinding");
  function UMs(t, e, s) {
    return cb(t, `superprop_${e ? "set" : "get"}:${s || ""}`, () => {
      let i = [], a;
      if (s)
        a = Wo(Z9(), Tr(s));
      else {
        let o = t.scope.generateUidIdentifier("prop");
        i.unshift(o), a = Wo(Z9(), Tr(o.name), !0);
      }
      if (e) {
        let o = t.scope.generateUidIdentifier("value");
        i.push(o), a = Xf("=", a, Tr(o.name));
      }
      return t7(i, a);
    });
  }
  n(UMs, "getSuperPropBinding");
  function cb(t, e, s) {
    let r = "binding:" + e, i = t.getData(r);
    if (!i) {
      let a = t.scope.generateUidIdentifier(e);
      i = a.name, t.setData(r, i), t.scope.push({
        id: a,
        init: s(i)
      });
    }
    return i;
  }
  n(cb, "getBinding");
  var KMs = (0, e7.environmentVisitor)({
    ThisExpression(t, {
      thisPaths: e
    }) {
      e.push(t);
    },
    JSXIdentifier(t, {
      thisPaths: e
    }) {
      t.node.name === "this" && (!t.parentPath.isJSXMemberExpression({
        object: t.node
      }) && !t.parentPath.isJSXOpeningElement({
        name: t.node
      }) || e.push(t));
    },
    CallExpression(t, {
      superCalls: e
    }) {
      t.get("callee").isSuper() && e.push(t);
    },
    MemberExpression(t, {
      superProps: e
    }) {
      t.get("object").isSuper() && e.push(t);
    },
    Identifier(t, {
      argumentsPaths: e
    }) {
      if (!t.isReferencedIdentifier({
        name: "arguments"
      })) return;
      let s = t.scope;
      do {
        if (s.hasOwnBinding("arguments")) {
          s.rename("arguments");
          return;
        }
        if (s.path.isFunction() && !s.path.isArrowFunctionExpression())
          break;
      } while (s = s.parent);
      e.push(t);
    },
    MetaProperty(t, {
      newTargetPaths: e
    }) {
      t.get("meta").isIdentifier({
        name: "new"
      }) && t.get("property").isIdentifier({
        name: "target"
      }) && e.push(t);
    }
  });
  function VMs(t) {
    let e = [], s = [], r = [], i = [], a = [];
    return t.traverse(KMs, {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    }), {
      thisPaths: e,
      argumentsPaths: s,
      newTargetPaths: r,
      superProps: i,
      superCalls: a
    };
  }
  n(VMs, "getScopeInformation");
  function WMs() {
    if (!this.isExportDeclaration() || this.isExportAllDeclaration())
      throw new Error("Only default and named export declarations can be split.");
    if (this.isExportNamedDeclaration() && this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let t = this.get("declaration");
    if (this.isExportDefaultDeclaration()) {
      let i = t.isFunctionDeclaration() || t.isClassDeclaration(), a = t.isFunctionExpression() || t.isClassExpression(), o = t.isScope() ? t.
      scope.parent : t.scope, l = t.node.id, u = !1;
      l ? a && o.hasBinding(l.name) && (u = !0, l = o.generateUidIdentifier(l.name)) : (u = !0, l = o.generateUidIdentifier("default"), (i ||
      a) && (t.node.id = zf(l)));
      let c = i ? t.node : wMs("var", [IMs(zf(l), t.node)]), p = age(null, [oge(zf(l), Tr("default"))]);
      return this.insertAfter(p), this.replaceWith(c), u && o.registerDeclaration(this), this;
    } else if (this.get("specifiers").length > 0)
      throw new Error("It doesn't make sense to split exported specifiers.");
    let e = t.getOuterBindingIdentifiers(), s = Object.keys(e).map((i) => oge(Tr(i), Tr(i))), r = age(null, s);
    return this.insertAfter(r), this.replaceWith(t.node), this;
  }
  n(WMs, "splitExportDeclaration");
  var $Ms = {
    "ReferencedIdentifier|BindingIdentifier"(t, e) {
      t.node.name === e.name && (e.needsRename = !0, t.stop());
    },
    Scope(t, e) {
      t.scope.hasOwnBinding(e.name) && t.skip();
    }
  };
  function HMs(t) {
    if (this.node.id) return this;
    let e = CMs(this.node, this.parent);
    if (e == null) return this;
    let {
      name: s
    } = e;
    if (!t && /[\uD800-\uDFFF]/.test(s) || s.startsWith("get ") || s.startsWith("set "))
      return null;
    s = PMs(s.replace(/[/ ]/g, "_"));
    let r = Tr(s);
    NMs(r, e.originalNode);
    let i = {
      needsRename: !1,
      name: s
    }, {
      scope: a
    } = this, o = a.getOwnBinding(s);
    if (o ? o.kind === "param" && (i.needsRename = !0) : (a.parent.hasBinding(s) || a.hasGlobal(s)) && this.traverse($Ms, i), !i.needsRename)
      return this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (a.hasBinding(r.name) && !a.hasGlobal(r.name))
      return a.rename(r.name), this.node.id = r, a.getProgramParent().references[r.name] = !0, this;
    if (!EMs(this.node)) return null;
    let l = a.generateUidIdentifier(r.name), u = [];
    for (let p = 0, h = JMs(this.node); p < h; p++)
      u.push(a.generateUidIdentifier("x"));
    let c = aMs.default.expression.ast`
    (function (${l}) {
      function ${r}(${u}) {
        return ${zf(l)}.apply(this, arguments);
      }

      ${zf(r)}.toString = function () {
        return ${zf(l)}.toString();
      }

      return ${zf(r)};
    })(${cge(this.node)})
  `;
    return this.replaceWith(c)[0].get("arguments.0");
  }
  n(HMs, "ensureFunctionName");
  function JMs(t) {
    let e = t.params.findIndex((s) => AMs(s) || vMs(s));
    return e === -1 ? t.params.length : e;
  }
  n(JMs, "getFunctionArity");
});

// ../node_modules/@babel/traverse/lib/path/introspection.js
var bge = g((yi) => {
  "use strict";
  Object.defineProperty(yi, "__esModule", {
    value: !0
  });
  yi._guessExecutionStatusRelativeTo = dFs;
  yi._resolve = Tge;
  yi.canHaveVariableDeclarationOrExpression = aFs;
  yi.canSwapBetweenExpressionAndStatement = oFs;
  yi.getSource = pFs;
  yi.isCompletionRecord = lFs;
  yi.isConstantExpression = TFs;
  yi.isInStrictMode = bFs;
  yi.isNodeType = nFs;
  yi.isStatementOrBlock = uFs;
  yi.isStatic = iFs;
  yi.matchesPattern = rFs;
  yi.referencesImport = cFs;
  yi.resolve = gFs;
  yi.willIMaybeExecuteBefore = hFs;
  var YMs = jr(), {
    STATEMENT_OR_BLOCK_KEYS: XMs,
    VISITOR_KEYS: zMs,
    isBlockStatement: gge,
    isExpression: GMs,
    isIdentifier: QMs,
    isLiteral: ZMs,
    isStringLiteral: eFs,
    isType: tFs,
    matchesPattern: sFs
  } = YMs;
  function rFs(t, e) {
    return sFs(this.node, t, e);
  }
  n(rFs, "matchesPattern");
  yi.has = /* @__PURE__ */ n(function(e) {
    var s;
    let r = (s = this.node) == null ? void 0 : s[e];
    return r && Array.isArray(r) ? !!r.length : !!r;
  }, "has");
  function iFs() {
    return this.scope.isStatic(this.node);
  }
  n(iFs, "isStatic");
  yi.is = yi.has, yi.isnt = /* @__PURE__ */ n(function(e) {
    return !this.has(e);
  }, "isnt"), yi.equals = /* @__PURE__ */ n(function(e, s) {
    return this.node[e] === s;
  }, "equals");
  function nFs(t) {
    return tFs(this.type, t);
  }
  n(nFs, "isNodeType");
  function aFs() {
    return (this.key === "init" || this.key === "left") && this.parentPath.isFor();
  }
  n(aFs, "canHaveVariableDeclarationOrExpression");
  function oFs(t) {
    return this.key !== "body" || !this.parentPath.isArrowFunctionExpression() ? !1 : this.isExpression() ? gge(t) : this.isBlockStatement() ?
    GMs(t) : !1;
  }
  n(oFs, "canSwapBetweenExpressionAndStatement");
  function lFs(t) {
    let e = this, s = !0;
    do {
      let {
        type: r,
        container: i
      } = e;
      if (!s && (e.isFunction() || r === "StaticBlock"))
        return !!t;
      if (s = !1, Array.isArray(i) && e.key !== i.length - 1)
        return !1;
    } while ((e = e.parentPath) && !e.isProgram() && !e.isDoExpression());
    return !0;
  }
  n(lFs, "isCompletionRecord");
  function uFs() {
    return this.parentPath.isLabeledStatement() || gge(this.container) ? !1 : XMs.includes(this.key);
  }
  n(uFs, "isStatementOrBlock");
  function cFs(t, e) {
    if (!this.isReferencedIdentifier()) {
      if (this.isJSXMemberExpression() && this.node.property.name === e || (this.isMemberExpression() || this.isOptionalMemberExpression()) &&
      (this.node.computed ? eFs(this.node.property, {
        value: e
      }) : this.node.property.name === e)) {
        let a = this.get("object");
        return a.isReferencedIdentifier() && a.referencesImport(t, "*");
      }
      return !1;
    }
    let s = this.scope.getBinding(this.node.name);
    if (!s || s.kind !== "module") return !1;
    let r = s.path, i = r.parentPath;
    if (!i.isImportDeclaration()) return !1;
    if (i.node.source.value === t) {
      if (!e) return !0;
    } else
      return !1;
    return !!(r.isImportDefaultSpecifier() && e === "default" || r.isImportNamespaceSpecifier() && e === "*" || r.isImportSpecifier() && QMs(
    r.node.imported, {
      name: e
    }));
  }
  n(cFs, "referencesImport");
  function pFs() {
    let t = this.node;
    if (t.end) {
      let e = this.hub.getCode();
      if (e) return e.slice(t.start, t.end);
    }
    return "";
  }
  n(pFs, "getSource");
  function hFs(t) {
    return this._guessExecutionStatusRelativeTo(t) !== "after";
  }
  n(hFs, "willIMaybeExecuteBefore");
  function dge(t) {
    return t.isProgram() ? t : (t.parentPath.scope.getFunctionParent() || t.parentPath.scope.getProgramParent()).path;
  }
  n(dge, "getOuterFunction");
  function fFs(t, e) {
    switch (t) {
      case "LogicalExpression":
        return e === "right";
      case "ConditionalExpression":
      case "IfStatement":
        return e === "consequent" || e === "alternate";
      case "WhileStatement":
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForOfStatement":
        return e === "body";
      case "ForStatement":
        return e === "body" || e === "update";
      case "SwitchStatement":
        return e === "cases";
      case "TryStatement":
        return e === "handler";
      case "AssignmentPattern":
        return e === "right";
      case "OptionalMemberExpression":
        return e === "property";
      case "OptionalCallExpression":
        return e === "arguments";
      default:
        return !1;
    }
  }
  n(fFs, "isExecutionUncertain");
  function mge(t, e) {
    for (let s = 0; s < e; s++) {
      let r = t[s];
      if (fFs(r.parent.type, r.parentKey))
        return !0;
    }
    return !1;
  }
  n(mge, "isExecutionUncertainInList");
  var yge = Symbol();
  function dFs(t) {
    return s7(this, t, /* @__PURE__ */ new Map());
  }
  n(dFs, "_guessExecutionStatusRelativeTo");
  function s7(t, e, s) {
    let r = {
      this: dge(t),
      target: dge(e)
    };
    if (r.target.node !== r.this.node)
      return yFs(t, r.target, s);
    let i = {
      target: e.getAncestry(),
      this: t.getAncestry()
    };
    if (i.target.includes(t)) return "after";
    if (i.this.includes(e)) return "before";
    let a, o = {
      target: 0,
      this: 0
    };
    for (; !a && o.this < i.this.length; ) {
      let p = i.this[o.this];
      o.target = i.target.indexOf(p), o.target >= 0 ? a = p : o.this++;
    }
    if (!a)
      throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");
    if (mge(i.this, o.this - 1) || mge(i.target, o.target - 1))
      return "unknown";
    let l = {
      this: i.this[o.this - 1],
      target: i.target[o.target - 1]
    };
    if (l.target.listKey && l.this.listKey && l.target.container === l.this.container)
      return l.target.key > l.this.key ? "before" : "after";
    let u = zMs[a.type], c = {
      this: u.indexOf(l.this.parentKey),
      target: u.indexOf(l.target.parentKey)
    };
    return c.target > c.this ? "before" : "after";
  }
  n(s7, "_guessExecutionStatusRelativeToCached");
  function mFs(t, e, s) {
    if (e.isFunctionDeclaration()) {
      if (e.parentPath.isExportDeclaration())
        return "unknown";
    } else return s7(t, e, s) === "before" ? "before" : "unknown";
    let r = e.scope.getBinding(e.node.id.name);
    if (!r.references) return "before";
    let i = r.referencePaths, a;
    for (let o of i) {
      if (!!o.find((c) => c.node === e.node)) continue;
      if (o.key !== "callee" || !o.parentPath.isCallExpression())
        return "unknown";
      let u = s7(t, o, s);
      if (a && a !== u)
        return "unknown";
      a = u;
    }
    return a;
  }
  n(mFs, "_guessExecutionStatusRelativeToDifferentFunctionsInternal");
  function yFs(t, e, s) {
    let r = s.get(t.node), i;
    if (!r)
      s.set(t.node, r = /* @__PURE__ */ new Map());
    else if (i = r.get(e.node))
      return i === yge ? "unknown" : i;
    r.set(e.node, yge);
    let a = mFs(t, e, s);
    return r.set(e.node, a), a;
  }
  n(yFs, "_guessExecutionStatusRelativeToDifferentFunctionsCached");
  function gFs(t, e) {
    return Tge.call(this, t, e) || this;
  }
  n(gFs, "resolve");
  function Tge(t, e) {
    var s;
    if (!((s = e) != null && s.includes(this)))
      if (e = e || [], e.push(this), this.isVariableDeclarator()) {
        if (this.get("id").isIdentifier())
          return this.get("init").resolve(t, e);
      } else if (this.isReferencedIdentifier()) {
        let r = this.scope.getBinding(this.node.name);
        if (!r || !r.constant || r.kind === "module") return;
        if (r.path !== this) {
          let i = r.path.resolve(t, e);
          return this.find((a) => a.node === i.node) ? void 0 : i;
        }
      } else {
        if (this.isTypeCastExpression())
          return this.get("expression").resolve(t, e);
        if (t && this.isMemberExpression()) {
          let r = this.toComputedKey();
          if (!ZMs(r)) return;
          let i = r.value, a = this.get("object").resolve(t, e);
          if (a.isObjectExpression()) {
            let o = a.get("properties");
            for (let l of o) {
              if (!l.isProperty()) continue;
              let u = l.get("key"), c = l.isnt("computed") && u.isIdentifier({
                name: i
              });
              if (c = c || u.isLiteral({
                value: i
              }), c) return l.get("value").resolve(t, e);
            }
          } else if (a.isArrayExpression() && !isNaN(+i)) {
            let l = a.get("elements")[i];
            if (l) return l.resolve(t, e);
          }
        }
      }
  }
  n(Tge, "_resolve");
  function TFs() {
    if (this.isIdentifier()) {
      let t = this.scope.getBinding(this.node.name);
      return t ? t.constant : !1;
    }
    if (this.isLiteral())
      return this.isRegExpLiteral() ? !1 : this.isTemplateLiteral() ? this.get("expressions").every((t) => t.isConstantExpression()) : !0;
    if (this.isUnaryExpression())
      return this.node.operator !== "void" ? !1 : this.get("argument").isConstantExpression();
    if (this.isBinaryExpression()) {
      let {
        operator: t
      } = this.node;
      return t !== "in" && t !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression();
    }
    return this.isMemberExpression() ? !this.node.computed && this.get("object").isIdentifier({
      name: "Symbol"
    }) && !this.scope.hasBinding("Symbol", {
      noGlobals: !0
    }) : this.isCallExpression() ? this.node.arguments.length === 1 && this.get("callee").matchesPattern("Symbol.for") && !this.scope.hasBinding(
    "Symbol", {
      noGlobals: !0
    }) && this.get("arguments")[0].isStringLiteral() : !1;
  }
  n(TFs, "isConstantExpression");
  function bFs() {
    return !!(this.isProgram() ? this : this.parentPath).find((s) => {
      if (s.isProgram({
        sourceType: "module"
      }) || s.isClass()) return !0;
      if (s.isArrowFunctionExpression() && !s.get("body").isBlockStatement())
        return !1;
      let r;
      if (s.isFunction())
        r = s.node.body;
      else if (s.isProgram())
        r = s.node;
      else
        return !1;
      for (let i of r.directives)
        if (i.value.value === "use strict")
          return !0;
    });
  }
  n(bFs, "isInStrictMode");
});

// ../node_modules/@babel/traverse/lib/path/family.js
var Age = g((en) => {
  "use strict";
  Object.defineProperty(en, "__esModule", {
    value: !0
  });
  en._getKey = Pge;
  en._getPattern = Ege;
  en.get = MFs;
  en.getAllNextSiblings = LFs;
  en.getAllPrevSiblings = BFs;
  en.getAssignmentIdentifiers = FFs;
  en.getBindingIdentifierPaths = qFs;
  en.getBindingIdentifiers = jFs;
  en.getCompletionRecords = kFs;
  en.getNextSibling = _Fs;
  en.getOpposite = wFs;
  en.getOuterBindingIdentifierPaths = UFs;
  en.getOuterBindingIdentifiers = RFs;
  en.getPrevSibling = OFs;
  en.getSibling = DFs;
  var i7 = zp(), xFs = jr(), {
    getAssignmentIdentifiers: SFs,
    getBindingIdentifiers: Sge,
    getOuterBindingIdentifiers: PFs,
    numericLiteral: EFs,
    unaryExpression: AFs
  } = xFs, n7 = 0, pb = 1;
  function vFs(t) {
    return {
      type: n7,
      path: t
    };
  }
  n(vFs, "NormalCompletion");
  function CFs(t) {
    return {
      type: pb,
      path: t
    };
  }
  n(CFs, "BreakCompletion");
  function wFs() {
    return this.key === "left" ? this.getSibling("right") : this.key === "right" ? this.getSibling("left") : null;
  }
  n(wFs, "getOpposite");
  function Iy(t, e, s) {
    return t && e.push(...Ny(t, s)), e;
  }
  n(Iy, "addCompletionRecords");
  function IFs(t, e, s) {
    let r = [];
    for (let i = 0; i < t.length; i++) {
      let a = t[i], o = Ny(a, s), l = [], u = [];
      for (let c of o)
        c.type === n7 && l.push(c), c.type === pb && u.push(c);
      l.length && (r = l), e.push(...u);
    }
    return e.push(...r), e;
  }
  n(IFs, "completionRecordForSwitch");
  function NFs(t) {
    t.forEach((e) => {
      e.type = pb;
    });
  }
  n(NFs, "normalCompletionToBreak");
  function r7(t, e) {
    t.forEach((s) => {
      s.path.isBreakStatement({
        label: null
      }) && (e ? s.path.replaceWith(AFs("void", EFs(0))) : s.path.remove());
    });
  }
  n(r7, "replaceBreakStatementInBreakCompletion");
  function xge(t, e) {
    let s = [];
    if (e.canHaveBreak) {
      let r = [];
      for (let i = 0; i < t.length; i++) {
        let a = t[i], o = Object.assign({}, e, {
          inCaseClause: !1
        });
        a.isBlockStatement() && (e.inCaseClause || e.shouldPopulateBreak) ? o.shouldPopulateBreak = !0 : o.shouldPopulateBreak = !1;
        let l = Ny(a, o);
        if (l.length > 0 && l.every((u) => u.type === pb)) {
          r.length > 0 && l.every((u) => u.path.isBreakStatement({
            label: null
          })) ? (NFs(r), s.push(...r), r.some((u) => u.path.isDeclaration()) && (s.push(...l), r7(l, !0)), r7(l, !1)) : (s.push(...l), e.shouldPopulateBreak ||
          r7(l, !0));
          break;
        }
        if (i === t.length - 1)
          s.push(...l);
        else {
          r = [];
          for (let u = 0; u < l.length; u++) {
            let c = l[u];
            c.type === pb && s.push(c), c.type === n7 && r.push(c);
          }
        }
      }
    } else if (t.length)
      for (let r = t.length - 1; r >= 0; r--) {
        let i = Ny(t[r], e);
        if (i.length > 1 || i.length === 1 && !i[0].path.isVariableDeclaration()) {
          s.push(...i);
          break;
        }
      }
    return s;
  }
  n(xge, "getStatementListCompletion");
  function Ny(t, e) {
    let s = [];
    if (t.isIfStatement())
      s = Iy(t.get("consequent"), s, e), s = Iy(t.get("alternate"), s, e);
    else {
      if (t.isDoExpression() || t.isFor() || t.isWhile() || t.isLabeledStatement())
        return Iy(t.get("body"), s, e);
      if (t.isProgram() || t.isBlockStatement())
        return xge(t.get("body"), e);
      if (t.isFunction())
        return Ny(t.get("body"), e);
      if (t.isTryStatement())
        s = Iy(t.get("block"), s, e), s = Iy(t.get("handler"), s, e);
      else {
        if (t.isCatchClause())
          return Iy(t.get("body"), s, e);
        if (t.isSwitchStatement())
          return IFs(t.get("cases"), s, e);
        if (t.isSwitchCase())
          return xge(t.get("consequent"), {
            canHaveBreak: !0,
            shouldPopulateBreak: !1,
            inCaseClause: !0
          });
        t.isBreakStatement() ? s.push(CFs(t)) : s.push(vFs(t));
      }
    }
    return s;
  }
  n(Ny, "_getCompletionRecords");
  function kFs() {
    return Ny(this, {
      canHaveBreak: !1,
      shouldPopulateBreak: !1,
      inCaseClause: !1
    }).map((e) => e.path);
  }
  n(kFs, "getCompletionRecords");
  function DFs(t) {
    return i7.default.get({
      parentPath: this.parentPath,
      parent: this.parent,
      container: this.container,
      listKey: this.listKey,
      key: t
    }).setContext(this.context);
  }
  n(DFs, "getSibling");
  function OFs() {
    return this.getSibling(this.key - 1);
  }
  n(OFs, "getPrevSibling");
  function _Fs() {
    return this.getSibling(this.key + 1);
  }
  n(_Fs, "getNextSibling");
  function LFs() {
    let t = this.key, e = this.getSibling(++t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(++t);
    return s;
  }
  n(LFs, "getAllNextSiblings");
  function BFs() {
    let t = this.key, e = this.getSibling(--t), s = [];
    for (; e.node; )
      s.push(e), e = this.getSibling(--t);
    return s;
  }
  n(BFs, "getAllPrevSiblings");
  function MFs(t, e = !0) {
    e === !0 && (e = this.context);
    let s = t.split(".");
    return s.length === 1 ? Pge.call(this, t, e) : Ege.call(this, s, e);
  }
  n(MFs, "get");
  function Pge(t, e) {
    let s = this.node, r = s[t];
    return Array.isArray(r) ? r.map((i, a) => i7.default.get({
      listKey: t,
      parentPath: this,
      parent: s,
      container: r,
      key: a
    }).setContext(e)) : i7.default.get({
      parentPath: this,
      parent: s,
      container: s,
      key: t
    }).setContext(e);
  }
  n(Pge, "_getKey");
  function Ege(t, e) {
    let s = this;
    for (let r of t)
      r === "." ? s = s.parentPath : Array.isArray(s) ? s = s[r] : s = s.get(r, e);
    return s;
  }
  n(Ege, "_getPattern");
  function FFs() {
    return SFs(this.node);
  }
  n(FFs, "getAssignmentIdentifiers");
  function jFs(t) {
    return Sge(this.node, t);
  }
  n(jFs, "getBindingIdentifiers");
  function RFs(t) {
    return PFs(this.node, t);
  }
  n(RFs, "getOuterBindingIdentifiers");
  function qFs(t = !1, e = !1) {
    let r = [this], i = /* @__PURE__ */ Object.create(null);
    for (; r.length; ) {
      let a = r.shift();
      if (!a || !a.node) continue;
      let o = Sge.keys[a.node.type];
      if (a.isIdentifier()) {
        t ? (i[a.node.name] = i[a.node.name] || []).push(a) : i[a.node.name] = a;
        continue;
      }
      if (a.isExportDeclaration()) {
        let l = a.get("declaration");
        l.isDeclaration() && r.push(l);
        continue;
      }
      if (e) {
        if (a.isFunctionDeclaration()) {
          r.push(a.get("id"));
          continue;
        }
        if (a.isFunctionExpression())
          continue;
      }
      if (o)
        for (let l = 0; l < o.length; l++) {
          let u = o[l], c = a.get(u);
          Array.isArray(c) ? r.push(...c) : c.node && r.push(c);
        }
    }
    return i;
  }
  n(qFs, "getBindingIdentifierPaths");
  function UFs(t = !1) {
    return this.getBindingIdentifierPaths(t, !0);
  }
  n(UFs, "getOuterBindingIdentifierPaths");
});

// ../node_modules/@babel/traverse/lib/path/comments.js
var Cge = g((hb) => {
  "use strict";
  Object.defineProperty(hb, "__esModule", {
    value: !0
  });
  hb.addComment = HFs;
  hb.addComments = JFs;
  hb.shareCommentsWithSiblings = $Fs;
  var KFs = jr(), {
    addComment: VFs,
    addComments: WFs
  } = KFs;
  function $Fs() {
    if (typeof this.key == "string") return;
    let t = this.node;
    if (!t) return;
    let e = t.trailingComments, s = t.leadingComments;
    if (!e && !s) return;
    let r = this.getSibling(this.key - 1), i = this.getSibling(this.key + 1), a = !!r.node, o = !!i.node;
    a && (s && r.addComments("trailing", vge(s, r.node.trailingComments)), e && !o && r.addComments("trailing", e)), o && (e && i.addComments(
    "leading", vge(e, i.node.leadingComments)), s && !a && i.addComments("leading", s));
  }
  n($Fs, "shareCommentsWithSiblings");
  function vge(t, e) {
    if (!(e != null && e.length)) return t;
    let s = new Set(e);
    return t.filter((r) => !s.has(r));
  }
  n(vge, "removeIfExisting");
  function HFs(t, e, s) {
    VFs(this.node, t, e, s);
  }
  n(HFs, "addComment");
  function JFs(t, e) {
    WFs(this.node, t, e);
  }
  n(JFs, "addComments");
});

// ../node_modules/@babel/traverse/lib/path/index.js
var zp = g((Fl) => {
  "use strict";
  Object.defineProperty(Fl, "__esModule", {
    value: !0
  });
  Fl.default = Fl.SHOULD_STOP = Fl.SHOULD_SKIP = Fl.REMOVED = void 0;
  var YFs = PR(), XFs = go(), zFs = ob(), GFs = D9(), Nge = jr(), oC = Nge, QFs = Wf(), ZFs = q6(), Bl = fye(), ky = _ye(), Dy = U9(), wge = nge(),
  Gf = fge(), Ai = bge(), kge = Ll(), gi = kge, Oy = sC(), Ml = rC(), Zn = Age(), a7 = Cge(), e3s = A9(), {
    validate: t3s
  } = Nge, Ige = XFs("babel"), Dlr = Fl.REMOVED = 1, Olr = Fl.SHOULD_STOP = 2, _lr = Fl.SHOULD_SKIP = 4, Tc = Fl.default = class Dge {
    static {
      n(this, "NodePath");
    }
    constructor(e, s) {
      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 = s, this.hub = e, this.data = null, this.
      context = null, this.scope = null;
    }
    get removed() {
      return (this._traverseFlags & 1) > 0;
    }
    set removed(e) {
      e ? this._traverseFlags |= 1 : this._traverseFlags &= -2;
    }
    get shouldStop() {
      return (this._traverseFlags & 2) > 0;
    }
    set shouldStop(e) {
      e ? this._traverseFlags |= 2 : this._traverseFlags &= -3;
    }
    get shouldSkip() {
      return (this._traverseFlags & 4) > 0;
    }
    set shouldSkip(e) {
      e ? this._traverseFlags |= 4 : this._traverseFlags &= -5;
    }
    static get({
      hub: e,
      parentPath: s,
      parent: r,
      container: i,
      listKey: a,
      key: o
    }) {
      if (!e && s && (e = s.hub), !r)
        throw new Error("To get a node path the parent needs to exist");
      let l = i[o], u = QFs.getOrCreateCachedPaths(e, r), c = u.get(l);
      return c || (c = new Dge(e, r), l && u.set(l, c)), kge.setup.call(c, s, i, a, o), c;
    }
    getScope(e) {
      return this.isScope() ? new GFs.default(this) : e;
    }
    setData(e, s) {
      return this.data == null && (this.data = /* @__PURE__ */ Object.create(null)), this.data[e] = s;
    }
    getData(e, s) {
      this.data == null && (this.data = /* @__PURE__ */ Object.create(null));
      let r = this.data[e];
      return r === void 0 && s !== void 0 && (r = this.data[e] = s), r;
    }
    hasNode() {
      return this.node != null;
    }
    buildCodeFrameError(e, s = SyntaxError) {
      return this.hub.buildError(this.node, e, s);
    }
    traverse(e, s) {
      (0, zFs.default)(this.node, e, this.scope, s, this);
    }
    set(e, s) {
      t3s(this.node, e, s), this.node[e] = s;
    }
    getPathLocation() {
      let e = [], s = this;
      do {
        let r = s.key;
        s.inList && (r = `${s.listKey}[${r}]`), e.unshift(r);
      } while (s = s.parentPath);
      return e.join(".");
    }
    debug(e) {
      Ige.enabled && Ige(`${this.getPathLocation()} ${this.type}: ${e}`);
    }
    toString() {
      return (0, ZFs.default)(this.node).code;
    }
    get inList() {
      return !!this.listKey;
    }
    set inList(e) {
      e || (this.listKey = null);
    }
    get parentKey() {
      return this.listKey || this.key;
    }
  }, s3s = {
    findParent: Bl.findParent,
    find: Bl.find,
    getFunctionParent: Bl.getFunctionParent,
    getStatementParent: Bl.getStatementParent,
    getEarliestCommonAncestorFrom: Bl.getEarliestCommonAncestorFrom,
    getDeepestCommonAncestorFrom: Bl.getDeepestCommonAncestorFrom,
    getAncestry: Bl.getAncestry,
    isAncestor: Bl.isAncestor,
    isDescendant: Bl.isDescendant,
    inType: Bl.inType,
    getTypeAnnotation: ky.getTypeAnnotation,
    isBaseType: ky.isBaseType,
    couldBeBaseType: ky.couldBeBaseType,
    baseTypeStrictlyMatches: ky.baseTypeStrictlyMatches,
    isGenericType: ky.isGenericType,
    replaceWithMultiple: Dy.replaceWithMultiple,
    replaceWithSourceString: Dy.replaceWithSourceString,
    replaceWith: Dy.replaceWith,
    replaceExpressionWithStatements: Dy.replaceExpressionWithStatements,
    replaceInline: Dy.replaceInline,
    evaluateTruthy: wge.evaluateTruthy,
    evaluate: wge.evaluate,
    toComputedKey: Gf.toComputedKey,
    ensureBlock: Gf.ensureBlock,
    unwrapFunctionEnvironment: Gf.unwrapFunctionEnvironment,
    arrowFunctionToExpression: Gf.arrowFunctionToExpression,
    splitExportDeclaration: Gf.splitExportDeclaration,
    ensureFunctionName: Gf.ensureFunctionName,
    matchesPattern: Ai.matchesPattern,
    isStatic: Ai.isStatic,
    isNodeType: Ai.isNodeType,
    canHaveVariableDeclarationOrExpression: Ai.canHaveVariableDeclarationOrExpression,
    canSwapBetweenExpressionAndStatement: Ai.canSwapBetweenExpressionAndStatement,
    isCompletionRecord: Ai.isCompletionRecord,
    isStatementOrBlock: Ai.isStatementOrBlock,
    referencesImport: Ai.referencesImport,
    getSource: Ai.getSource,
    willIMaybeExecuteBefore: Ai.willIMaybeExecuteBefore,
    _guessExecutionStatusRelativeTo: Ai._guessExecutionStatusRelativeTo,
    resolve: Ai.resolve,
    isConstantExpression: Ai.isConstantExpression,
    isInStrictMode: Ai.isInStrictMode,
    isDenylisted: gi.isDenylisted,
    visit: gi.visit,
    skip: gi.skip,
    skipKey: gi.skipKey,
    stop: gi.stop,
    setContext: gi.setContext,
    requeue: gi.requeue,
    requeueComputedKeyAndDecorators: gi.requeueComputedKeyAndDecorators,
    remove: Oy.remove,
    insertBefore: Ml.insertBefore,
    insertAfter: Ml.insertAfter,
    unshiftContainer: Ml.unshiftContainer,
    pushContainer: Ml.pushContainer,
    getOpposite: Zn.getOpposite,
    getCompletionRecords: Zn.getCompletionRecords,
    getSibling: Zn.getSibling,
    getPrevSibling: Zn.getPrevSibling,
    getNextSibling: Zn.getNextSibling,
    getAllNextSiblings: Zn.getAllNextSiblings,
    getAllPrevSiblings: Zn.getAllPrevSiblings,
    get: Zn.get,
    getAssignmentIdentifiers: Zn.getAssignmentIdentifiers,
    getBindingIdentifiers: Zn.getBindingIdentifiers,
    getOuterBindingIdentifiers: Zn.getOuterBindingIdentifiers,
    getBindingIdentifierPaths: Zn.getBindingIdentifierPaths,
    getOuterBindingIdentifierPaths: Zn.getOuterBindingIdentifierPaths,
    shareCommentsWithSiblings: a7.shareCommentsWithSiblings,
    addComment: a7.addComment,
    addComments: a7.addComments
  };
  Object.assign(Tc.prototype, s3s);
  Tc.prototype.arrowFunctionToShadowed = Gf.arrowFunctionToShadowed, Object.assign(Tc.prototype, {
    has: Ai.has,
    is: Ai.is,
    isnt: Ai.isnt,
    equals: Ai.equals,
    hoist: Ml.hoist,
    updateSiblingKeys: Ml.updateSiblingKeys,
    call: gi.call,
    isBlacklisted: gi.isBlacklisted,
    setScope: gi.setScope,
    resync: gi.resync,
    popContext: gi.popContext,
    pushContext: gi.pushContext,
    setup: gi.setup,
    setKey: gi.setKey
  });
  Tc.prototype._guessExecutionStatusRelativeToDifferentFunctions = Ai._guessExecutionStatusRelativeTo, Tc.prototype._guessExecutionStatusRelativeToDifferentFunctions =
  Ai._guessExecutionStatusRelativeTo, Object.assign(Tc.prototype, {
    _getTypeAnnotation: ky._getTypeAnnotation,
    _replaceWith: Dy._replaceWith,
    _resolve: Ai._resolve,
    _call: gi._call,
    _resyncParent: gi._resyncParent,
    _resyncKey: gi._resyncKey,
    _resyncList: gi._resyncList,
    _resyncRemoved: gi._resyncRemoved,
    _getQueueContexts: gi._getQueueContexts,
    _removeFromScope: Oy._removeFromScope,
    _callRemovalHooks: Oy._callRemovalHooks,
    _remove: Oy._remove,
    _markRemoved: Oy._markRemoved,
    _assertUnremoved: Oy._assertUnremoved,
    _containerInsert: Ml._containerInsert,
    _containerInsertBefore: Ml._containerInsertBefore,
    _containerInsertAfter: Ml._containerInsertAfter,
    _verifyNodeList: Ml._verifyNodeList,
    _getKey: Zn._getKey,
    _getPattern: Zn._getPattern
  });
  for (let t of oC.TYPES) {
    let e = `is${t}`, s = oC[e];
    Tc.prototype[e] = function(r) {
      return s(this.node, r);
    }, Tc.prototype[`assert${t}`] = function(r) {
      if (!s(this.node, r))
        throw new TypeError(`Expected node path of type ${t}`);
    };
  }
  Object.assign(Tc.prototype, e3s);
  for (let t of Object.keys(YFs))
    t[0] !== "_" && (oC.TYPES.includes(t) || oC.TYPES.push(t));
});

// ../node_modules/@babel/traverse/lib/context.js
var Oge = g((lC) => {
  "use strict";
  Object.defineProperty(lC, "__esModule", {
    value: !0
  });
  lC.default = void 0;
  var r3s = zp(), i3s = jr(), o7 = Ll(), {
    VISITOR_KEYS: n3s
  } = i3s, l7 = class {
    static {
      n(this, "TraversalContext");
    }
    constructor(e, s, r, i) {
      this.queue = null, this.priorityQueue = null, this.parentPath = i, this.scope = e, this.state = r, this.opts = s;
    }
    shouldVisit(e) {
      let s = this.opts;
      if (s.enter || s.exit || s[e.type]) return !0;
      let r = n3s[e.type];
      if (!(r != null && r.length)) return !1;
      for (let i of r)
        if (e[i])
          return !0;
      return !1;
    }
    create(e, s, r, i) {
      return r3s.default.get({
        parentPath: this.parentPath,
        parent: e,
        container: s,
        key: r,
        listKey: i
      });
    }
    maybeQueue(e, s) {
      this.queue && (s ? this.queue.push(e) : this.priorityQueue.push(e));
    }
    visitMultiple(e, s, r) {
      if (e.length === 0) return !1;
      let i = [];
      for (let a = 0; a < e.length; a++) {
        let o = e[a];
        o && this.shouldVisit(o) && i.push(this.create(s, e, a, r));
      }
      return this.visitQueue(i);
    }
    visitSingle(e, s) {
      return this.shouldVisit(e[s]) ? this.visitQueue([this.create(e, e, s)]) : !1;
    }
    visitQueue(e) {
      this.queue = e, this.priorityQueue = [];
      let s = /* @__PURE__ */ new WeakSet(), r = !1, i = 0;
      for (; i < e.length; ) {
        let a = e[i];
        if (i++, o7.resync.call(a), (a.contexts.length === 0 || a.contexts[a.contexts.length - 1] !== this) && o7.pushContext.call(a, this),
        a.key === null) continue;
        let {
          node: o
        } = a;
        if (!s.has(o)) {
          if (o && s.add(o), a.visit()) {
            r = !0;
            break;
          }
          if (this.priorityQueue.length && (r = this.visitQueue(this.priorityQueue), this.priorityQueue = [], this.queue = e, r))
            break;
        }
      }
      for (let a = 0; a < i; a++)
        o7.popContext.call(e[a]);
      return this.queue = null, r;
    }
    visit(e, s) {
      let r = e[s];
      return r ? Array.isArray(r) ? this.visitMultiple(r, e, s) : this.visitSingle(e, s) : !1;
    }
  };
  lC.default = l7;
});

// ../node_modules/@babel/traverse/lib/traverse-node.js
var Jv = g((u7) => {
  "use strict";
  Object.defineProperty(u7, "__esModule", {
    value: !0
  });
  u7.traverseNode = u3s;
  var a3s = Oge(), o3s = jr(), {
    VISITOR_KEYS: l3s
  } = o3s;
  function u3s(t, e, s, r, i, a, o) {
    let l = l3s[t.type];
    if (!l) return !1;
    let u = new a3s.default(s, e, r, i);
    if (o)
      return a != null && a[i.parentKey] ? !1 : u.visitQueue([i]);
    for (let c of l)
      if (!(a != null && a[c]) && u.visit(t, c))
        return !0;
    return !1;
  }
  n(u3s, "traverseNode");
});

// ../node_modules/@babel/traverse/lib/path/context.js
var Ll = g((Hr) => {
  "use strict";
  Object.defineProperty(Hr, "__esModule", {
    value: !0
  });
  Hr._call = p7;
  Hr._getQueueContexts = v3s;
  Hr._resyncKey = jge;
  Hr._resyncList = Rge;
  Hr._resyncParent = Fge;
  Hr._resyncRemoved = b3s;
  Hr.call = c7;
  Hr.isDenylisted = Bge;
  Hr.popContext = x3s;
  Hr.pushContext = S3s;
  Hr.requeue = E3s;
  Hr.requeueComputedKeyAndDecorators = A3s;
  Hr.resync = T3s;
  Hr.setContext = g3s;
  Hr.setKey = uC;
  Hr.setScope = Mge;
  Hr.setup = P3s;
  Hr.skip = d3s;
  Hr.skipKey = m3s;
  Hr.stop = y3s;
  Hr.visit = f3s;
  var c3s = Jv(), _ge = zp(), p3s = sC(), h3s = jr();
  function c7(t) {
    let e = this.opts;
    if (this.debug(t), this.node && p7.call(this, e[t]))
      return !0;
    if (this.node) {
      var s;
      return p7.call(this, (s = e[this.node.type]) == null ? void 0 : s[t]);
    }
    return !1;
  }
  n(c7, "call");
  function p7(t) {
    if (!t) return !1;
    for (let e of t) {
      if (!e) continue;
      let s = this.node;
      if (!s) return !0;
      let r = e.call(this.state, this, this.state);
      if (r && typeof r == "object" && typeof r.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 suppo\
rt. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      if (r)
        throw new Error(`Unexpected return value from visitor method ${e}`);
      if (this.node !== s || this._traverseFlags > 0) return !0;
    }
    return !1;
  }
  n(p7, "_call");
  function Bge() {
    var t;
    let e = (t = this.opts.denylist) != null ? t : this.opts.blacklist;
    return e?.includes(this.node.type);
  }
  n(Bge, "isDenylisted");
  Hr.isBlacklisted = Bge;
  function Lge(t, e) {
    t.context !== e && (t.context = e, t.state = e.state, t.opts = e.opts);
  }
  n(Lge, "restoreContext");
  function f3s() {
    var t, e;
    if (!this.node || this.isDenylisted() || (t = (e = this.opts).shouldSkip) != null && t.call(e, this))
      return !1;
    let s = this.context;
    return this.shouldSkip || c7.call(this, "enter") ? (this.debug("Skip..."), this.shouldStop) : (Lge(this, s), this.debug("Recursing into.\
.."), this.shouldStop = (0, c3s.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys), Lge(this, s), c7.call(this,
    "exit"), this.shouldStop);
  }
  n(f3s, "visit");
  function d3s() {
    this.shouldSkip = !0;
  }
  n(d3s, "skip");
  function m3s(t) {
    this.skipKeys == null && (this.skipKeys = {}), this.skipKeys[t] = !0;
  }
  n(m3s, "skipKey");
  function y3s() {
    this._traverseFlags |= _ge.SHOULD_SKIP | _ge.SHOULD_STOP;
  }
  n(y3s, "stop");
  function Mge() {
    var t, e;
    if ((t = this.opts) != null && t.noScope) return;
    let s = this.parentPath;
    ((this.key === "key" || this.listKey === "decorators") && s.isMethod() || this.key === "discriminant" && s.isSwitchStatement()) && (s = s.
    parentPath);
    let r;
    for (; s && !r; ) {
      var i;
      if ((i = s.opts) != null && i.noScope) return;
      r = s.scope, s = s.parentPath;
    }
    this.scope = this.getScope(r), (e = this.scope) == null || e.init();
  }
  n(Mge, "setScope");
  function g3s(t) {
    return this.skipKeys != null && (this.skipKeys = {}), this._traverseFlags = 0, t && (this.context = t, this.state = t.state, this.opts =
    t.opts), Mge.call(this), this;
  }
  n(g3s, "setContext");
  function T3s() {
    this.removed || (Fge.call(this), Rge.call(this), jge.call(this));
  }
  n(T3s, "resync");
  function Fge() {
    this.parentPath && (this.parent = this.parentPath.node);
  }
  n(Fge, "_resyncParent");
  function jge() {
    if (this.container && this.node !== this.container[this.key]) {
      if (Array.isArray(this.container)) {
        for (let t = 0; t < this.container.length; t++)
          if (this.container[t] === this.node) {
            uC.call(this, t);
            return;
          }
      } else
        for (let t of Object.keys(this.container))
          if (this.container[t] === this.node) {
            uC.call(this, t);
            return;
          }
      this.key = null;
    }
  }
  n(jge, "_resyncKey");
  function Rge() {
    if (!this.parent || !this.inList) return;
    let t = this.parent[this.listKey];
    this.container !== t && (this.container = t || null);
  }
  n(Rge, "_resyncList");
  function b3s() {
    (this.key == null || !this.container || this.container[this.key] !== this.node) && p3s._markRemoved.call(this);
  }
  n(b3s, "_resyncRemoved");
  function x3s() {
    this.contexts.pop(), this.contexts.length > 0 ? this.setContext(this.contexts[this.contexts.length - 1]) : this.setContext(void 0);
  }
  n(x3s, "popContext");
  function S3s(t) {
    this.contexts.push(t), this.setContext(t);
  }
  n(S3s, "pushContext");
  function P3s(t, e, s, r) {
    this.listKey = s, this.container = e, this.parentPath = t || this.parentPath, uC.call(this, r);
  }
  n(P3s, "setup");
  function uC(t) {
    var e;
    this.key = t, this.node = this.container[this.key], this.type = (e = this.node) == null ? void 0 : e.type;
  }
  n(uC, "setKey");
  function E3s(t = this) {
    if (t.removed) return;
    let e = this.contexts;
    for (let s of e)
      s.maybeQueue(t);
  }
  n(E3s, "requeue");
  function A3s() {
    let {
      context: t,
      node: e
    } = this;
    if (!h3s.isPrivate(e) && e.computed && t.maybeQueue(this.get("key")), e.decorators)
      for (let s of this.get("decorators"))
        t.maybeQueue(s);
  }
  n(A3s, "requeueComputedKeyAndDecorators");
  function v3s() {
    let t = this, e = this.contexts;
    for (; !e.length && (t = t.parentPath, !!t); )
      e = t.contexts;
    return e;
  }
  n(v3s, "_getQueueContexts");
});

// ../node_modules/@babel/traverse/lib/hub.js
var qge = g((cC) => {
  "use strict";
  Object.defineProperty(cC, "__esModule", {
    value: !0
  });
  cC.default = void 0;
  var h7 = class {
    static {
      n(this, "Hub");
    }
    getCode() {
    }
    getScope() {
    }
    addHelper() {
      throw new Error("Helpers are not supported by the default hub.");
    }
    buildError(e, s, r = TypeError) {
      return new r(s);
    }
  };
  cC.default = h7;
});

// ../node_modules/@babel/traverse/lib/index.js
var ob = g((bc) => {
  "use strict";
  Object.defineProperty(bc, "__esModule", {
    value: !0
  });
  Object.defineProperty(bc, "Hub", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return k3s.default;
    }, "get")
  });
  Object.defineProperty(bc, "NodePath", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return I3s.default;
    }, "get")
  });
  Object.defineProperty(bc, "Scope", {
    enumerable: !0,
    get: /* @__PURE__ */ n(function() {
      return N3s.default;
    }, "get")
  });
  bc.visitors = bc.default = void 0;
  Ll();
  var fb = ab();
  bc.visitors = fb;
  var C3s = jr(), w3s = Wf(), Uge = Jv(), I3s = zp(), N3s = D9(), k3s = qge(), {
    VISITOR_KEYS: D3s,
    removeProperties: O3s,
    traverseFast: Kge
  } = C3s;
  function ho(t, e = {}, s, r, i, a) {
    if (t) {
      if (!e.noScope && !s && t.type !== "Program" && t.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 ${t.
        type} node without passing scope and parentPath.`);
      if (!i && a)
        throw new Error("visitSelf can only be used when providing a NodePath.");
      D3s[t.type] && (fb.explode(e), (0, Uge.traverseNode)(t, e, s, r, i, null, a));
    }
  }
  n(ho, "traverse");
  var Wlr = bc.default = ho;
  ho.visitors = fb;
  ho.verify = fb.verify;
  ho.explode = fb.explode;
  ho.cheap = function(t, e) {
    Kge(t, e);
  };
  ho.node = function(t, e, s, r, i, a) {
    (0, Uge.traverseNode)(t, e, s, r, i, a);
  };
  ho.clearNode = function(t, e) {
    O3s(t, e);
  };
  ho.removeProperties = function(t, e) {
    return Kge(t, ho.clearNode, e), t;
  };
  function _3s(t, e) {
    t.node.type === e.type && (e.has = !0, t.stop());
  }
  n(_3s, "hasDenylistedType");
  ho.hasType = function(t, e, s) {
    if (s != null && s.includes(t.type)) return !1;
    if (t.type === e) return !0;
    let r = {
      has: !1,
      type: e
    };
    return ho(t, {
      noScope: !0,
      denylist: s,
      enter: _3s
    }, null, r), r.has;
  };
  ho.cache = w3s;
});

// src/babel/index.ts
var B3s = Pc(ai(), 1), Qlr = Pc(ai(), 1), Wge = Pc(ai(), 1), f7 = Pc(q6(), 1), Zlr = Pc(Sv(), 1), d7 = Pc(ob(), 1), eur = Pc(fe(), 1);
import * as tur from "recast";

// src/babel/babelParse.ts
var pC = Pc(Sv(), 1);
import * as hC from "recast";
function L3s(t, e) {
  let i = /^\s*\/\/\s*@flow/.test(t) ? ["flow"] : ["typescript"], a = {
    ...e,
    plugins: [...e.plugins ?? [], ...i]
  };
  return pC.parse(t, a);
}
n(L3s, "parseWithFlowOrTypescript");
var Vge = {
  sourceType: "module",
  // FIXME: we should get this from the project config somehow?
  plugins: ["jsx", "decorators-legacy", "classProperties"],
  tokens: !0
}, Jlr = /* @__PURE__ */ n((t) => hC.parse(t, {
  parser: {
    parse(e) {
      return L3s(e, Vge);
    }
  }
}), "babelParse"), Ylr = /* @__PURE__ */ n((t) => hC.print(t, {
  quote: "single",
  trailingComma: !0,
  tabWidth: 2,
  wrapColumn: 80,
  arrowParensAlways: !0
}).code, "babelPrint"), Xlr = /* @__PURE__ */ n((t) => pC.parseExpression(t, Vge), "babelParseExpression");

// src/babel/index.ts
var sur = d7.default.default || d7.default, rur = f7.default.default || f7.default, iur = Wge.File;
var export_transformSync = B3s.transformSync;
export {
  iur as BabelFileClass,
  Jlr as babelParse,
  Xlr as babelParseExpression,
  Ylr as babelPrint,
  Qlr as core,
  rur as generate,
  Zlr as parser,
  Vge as parserOptions,
  tur as recast,
  export_transformSync as transformSync,
  sur as traverse,
  eur as types
};
